ESB – Enterprise Service Bus

Enterprise Service Bus (BUS), também chamado de Barramento Corporativo de Serviços, é a infraestrutura de uma arquitetura SOA, considerada por muitos especialistas o coração de uma infraestrutura orientada a serviços. Sua responsabilidade é definir uma interface de entrada e saída, transformação de mensagens, tratamento de exceções e monitoramento de mensagens. Resumidamente, podemos definir que uma BUS serve para levar e buscar os dados entre diferentes protocolos e diferentes plataformas.

As principais características da BUS

Flexibilidade

É a capacidade de se adequar com facilidade à necessidade do cliente/empresa, com um alto nível de parametrização e conceitos que permitem uma mudança rápida das regras de negócio.

Desempenho

Garantir o máximo de eficiência e agilidade possível no tempo de resposta de um serviço, ou seja, diminuir o tempo decorrido desde que a solicitação é recebida pela BUS até que uma resposta (XML) à solicitação seja emitida para o consumidor.

Escalabilidade

A arquitetura criada tem que se adaptar a qualquer tamanho da empresa, independentemente do volume de informações que ela trafega, permitindo a aplicação de clusters nos servidores e balanceamento de carga para não sobrecarregar somente um servidor.

Segurança

Garantir a autenticidade das informações da organização. Podemos ter a segurança na Camada de Transporte que pode ser feita utilizando SSL (Secure Socket Layer). É uma tecnologia que garante uma proteção de dados com criptografia nas chamadas dos serviços usando o protocolo HTTPS, ou na Camada de Mensagens onde o remetente da mensagem pode encriptar a mensagem e certificar todos seus dados, e o destinatário decripta a mensagem e verifica o certificado. Esse método pode ser aplicado com WS-Security.

Usabilidade

Segundo a ISO 9241-11, usabilidade é a medida pela qual um produto pode ser usado por usuários específicos para alcançar objetivos específicos com efetividade, eficiência e satisfação em um contexto de uso específico. Aplicando esse conceito para a BUS, os serviços devem ser consumidos por vários clientes (.NET, Java, Delphi, VB, PHP). Esse consumo deve ser fácil para ambos os clientes, deve possuir uma baixa taxa de erros, os usuários devem aprender a interagir com os outros serviços.

Interoperabilidade

É a capacidade de um serviço se comunicar de forma transparente com outro serviço ou sistema. Para que um serviço seja considerado interoperável, é muito importante que ele trabalhe com padrões como XSD, BPEL, WSDL, XML, etc.

Uma característica a favor da BUS é a ideia de que podemos monitorar as atividades corporativas, também chamado de BAM – Business Activity Monitoring, onde podemos verificar quais são os serviços mais usados, o tempo que cada serviço leva para ser executado, quem está usando esse serviço. Dessa forma podemos prever quais são os “gargalos” da BUS.

Uma empresa tem que estar preparada para conectar diversos aplicativos em execução em um número incontável de plataformas (Windows, Linux, MAC, etc.), criadas em uma grande quantidade de linguagens de programação (.NET, Java, C++ , Delphi, VB, PHP, etc).

Tags: ,

Sobre Leandro Prado

Leandro Silveira Prado é Premier Field Engineer na Microsoft especializado em Application Lifecycle Management.