![]() |
||||||||
|
|
||||||||
|
| ||||||||
Observe que a diferença desta arquitetura para a Arquitetura Web é apenas a presença do MTS.
No Windows DNA os programas em script (assumiremos que seja ASP) não acessam mais as bases de dados diretamente. Para uma página ASP acessar a base de dados neste modelo ela precisa utilizar um dos componentes existentes dentro do MTS.
Os componentes do MTS farão toda a validação de dados e implementarão as regras de negócio da empresa.
E quais as vantagens ?
Em primeiro lugar os componentes são construidos de forma orientada a objetos (os mais puristas de OO não concordariam...) o que faz com que seja mais fácil reutilizar seu código e controlar a qualidade de código dos componentes. Além disso, devido às características de um servidor Web uma aplicação ASP é obrigada a abrir e fechar a conexão com o banco a cada vez que a página for chamada. Ela não pode, de forma alguma, manter a conexão aberta.
Esse problema gera um excesso de tráfego entre o servidor Web e o banco de dados quando se utiliza apenas a Arquitetura Web. O MTS soluciona esse excesso de tráfego : Toda a conexão é controlada pelos componentes, que por sua vez são controlados pelo MTS. Assim sendo, quando um componente solicita uma conexão ao banco, o MTS abre a conexão, mas quando o componente solicita que a conexão seja fechada o MTS não fecha a conexão : ele guarda a conexão. Quando o componente seguinte solicitar uma conexão ao banco, ao invés do MTS abrir uma nova conexão ele irá reutilizar a conexão que já encontra-se aberta, evitando o tráfego de abertura de conexões e o excesso de conexões no servidor de banco de dados. Esse trabalho é chamado de Pooling de conexões.
A 1a vista o acréscimo de uma camada a mais pode dar a impressão de ter gerado perda de performance. Afinal de contas, os objetos do MTS terão que ser inicializados e destruidos a cada execução. Na verdade isso não ocorre. Assim como o MTS faz o Pooling de conexões ele também faz o Pooling de componentes : Quando um componente é chamado, o MTS inicializa o componente, mas quando o ASP pede para destrui-lo o MTS não o destroi : Guarda a cópia e a utiliza para atender a próxima página ASP que solicitar o mesmo componente.
Na verdade isso ocorre em um nível ainda mais amplo : o MTS não espera o ASP pedir para destruir um componente para entrega-lo a outra página. Isso ocorre entre a execução dos métodos. Se no início do código ASP a página chamou um método de um componente, neste instante o MTS escolheu uma cópia do componente que estava em RAM para executar este método. Quando o método foi finalizado esta cópia foi disponibilizada para outra página, mesmo sem que a aplicação ASP tenha destruido o objeto. Quando o próximo método for chamado o mesmo processo ocorrerá. Isso é chamado de Just In Time Activation.
Vocês podem observar também, pelo gráfico, que um componente pode chamar outro componente. Em um projeto complexo isso muitas vezes pode ser utilizado para que o 1o componente seja o responsável apenas pelas regras de negócio enquanto que o 2o componente será responsável pela gravação na base de dados. Quando for necessário trocar a base de dados utilizada pela aplicação a única coisa que precisará ser mudada na aplicação será o componente que controla o acesso a banco de dados. Com a mudança de uma única .dll pode-se alterar uma aplicação que está sendo usada por 10, talvez 20 mil usuários, quem sabe ?
Outra possibilidade é que um componente do MTS chame diversos outros componentes do MTS. Esse recurso pode estar sendo utilizado, por exemplo, para fazer atualizações de dados em 2 ou mais bases de dados, até mesmo se uma delas for um mainframe. No gráfico, o MTS pode fazer com que a operação de todos os 4 componentes rode no contexto de uma única transação, ou seja, se um dos bancos recusar a informação, os 3 irão executar um Roll Back.
Aprenda a desenvolver componentes para o MTS no treinamento de Bancos de dados em 3 camadas com Visual Basic ou comece a aprender como é feita a criação de objetos COM no treinamento Técnicas de desenvolvimento com Visual Basic. Mas se você não sabe por qual curso começar, verifique o que já sabe de Visual Basic.
Utilize as setas para navegar no texto explicativo
� Búfalo Informática,
Treinamento e Consultoria -
Rua Álvaro Alvim, 37 Sala 920 - Cinelândia - Rio de Janeiro / RJ
Tel.: (21)2262-1368 (21) 9240-5134 (21) 9240-7281 e-Mail: contato@bufaloinfo.com.br