Integración de Sistemas con Enterprise Service Bus (ESB) y Event-Driven Architecture (EDA)


Por Paco Solans

   Hoy os contamos cómo integrar sistemas evitando las arquitecturas spaguetti utilizando las arquitecturas Enterprise Service Bus (ESB) y Event-Driven Architecture (EDA).

   La arquitectura ESB se basa en que un repartidor recoge el mensaje del sistema origen, lo procesa y lo lleva hasta el sistema destino. Los sistemas origen y destino no se conocen entre sí y por lo tanto actúan como entidades autistas, por lo que únicamente el repartidor es quien se encarga de realizar el traspaso de información.

    El repartidor contiene toda la lógica para leer el dato del sistema origen, procesarlo y enviarlo al sistema destino. Esta arquitectura es especialmente útil cuando se integran sistemas pasivos, o dicho de otra forma, en los que ni el emisor ni el destinatario pueden participar en el reparto del mensaje compartido y es necesario un cartero que asuma íntegramente esta tarea.

    La arquitectura basada en un bus de eventos o «EDA», por sus siglas en ingles «Event-driven architecture», es útil para sistemas activos, en los que el emisor y el destinatario pueden producir y consumir mensajes directamente utilizando un buzón, sin necesidad de que nadie más interactúe en la transferencia. De forma resumida, se trata de que un sistema origen tiene que enviar un mensaje al sistema destino. Para realizar este traspaso de información, ambos sistemas acuerdan compartir el dato en un buzón accesible a ambos, en el que el emisor deposita el dato en el buzón y el destinatario lo recoge del mismo. El sistema origen contiene la lógica para escribir el mensaje pactado en el buzón, mientras que el sistema destino contiene la lógica para leer el mensaje pactado.

    De alguna forma, podemos decir que cada una de las partes se encarga de realizar la mitad del transporte; la lógica del que produce el dato en el buzón está en el emisor, mientras que la lógica del que lo consume está en los receptores.

Artículos relacionados :