Ordenando el paradigma mediante un ESB

abril 7, 2012

share

Archived

Si bien SOA nos proporciona la posibilidad de definir diferentes servicios independientes que interactúen entre si, esta interacción se realiza punto a punto, lo cual implica un alto grado de acoplamiento entre ellos. En caso de producirse un cambio en la definición de algún servicio, por mínimo que sea, va a generar un impacto importante en sus consumidores. Por otro lado, a medida que la complejidad de los sistemas iba aumentando y las integraciones punto a punto se sucedían, se evidenciaba la necesidad de poder mantenerlas controladas y administradas, es por eso que surgieron diferentes opciones para cumplir con estos objetivos, entre ellos, el más popular hoy en día, el ESB.

¿A que llamamos ESB?
Podemos definir a un Enterprise Service Bus o Message Broker como una arquitectura de diseño que plantea el desacoplamiento de los mensajes, estableciendo una infraestructura que permita minimizar la lógica de integración y brindando un servicio de mensajería disponible a través de diferentes protocolos de transporte, como pueden ser http, jms, mq, ftp, smtp, etc. También nos facilita la tarea de configurar métodos de enrutamiento complejos, contando además con la posibilidad de realizar transformaciones y enriquecimientos de mensajes.

Entonces, lo que sin un ESB sería una infinidad de comunicaciones punto a punto entre diferentes servicios, con la implementación de un ESB quedaría una estructura como la siguiente:

soa_2

En conclusión, un ESB es un intermediario que procesa los mensajes de invocación, determina la lógica de ruteo a implementar y transforma los mensajes para lograr la compatibilidad con otros servicios consumidores. Recibe los mensajes a través de un protocolo de transporte y los envía transformados y enriquecidos a través del mismo protocolo o uno diferente. La respuesta a dicha invocación se procesa siguiendo el camino inverso.

Puntos destacados de un ESB:

– Capacidad para transformar y enriquecer mensajes.
– Balanceo de carga entre diferentes servidores.
– Habilidad para rutear mensajes.
– Posibilidad de transferir funciones de mensajería hacia otro servidor en caso de fallo de uno de ellos.

ESB existentes en el mercado

Existe una amplia gama de productos ESB en el mercado de los cuales podemos destacar los siguientes:
– Aqualogic Service Bus (http://download.oracle.com/docs/cd/E13171_01/alsb/docs30/index.html)
– Sonic ESB (http://web.progress.com/en/sonic/sonic-esb.html)
– Apache ServiceMIX (http://servicemix.apache.org/home.html)
– JBoss ESB (http://www.jboss.org/jbossesb)
– Mule (http://www.mulesoft.org/)
– JBI – Java Business Integration (http://www.jcp.org/en/jsr/detail?id=312)