A Arquitetura Orientada a Serviço (SOA) é um estilo de arquitetura de software que se consolidou como uma das principais abordagens para promover interoperabilidade entre sistemas, reutilização de componentes e maior flexibilidade no desenvolvimento de soluções distribuídas. Seu princípio central é organizar aplicações em torno de serviços autônomos, fracamente acoplados e padronizados, que podem ser consumidos por diferentes clientes e sistemas.
Em concursos da área de TI, especialmente os elaborados pelo CESPE/CEBRASPE, SOA é frequentemente cobrada em questões relacionadas a arquitetura de software, mensageria, UML, padrões de projeto e BPM (Business Process Management).
Conceituação de SOA
É uma arquitetura que permite a interoperabilidade de sistemas por meio de interfaces de serviços.
Serviços podem ser fisicamente distribuídos e são acessados de forma padronizada por consumidores. Cada serviço é descrito como uma representação lógica de uma atividade de negócio, com um resultado específico.
O modelo da SOA é baseado em uma ligação dinâmica entre provedores de serviços e consumidores de serviços.
Benefícios principais
- Reuso de software: componentes podem ser utilizados em diferentes contextos;
- Baixo acoplamento: maior flexibilidade para evolução do sistema; e
- Escalabilidade e integração: facilitação na integração de sistemas legados com novos sistemas.
Componentes da SOA
- Aplicações front-end: ponto de interação do usuário;
- Serviços: unidades lógicas de funcionalidade que implementam atividades de negócio;
- Repositório de Serviços: local de catalogação e descoberta dos serviços disponíveis; e
- Barramento de Serviços (ESB): middleware que integra os diferentes serviços, provendo comunicação, segurança, transformação de mensagens e monitoramento.
Princípios fundamentais da SOA
- Padronização do contrato de serviço: definição clara das interfaces;
- Abstração do serviço: ocultar detalhes de implementação;
- Baixo acoplamento: serviços independentes e com mínima dependência;
- Autonomia do serviço: controle sobre sua lógica interna;
- Visibilidade do serviço: possibilidade de descoberta e acesso;
- Sem estado (stateless): cada requisição deve ser independente;
- Reusabilidade: reaproveitamento de serviços em diferentes cenários;
- Composição de serviços: integração de múltiplos serviços para atender a processos complexos; e
- Heterogeneidade: funcionamento em ambientes e plataformas diferentes.
Conclusão
A Arquitetura Orientada a Serviço (SOA) se firmou como paradigma de integração e modernização de sistemas, fundamentada em princípios de baixo acoplamento, reuso e padronização. Nos concursos da área de TI, é fundamental compreender:
- Conceitos básicos (serviços, barramento, repositório);
- Princípios fundamentais (contrato, abstração, reuso);
- Diferença entre orquestração e coreografia; e
- Características de escalabilidade e interoperabilidade.
O estudo de SOA, além de fortalecer a base teórica, também ajuda a resolver questões CESPE/CEBRASPE, que exploram tanto os conceitos gerais quanto os detalhes práticos de sua aplicação.
Apresentação do vídeo
Mais artigos meus sobre Arquitetura Orientada a Serviço
- O que é SOA? (Teoria): https://blog.grancursosonline.com.br/o-que-e-soa-teoria/
- O que é SOA? (15 Questões comentadas): https://blog.grancursosonline.com.br/o-que-e-soa-15-questoes-comentadas/
- Quais são os Princípios Básicos da SOA? (Teoria): https://blog.grancursosonline.com.br/quais-sao-os-principios-basicos-da-soa-teoria/
- Quais são os Princípios Básicos da SOA? (17 Questões de concursos): https://blog.grancursosonline.com.br/quais-sao-os-principios-basicos-da-soa-17-questoes-de-concursos/
Espero que gostem do conteúdo e desejo que se preparem conosco durante essa jornada na conquista de uma tão sonhada vaguinha em um concurso público.
É isso aí, galera.
[]’s e até a próxima.
——————————————
Rogerão Araújo
@profRogeraoAraujo