Diferencias entre EAI y ESB

Leyendo el otro día en el grupo “Service Oriented Architecture Special Interest” de la red social LinkedIn, me encuentro con una discusión acerca de los conceptos de EAI y ESB y sus diferencias.
Recojo aquí las principales distinciones de las que hablan:

SOA está basado en estándares. Un ESB soporta estándares basados en la integración de sistemas distribuidos. Un ESB debe ser más distribuido que un broker EAI que centraliza la integración de distintos sistemas utilizando adaptadores propietarios y flujos de mensajes. Además, un ESB debe ser un intermediario de servicios que posibilita un conjunto de patrones tales como enrutado de mensajes y transformaciones de esquemas.

La mayor diferencia entre ESB y EAI es el foco en estándares y los avances en la adopción de los mismos (por los vendedores de middleware y por los vendedores de aplicaciones como SAP y Oracle).

EAI integra aplicaciones, mientras que ESB gestiona servicios. El problema llega cuando se usan servicios para integrar aplicaciones o cuando tienes un vendedor EAI como Software AG, Tibco o IBM que juega en ambos campos y por tanto es dificil la separación de ambos conceptos.

Los EAI suelen tener una arquitectura hub-and-spoke. Los ESB (salvo los que han evolucionado como tal a partir de un EAI) buscan un modelo federado donde multiples nodos tienen el conocimiento sobre como enrutar y transformar los mensajes.

¿Qué os parece? ¿Estais de acuerdo?

3 Responses to “Diferencias entre EAI y ESB”

  1. Hola! me pareció interesante este artículo. Me aclaró bastante la duda que tenía respecto de lo que es EAI y ESB. Sin embargo no me queda claro cuando hablas de que “EAI integra aplicaciones, mientras que ESB gestiona servicios”. Podrías explicar un poco esta diferencia? Muchas Gracias!

  2. Hola Yamila. Un EAI proporciona herramientas pensadas para integrar aplicaciones desarrolladas bajo tecnologias diversas. Incluye software el tipo “Conectores”, “Transformaciones de datos”, etc.
    Un ESB es un mediador entre servicios multiprotocolo. Para poder realizar las integraciones con un ESB es necesario que las aplicaciones expongan servicios (Web Services, RMI Services, File Services, etc …) a traves del ESB. Son los llamados Business Services. Los consumidores de estos servicios acceden a Proxy Services ubicados tambien en el ESB.
    Entre los Proxy Services (Interface para los clientes/consumidores) y los Business Services el ESB es capaz de realizar operaciones de mediacion (transformaciones de schemas de datos, etc …).

  3. Buenas!! Leí atte el articulo. Entiendo bien que por ejemplo un producto, por ejemplo openesb, a parte de gestionar servicios, para la comunicación entre dos aplicaciones utiliza conectores a base de datos o a queues jms, estamos hablando de un eai?? Un esb puro seria el Aqua logic service bus por ejemplo??

    Muchas gracias!!

Leave a Reply