Descubra toda verdade sobre SOA

Todas as vezes que pensamos em um negócio como ambiente corporativo, composto por vários nichos no mesmo ambiente ( RH, Comercial, Estoque, Produção entre outras áreas), cercado por aplicações e sistemas empresariais que visam o crescimento e o bom resultado da organização como um todo. É fácil visualizar a necessidade de ter todas as informações integradas para que o negócio funcione bem e apresente resultados.

Mas, como integrar as aplicações e sistemas da organização possibilitando acesso às informações em tempo real se as aplicações e sistemas foram desenvolvidas por pessoas e tecnologias totalmente diferentes?

Apresento o cenário ideal para utilização da arquitetura SOA.

Se identificou ?  Então nos acompanhe por que temos coisas fantásticas para te revelar.

O conceito de SOA foi proposto pela primeira vez em 1996, no artigo “Service Oriented Architectures” (abril de 1996), escrito pelos pesquisadores Roy Schulte e Yefim Natis do Gartner Group.
Eles o apresentaram à partir da análise de experiências de diversos clientes que, na época, utilizavam a tecnologia cliente-servidor (em forte adoção naqueles anos), e que ganhou novamente atenção em virtude das novas possibilidades tecnológicas baseadas em padrões, da demanda crescente por soluções de integração e de relativo insucesso de outras alternativas.

Então, O QUE É SOA?

SOA (Arquitetura Orientada a Serviços) é um conceito. É um estilo de projeto que guia todos os aspectos de criação e uso de serviços de negócio através de todo o ciclo de vida de desenvolvimento (desde a fase de concepção até a aposentadoria de serviços), bem como trata da definição e do provisionamento da infra-estrutura de TI que permite que diferentes aplicações  troquem dados e participem de processo de negócio independente dos sistemas operacionais onde estas aplicações estão executando ou linguagens de programação utilizadas para suas implementações.

SOA apenas sugere, propõe e define. Ou seja, baseado em seu conceito você desenvolve soluções como Web Service por exemplo.

Apesar do conceito de SOA ser muito bom para implementar em nossos projetos, SOA não pode ser visto como algo que deve ser utilizado em qualquer projeto ou de qualquer forma. Isto por que SOA é uma solução ideal para empresas que possuem grandes sistemas distribuídos já que lhe proporciona flexibilidade, escalabilidade e tolerância a falhas.


Vejamos um bom caso de sucesso, fornecido pela SOA-Consortium,  de implantação SOA em uma organização.

O Caso que usaremos é o da VALERO ENERGY que é uma empresa de energia e que adotou a arquitetura SOA a fim de tratar suas necessidades de mudanças em óleo e gás devido a limitações no acesso a oportunidades de reservas e exploração remota, além dos riscos resultantes da volatilidade do mercado.

A estratégia adotada foi de executar ciclos curtos de aquisições de novas empresas, aumentando rapidamente sua presença e sua cadeia de valor através de estratégias de M&A (Merge and Acquisition).

O objetivo em se empregar SOA foi de minimizar custo e separações forçadas, além de reduzir os ciclos de integração de 6 meses para de 2 a 8 semanas. Como resultados do uso de Arquitetura Orientada a Serviços, a Valero Energy alcançou flexibilidade e velocidade na mudança de processos de negócio.
Como exemplos temos:

  • Clientes passaram a obter o preço rapidamente nos terminais;
  • Mitigação de riscos e otimização do negócio, por exemplo, precisão nos dados comerciais, financeiros e de ganhos através da cadeia de valor;
  • Confiabilidade no sistema pela simplificação de interfaces pela redução de redundância de dados.

Existe algo que acredito ser muito importante reforçar e ter em mente é que SOA é focado em processos de negócio. Esses processos são realizados por meio de diferentes etapas (também chamadas de atividades ou tarefas) em diferentes sistemas. A meta principal de um serviço é representar uma etapa “natural” da funcionalidade de negócio. Isto é, de acordo com o domínio para o qual for fornecido, um serviço deve representar uma funcionalidade autocontida que corresponda a uma atividade do mundo real. Em outras palavras, o pessoal de negócio deve ser capaz de entender o que um serviço faz e o pessoal de TI entender que chegou a hora de não ficar apenas na área técnica e passar a participar do negócio também.

Benefícios SOA
São esperados diversos benefícios no uso do SOA como:

  • Facilidade de Manutenção: mudanças na lógica de negócios (implementação) não afetam aplicações existentes;
  • Reuso: novas aplicações e processos (consumidores de serviços) podem reaproveitar mais facilmente as funcionalidades existentes;
  • Flexibilidade: sistemas de back-end e infraestrutura podem ser substituídos com menor impacto;
  • Resultado: agilidade e redução de custos;
  • Qualidade: garantia de homogeneidade de processos;
  • Menor tempo: agilidade na análise de impacto e no desenvolvimento evolutivo de seus sistemas;
  • Menor custo: redução do custo de manutenção das aplicações;
  • Controle: conhecimento dos ativos existentes.

Dentre os benefícios adquiridos com o uso de SOA destacamos o “baixo acoplamento de serviços” que, na prática, significa minimizar o impacto das modificações e das falhas dentro de cenário do sistema como um todo.

Vamos voltar ao exemplo do início do artigo?

Imagine que você faz parte de uma empresa de grande porte e ela tem uma infinidade de softwares que fazem a empresa funcionar. Cada um destes softwares é mantido por um prestador de serviços diferente e, pior ainda, cada um destes softwares foi escrito em uma linguagem diferente.

Vamos supor que você precise compartilhar dados de clientes entre essas aplicações e sua organização tem uma série de validações que precisam ser realizadas antes de permitir a inserção de um novo cliente, sendo mandatório que todos os softwares realizem essas validações da maneira correta.

Conforme citado, Esse é o cenário perfeito para a utilização da arquitetura SOA, pois temos ativos de negócio envolvidos em um ambiente completamente heterogêneo. E todo mundo precisa conversar entre si.

Pensando em uma arquitetura voltada a serviços, nós poderíamos resolver isso de maneira muito fácil. Poderíamos criar um web service chamado “IncluirCliente”. Este web service será responsável por fazer todas as validações do cliente antes de inserir na base de dados. Assim, caberia aos demais softwares simplesmente consumir esse serviço da maneira adequada.

Desta forma, o cenário caótico deixa de existir e a paz começa a reinar e com louvor. Isto por que :

  • Os softwares tiveram , apenas, que acessar este web service para inserir algum cliente na base;
  • O fluxo de negócio foi garantido;
  • Garantimos a reusabilidade e a extensibilidade do web service por outros serviços / aplicações;

Esta é a arquitetura SOA!

Bom, fico por aqui.

Dúvidas? Entre em contato.

Forte abraço.

Eduardo Santana.
bufallos@bufallos.com.br

Leave a Reply

Your email address will not be published. Required fields are marked *