Qual a evolução na arquitetura das aplicações dos modernos datacenters?
O principal objetivo do datacenter é abrigar aplicações que os usuários invocam remotamente para recuperar dados ou realizar tarefas tais como emissão de ordens, solicitações de reservas, comunicação com uma parte remota, recuperação de documentos, dentre outros.
Do ponto de vista arquitetural, as aplicações são executadas em vários servidores, para executar as seguintes funções:
- Interface de usuário (servidores web),
- Lógica de aplicação (servidores de aplicação) e
- Sistema para salvar e recuperar dados (servidores de base de dados).
Além desses servidores, vários outros serviços suportam aplicações de gerência de serviços de rede, tais como servidores de arquivo, servidores DNS – domain name system, servidores de diretório , servidores Radius e servidores de certificação (CA).
Hoje as aplicações estão migrando do modelo cliente servidor para o modelo multicamadas
Modelo Clássico
O modelo clássico de cliente/servidor provê a comunicação entre uma aplicação e um usuário através do uso de um servidor e um cliente:
- Um “software cliente” (o exemplo mais comum é um browser) – que provê uma interface gráfica de usuário (GUI) no topo de uma aplicação no computador do cliente. Tem a responsabilidade de recuperar dados do servidor e apresenta-los para o cliente e
- Um servidor – onde o restante da logica do negócio reside. Roda apresentações, aplicações e base de dados que usam múltiplos processos internos para comunicar e trocar informações. A troca de informações entre cliente e servidor é em sua grande maioria dados, por causa do “software cliente” realizar funções de apresentação local, tal que o usuário final possa interagir com a aplicação usando uma interface local de usuário.
Modelo Multicamadas
O modelo multicamadas iniciou quando as primeiras aplicações baseadas na web apareceram, que demandam quantidades maiores de interfaces e formatos de mensagens padrão compartilhadas pelas aplicações:
- Isso exige maior desempenho e servidores com funções específicas.
- Provê ganho de escala.
Esta arquitetura “web-based” implica no uso de funcionalidades ou camadas separadas: softwares clientes, servidores web, servidores de aplicação e servidores de base de dados.
- O browser interage com os servidores web e os servidores de aplicação e os servidores web interagem com os servidores de aplicação e os servidores de base de dados.
- O modelo multicamadas exige um padrão de arquitetura web onde o browser formata e apresenta a informação recebida do servidor web.
- O lado do servidor na arquitetura web consiste de múltiplos e distintos servidores que estão funcionalmente separados.
Como funciona o Modelo Multicamadas?
O modelo multicamadas é mais escalável e gerenciável e também é mais complexo do que o modelo cliente-servidor – habilita ambientes de aplicação evoluírem através de ambientes de computação distribuídos.
O modelo multicamadas admite diferentes arquiteturas (ou camadas):
- cliente + servidor web, ou
- cliente + servidor web + servidor de aplicação, ou
- cliente + servidor web + servidores de aplicação + servidores de base de dados.
A figura ilustra o modelo multicamadas e mapeia cada camada numa lista parcial de tecnologias correntemente disponíveis pra cada camada.
Note que os servidores que interfaceiam com o cliente fornecem a interface para acessar a lógica do negócio na camada de aplicação.
Embora algumas aplicações ainda não forneçam um “front end web-based”, o processo de “transformação para web das aplicações de negócio (webetização) está em franco progresso.
Essas multicamadas são pedaços distintos da lógica que realizam funções específicas. A separação lógica de aplicações de front-end e funções de back-end habilita a separação física e suporta o movimento de computação distribuída/greed computing.
Nas arquiteturas multicamadas os servidores web, servidores de base de dados e de aplicações, não necessitam mais coexistir no mesmo servidor físico. Essa separação aumenta a escalabilidade do serviço e facilita a gerência de um grande número de servidores; na perspectiva de rede, esses grupos de servidores que realizam funções distintas podem também serem fisicamente separados dentro de diferentes segmentos de redes, por razões de segurança e de gerenciabilidade.
Qual a evolução na Arquitetura das Aplicações com a Webtização?
Datacenters normalmente hospedam servidores executando vários sistemas operacionais e aplicativos baseados em arquiteturas de softwares diversos.
A diversidade de plataformas de hardware e software em um único Datacenter é o resultado de muitos fatores, que incluem:
- Rápida evolução das tecnologias de aplicação.
- Consolidação de “farms de servidores” de empresas que foram mescladas.
- Execução paralela e independente de softwares sem um plano geral entre vários sistemas, e assim por diante.
A diversidade de aplicativos em datacenters aumenta a carga de gestão e a necessidade de compartilhar os mesmos dados.
Isto é um desafio e razão para a tendência atual de simplificação e integração em muitos datacenters.
- Aplicativos críticos de negócios de empresas, como bancos de dados, sistemas de reserva, encomenda, peças e ferramentas, existem muito antes da Internet, e eles foram originalmente desenvolvidos para execução em sistemas do tipo mainframes IBM.
- Nos últimos anos, as empresas decidiram deixar usuários internos e remotos, parceiros comerciais e clientes acessarem online seus aplicativos. Reescrever aplicativos para torná-los totalmente baseado na web representa um risco para a estabilidade e disponibilidade no software existente.
- Uma solução é criar uma “interface web” para os aplicativos existentes.
- Esta tarefa não trata apenas de colocar um servidor web na frente de um mainframe, mas fornecer uma interface fácil de usar, consolidar e automatizar processos de negócios.
- Essa operação pode ser complexa porque exige a integração de diversas aplicações diferentes que não foram projetadas para interoperar com as outras aplicações fora do escopo original.
- Esse processo de integração é normalmente conhecido como Enterprise Application Integration (EAI).
O modelo de projeto de software que simplifica a integração e o desenvolvimento de aplicativos via web é o modelo multicamadas, e o software que conecta esses servidores e aplicativos juntos é chamado de “middleware”.
Middleware pode traduzir solicitações HTTP para os protocolos específicos de aplicações legadas e vice versa.