Michael Chen | Estrategista de conteúdo | 28 de março de 2024
A arquitetura orientada a serviços (SOA) é uma abordagem de design de software que se concentra na construção de sistemas de software funcionais e escaláveis a partir de componentes individuais, chamados de serviços. Os serviços podem interagir entre eles para executar tarefas, como permitir que alguém faça login uma vez e acesse várias aplicações de negócios. Na SOA, a ênfase está na modularidade, reutilização e interoperabilidade. Quando as empresas dividem aplicações complexas em blocos de construção menores e mais gerenciáveis, o resultado é maior flexibilidade e escalabilidade.
Os serviços não são codificados em aplicações. Em vez disso, os serviços são publicados em um registro e, quando uma aplicação deseja usar um serviço, o registro encontra a versão mais recente. Desta forma, os serviços podem ser facilmente alterados ou atualizados por pessoas sem conhecimento aprofundado da aplicação. Uma abordagem SOA facilita a adaptação às mudanças nas necessidades de negócios e a integração de sistemas que fornecem funcionalidades relacionadas.
Com ela, os serviços individuais são combinados de forma flexível e podem comunicar e transmitir dados de acordo com a necessidade. Por exemplo, adotar uma abordagem SOA para desenvolver software em nuvem gera benefícios, incluindo:
Exemplos de arquiteturas orientadas a serviços incluem:
Uma arquitetura orientada a serviços (SOA) é um paradigma de design que cria ou complementa aplicações com elementos básicos reutilizáveis e independentes (serviços) que fornecem funções específicas e podem ser invocados em uma rede. Cada serviço tem um escopo definido e pode ser acessado por outros componentes ou serviços dentro da arquitetura para aprimorar a funcionalidade geral e o desempenho do sistema.
Alguns exemplos de serviços em uma arquitetura orientada a serviços incluem um serviço de processamento de pagamentos, um serviço de gerenciamento de clientes ou um serviço de recomendação de produtos que pode ser incorporado em um site de comércio eletrônico. Outros serviços podem ser muito mais simples, como fornecer a hora atual em uma cidade do outro lado do mundo. Um ótimo benefício do uso da SOA é a troca de processadores de pagamento, que pode ser feita sem alterar as aplicações que precisam usar o serviço.
A SOA cria uma infraestrutura de software modular e flexível, na qual serviços individuais podem ser desenvolvidos, testados e implementados de forma independente. Dois benefícios principais são a facilidade de manutenção e a escalabilidade.
A SOA funciona por serviços de combinação flexível dentro da estrutura de uma aplicação. Cada serviço funciona como um módulo capaz de fornecer a entrada/saída solicitada. A aplicação não precisa saber a versão do serviço que está sendo usado. Em vez disso, ele verifica um registro e encontra o serviço mais atual que oferece a funcionalidade necessária. Considere o seguinte fluxo de trabalho do site de um varejista criado com um modelo SOA.
A SOA acelera o desenvolvimento desse tipo de site, permitindo a integração de serviços de maneira pronta para uso. Nesse exemplo, o varejista não precisa desenvolver os módulos individualmente e nem monitorar as atualizações de serviço. A equipe de TI pode apenas usar os serviços aprovados com funcionalidade, segurança e disponibilidade comprovadas.
A chave para o desenvolvimento da SOA é pensar de forma modular e entender onde existem oportunidades para a integração de serviços. As aplicações desenvolvidas na nuvem podem facilmente aproveitar grandes matrizes de serviços no estilo SOA implementados como serviços web.
Uma infraestrutura SOA modular e flexível oferece grandes benefícios para empresas que adotam a nuvem. Conheça outras tendências.
O que seria um exemplo de arquitetura orientada a serviços
Um exemplo de arquitetura orientada a serviços para consumidor é um aplicativo para corrida. Em vez de criar ferramentas personalizadas para monitoramento de distância e mapas, o aplicativo pode integrar serviços para o dispositivo GPS do telefone e um serviço de mapas existente, como o Google Maps. Ele também pode obter informações sobre o clima local a partir do Instituto Nacional de Meteorologia. A função do aplicativo é apresentar dados desses serviços de maneira integrada para benefício do atleta.
Como a SOA se destaca dos microsserviços?
A SOA e os microsserviços têm um objetivo semelhante: fornecer funcionalidade às aplicações por meio de chamadas de função baseadas em rede. No entanto, a SOA considera o uso em um nível expansivo, e geralmente superior. Os microsserviços consideram o uso em um nível de aplicação e fornecem serviço para uma tarefa extremamente especializada a ser repetida de acordo com a necessidade. Por exemplo, um plugin de autenticação para login seguro seria considerado parte da SOA. No entanto, um serviço repetível que criptografa a senha é um microsserviço. Os microsserviços podem ser chamados em um serviço SOA ou integrados no projeto maior. Neste exemplo, o serviço de autenticação usará o microsserviço de criptografia para concluir o trabalho. O escopo é a principal diferença entre os dois.
Quais são as principais características de uma arquitetura orientada a serviços?
As principais características da arquitetura orientada a serviços incluem:
Onde a arquitetura orientada a serviços é usada?
Uma arquitetura orientada a serviços pode ser usada para praticamente qualquer aplicação, desde que existam serviços independentes para atender aos requisitos do sistema. Devido ao amplo ecossistema de desenvolvimento de serviços, a maioria dos criadores de software pode encontrar o serviço para preencher uma necessidade; mesmo o projeto mais personalizado ainda poderá usar um serviço independente para algo como autenticação de identidade ou extração de dados do mapa.