Realidade do ESB sem SOA

October 22, 2008 – 6:57 pm by Gustavo S. Sinis e Leonardo Nicolás

ESB são importantes em quase todos os cenários, fornecendo uma infra-estrutura para SOA como, por exemplo, lógica de compensação, transformação de dados, segurança, garantia de entrega, logging. Ainda todos os WS-*…

Vendedores de ferramentas ESB freqüentemente usam em suas apresentações uma figura clássica, que representa a complexidade de TI causando grande impacto visual. Em seguida, usando uma figura mais impressionante, mostram como ferramentas ESB podem organizar a casa, resolvendo todos os problemas.

No entanto, a verdadeira flexibilidade de SOA é obtida com serviços bem projetados, não com a adoção de ferramentas (muitos vendedores deixam essa impressão). Os serviços devem ser representativos para o negócio, seguindo certos princípios, como: low coupling, stable interface, entre outros.

Sem serviços bem projetados o cenário não muda muito: toda bagunça produzida no mundo corporativo, criando integrações espaguete, não some com a implantação de ESBs. Apenas fica escondida debaixo do tapete, ou seja, dentro do barramento, exigindo uma “lógica de conectividade” muito complexa.

Realidade de TI, nossa versão:

Aparente milagre de ferramentas ESB (onde está a bagunça?):

Olhando mais de perto, de acordo com Jim Webber, o que realmente acontece com ESB:

Aplicações sem serviços bem projetados misturam a lógica do fluxo do negócio (processo de negócio), lógica de conectividade e a lógica de domínio em abstrações pouco coesas; desta forma aumenta drasticamente o acoplamento e complexidade da integração, sendo comum a ocorrência de dependência circular.

Em outras palavras, mesmo com uma ferramenta ESB eliminando a integração ponto a ponto, na ausência de serviços projetados para apoiar processos de negócio (ou seja, sem SOA), ainda teríamos “integração espaguete”, só que agora escondida dentro de uma ferramenta, inviabilizando a flexibilidade prometida pela abordagem SOA.

Já trabalhei em empresas que utilizam o Broker e o que acontece é que a complexidade das integrações passa para dentro dessa ferramenta. Por um lado isso é bom porque o ESB / Broker passa a ser um ponto comum de comunicação, gera uma padronização e outros ganhos.

Mas se o que está dentro do ESB / Broker não estiver muito bem projetado, ficará quase impossível dar manutenção e suporte. Usar ESB assim é equivalente a pegar a integração espaguete e dar um nó no meio, este nó é o ESB. Para desatar o nó apenas serviços bem projetados.

Vídeo interessante relacionado com SOA sem ESB: Does My Bus Look Big in This?, Martin Fowler & Jim Webber, QCon London 2008. Um post também interessante relacionado: SOA, cuts the Gordian Knot — Not, Uncle Bob.

Apenas por curiosidade, desenhamos as figuras que ilustram o post utilizando Java e a API para desenho 3D Java Monkey Engine.

Espaguete.java

EspagueteComNo.java

  1. 5 Responses to “Realidade do ESB sem SOA”

  2. Parabéns pelo post meus caros Gustavo e Nicolas. Realmente essa integração pode virar uma grande bagunça mesmo. Acredito que para o cenário dos serviços bem projetados ser possível, a empresa precisa também de uma re-estruturação interna, para que as áreas responsáveis cuidem dos seus serviços de forma adequada.

    Grande abraço!

    By Emerson Macedo on Oct 23, 2008

  1. 4 Trackback(s)

  2. Nov 10, 2008: Anatomia do serviço. O que é, afinal? - Aquele blog de SOA
  3. Dec 17, 2008: Projeto de serviços: contratos, camadas e EDA. - Aquele blog de SOA
  4. May 26, 2009: SOA Corporativa » Blog Archive » Promover serviços legados ou organizar a casa?
  5. May 27, 2009: Blog do Pantoja » Blog Archive » Falando em Java 2009 - Eu fui.. (Meus comentários..)

Post a Comment