Desenvolvimento em Camadas
As aplicações Web são estruturadas em camadas em que cada camada possui um papel fundamental na arquitetura dos sistemas. As aplicações Web possuem no mínimo duas camadas:
As arquiteturas tradicionais cliente-servidor são de duas camadas. Nestas arquiteturas, uma das camadas é o servidor de banco de dados acessado por vários programas cliente. Cada programa cliente possui uma camada de apresentação (uma interface gráfica) e o código da lógica de negócio. A lógica de negócio é chamada assim, pois nos aplicativos comerciais contém as regras (regras de negócio) que são utilizadas para tomar decisões de negócio: quantos produtos oferecer, quanto cobrar, etc. A inteligência do aplicativo, logo a parte mais importante do software, está na lógica do negócio. A Figura A.3 apresenta um exemplo de modelo com duas camadas.
Existem modelos arquiteturais propostos para melhorar a organização e a manutenção das aplicações Web. No modelo de duas camadas (apresentado na Figura A.3),o módulo do cliente é específico para o aplicativo. Quando a lógica do negócio se altera, um novo módulo cliente deve ser distribuído para os dos clientes envolvidos.
A arquitetura de camadas é muito utilizada para separar responsabilidades em uma aplicação moderna. Apesar de a ideia da divisão de uma aplicação em camadas ter sido popularizada nos anos 90, muitos desenvolvedores ainda não conhecem muito bem a técnica.
Um modelo que tem sido amplamente utilizado é o modelo em três camadas. A saber:
Ao contrário de um modelo de duas camadas, no modelo de três camadas a lógica do negócio é residente em um servidor. Quando a lógica se altera, o código do servidor é atualizado, enquanto a camada de apresentação (navegador) continua inalterada. A Figura A.4 apresenta uma arquitetura de três camadas.
A grande vantagem é separar a camada de apresentação da camada de lógica de negócio, apesar de realizar um maior número de operações de recuperação e passagem de valores.
Junto com a popularização da arquitetura de camadas, ressurgiu o modelo MVC (Model-View-Controller) de desenvolvimento. O modelo MVC e o de camadas são conceitos diferentes, que podem ser aplicados em conjunto ou não. Num Modelo MVC, os componentes são divididos em três: View, Model e Controller. A View é a parte exposta, o Controller é o controle sobre a comunicação que vem do usuário para o sistema e o Model representa o estado do sistema.