java soa messaging esb mom

java - Middleware orientado a mensajes(MoM) vs. Enterprise Service Bus(ESB)



soa messaging (6)

Vengo de un fondo de MoM. Creo que entiendo ESB conceptualmente. Sin embargo, no estoy muy seguro de las diferencias prácticas entre los dos cuando se trata de hacer una elección arquitectónica.

Esto es lo que quiero saber

1) Cualquier buen enlace en línea que pueda ayudarme en este sentido.

2) ¿Puede alguien decirme dónde tiene sentido usar uno sobre el otro?

Cualquier ayuda sería útil.


Un ESB suele ser una capa que enruta, registra, transforma y realiza otras funciones "técnicas" (es decir, no comerciales) en los mensajes. Podría procesar mensajes de un sistema de mensajería (como algo basado en JMS), o podría funcionar con otros tipos de mensajes (como servicios web basados ​​en SOAP). En ese sentido, es más general que MoM.

Descargo de responsabilidad: soy un consultor de IBM WebSphere, aunque no estoy contribuyendo aquí en una capacidad oficial.


La mensajería tiende a concentrarse en el intercambio confiable de mensajes alrededor de una red; utilizando colas como un equilibrador de carga confiable y temas para implementar publicar y suscribirse.

Un ESB típicamente tiende a agregar diferentes funciones más allá de la mensajería, como la orquestación, el enrutamiento, la transformación y la mediación.

Recomiendo leer acerca de los Patrones de Integración Empresarial, que ofrece una visión general de los patrones comunes que tenderá a usar en problemas de integración que se basan todos sobre un bus de mensajes (aunque también se puede usar con otras tecnologías de red).

Por ejemplo, usando código abierto; Apache ActiveMQ proporciona un intercambio de mensajes confiablemente acoplado. Luego puede usar Apache Camel para implementar Patrones de Integración Empresarial para enrutamiento inteligente, transformación, orquestación, trabajo con otras tecnologías, etc.


ESB con servicios web en su verdadera forma proporciona acoplamiento flexible de la aplicación al enviar los datos a través de uno de los elementos del mensaje.

MOM proporciona no solo acoplamiento de aplicación floja sino que también procesa el acoplamiento flojo.

ESB viene con características adicionales que respaldan el enfoque centrado en la Gobernanza.

Ambos se pueden usar de forma independiente o conjunta dependiendo del escenario.


IBM y Oracle tienen certificaciones SOA. Como son los líderes en el mercado (Gartner Magic Quadrant), leería sobre cómo definen SOA y ESB (junto con la metodología y los componentes necesarios para soportar SOA, como Gobernanza, Registro, etc.)


EBS es simplemente otra palabra de moda, como es SOA 2.0.

Puede hacer que un sistema ESB se implemente fácilmente con servicios web normales con una cola detrás de ellos. Puede tener enrutamiento de mensajes y / o orquestación con SOA 1.0 (Tibco, BizzTalk), una cosa no detiene a la otra realmente. Más importante aún, es la semántica dada a los mensajes intercambiados en el sistema que juegan un papel importante, en este caso los eventos. Los mensajes como eventos son desencadenantes de algo que sucedió en su sistema, por lo que el contexto es diferente.


Puse las soluciones MOM y las soluciones ESB en dos planos distintos.

Considero que MOM es un bloque de construcción para las soluciones de ESB. De hecho, las soluciones de ESB alcanzan sus propias capacidades de acoplamiento asincrónico y comunicación asíncrona, simplemente usando el paradigma que ofrece la implementación específica de MOM.

Por lo tanto, las MOM representan soluciones para la distribución de datos / eventos a nivel personalizado de QoS (de acuerdo con la implementación específica del proveedor), en cambio las ESB representan soluciones que brindan capacidades para realizar complejas orquestaciones en un escenario SOA (donde tenemos múltiples proveedores que ofrecen sus servicios y múltiples consumidores interesados ​​en consumir los servicios ofrecidos por los primeros).

Las orquestaciones complejas implican comunicación entre sistemas heredados, cada uno de ellos con su propia representación de dominio de datos (reglas y servicios sobre datos específicos) y su propio paradigma de comunicación (un consumidor interactúa con el ESB usando CORBA, otro con WS, etc.).

Está claro que ESB representa una solución arquitectónica más compleja destinada a proporcionar la abstracción del bus de datos (como los buses electrónicos que todos tienen en su propia PC), capaz de conectar una plétora de proveedores de servicios a una plétora de consumidores del servicio, ocultando heterogeneidad en (i) representación de datos y (ii) comunicación.

Perdón por la publicación larga, pero los conceptos son complejos y es muy difícil ser efectivo y eficiente en una breve declaración.