27 July 2009

¿ Que es un ESB ?

En estos últimos tiempos las siglas ESB están siendo muy utilizadas, pero que es? qué utilidad tiene? que beneficios aporta?

Un ESB (Enterprise Service Bus) o Bus de servicios empresariales, es un software que actúa como intermediario, entre la comunicación de aplicaciones de diferentes sistemas. Es decir es un punto central donde se registran todos los servicios expuestos por todas las aplicaciones de un entorno empresarial (sin importar las plataformas que lo componen) y sobre el cual se puede construir aplicaciones que re-aprovechen todas estas funcionalidades.

Sus principales características o beneficios son:

  • Permite la construcción de aplicaciones y procesos de negocio débilmente acoplados, en base a unos servicios ya existentes; ya actúa como un proxy.


  • No requiere saber programar (Java, C#, PHP, ...) para exponer o componer servicios, normalmente se hace con asistentes. La codificación está en la parte de la creación de los servicios nuevos (excepto si son compuestos).


  • Conectar de manera uniforme diferentes plataformas, como por ejemplo SAP, Siebel, Alfresco, Documentum, Filenet


  • A partir de un mensaje de entrada se puede inspeccionar su contenido y llamar a un servicio u otro (enrutar) dependiendo de los valores que lleve dentro.


  • Transformación de mensajes y conversión de protocolos, convirtiendo mensajes de formato propietario, a un tipo común o estándart, o vice-versa, con la posibilidad de añadir o de quitar información.


  • Controlar las excepciones de todos los servicios de manera uniforme, independientemente del protocolo o plataforma, permitiendo transformarlas a un formato común para todas las aplicaciones de la organización.


  • Permite resolver dinámicamente los endpoints, siendo fácil cambiar, por ejemplo, de un entorno de pre-producción a producción de manera transparente para los clientes.


  • Al actuar como un Proxy de servicios nos permite auditarlos y generar trazas (BAM), para detectar por ejemplo los picos horarios o el tipo de información más consultada, o el servicio más utilizado, sus tiempos de respuesta ... en fin SLA.


  • Servicios de seguridad, proteger o desproteger servicios, a nivel de transporte o del propio servicio. Es decir si tuviéramos unos servicios en nuestra Intranet que quisiéramos hacerlos públicos pero que solo puedan acceder aquellos clientes que tengan nuestros certificados digitales, lo podríamos hacer sin necesidad de modificarlos.



En java existe la especificación Java Business Interface (JBI), con la JSR 208 para JBI 1.0 y la JSR 312 para la JBI 2.0; sobre las cuales se han construido una serie de ESBs, donde los mas conocidos son Servimix, OpenESB /Glassfish ESB y OSB (Oracle Service Bus) antiguamente conocido como Aqualogic Service Bus.


Enlaces relacionados:

Enterprise service bus (Inglés)
Java Business Integration (Castellano)
Descarga del libro Open Source ESBs in Action
Web de Servicemix
Web de OpenESB
Glassfish ESB
Caracteristicas de Open ESB
Web de Oracle Enterprise Service Bus
OSB en la Wikipedia
http://www.enterpriseintegrationpatterns.com/

- FIN -

2 comments:

Luis said...

Hola colega, andamos decidiendonos por algun ESB, la verdad es que nunca he empleado ninguno, pero por tu experiencia, cual seria tu recomendacion.

Saludos!!!!!

Emmerson Miranda said...

Bueno la elección depende de muchos factores; pero el bus de Oracle cumple con muchos requisitos, otros recomendables son el WSO2 y el de IBM.