jueves, 29 de marzo de 2007

ESB or not ESB?

Hola que tal! aqui de nuevo dando lata :D

ESB or not ESB? jejeje, pues si efectivamente navegando por la red me he encontrado con algunas discusiones acerca de la definicion de un ESB y pues me motivo a escribir este post... espero os sirva...

Bien, pues el concepto de Enterprise Service Bus surge en Gartner en colaboracion con David Chapell (tipo con el cual tuvimos una platica en el 2006). Actualmente el termino ESB es muy nombrado por sistemologos, peeroooo ¿realmente conocemos que es un ESB?

En terminos practicos un ESB es una implementacion de SOA, en palabras cristianas es: conectar un cliente y un proveedor mediante un middleware... veamos a mas detalle

Para entender que es un ESB, es necesario saber primeramente que es lo que hace. La manera en que me "cayo el veinte" es entendiendo el patron de integracion VETRO pattern, culaquier software o hardware que se diga ser un ESB, al menos debe de cumplir con este patron, como Jack el destripador vayamos por partes.....

Validation: Se encarga de realizar la validacion de mensajes que entran al ESB, esta validacion es generalmente basada en estandares, por ejemplo validar el XML de entrada contra su respectivo XSD

Enrichment: Esta parte es la encargada de enriquecer el mensaje inicial del cliente con informacion necesaria para la invocacion del servicio final. En la mayoria de las ocasiones este enriquecimiento es generado en llamadas a servicios de negocio y adicionando informacion al mensaje

Transformation: Esta parte es la encargada de transformar el mensaje original a otro formato que sea necesario por el servicio final, por ejemplo utilizar Xquery para trasformaciones entre archivos XML

Routing: Esta parte es muy interesante, es la encargada de rutear el mensaje a diferentes servicios de acuerdo al contenido o a la operacion o inclusive se pueden tener tablas de ruteo

Operate: Es la parte final, la que se encarga de comunicarse con el servicio final, es decir se conecta con los servicios de negocio.

Adicional a el patron VETRO agregare unos puntos harto importantes:

+ Un ESB es distribuido, es decir no es el clasico hub and spoke, un ESB se puede distribuir en toda la red fisica.
+ Esta basado en un sistema de mensajeria o Message Oriented Middleware, lo cual permite manejar muchos escenarios de manera asincrona.
+ Permite el monitoreo de niveles de servicio de cada uno de los servicios pertenecientes al ESB
+ Permite controlar la calidad de servicio y la calidad de proteccion

Actualmente existen una cantidad considerable de ESB de "marca" y open source, aqui una lista

+ Sonic MQ
+ BEA Aqualogic Service Bus, es el que usamos aqui en el trabajo :D
+ Mule ESB, tambien existente en nuestra arquitectura :D
+ IONA Celtix ESB
+ Apache ServiceMix

Para finalizar quiero compartir con ustedes este podcast de Mark Richards Senior IT architect de IBM, titulado The Enterprise Service Bus: Do We Really Need It?, espero les guste, si no jala el link me dicen, :D

Bueno pues es todo, si me falto algo bienvenido...

Por una integracion mejor, hasta la vista

Tuzo

No hay comentarios.: