Nesses últimos tempos ouvimos falar muito sobre SOA (Arquitetura Orientada a Serviços), mas o que realmente significa SOA? O que ela pode proporcionar para a empresa?
O que devemos ter em mente é que SOA não é mais uma ferramenta ou mais um framework que as empresas possam comprar e implantar do dia para a noite, mas sim uma nova abordagem arquitetural corporativa que permite a criação de serviços de negócio interoperáveis que podem facilmente ser reutilizados e compartilhados entre aplicações de diferentes tecnologias e entre diferentes empresas.
3 conceitos de SOA
Serviços
É um pedaço de uma funcionalidade corporativa e independente, essa funcionalidade pode ser simples (armazenar dados de um cidadão) ou complexa (um processo de abertura de chamados do sistema da Central 156). Deve possuir uma interface bem definida e geralmente é implementada com uso de WebServices;
ESB (Barramento Corporativo de Serviços)
É a infra-estrutura que possibilita o acesso aos serviços e a alta interoperabilidade entre os sistemas, ou seja, torna-se mais fácil distribuir processos corporativos para empresas que utilizam múltiplas tecnologias de desenvolvimento e múltiplas plataformas. Também podemos monitorar a ESB por meio de relatórios e gráficos (BAM);
Acoplamento Fraco
É o conceito de redução de dependência do sistema, ou seja, realizar a orquestração de serviços, que é a facilidade em fazer um serviço se comunicar facilmente com outro, porém um sistema com um acoplamento fraco tem aumentada sua complexidade de desenvolvimento.
Mas, por que quando falamos em SOA a primeira palavra que vem à nossa cabeça é WebService? Podemos encontrar muitas definições de SOA dizendo que são meramente WebServices, mas isso está errado! SOA não é a mesma coisa que WebService. SOA é um paradigma, WebService é uma das maneiras possíveis de fornecer uma infra-estrutura de implementação de serviços. Outras maneiras que também podem ser usadas são Corba, EJB, RMI, etc.
O que é WebService?
WebService é um conjunto de padrões que cobrem a interoperabilidade, esses padrões definem tanto o protocolo que são usados na comunicação (SOAP), quanto o formato das interfaces que são usadas para especificar os serviços (WSDL). É responsável por carregar informações no formato de arquivo XML.
O que é Governança SOA?
Para que uma arquitetura SOA possa ser implantada em uma organização com sucesso é necessário ter uma equipe central que será responsável por gerenciar, garantir o funcionamento e a qualidade dos serviços. Essa equipe junto ao CIO será responsável por definir a arquitetura, processos, ferramentas e políticas a serem utilizadas em SOA na empresa.
Anne Thomas Manes definiu a governança SOA da seguinte forma: “Garantir que as pessoas façam o que é ‘certo’.”
Um dos principais objetivos de uma arquitetura orientada a serviço é fazer com que os sistemas (legados e novos) que foram desenvolvidos em tecnologias diferentes possam se conhecer e comunicar-se entre si, esse é o desafio para a equipe de integração.