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.