Fique por dentro – Concurso de TI! Arquiteturas Modernas no Desenvolvimento Web

Baixe o material de estudo



Baixar apostila para concurso

Introdução

A evolução das aplicações web exigiu que a arquitetura de software acompanhasse essa transformação. Surgiram então modelos mais modernos, como as APIs REST, a divisão em microsserviços e padrões arquiteturais como Clean Architecture e arquitetura hexagonal. Essas abordagens oferecem maior escalabilidade, manutenção e independência de tecnologia. Neste artigo, vamos revisar esses modelos, explicando suas características, diferenças e contextos de aplicação — tudo com foco no concurso do MPU e nas exigências da banca FGV.

REST x SOAP: Entendendo as Abordagens

REST (Representational State Transfer) é um conjunto de diretrizes arquiteturais para comunicação entre sistemas através do protocolo HTTP. Ele define a utilização de métodos como GET, POST, PUT e DELETE para manipular recursos identificados por URLs. Por ser leve, flexível e aderente ao formato JSON, REST é amplamente utilizado em APIs modernas. Por outro lado, SOAP (Simple Object Access Protocol) é um protocolo com regras mais rigorosas e foco em segurança, opera principalmente com XML e costuma ser adotado em contextos corporativos mais formais, como transações bancárias ou sistemas legados.

SOAP oferece suporte nativo a segurança e transações complexas via WS-Security, mas é mais verboso. Já o REST permite maior flexibilidade e simplicidade, sendo ideal para aplicações web responsivas e com alta demanda por desempenho. O entendimento dessas diferenças é essencial para avaliar o uso adequado de cada abordagem.

Além disso, REST se adapta melhor a ambientes de microsserviços e aplicações móveis, enquanto SOAP pode ser mais apropriado quando há necessidade de transações formais e segurança reforçada, como em integrações com sistemas governamentais ou financeiros.

Microsserviços: Modularização e Escalabilidade

A arquitetura de microsserviços fragmenta a aplicação em pequenos serviços independentes, que se comunicam geralmente por APIs REST. Cada microsserviço é responsável por uma funcionalidade específica, facilitando o desenvolvimento, a implantação e a escalabilidade de forma autônoma. Essa abordagem permite que diferentes equipes trabalhem em serviços distintos, usando linguagens e tecnologias distintas, desde que respeitem os contratos da API.

No gerenciamento de microsserviços, a camada de orquestração é fundamental. Ela coordena a execução dos serviços, identifica gargalos e monitora o desempenho do sistema. Outro conceito importante é o particionamento inteligente, que organiza os serviços com base em sua dependência e uso, otimizando o uso de recursos e garantindo desempenho.

Clean Architecture: Separando as Responsabilidades

A Clean Architecture, proposta por Robert C. Martin (Uncle Bob), defende a separação clara entre regras de negócio e detalhes de implementação. Sua principal diretriz é a Regra da Dependência: as dependências devem sempre apontar para o núcleo da aplicação, que contém as entidades e casos de uso. Interfaces externas, como banco de dados, frameworks ou APIs, devem ser detalhes acoplados nas bordas do sistema.

Com essa abordagem, o sistema ganha independência de tecnologia e maior manutenção a longo prazo. Essa organização modular também favorece a reutilização de código, a escrita de testes automatizados e a adaptação às mudanças tecnológicas sem comprometer o núcleo da lógica de negócio.

Arquitetura Hexagonal: Portas e Adaptadores

A arquitetura hexagonal, ou Ports and Adapters, propõe um modelo onde a aplicação se comunica com o mundo externo por meio de portas (interfaces) e adaptadores (implementações dessas interfaces). As portas primárias recebem a entrada de dados (como requisições de usuários ou de sistemas externos) e as portas secundárias se comunicam com recursos externos, como banco de dados ou filas de mensagens.

No exemplo de uma aplicação que implementa um repositório e um teste automatizado, o repositório seria um adaptador secundário, pois se comunica com a camada externa de persistência. O teste automatizado é um adaptador primário, pois interage com a aplicação simulando o comportamento do usuário ou dos sistemas que consomem suas funcionalidades. Esse modelo promove alta coesão interna e baixo acoplamento externo.

Referências Bibliográficas

  • Martin, R. C. (2017). Clean Architecture: A Craftsman’s Guide to Software Structure and Design. Prentice Hall.
  • Newman, S. (2021). Building Microservices. O’Reilly Media.
  • Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures (Tese de Doutorado).
  • MDN Web Docs. Disponível em: https://developer.mozilla.org
  • Richardson, L., & Ruby, S. (2007). RESTful Web Services. O’Reilly Media.

Questões da Banca

1) Ano: 2024 Banca: FGV Órgão: AL-SC Prova: FGV – 2024 – AL-SC – Analista Legislativo III – Analista de Sistemas

As tecnologias Standard Object Access Protocol (SOAP) e Representational State Transfer (REST) representam duas maneiras diferentes de conectar aplicativos e definem como as Application Programming Interface (APIs, ou interfaces de programação de aplicações) são criadas, possibilitando a comunicação dos dados entre aplicações web. Considerando as diferenças entre as tecnologias SOAP e REST, pode ser identificado que

  • A) SOAP é um protocolo, que oferece implementação mais rígida, e REST é um conjunto de diretrizes, que oferece uma implementação flexível. 
  • B) APIs REST são mais pesadas que implementações SOAP, entretanto, são ideais para contextos mais modernos.
  • C) Os serviços web SOAP oferecem segurança integrada e transações em conformidade que atendem a muitas necessidades empresariais, resultando em sistemas leves. 
  • D) REST é um conjunto de padronizações que oferece uma implementação rígida. 
  • E) SOAP é um protocolo com requisitos flexíveis e dinâmicos, com implementação mais leve que o REST.

