Com um ESB (enterprise service bus), é possível maximizar a flexibilidade de uma SOA. Os participantes de uma interação de serviços são conectados ao ESB, em vez de se conectarem um ao outro diretamente.
Quando o solicitante de serviços se conecta ao ESB, o ESB assume a responsabilidade pela entrega de seus pedidos, utilizando mensagens para um fornecedor de serviços que oferece a função e a qualidade de serviço necessários. O ESB facilita as interações solicitante-fornecedor e analisa os protocolos incompatíveis, padrões de interação ou competência de serviços. Um ESB também pode ativar ou aprimorar o monitoramento e gerenciamento. O ESB fornece recursos de virtualização e gerenciamento que implementam e estendem os recursos críticos da SOA.
A interposição do ESB entre os participantes permite ajustar suas interações por meio de uma construção lógica chamada mediação. As mediações operam em mensagens inflight entre os solicitantes e os fornecedores. Por exemplo, as mediações podem ser utilizadas para localizar serviços com características específicas que um solicitante está pedindo ou para resolver diferenças de interfaces entre os solicitantes e os fornecedores. Nos casos de interações complexas, as mediações podem ser encadeadas seqüencialmente.
Um enterprise service bus oferece uma infra-estrutura de comunicação comum que pode ser utilizada para conectar serviços e, dessa forma, as funções de negócios que eles representam, sem que os programadores precisem gravar e manter uma lógica de conectividade complexa.
Um enterprise service bus fornece uma maneira consistente, baseada em padrões de integrar as funções de negócios que utilizam diferentes padrões de TI. Isso permite a integração de funções de negócios que normalmente não poderiam se comunicar, como conectar aplicativos em silos departamentais ou permitir que aplicativos em companhias diferentes participem em interações de serviços.
Um enterprise service bus permite que funções de negócios transfiram informações em formatos diferentes, com o barramento, assegurando que as informações entregues a uma função de negócio estejam no formato requerido pelo aplicativo.
Um enterprise service bus oferece suporte a interações baseadas em eventos, além das transferências de mensagens para manipular os pedidos de serviços.
O enterprise service bus permite que você se concentre em seus principais negócios, em vez de ter o foco no setor de TI. É possível alterar ou incluir serviços quando necessário; por exemplo, para responder às mudanças de demandas dos negócios, para incluir capacidade extra de serviços ou incluir novos recursos. Você pode fazer alterações reconfigurando o barramento, com pouco ou nenhum impacto nos serviços e aplicativos existentes que utilizam o barramento.