Baixe o material de estudo
Introdução
Olá, concurseiras e concurseiros! Se você está se preparando para o cargo de Analista de Desenvolvimento de Sistemas do MPU, precisa dominar os principais padrões de arquitetura de software. Este tema, frequentemente cobrado pela banca FGV, envolve não só conceitos teóricos como também a capacidade de reconhecer qual arquitetura é mais adequada em diferentes cenários. Neste artigo, vamos revisar as arquiteturas clássicas mais cobradas, como cliente-servidor, três camadas, MVC, SOA, P2P e outras, com explicações claras e questões comentadas para te ajudar a fixar o conteúdo!
Arquitetura Cliente-Servidor
Um dos modelos mais antigos e ainda amplamente utilizado. Aqui, o cliente (por exemplo, um navegador ou app) faz requisições a um servidor, que processa e responde com os dados. Esse padrão é muito comum em sistemas de gestão empresarial, aplicações web simples e e-commerce.
- Vantagem: Centralização dos dados e controle.
- Desvantagem: Dependência de um ponto único (servidor).
Arquitetura em Três Camadas e Multicamadas
Esse padrão divide o sistema em camadas separadas, cada uma com sua responsabilidade. O mais comum é ela ser cobrada em três camadas, que seriam:
- Apresentação (interface com o usuário)
- Lógica de Negócio (processamento das regras)
- Dados (acesso ao banco de dados)
Esse modelo ajuda a manter, testar e escalar o sistema com mais facilidade, sendo muito usado em aplicações web.
Arquitetura MVC (Model-View-Controller)
É uma forma de implementar o padrão em camadas com separação clara entre:
- Model: Dados e lógica de negócio
- View: Interface com o usuário
- Controller: Intermediário entre model e view
Esse padrão é utilizado em frameworks modernos como Angular, Laravel, ASP.NET MVC, entre outros. Ele facilita o gerenciamento de mudanças e modulariza o desenvolvimento.
SOA – Arquitetura Orientada a Serviços
A SOA (Service-Oriented Architecture) estrutura o sistema como um conjunto de serviços autônomos e reutilizáveis que se comunicam por meio de mensagens padronizadas. É ideal para integração entre sistemas legados e novos e para promover interoperabilidade em grandes corporações.
Peer-to-Peer (P2P)
Na arquitetura P2P, todos os nós da rede podem ser clientes e servidores ao mesmo tempo. Não há um nó central. Esse modelo é usado em compartilhamento de arquivos, blockchain, VoIP e outras aplicações descentralizadas.
- Exemplo prático: BitTorrent.
- Desvantagem: Controle e segurança descentralizados.
Arquitetura Distribuída
Nesse tipo de arquitetura, os componentes estão espalhados geograficamente, mas atuam de forma colaborativa. Sistemas em nuvem e microsserviços são exemplos modernos. Cada componente pode estar em um servidor ou até em países diferentes, trabalhando juntos como um só sistema.
Pipes and Filters
Este padrão define o processamento como uma sequência de etapas (filtros), ligadas por conexões (pipes). Cada filtro transforma os dados e passa adiante. É útil para processamentos em série, como pipelines de dados e ETL.
Comparando as Arquiteturas
Arquitetura | Centralizada? | Modular? | Facilita Escalabilidade? | Exemplo Típico |
Cliente-Servidor | Sim | Pouco | Limitada | Sistema de login web |
3 Camadas | Sim | Sim | Boa | Aplicações corporativas |
MVC | Sim | Sim | Excelente | Frameworks front-end/back-end |
SOA | Não | Sim | Alta | Integração de sistemas internos |
P2P | Não | Variável | Alta | Compartilhamento de arquivos |
Distribuída | Não | Sim | Altíssima | Computação em nuvem |
Pipes-and-Filters | Variável | Sim | Boa | Processos de dados (ETL) |
Referências Bibliográficas
- Bass, L., Clements, P., & Kazman, R. (2012). Software Architecture in Practice (3rd ed.). Addison-Wesley.
- Fowler, M. (2002). Patterns of Enterprise Application Architecture. Addison-Wesley.
- Tanenbaum, A. S., & Steen, M. van. (2007). Distributed Systems: Principles and Paradigms. Prentice Hall.
- Pressman, R. S. (2016). Engenharia de Software. McGraw-Hill Education.
- MDN Web Docs. Disponível em: https://developer.mozilla.org/
Questões da Banca
1) Ano: 2024 Banca: FGV Órgão: DATAPREV Prova: FGV – 2024 – DATAPREV – ATI – Arquitetura, Engenharia e Sustentação Tecnológica
No contexto de arquiteturas de aplicações, cada abordagem tem características próprias que determinam seu uso em diferentes cenários. Associe corretamente os tipos de arquitetura com suas respectivas características e exemplos de aplicação.
I. Cliente/Servidor
II. N Camadas
III. Arquitetura Orientada a Serviços (SOA )
IV. Distribuída
V. Peer-to-Peer (P2P)
Características:
( ) Estrutura composta por diferentes camadas, como apresentação, lógica de negócios e dados, facilitando a manutenção e a escalabilidade, especialmente em sistemas web.
( ) Utiliza uma centralização de recursos, onde o servidor responde às requisições dos clientes conectados, sendo comum em sistemas de gestão empresarial.
( ) Arquitetura voltada à integração e reutilização de serviços, promovendo interoperabilidade entre sistemas legados e novos, muito usada em corporações.
( ) Os nós da rede agem tanto como cliente quanto como servidor, sendo comum em redes de compartilhamento de arquivos e aplicações descentralizadas.
( ) Componentes espalhados geograficamente interagem entre si, possibilitando a execução de tarefas de forma distribuída, como ocorre em soluções de computação em nuvem.
A sequência correta da lista de características é
- A) II – I – III – V – IV
- B) I – III – II – V – IV
- C) IV – II – V – III – I
- D) V – III – I – IV – II
- E) II – V – IV – I – III
Gabarito: A
Comentário:
- II (N camadas) → estrutura dividida em apresentação, lógica e dados → facilita manutenção e escalabilidade.
- I (Cliente/Servidor) → modelo centralizado, com um servidor respondendo a múltiplos clientes.
- III (SOA) → promove integração e reutilização de serviços entre sistemas novos e legados.
- V (P2P) → arquitetura em que cada nó atua como cliente e servidor; comum em redes de compartilhamento.
- IV (Distribuída) → componentes espalhados geograficamente; típico da computação em nuvem.
2) Ano: 2024 Banca: FGV Órgão: AL-PR Prova: FGV – 2024 – AL-PR – Analista Legislativo – Desenvolvedor de Sistemas
Uma empresa deseja lançar uma primeira versão de um aplicativo de vendas de produtos não muito comuns e, portanto, precisa saber qual será a melhor forma de aceitação dos usuários.
Neste cenário, assinale a opção que indica o padrão arquitetural e metodologias corretas a serem aplicadas no desenvolvimento deste sistema.
- A) A arquitetura baseada em Peer-to-Peer, pois facilita o gerenciamento de mudanças e torna o controle de versão mais intuitivo, reduzindo a necessidade de ferramentas especializadas.
- B) Uma arquitetura de 3 camadas com padrão arquitetural Modelo-Visão-Controlador (MVC), facilitando o gerenciamento de mudanças e dependências. Contudo, não impactando diretamente o controle de versão, nem a integração contínua.
- C) O padrão MVC não pode ser aplicado nesse caso, ao invés disso, usar a arquitetura de camadas irá facilitar o controle de versão.
- D) Optar pela arquitetura baseada em componentes com padrão MVC, já que simplifica o gerenciamento de mudanças e torna o controle de versão desnecessário, devido à independência dos componentes.
- E) A adoção do padrão de arquitetura Monolítica utilizando padrões Factory, já que concentra todos os componentes em um único módulo, simplificando o gerenciamento de mudanças.
Gabarito: B
Comentário:
- A) Errada. A arquitetura P2P é voltada para comunicação descentralizada entre nós, como em redes de compartilhamento de arquivos, e não tem relação direta com controle de versão ou gerenciamento de mudanças. Além disso, para aplicações de negócios ou prototipação, não é uma escolha adequada, pois dificulta o controle e a centralização de dados.
- B) Correta.
- C) Errada. O padrão MVC pode sim ser aplicado nesse cenário, inclusive ele é uma das implementações mais comuns de arquitetura em camadas. Além disso, a arquitetura em camadas não facilita diretamente o controle de versão; isso é feito por ferramentas como Git, e não pela arquitetura escolhida.
- D) Errada. A arquitetura baseada em componentes e o padrão MVC podem sim auxiliar no gerenciamento de mudanças, mas é errado afirmar que tornam o controle de versão desnecessário. Controle de versão é essencial em qualquer sistema, independente do grau de modularidade, e não deve ser descartado.
- E) Errada. Um sistema monolítico, na verdade, dificulta o gerenciamento de mudanças, pois qualquer alteração pode impactar o sistema todo. Além disso, o uso de padrões de criação como Factory não altera esse comportamento. Essa alternativa contradiz práticas modernas de modularização.
Conclusão
Dominar os principais modelos de arquitetura de software é fundamental tanto para o desenvolvimento de sistemas robustos quanto para se destacar em provas de concurso, em especial aquelas organizadas pela FGV, nosso foco de hoje. Arquiteturas como cliente-servidor, três camadas, MVC, SOA, distribuída, P2P e pipes-and-filters aparecem com frequência em questões que exigem compreensão do contexto em que cada modelo é mais adequado. Revisar esses conceitos com base em aplicações reais e questões comentadas é uma das melhores formas de consolidar o conteúdo. Bons estudos e nos vemos no próximo artigo!
Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil? Clique nos links abaixo:
CONCURSOS 2025
CONCURSOS ABERTOS
QUESTÕES DE CONCURSOS
Receba gratuitamente no seu celular as principais notícias do mundo dos concursos. Clique no link abaixo e inscreva-se:
TELEGRAM
Fonte: Gran Cursos Online