SOA vs ESB
SOA é um conjunto de conceitos de arquitetura usados para o desenvolvimento e integração de serviços. Um serviço é um pacote divulgado de funcionalidades oferecidas pela web. O ESB é um software de infraestrutura que fornece uma construção de arquitetura de software para fornecer serviços básicos para arquiteturas complexas. O ESB pode ser usado como uma plataforma na qual a SOA é realizada.
O que é SOA?
SOA (arquitetura orientada a serviços) é um conjunto de conceitos de arquitetura usados para o desenvolvimento e integração de serviços. A SOA lida com a computação distribuída na qual os consumidores consomem um conjunto de serviços interoperáveis. Vários consumidores podem consumir um único serviço e vice-versa. Portanto, a SOA é frequentemente usada para integrar vários aplicativos que usam plataformas diferentes. Para que a SOA opere adequadamente, os serviços devem ser fracamente acoplados aos sistemas operacionais e às tecnologias dos aplicativos subjacentes. Os desenvolvedores de SOA criam serviços usando unidades de funcionalidade e os disponibilizam pela Internet. Os serviços da Web podem ser usados para implementar a arquitetura SOA. Nesse caso, os serviços da Web se tornam as unidades de funcionalidade da SOA acessíveis pela Internet. Os serviços da Web podem ser usados por qualquer pessoa sem se preocupar com as plataformas ou as linguagens de programação usadas para desenvolvê-los. A SOA é construída diretamente sobre o princípio da orientação a serviços, que fala sobre serviços com interface simples que pode ser acessada de forma independente pelos usuários, sem se preocupar com a implementação real da plataforma do serviço..
O que é ESB?
O ESB (Enterprise Service Bus) é um software de infraestrutura que fornece uma construção de arquitetura de software para fornecer serviços básicos para arquiteturas complexas. Mas há uma discussão considerável sobre se o ESB deve ser chamado de estilo arquitetônico, produto de software ou mesmo grupo de produtos. Ele fornece os serviços por meio de mecanismo orientado a eventos e baseado em padrões para mensagens (que na verdade é o barramento de serviço). No topo desse mecanismo de mensagens, é fornecida uma camada de abstração para permitir que os arquitetos explorem as instalações oferecidas pelo barramento, sem escrever nenhum código real. O ESB é geralmente implementado através de infraestruturas de middleware baseadas em padrões.
O uso do termo "barramento" no ESB se deve ao fato de o ESB fornecer uma função muito semelhante ao barramento físico do computador, mas com um nível de abstração muito mais alto. Uma das principais vantagens de ter um ESB é a capacidade de reduzir o número de pontos de contato; assim, facilitando muito a adaptação às mudanças. O ESB pode ser usado como uma plataforma na qual a SOA é realizada. Os conceitos de transformação / roteamento (relacionados ao fluxo) podem ser trazidos para SOA pelo ESB. Além disso, ao provar a abstração para terminais (em SOA), o ESB promove um acoplamento flexível entre serviços.
Qual é a diferença entre SOA e ESB?
Existem algumas diferenças importantes entre SOA e ESB. SOA é um modelo de arquitetura para implementar aplicativos baseados em serviços com pouca acoplagem. O ESB é um software de infraestrutura que ajuda os desenvolvedores a desenvolver serviços e a se comunicar entre serviços por meio de APIs adequadas. O ESB pode ser usado como uma plataforma na qual a SOA é realizada. ESB é apenas o meio através do qual os serviços fluem. O ESB fornece facilidades para a composição e implantação de serviços, que por sua vez implementam o SOA.