Início Uncategorized O que é arquitetura de três camadas?

O que é arquitetura de três camadas?

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.

As três camadas em detalhe

Camada de apresentação

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 desenvolvidas usando HTML, CSS e JavaScript. Os aplicativos para desktop podem ser escritos em diversas linguagens, dependendo da plataforma.

Camada do aplicativo

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 .

Camada de dados

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.

Camada (tier) vs. nível (layer)

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.

Benefícios da arquitetura de três camadas (tiers)

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:

    Desenvolvimento mais rápido: uma vez que todas as camadas podem ser desenvolvidas simultaneamente por diferentes equipes, uma organização pode lançar o aplicativo no mercado mais rapidamente e os programadores podem usar as linguagens e ferramentas mais recentes e melhores para cada camada.

    Escalabilidade melhorada: qualquer camada pode ser dimensionada independentemente das outras conforme necessário.

    Maior confiabilidade: uma indisponibilidade em uma camada é menos propensa a impactar a disponibilidade ou o desempenho das outras camadas.

    Segurança aprimorada: uma vez que a camada de apresentação e a camada de dados não podem se comunicar diretamente, uma camada do aplicativo bem projetada pode ter a função de uma espécie de firewall interno, impedindo injeções SQL e outros exploradores de vulnerabilidade mal-intencionados.

Aplicativo de três camadas no desenvolvimento da web

No desenvolvimento da web, as camadas possuem nomes diferentes,  mas desempenham funções semelhantes:

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

    O servidor de aplicativos  corresponde à camada do meio, hospedando a lógica de negócios usada para processar entradas do usuário. Para continuar o exemplo do comércio eletrônico, esta é a camada que consulta o banco de dados do inventário para retornar a disponibilidade do produto ou inclui detalhes a um perfil de cliente. Esse nível (layer) foi muitas vezes desenvolvido usando Python, Ruby ou PHP e executa uma estrutura, como Django, Rails, Symphony ou ASP.NET, por exemplo.

    O servidor de banco de dados  é a camada de dados ou back-end de um aplicativo da web. Ele é executado em software de gerenciamento de banco de dados, como MySQL, Oracle, DB2 ou PostgreSQL, por exemplo.

Outras arquiteturas multicamada

No desenvolvimento da web, as camadas possuem nomes diferentes,  mas desempenham funções semelhantes:

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

    O servidor de aplicativos  corresponde à camada do meio, hospedando a lógica de negócios usada para processar entradas do usuário. Para continuar o exemplo do comércio eletrônico, esta é a camada que consulta o banco de dados do inventário para retornar a disponibilidade do produto ou inclui detalhes a um perfil de cliente. Esse nível (layer) foi muitas vezes desenvolvido usando Python, Ruby ou PHP e executa uma estrutura, como Django, Rails, Symphony ou ASP.NET, por exemplo.

    O servidor de banco de dados  é a camada de dados ou back-end de um aplicativo da web. Ele é executado em software de gerenciamento de banco de dados, como MySQL, Oracle, DB2 ou PostgreSQL, por exemplo.

Outras arquiteturas multicamada

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.

Arquitetura de duas camadas

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 de n-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.

Fontes:

Texto e imagens: IBM.COM

Link da matéria: https://www.ibm.com/br-pt/topics/three-tier-architecture

Receba nossas notícias diretamente em seu e-mail. Deixe aqui seus dados!

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui