Desenvolvimento - ASP
Curso Básico de ASP 3.0 – Módulo 01 – Lição 02
Nesta lição é uma visão geral da evolução das aplicações, desde o tradicional modelo Cliente/Servidor de duas camadas, passando pelo modelo em três camadas, até o modelo mais atual, baseado em 4 ou mais camadas, onde a apresentação, a lógica do negócio e o banco de dados ficam no servidor, sendo que os usuários utilizam o navegador para ter acesso as aplicações.
por Júlio Cesar Fabris BattistiAplicações para a Web
Embora utilizamos o exemplo de Comércio eletrônico, CRM, e-procurement, etc, como situações onde podemos utilizar a tecnologia ASP, não são somente nestas situações que a tecnologia ASP pode ser utilizada. Hoje em dia, com o aumento da complexidade das redes de computadores baseadas em PC"s, existe uma tendência bastante acentuada em favor do desenvolvimento de aplicações que seguem o modelo Web. São aplicações que são acessadas através de um Browser. Nesta lição falarei um pouco sobre aplicações Cliente/Servidor tradicionais e os problemas deste tipo de modelo. Falarei sobre aplicações de 2, 3 ou n camadas, e onde a tecnologia ASP se encaixa, neste mundo de desenvolvimento de aplicações habilitadas para a Web.
A complexidade de gerenciamento do modelo Cliente/Servidor e aplicações de 2 camadas
O modelo Cliente/Servidor, foi criado tendo como base a descentralização dos dados e recursos de processamento, em oposição ao modelo Centralizado utilizado na época em que o Mainframe dominava absoluto. Neste modelo, conforme indicado pela Figura 1, em uma rede de computadores, existem uma ou mais máquinas que atuam como Servidores, disponibilizando recursos para as demais máquinas, as quais atuam como Clientes.
Figura 1 - O Modelo Cliente/Servidor tradicional.
Conforme pode ser visto na Figura 1, temos Servidores para Arquivos, Banco de dados e outras funções, tais como: Servidores de impressão, Servidores Web, etc. Estas redes, tipicamente, são formadas por Servidores, os quais são equipamentos com um maior poder de processamento e armazenamento do que os clientes, os quais, na maioria dos casos, são Microcomputadores ligados em rede.
Aplicações em 2 camadas
No início da utilização do modelo Cliente/Servidor, as aplicações foram desenvolvidas utilizando-se um modelo de desenvolvimento em duas camadas. Neste modelo, um programa, normalmente desenvolvido em um ambiente de desenvolvimento, como o Visual Basic, Delphi ou Power Builder, é instalado em cada Cliente. Este programa acessa dados em um servidor de Banco de dados, conforme ilustrado na Figura 2:
Figura - 2 O Modelo de desenvolvimento em duas camadas.
No modelo de duas camadas, temos um programa que é instalado no Cliente, programa esse que faz acesso a um Banco de dados que fica residente no Servidor de Banco de dados. Na maioria dos casos, a máquina do Cliente é um PC rodando Windows, e a aplicação Cliente é desenvolvida utilizando-se um dos ambientes conhecidos, conforme citado anteriormente. Sendo a aplicação Cliente, um programa para Windows (na grande maioria dos casos), a aplicação deve ser instalada em cada um dos computadores da rede, que farão uso da aplicação. É o processo de instalação normal, para qualquer aplicação Windows. No modelo de 2 camadas, a aplicação Cliente é responsável pelas seguintes funções:
- Apresentação: O Código que gera a Interface visível do programa, faz parte da aplicação Cliente. Todos os formulários, menus e demais elementos visuais, estão contidos no código da aplicação Cliente. Caso sejam necessárias alterações na interface do programa, faz-se necessária a geração de uma nova versão do programa, e todos os computadores que possuem a versão anterior, devem receber a nova versão, para que o usuário possa ter acesso as alterações da interface. Aí que começam a surgir os problemas no modelo de 2 camadas: Uma simples alteração de interface, é suficiente para gerar a necessidade de atualizar a aplicação, em centenas ou milhares de computadores. O gerenciamento desta tarefa, é algo extremamente complexo e caro.
- Lógica do Negócio: As regras que definem a maneira como os dados serão acessados e processados, são conhecidas como "Lógica do Negócio". Fazem parte das Regras do Negócio, desde funções simples de validação da entrada de dados, como o cálculo do digito verificador de um CPF, até funções mais complexas, como descontos escalonados para os maiores clientes, de acordo com o volume da compra. Questões relativas a legislação fiscal e escrita contábil, também fazem parte da Lógica do Negócio. Por exemplo, um programa para gerência de Recursos Humanos, desenvolvido para a legislação dos EUA, não pode ser utilizado, sem modificações, por uma empresa brasileira. Isso acontece porque a legislação dos EUA é diferente da legislação brasileira. Em síntese, as regras para o sistema de Recursos humanos são diferentes. Com isso, alterações nas regras do negócio são bastante freqüentes, ainda mais com as repetidas mudanças na legislação do nosso país. Com isso, faz-se necessária a geração de uma nova versão do programa, cada vez que uma determinada regra muda, ou quando regras forem acrescentadas ou retiradas. Desta forma, todos os computadores que possuem a versão anterior, devem receber a nova versão, para que o usuário possa ter acesso as alterações . Aí que começam a surgir os problemas no modelo de 2 camadas: Qualquer alteração nas regras do negócio, é suficiente para gerar a necessidade de atualizar a aplicação, em centenas ou milhares de computadores. O gerenciamento desta tarefa, é algo extremamente complexo.
Com a evolução do mercado e as alterações da legislação, mudanças nas regras do negócio são bastante freqüentes. Com isso o modelo de duas camadas, demonstrou-se de difícil manutenção e gerenciamento, além de apresentar um TCO muito elevado, conforme comentado na Introdução deste Curso.
A outra camada, vem a ser o Banco de dados, o qual fica armazenado em Servidor da rede. Uma aplicação desenvolvida em Visual Basic, a qual acessa um Banco de dados em um servidor Microsoft SQL Server, é um típico exemplo de uma aplicação em 2 camadas.
Em busca de soluções para os problemas do modelo de duas camadas, é que surge a proposta do modelo de 3 camadas, conforme analisaremos a seguir. Aplicações em 3 camadas
Como uma evolução do modelo de 2 camadas, surge o modelo de três camadas. A idéia básica do modelo de 3 camadas, é retirar as Regras do Negócio do cliente e centralizá-las em um determinado ponto, o qual é chamado de Servidor de Aplicações. O acesso ao Banco de dados é feito através das regras contidas no Servidor de Aplicações. Ao centralizar as Regras do Negócio em um único ponto, fica muito mais fácil a atualização das mesmas. A Figura 3, nos dá uma idéia geral do modelo em 3 camadas:
Figura 3 - O Modelo de desenvolvimento em três camadas.
Todo o acesso do cliente ao Banco de dados, é feito de acordo com as regras contidas no Servidor de aplicações. O cliente não tem acesso ao Banco de dados, sem antes passar pelo servidor de aplicações. Com isso as três camadas são as seguintes:
- Apresentação: Continua no programa instalado no cliente. Alterações na Interface do programa, geram a necessidade de atualizar a aplicação em todos os computadores, onde a mesma está sendo utilizada. Porém cabe ressaltar, que alterações na interface, são menos freqüentes do que alterações nas regras do negócio.
- Lógica: São as regras do negócio, as quais determinam de que maneira os dados serão utilizados. Esta camada foi deslocada para o Servidor de aplicações. Desta maneira, quando uma regra do negócio for alterada, basta atualizá-la no Servidor de aplicações. Após a atualização, todos os usuários passarão a ter acesso a nova versão, sem que seja necessário reinstalar o programa em cada um dos computadores da rede. Vejam que ao centralizar as regras do negócio em um Servidor de aplicações, estamos facilitando a tarefa de manter a aplicação atualizada.
- Dados: Nesta camada temos o servidor de Banco de dados, no qual reside toda a informação necessária para o funcionamento da aplicação. Cabe ressaltar, que os dados somente são acessados através do Servidor de aplicação, e não diretamente pela aplicação Cliente.
Com a introdução da camada de Lógica, resolvemos o problema de termos que atualizar a aplicação, em centenas ou milhares de computadores, cada vez que uma regra do negócio for alterada. Porém continuamos com o problema de atualização da aplicação, cada vez que sejam necessárias mudanças na Interface. Por isso que surgiram os modelos de n-camadas. No próximo tópico, iremos falar um pouco sobre o modelo de 4 camadas. No Capítulo 10 - Conceitos Avançados: Transações e o Microsoft Transaction Services, falarei sobre as camadas adicionais.
Aplicações em quatro camadas
Como uma evolução do modelo de três camadas, surge o modelo de quatro camadas. A idéia básica do modelo de 4 camadas, é retirar a apresentação do cliente e centralizá-las em um determinado ponto, o qual na maioria dos casos é um servidor Web. Com isso o próprio Cliente deixa de existir como um programa que precisa ser instalado em cada computador da rede. O acesso a aplicação, é feito através de um Navegador, como o Internet Explorer ou o Netscape Navigator. A Figura 4, nos dá uma idéia geral do modelo em quatro camadas:
Figura 4 - O Modelo de desenvolvimento em quatro camadas.
Para acessar a aplicação, o cliente acessa o endereço da aplicação, utilizando o seu navegador. Por exemplo http://www.empresa-abc.com/sistemas/cadastro.asp. Todo o acesso do cliente ao Banco de dados, é feito de acordo com as regras contidas no Servidor de aplicações. O cliente não tem acesso ao Banco de dados, sem antes passar pelo servidor de aplicações. Com isso as quatro camadas são as seguintes:
- Cliente: Nesta caso o Cliente é o Navegador utilizado pelo usuário, quer seja o Internet Explorer, quer seja o Netscape Navigator, ou outro Navegador qualquer.
- Apresentação: Passa para o Servidor Web. A interface pode ser composta de páginas HTML, ASP, ou qualquer outra tecnologia capaz de gerar conteúdo para o Navegador. Com isso alterações na interface da aplicação, são feitas diretamente no servidor Web, sendo que estas alterações estarão, automaticamente, disponíveis para todos os Clientes. Com isso não existe a necessidade de reinstalar a aplicação em todos os computadores da rede. Fica muito mais fácil garantir que todos estão tendo acesso a versão mais atualizada da aplicação. A única coisa que o cliente precisa ter instalado na sua máquina, é o Navegador. O acesso ao Banco de dados, é feito através do Servidor de aplicações. Aqui que se encaixa o objeto de estudos deste curso - ASP. Com o uso de ASP é possível criar páginas que se conectam com bancos de dados e são geradas, dinamicamente a partir do servidor IIS. Ou seja, o ASP pode ser utilizado para criar as páginas que formam a interface de uma aplicação em quatro ou mais camadas.
- Lógica: São as regras do negócio, as quais determinam de que maneira os dados serão utilizados. Esta camada está no Servidor de aplicações. Desta maneira, quando uma regra do negócio for alterada, basta atualizá-la no Servidor de aplicações. Após a atualização, todos os usuários passarão a ter acesso a nova versão, sem que seja necessário reinstalar o programa em cada um dos computadores da rede. Vejam que ao centralizar as regras do negócio em um Servidor de aplicações, estamos facilitando a tarefa de manter a aplicação atualizada.
- Dados: Nesta camada temos o servidor de Banco de dados, no qual reside toda a informação necessária para o funcionamento da aplicação.
Com o deslocamento da camada de apresentação para um Servidor Web, resolvemos o problema de termos que atualizar a aplicação, em centenas ou milhares de computadores, cada vez que uma regra do negócio for alterada. Neste ponto a atualização das aplicações é uma tarefa mais gerenciável, muito diferente do que acontecia no caso do modelo em 2 camadas.
Os servidores de Aplicação, Web e Banco de dados, não precisam, necessariamente ser servidores separados, isto é, uma máquina para fazer o papel de cada um dos servidores. O conceito de servidor de Aplicação, Web ou Banco de dados, é um conceito relacionado com a função que o servidor desempenha. Podemos ter, em um mesmo equipamento, um Servidor de aplicações, um servidor Web e um servidor de Banco de dados. Claro que questões de desempenho devem ser levadas em consideração, conforme analisaremos no próximo tópico.
Questões a considerarmos nos modelos de 3 ou mais camadas
Muitas são as vantagens dos modelos de 3 ou mais camadas, em relação a facilidade de gerenciamento e atualização das aplicações. Porém considerações devem ser feitas em relação a desempenho e dimensionamento dos equipamentos que atuarão como servidores.
A partir do momento que estamos deslocando funcionalidades (tipicamente lógica e apresentação), do cliente para um ou mais servidores, também estamos deslocando capacidade de processamento em termos de memória RAM e processador. Funções que antes eram executadas pelos clientes, utilizando memória e processador da estação cliente, agora foram deslocados para os servidores, com isso consumindo memória e processador do servidor. Com isso, um dos fatores chave, é o correto dimensionamento dos equipamentos servidores.
Para fazer o dimensionamento dos servidores, precisamos conhecer o número de usuários que irão acessar a aplicação, o nível de exigência de cada usuário, os recursos necessários pelos software do servidor, dentre outros. Para determinar o nível de recursos necessários em cada um dos servidores, você precisa fazer um estudo bem detalhado, de tal forma que o servidor não fique sub dimensionado. Quando o servidor não está corretamente dimensionado, a tendência é que o acesso a aplicação fique bastante lento, o que causa insatisfação entre os usuários.
Dentre deste modelo de desenvolvimento para a Web, em 3 ou mais camadas, existem diversos pontos, onde podemos utilizar a tecnologia ASP. Para desenvolver a interface da aplicação, combinando código HTML com código ASP. Utilizando ASP, podemos desenvolver páginas que acessam o Banco de dados, através do Servidor de aplicações. Questões como autenticação de usuários, determinação do nível de acesso e segurança da aplicação, podem ser desenvolvidas com a utilização de ASP.
Para que você possa utilizar a tecnologia ASP, da melhor maneira, com o objetivo de atender as necessidades da sua aplicação, é importante que você conheça o modelo de desenvolvimento para a Web, bem como a utilização de ASP, para a criação das aplicações. No decorrer deste curso, abordarei diversos tópicos relacionados a criação de aplicações Web.
Conclusão
Nesta lição apresentei uma visão geral da evolução das aplicações, desde o tradicional modelo Cliente/Servidor de duas camadas, passando pelo modelo em três camadas, até o modelo mais atual, baseado em 4 ou mais camadas, onde a apresentação, a lógica do negócio e o banco de dados ficam no servidor, sendo que os usuários utilizam o navegador para ter acesso as aplicações.
Aqui que se encaixa o objeto de estudos deste curso - ASP. Com o uso de ASP é possível criar páginas que se conectam com bancos de dados e são geradas, dinamicamente a partir do servidor IIS. Ou seja, o ASP pode ser utilizado para criar as páginas que formam a interface de uma aplicação em quatro ou mais camadas.
Nota: Esta lição faz parte do curso "Criando Sites Dinâmicos com ASP 3.0". Você pode adquirir o conteúdo completo deste curso, com 732 páginas de conteúdo, no formato de arquivo .PDF, por apenas R$ 20,00 para o envio via download ou R$ 30,00 para o envio via CD. Para maiores detalhes sobre como adquirir o arquivo .PDF, com todo o conteúdo do Curso: Criando Sites Dinâmicos com ASP 3.0, para ter acesso ao conteúdo completo do curso, com permissão de impressão, sem estar conectado à Internet, acesse o seguinte endereço: http://www.juliobattisti.com.br/ebooksdoautor.