Pular para o conteúdo principal

Arquitetura em Camadas

Conceito

Inicialmente, os aplicativos eram centralizados em uma única camada, com banco de dados, lógica de negócio e interface de usuário executando em um único servidor. Os usuários acessavam por meio de terminais burros, que apenas exibiam e enviavam dados, facilitando a administração centralizada.

Com o tempo, a demanda por interfaces gráficas mais ricas tornou inviável o modelo de uma camada, pois exigia mais poder computacional do que um único servidor podia fornecer.

Assim surgiu a Arquitetura Cliente-Servidor de duas camadas, em que:

  • Servidores oferecem serviços (como impressão ou acesso a arquivos);
  • Clientes solicitam esses serviços, geralmente rodando interfaces gráficas e parte da lógica de aplicação;
  • Rede conecta clientes e servidores, permitindo a comunicação.

Nesta arquitetura:

  • O cliente lida com a entrada/saída e a interface com o usuário;
  • O servidor permanece em execução contínua, atendendo a múltiplos clientes simultaneamente;
  • A interface do usuário é separada da camada de dados, exigindo que os clientes sejam computadores mais potentes do que terminais burros.

Essa abordagem permite distribuição de tarefas, flexibilidade, melhor desempenho, facilita a manutenção, e escalabilidade em comparação com a arquitetura de uma camada.

Arquiteturas em Três Camadas

Após o modelo de duas camadas dominar nos anos 1990, surgiu a arquitetura de três camadas para minimizar o impacto de mudanças nos sistemas. Ela separa a aplicação em:

Camada de Apresentação (Interface)

  • Exibe dados ao usuário e recebe suas interações.
  • Converte ações do usuário em requisições para as camadas inferiores.
  • Em aplicações modernas, é geralmente baseada em navegadores web.
  • Pode estar no cliente (em 2 camadas) ou centralizada em um servidor web (3 ou 4 camadas).

Camada de Negócio (Lógica ou Aplicação)

  • Implementa as regras de negócio do sistema.
  • Processa os dados recebidos da camada de apresentação.
  • Decide quais dados devem ser acessados ou modificados na camada de dados.
  • Centralizada em um Servidor de Aplicações (a partir da arquitetura de 3 camadas).

Camada de Dados (Persistência)

  • Responsável por armazenar e recuperar informações.
  • Se comunica com bancos de dados ou sistemas externos.
  • Utiliza mecanismos como SQL para acesso aos dados.
  • Pode conter uma subcamada de persistência.

Observação: No padrão de arquitetura em três camadas, a comunicação segue uma ordem linear e hierárquica.

Observação: Em arquiteturas em camadas no contexto geral (não só web), a interface com o sistema operacional é feita pelas camadas mais baixas, como a de infraestrutura. Camadas intermediárias não acessam diretamente o SO, mantendo o princípio do baixo acoplamento.

Cebraspe / FUNPRESP-EXE (2022) Fonte e link: QConcursos – questão original Código da Questão: Q1908273
Cargo: Analista de Previdência Complementar – Tecnologia

Na arquitetura cliente-servidor, as requisições e respostas ocorrem entre a camada de apresentação e a camada de dados.

  • ( ) Certo
  • (x) Errado

Gabarito: Errado.

📝 Justificativa:

Na arquitetura cliente-servidor em três camadas, as requisições não ocorrem diretamente entre a camada de apresentação e a camada de dados.
Elas devem passar pela camada de lógica de negócio, que centraliza o processamento, aplica regras e coordena a comunicação entre as demais camadas.


MVC

Model-View-Controller é um padrão arquitetural interativo de software para implementar interfaces de usuário.
Ele divide uma aplicação de software em três partes interconectadas, de modo a separar representações internas de informação das formas em que a informação é apresentada para o usuário.

Model (Modelo)

  • Responsável pela lógica de dados e regras de negócio.
  • Gerencia o acesso, armazenamento e processamento dos dados (normalmente ligados a bancos de dados).
  • Notifica a View quando os dados são alterados.

Exemplos de responsabilidade

  • Recuperar informações do banco de dados.
  • Validar dados antes de salvar.
  • Processar regras como cálculos ou autorizações.
  • Encapsula os dados da aplicação.
  • Interação com fontes de dados externas, como bancos de dados ou APIs.

View (Visão)

  • Responsável pela interface com o usuário.
  • Exibe os dados contidos no Model.
  • Captura ações do usuário (como cliques e preenchimento de formulários).

Exemplos de responsabilidade

  • Renderizar uma página HTML com os dados.
  • Exibir mensagens ou gráficos.
  • Reagir a alterações visuais.

Controller (Controlador)

  • Atua como intermediário entre a View e o Model.
  • Recebe as ações do usuário (via View) e decide como tratá-las.
  • Pode alterar o Model e redirecionar para uma nova View.

Exemplos de responsabilidade

  • Interpretar requisições (como POST ou GET).
  • Atualizar o Model com base em entradas da View.
  • Redirecionar para a View adequada com os dados atualizados.