Arquiteturas de Três Camadas

O WebSphere Application Server fornece a camada de lógica de aplicativo em uma arquitetura de três camadas, permitindo que os componentes do cliente interajam com recursos de dados e aplicativos legados.

Coletivamente, as arquiteturas em três camadas são modelos de programação que permitem a distribuição do aplicativo funcionalmente por três sistemas independentes, geralmente:
  • Componentes clientes em execução em estações de trabalho locais (camada um)
  • Processos em execução em servidores remotos (camada dois)
  • Uma coleção discreta de bancos de dados, gerenciadores de recursos e aplicativos de mainframe (camada três)

O diagrama a seguir descreve os três níveis de camadas. As camadas são lógicas. Elas podem ou não estar em execução no mesmo servidor físico.

Figura 1. Arquitetura de Três CamadasArquitetura de Três Camadas

Primeira camada. A responsabilidade para a apresentação e interação do usuário reside nos componentes da primeira camada. Esses componentes clientes permitem ao usuário interagir com os processos da segunda camada de uma maneira segura e intuitiva. O WebSphere Application Server suporta diversos tipos de cliente. Os clientes não acessam os serviços da terceira camada diretamente. Por exemplo, um componente cliente fornece um formulário no qual um cliente faz um pedido de produtos. O componente do cliente envia esse pedido aos processos da segunda camada, que verificam os bancos de dados do produto e executam tarefas necessárias para o faturamento e a remessa.

Segunda camada. Os processos da segunda camada são comumente referidos como "camada lógica do aplicativo". Esses processos gerenciam a lógica de negócio do aplicativo e têm permissão para acessar os serviços da terceira camada. A camada de lógica de aplicativo é onde a maioria do trabalho de processamento ocorre. Vários componentes clientes podem acessar os processos da segunda camada simultaneamente e, portanto, essa camada de lógica de negócio deve gerenciar suas próprias transações.

No exemplo anterior, se vários clientes tentarem colocar um pedido para o mesmo item, do qual só resta um, a camada de lógica do aplicativo precisará determinar quem tem direito a esse item, atualizar o banco de dados para refletir a compra e informar aos outros clientes que o item não está mais disponível. Sem uma camada de lógica do aplicativo, os componentes clientes acessam o banco de dados de produtos diretamente. O banco de dados precisa gerenciar suas próprias conexões, em geral travando um registro que está sendo acessado. Uma trava pode ocorrer quando um item é colocado em um carrinho de compras, impedindo outros clientes de o considerarem para compra. A separação das segunda e terceira camadas reduz a carga nos serviços da terceira camada, suporta gerenciamento de conexões mais eficaz e pode melhorar o desempenho geral da rede.

Terceira camada. Os serviços da terceira camada são protegidos do acesso direto pelos componentes do cliente residindo em uma rede segura. A interação deve ocorrer por meio dos processos da segunda camada.

[z/OS]A vantagem sobre o z/OS é a capacidade de reduzir a segunda e terceira camadas em um ambiente z/OS físico, preservando a segurança e as vantagens lógicas dos sistemas de camada exclusiva.

Comunicação entre camadas. Todas as três camadas devem comunicar-se entre si. Protocolos abertos padrões e APIs expostas simplificam essa comunicação. É possível criar os componentes do cliente em qualquer linguagem de programação, como Java™ ou C++. Esses clientes são executados em qualquer sistema operacional, conversando com a camada de lógica do aplicativo. Os bancos de dados na terceira camada podem ser de qualquer design se a camada de aplicativo puder consultá-los e manipulá-los. A chave para esta arquitetura é a camada de lógica do aplicativo.


Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=covr_3-tier
Nome do arquivo: covr_3-tier.html