O que é SOA (arquitetura orientada a serviços)?

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:

  • Ciclos de desenvolvimento mais rápidos. Ao integrar e reutilizar os serviços existentes, os desenvolvedores não precisam mais criar várias funções do zero.
  • Manutenção simplificada. A SOA permite que serviços individuais sejam mantidos de forma independente, sem criar um impacto em cascata em um projeto maior. A depuração e a solução de problemas podem ser isoladas para aumentar o tempo de atividade.
  • Adaptabilidade. A SOA preserva a compatibilidade com versões anteriores e facilita o planejamento futuro. Os desenvolvedores podem trazer serviços mais antigos para um ambiente mais novo, ou até mesmo substituir serviços desatualizados por versões mais recentes que aproveitam o hardware atualizado e a infraestrutura em nuvem.
  • Escalabilidade. Os serviços podem ser monitorados pela camada de gerenciamento SOA e, se o desempenho cair muito devido ao aumento da demanda, novas instâncias de um serviço poderão ser iniciadas para melhorar o desempenho. As aplicações que utilizam o serviço não saberão sobre as novas instâncias, apenas verão que os níveis operacionais permanecem aceitáveis.

Exemplos de arquiteturas orientadas a serviços incluem:

  • Sites e aplicativos com logins universais: muitas empresas buscam criar ambientes de aplicações em que os funcionários precisem de apenas uma senha para acessar aquelas das quais eles precisam. Uma arquitetura SOA permite que o gerenciamento de autenticação seja tratado por um conjunto de serviços que são usados pelas aplicações da empresa.
  • Aplicações que oferecem inteligência artificial (IA) ou análise no aplicação: uma das principais vantagens de executar sistemas na nuvem é que é muito simples usar os serviços de nuvem para melhorar a funcionalidade de uma aplicação. Os serviços em nuvem podem ser simples, como criar um gráfico a partir de um conjunto de dados. Eles também podem ser complexos; pense em permitir que os desenvolvedores adicionem funcionalidades de IA a uma aplicação por meio de um conjunto de chamadas de serviço.
  • Varejistas online: a SOA facilita o desenvolvimento e o gerenciamento de sites de comércio eletrônico por meio do uso de serviços que buscam dados de estoque, rastreiam compras, fazem pagamentos seguros e extraem dados gerados por IA, como recomendações do tipo "os clientes também podem gostar".

O que é SOA (arquitetura orientada a serviços)?

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.

  1. Um comprador usa o logon único, composto por um endereço de email e uma senha reconhecidos. A aplicação de varejo envia essas credenciais para o serviço de autorização para autenticação e carrega o perfil do cliente quando o login é verificado.
  2. Em seguida, o comprador procura um produto específico. A listagem de itens está conectada a um serviço de estoque, que obtém dados sobre a disponibilidade em lojas físicas locais para o cliente e em centros de atendimento para envio.
  3. O cliente faz o check-out usando um serviço de carrinho integrado, que se conecta a um serviço de processamento de pagamentos para uma transação segura.
  4. Depois que a transação for concluída, o comprador poderá obter o status do pedido usando outros serviços para extrair dados dos serviços de logística de estoque e envio.

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.

10 tendências da nuvem que os CIOs devem acompanhar em 2024

Uma infraestrutura SOA modular e flexível oferece grandes benefícios para empresas que adotam a nuvem. Conheça outras tendências.

Perguntas frequentes sobre arquitetura orientada a serviços

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:

  • Combinação flexível de serviços independentes, de desenvolvimento interno separado ou licença de terceiros, usados juntos na construção de uma aplicação maior.
  • Interoperabilidade, de modo que os serviços possam ser conectados a uma variedade de sistemas de software e atualizados sem afetar o desempenho da aplicação.
  • Escalabilidade, de forma que os serviços possam ser dimensionados conforme necessário, sem o conhecimento da aplicação.
  • Offloading de manutenção, pois os desenvolvedores de software não são responsáveis pela manutenção dos serviços que eles utilizam.

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.