A arquitetura de três camadas (tiers) é uma arquitetura de aplicativo de software estabelecida que organiza aplicativos em três camadas de computação física e lógica: a camada de apresentação ou a interface com o usuário; a camada do aplicativo, na qual os dados são processados; e a camada de dados, na qual os dados associados ao aplicativo são armazenados e gerenciados.
O principal benefício da arquitetura de três camadas é que devido ao fato de cada camada executar sua própria infraestrutura, cada camada pode ser desenvolvida simultaneamente por uma equipe de desenvolvimento separada e pode ser atualizada ou ajustada conforme necessário sem impactar as outras camadas.
Por décadas, a arquitetura de três camadas era a arquitetura predominante para aplicativos de cliente-servidor. Atualmente, a maioria dos aplicativos de três camadas são alvos para a modernização, usando tecnologias nativas de cloud, como contêineres e microsserviços, e para a migração para a cloud.
A camada de apresentação é a interface com o usuário e a camada de comunicação do aplicativo, na qual o usuário final interage com o aplicativo. Sua principal finalidade é exibir e coletar informações do usuário. Essa camada de nível superior pode ser executada em um navegador da web, como um aplicativo para desktop ou em uma interface gráfica com o usuário (GUI), por exemplo. As camadas de apresentação da web são geralmente desenvolvidos usando HTML, CSS e JavaScript. Os aplicativos para desktop podem ser escritos em diversas linguagens, dependendo da plataforma.
A camada do aplicativo, também conhecida como a camada lógica ou a camada do meio, é a parte central do aplicativo. Nessa camada, as informações coletadas na camada de apresentação são processadas, algumas vezes em relação a outras informações da camada de dados, usando a lógica de negócios que é um conjunto específico de regras de negócios. A camada do aplicativo pode também incluir, excluir ou modificar os dados da camada de dados.
A camada do aplicativo é geralmente desenvolvida usando Python, Java, Perl, PHP ou Ruby e se comunica com a camada de dados usando chamadas de API .
A camada de dados, por vezes chamada de camada de banco de dados, camada de acesso a dados ou back-end, é na qual as informações processadas pelo aplicativo são armazenadas e gerenciadas. Este pode ser um sistema de gerenciamento de banco de dados relacional , como PostgreSQL, MySQL, MariaDB, Oracle, DB2, Informix ou Microsoft SQL Server ou em um servidor de banco de dados NoSQL , como Cassandra, CouchDB ou MongoDB.
Em um aplicativo de três camadas, toda a comunicação passa pela camada do aplicativo. A camada de apresentação e a camada de dados não podem se comunicar diretamente entre si.
Em discussões de arquitetura de três camadas, nível é frequentemente usado de forma intercambiável e equivocadamente pela camada, como um 'nível de apresentação' ou 'nível lógico de negócios'.
Elas não são a mesma coisa. Um 'nível (layer)' refere-se a uma divisão funcional do software, mas uma 'camada (tier)' refere-se a uma divisão funcional do software que é executada em infraestrutura separada das outras divisões. O aplicativo Contatos em seu telefone, por exemplo, é um aplicativo de três níveis , mas um aplicativo de camada única , porque os três níveis são executados em seu telefone.
A diferença é importante, porque níveis não podem oferecer os mesmos benefícios que as camadas.
Novamente, o principal benefício da arquitetura de três camadas é a separação lógica e física da funcionalidade. Cada camada pode ser executada em um sistema operacional e plataforma de servidor diferentes, por exemplo, servidor da web, servidor de aplicativos, servidor de banco de dados, que mais atende aos seus requisitos funcionais. E cada camada é executada em pelo menos um hardware de servidor dedicado ou servidor virtual, por isso os serviços de cada camada podem ser customizados e otimizados sem impactar as outras camadas.
Outros benefícios (em comparação com a arquitetura de duas camadas ou de camada única) incluem:
No desenvolvimento da web, as camadas possuem nomes diferentes, mas desempenham funções semelhantes:
Ao mesmo tempo que a arquitetura de três camadas é facilmente a arquitetura de aplicativos multicamada mais amplamente adotada, há outras que podem ser encontradas em seu trabalho ou em sua pesquisa.
A arquitetura de duas camadas é a arquitetura de cliente-servidor original, composta por uma camada de apresentação e uma camada de dados. A lógica de negócios reside na camada de apresentação, na camada de dados ou em ambas. Na arquitetura de duas camadas, a camada de apresentação, ou seja, aquela em contato com o usuário final, possui acesso direto à camada de dados e a lógica de negócios é normalmente limitada. Um simples aplicativo de gerenciamento de contatos, em que os usuários podem inserir e recuperar dados de contato, é um exemplo de um aplicativo de duas camadas.
Arquitetura n-camadas, também chamada de arquitetura multicamada, refere-se a qualquer arquitetura de aplicativos com mais de uma camada. Mas aplicativos com mais de três níveis são raros, pois níveis adicionais oferecem poucos benefícios e podem deixar o aplicativo mais lento, mais difícil de gerenciar e mais caro de ser executado. Como resultado, a arquitetura de n-camadas e a arquitetura multicamada são geralmente sinônimas da arquitetura de três camadas.
Migre mais rapidamente para a cloud com as soluções IBM® Cloud Pak integradas, abertas, conteinerizadas e certificadas pela IBM que são executadas no software Red Hat OpenShift.
Modernize perfeitamente suas cargas de trabalho e aplicativos VMware com a IBM Cloud.
Modernize e desenvolva novos aplicativos, reduza os custos e maximize o ROI.
Descubra o que é a modernização de aplicativos, os benefícios e desafios comuns e como começar a usar.
Descubra como os bancos de dados relacionais funcionam e como eles se comparam a outras opções de armazenamento de dados.
Conheça os aplicativos nativos de cloud e saiba como eles promovem a inovação e a velocidade em sua empresa.