O que é arquitetura de três camadas?

Vista aérea de Tóquio ao anoitecer

O que é arquitetura de três camadas?

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.

Fique por dentro de todas as inovações tecnológicas

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.

Agradecemos a você! Você se inscreveu.

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.

Os três níveis em detalhes

Camada de apresentação

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.

Camada de aplicação

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.

Camada de dados

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.

Desenvolvimento de aplicações

Venha conosco: desenvolvimento de aplicações para empresas na nuvem

Neste vídeo, o Dr. Peter Haumer explica como é o desenvolvimento atual das aplicações empresariais modernas na nuvem híbrida, demonstrando diferentes componentes e práticas, incluindo o IBM® Z Open Editor, o IBM Wazi e o Zowe. 

Benefícios da arquitetura de três camadas

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:

  • Desenvolvimento mais rápido: como cada camada pode ser desenvolvida simultaneamente por equipes diferentes, uma organização pode levar a aplicação ao mercado mais rapidamente. E os programadores podem usar as linguagens e ferramentas mais recentes e melhores para cada nível.

  • Escalabilidade aprimorada: qualquer camada pode ser dimensionada independentemente das outras, conforme necessário.

  • Confiabilidade aprimorada: é menos provável que uma interrupção em uma camada afete a disponibilidade ou o desempenho das outras camadas.

  • Segurança aprimorada: como a camada de apresentação e a camada de dados não podem se comunicar diretamente, uma camada de aplicação bem projetada pode funcionar como um firewall, evitando injeções de SQL e outras explorações maliciosas.

Camadas versus estratos

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.

Aplicação de três camadas no desenvolvimento para a web

No desenvolvimento para a web, as camadas têm nomes diferentes, mas desempenham funções semelhantes:

  • O servidor da web é a camada de apresentação e fornece a interface do usuário. Geralmente é uma página da web ou site, como um site de comércio eletrônico, onde o usuário adiciona produtos ao carrinho de compras, adiciona detalhes de pagamento ou cria uma conta. O conteúdo pode ser estático ou dinâmico e é desenvolvido usando HTML, CSS e JavaScript.

  • O servidor de aplicações corresponde à camada intermediária, abrigando a lógica de negócios usada para processar entradas do usuário. Para continuar o exemplo de comércio eletrônico, essa é a camada que consulta o banco de dados de inventário para retornar a disponibilidade do produto ou adiciona detalhes ao perfil de um cliente. Esta camada geralmente é desenvolvida usando Python, Ruby ou PHP e executa um framework como Django, Rails, Symphony ou ASP.NET.

  • O servidor de banco de dados é a camada de dados ou back-end de uma aplicação da web. Ele é executado em um software de gerenciamento de banco de dados, como MySQL, Oracle, DB2 ou PostgreSQL.

Outras arquiteturas multicamadas

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.

Arquitetura de duas camadas

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 três 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.

Soluções relacionadas
IBM Enterprise Application Service for Java

Um serviço de locatário único, totalmente gerenciado, para desenvolver e entregar aplicações Java.

Explore os aplicativos em Java
Soluções de DevOps

Utilize softwares e ferramentas de DevOps para desenvolver, implementar e gerenciar aplicações nativas da nuvem em diversos dispositivos e ambientes.

Explore as soluções de DevOps
Serviços de desenvolvimento de aplicações empresariais

Com o desenvolvimento de aplicações na nuvem você só constrói uma única vez, itera rapidamente e implementa em qualquer lugar.

Serviços de desenvolvimento de aplicações
Dê o próximo passo

Os serviços de consultoria de desenvolvimento de aplicações da IBM® Cloud oferecem orientação de especialistas e soluções inovadoras para simplificar sua estratégia em relação à nuvem. Trabalhe com os especialistas em nuvem e desenvolvimento da IBM para modernizar, escalar e acelerar suas aplicações, trazendo resultados transformadores para os seus negócios.

Explore os serviços de desenvolvimento de aplicações Comece a criar com a IBM® Cloud sem custo