A arquitetura de três camadas é uma arquitetura de aplicações de software bem estabelecida que organiza as aplicações em três camadas lógicas e físicas de computação: a camada de apresentação, ou interface do usuário; a camada de aplicação, onde os dados são processados; e a camada de dados, onde os dados da aplicação são armazenados e gerenciados.
O principal benefício da arquitetura de três camadas é que, como cada camada é executada em sua própria infraestrutura, cada camada pode ser desenvolvida simultaneamente por uma equipe de desenvolvimento separada. E pode ser atualizado ou dimensionado conforme necessário sem afetar os outros níveis.
Durante décadas, a arquitetura de três camadas foi a arquitetura predominante para aplicações cliente-servidor. Atualmente, a maioria das aplicações de três camadas são alvos de modernização que usam tecnologias nativas da nuvem, como contêineres e microsserviços, e para migração para a nuvem.
Boletim informativo de pesquisa
Descubra pesquisas emergentes em IA, computação quântica, nuvem híbrida e muito mais dos especialistas da IBM com o boletim informativo mensal da Future Forward. Consulte a Declaração de privacidade da IBM.
Sua assinatura será entregue em inglês. Você encontrará um link para cancelar a assinatura em cada boletim informativo. Você pode gerenciar suas assinaturas ou cancelar a assinatura aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.
A camada de apresentação é a interface de usuário e a camada de comunicação da aplicação, onde o usuário final interage com a aplicação. Seu principal objetivo é exibir informações e coletar informações do usuário. Essa camada de nível superior pode ser executada em um navegador da web, como aplicação de desktop ou em uma interface gráfica de usuário (GUI), por exemplo. As camadas de apresentação da web são desenvolvidas usando HTML, CSS e JavaScript. As aplicações de desktop podem ser escritas em vários idiomas, dependendo da plataforma.
A camada de aplicação, também conhecida como camada lógica ou camada intermediária, é o coração da aplicação. Nesta camada, as informações coletadas na camada de apresentação são processadas (às vezes em relação a outras informações na camada de dados) usando a lógica de negócios, um conjunto específico de business rules. A camada de aplicação também pode adicionar, excluir ou modificar dados na camada de dados.
A camada de aplicação normalmente é desenvolvida com Python, Perl, Java, PHP ou Ruby e se comunica com a camada de dados por meio de chamadas de API.
A camada de dados, às vezes chamada de camada de banco de dados, camada de acesso a dados ou back-end, é onde as informações processadas pela aplicação são armazenadas e gerenciadas. Pode ser um sistema de gerenciamento de banco de dados relacional , como PostgreSQL, MySQL, MariaDB, Oracle, Db2, Informix ou Microsoft SQL Server, ou um servidor de banco de dados NoSQL , como Cassandra, CouchDB ou MongoDB.
Em uma aplicação de três camadas, toda a comunicação passa pela camada de aplicação. As camadas de apresentação e de dados não podem se comunicar diretamente entre si.
Novamente, o principal benefício da arquitetura de três camadas é sua separação lógica e física da funcionalidade. Cada camada pode ser executada em um sistema operacional e uma plataforma de servidor separados (por exemplo, servidor da web, servidor de aplicações, servidor de banco de dados) que melhor atenda aos seus requisitos funcionais. E cada nível é executado em pelo menos um servidor dedicado ou Virtual Servers, para que os serviços de cada nível possam ser personalizados e otimizados sem afetar os outros níveis.
Outros benefícios (em comparação com a arquitetura de camada única ou de duas camadas) incluem:
Em discussões sobre arquitetura de três camadas, "camada" é frequentemente usado deforma intercambiável – e erroneamente – para camada, como em "camada de apresentação" ou "camada de lógica de negócios".
Eles não são os mesmos. Uma "camada" se refere a uma divisão funcional do software, mas uma "camada" se refere a uma divisão funcional do software que é executada em uma infraestrutura separada das outras divisões. O aplicativo Contatos em seu telefone, por exemplo, é uma aplicação de três camadas, mas uma aplicação de camada única, porque todas as três camadas são executadas em seu telefone.
A diferença é importante porque as camadas não podem oferecer os mesmos benefícios que as camadas.
No desenvolvimento para a web, as camadas têm nomes diferentes, mas desempenham funções semelhantes:
Embora a arquitetura de três camadas seja facilmente a arquitetura de aplicação multicamadas mais amplamente adotada, há outras que você pode encontrar em seu trabalho ou em sua pesquisa.
A arquitetura de duas camadas é a arquitetura cliente-servidor original, que consiste em 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, e portanto o usuário final, tem acesso direto à camada de dados, e a lógica de negócios geralmente é limitada. Um aplicativo de gerenciamento de contatos simples, onde os usuários podem inserir e recuperar dados de contato, é um exemplo de um aplicação de duas camadas.
Arquitetura de N camadas (também chamada de arquitetura de camadas múltiplas) refere-se a qualquer arquitetura de aplicação com mais de uma camada. Porém, aplicações com mais de três camadas são raros, pois camadas extras oferecem poucos benefícios e podem tornar a aplicação mais lenta, mais difícil de gerenciar e mais caro de executar. Como resultado, a arquitetura de n camadas e a arquitetura multicamadas são geralmente sinônimos de arquitetura de três camadas.
Um serviço de locatário único, totalmente gerenciado, para desenvolver e entregar aplicações Java.
Utilize softwares e ferramentas de DevOps para desenvolver, implementar e gerenciar aplicações nativas da nuvem em diversos dispositivos e ambientes.
Com o desenvolvimento de aplicações na nuvem você só constrói uma única vez, itera rapidamente e implementa em qualquer lugar.