Gabarito: A

Comentário:

b) Errada.
As APIs REST são, em geral, mais leves que SOAP. REST utiliza mensagens mais simples (frequentemente JSON), enquanto SOAP usa XML com muito mais sobrecarga de dados (headers, envelopes etc.).

c) Errada.
Apesar de SOAP oferecer suporte robusto a segurança e transações (via WS-Security), ele é mais pesado e verboso. Logo, não resulta em “sistemas leves”, como a alternativa sugere.

d) Errada.
REST não é “rígido”; pelo contrário, seu diferencial está na flexibilidade. Ele define princípios, mas permite liberdade para o desenvolvedor seguir esses princípios de forma mais ou menos rigorosa.

e) Errada.
SOAP não é mais leve que REST. Pelo contrário, seu formato detalhado e o uso exclusivo de XML tornam suas mensagens significativamente mais pesadas que as de APIs REST.

2) Ano: 2024 Banca: FGV Órgão: DNIT Prova: FGV – 2024 – DNIT – Analista Administrativo Tecnologia da Informação

Acerca de microsserviços, avalie se as afirmativas a seguir são verdadeiras (V) ou falsas (F). 

( ) A camada de orquestração é responsável por monitorar o desempenho dos microsserviços, identificar gargalos e gerenciar a execução dos microsserviços. 

( ) O particionamento inteligente pode ser usado para categorizar microsserviços com base em seu uso e dependência de outros microsserviços, garantindo uma alocação eficiente de recursos. 

( ) A orquestração de microsserviços se concentra principalmente no gerenciamento da implantação e execução de aplicativos monolíticos, em vez de microsserviços.

As afirmativas são, respectivamente,

  • A) V – V – F.  
  • B) V – F – F.  
  • C) F – V – F. 
  • D) F – F – V. 
  • E) V – V – V.

Gabarito: A

Comentário:

Primeira afirmação – Verdadeira.
A camada de orquestração é responsável por coordenar e monitorar microsserviços, gerenciando a execução, comunicação e tratamento de falhas. Ferramentas como Kubernetes atuam nesse nível.

Segunda afirmação – Verdadeira.
O particionamento inteligente ajuda a dividir microsserviços com base em funcionalidades e interdependências, melhorando o desempenho e otimizando o uso de recursos.

Terceira afirmação – Falsa.
Orquestração não se aplica a sistemas monolíticos. O conceito existe justamente para arquiteturas distribuídas, como a de microsserviços, permitindo a gestão independente de cada componente.

3) Ano: 2024 Banca: FGV Órgão: CGE-PB Prova: FGV – 2024 – CGE-PB – Auditor de Contas Públicas – Auditoria de Tecnologia da Informação

A analista Joana está desenvolvendo a aplicação ParaibaCerta. Joana implementou o modelo e o repositório da camada de persistência, mas ainda não escolheu qual banco de dados irá utilizar. Joana também implementou um teste automatizado para determinado fluxo da interface gráfica da ParaibaCerta. 

À luz da arquitetura hexagonal, ao implementar o repositório da camada de persistência e o teste automatizado, Joana adicionou à ParaibaCerta, respectivamente:

  • A) uma porta primária e uma porta secundária; 
  • B) uma porta primária e um adaptador primário; 
  • C) uma porta secundária e um adaptador primário; 
  • D) um adaptador secundário e uma porta secundária; 
  • E) um adaptador primário e um adaptador secundário.

Gabarito: C

Comentário:

a) Errada. O repositório corresponde a uma porta secundária, sim, pois o núcleo da aplicação utiliza essa porta para acessar serviços externos (como o banco de dados). Mas o teste automatizado não é uma porta: ele é uma implementação(adaptador) que se conecta à porta primária. Logo, essa alternativa erra ao classificar o teste como porta.

b) Errada. A primeira parte está incorreta: o repositório não é uma porta primária. Ele é uma porta secundária usada pelo núcleo para acessar persistência. O teste automatizado está correto ao ser classificado como adaptador primário, mas a combinação geral está errada.

c) Certa. O repositório representa uma porta secundária, pois a aplicação depende dele para acessar recursos externos como bancos de dados.

O teste automatizado da interface gráfica simula entrada de dados ou ações externas, funcionando como um adaptador primário, que implementa a porta primária e envia comandos para o núcleo da aplicação.

d) Errada. Incorreta por dois motivos: o teste automatizado não é adaptador secundário (ele entra com comandos, não executa serviços externos), e o repositório é uma porta, não um adaptador.

e) Errada. O teste automatizado está corretamente identificado como adaptador primário, mas o repositório não é um adaptador— ele é uma porta secundária. Portanto, essa alternativa está incorreta por essa classificação.

Conclusão

As arquiteturas modernas surgiram como resposta à necessidade de sistemas mais modulares, escaláveis e fáceis de manter. REST e SOAP apresentam abordagens distintas para integração de sistemas; microsserviços favorecem o desacoplamento e a escalabilidade; Clean Architecture protege o núcleo do sistema; e a arquitetura hexagonal organiza de forma clara a comunicação entre aplicação e recursos externos. Compreender essas abordagens é essencial tanto para desenvolvimento de sistemas quanto para prestar concursos como o do MPU.


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:

WHATSAPP

TELEGRAM

Fonte: Gran Cursos Online

Download disponível – Arquiteturas Modernas no Desenvolvimento Web



Baixar apostila para concurso

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Sair da versão mobile