Bus de Servicios Empresariales (ESB), SOA, BPM - Relacionando todas estas siglas.

Escrito por Javier Urrutia en October 8th, 2006

Que son los ESB o buses de servicios empresariales?. Cuando empezamos viendo las suites de tipo BPM y los conceptos de SOA, dejamos sin tratar el tema de la orquestación y middleware. En este post ahondaremos en los ESB, su utilización y el lugar que ocupan en las implementaciones de arquitecturas empresariales vía SOA o BPM y el porque su nombre es menos conocido hoy en día (lo que no quiere decir en ningún caso que el concepto este en baja o no aplique).

esb1Lo primero que usted debe considerar es que el termino ESB (Enterprise Service Bus) es un termino de marketing que inventaron las empresas que fabrican soluciones puras de middleware para entornos empresariales dentro de los esquemas de arquitecturas. Cuando hablamos de BPMs, nombramos el concepto de Suites de BPM o BPMs. Dado que existen soluciones de BPM que ya incorporan sus propias herramientas de middleware.

Sin embargo una solución de tipo ESB, por ser especifica para la capa intermedia de nuestra arquitectura podría ser mas poderosa y de mejor comportamiento en algunos casos que las herramientas que hoy en día las suites de BPMs incorporan. Por decirlo de otra forma, al ser soluciones creadas para un rol especifico, en general deberían dar mas soluciones a temas que están fuera del alcance SOA y WebService en términos de integración. Veamos mas al respecto…


En la siguiente figura puede observar a nivel practico, como una solución especifica de tipo ESB interactúan con distintas soluciones tales como BPM, o portales (puede hacer click sobre ella para ampliar).


esb2

Que podemos decir después de ver esto?. Que las soluciones ESB incluyen mas que SOA y WebService, son orquestadores de servicios (pero en el sentido amplio de la palabra, no solo webService), permiten interactuar de mejor forma y mas rápidamente a las componentes técnicas y de información con aquellas relacionadas a los procesos de negocio de las capas superiores o mas altas como las de tipo presentación o BPM.

En otras palabras, un ESB alineado además con una arquitectura SOA permite mantener la flexibilidad necesaria en sus procesos de negocio a nivel técnico y de codificación. Sin embargo hoy en dia si esta pensando en BPM muchas de las suites de este tipo incorporan componentes del tipo ESB muy poderosas y que se integran transparentemente con su BPM por ser de la misma suite y fabricante.

El aporte de un ESB va mas halla de una herramienta que facilite integraciones del tipo SOAP/HTTP WebServices sobre redes TCP/IP- Habilita middleware de servicios orientados a mensajería como JMS, administra colas y priorisa datas y comunicaciones de contenidos, administrando los estados de estas integraciones entre sistemas distribuidos. ESB aplica y apoya servicios débilmente acoplados, esquemas de eventos y listens, acceso a repositorios sobre múltiples plataformas y repositorios de información.

Ahora según mi experiencia cual es el riesgo en la componentes middleware o ESB si pensamos en soluciones fuera de las provistas por Suites BPM. Y Consideramos al ESB como un protagonistas especifico, real y de distinción propia en la arquitectura?

Principalmente es que se tiende a confundir las capas de middlare con las reglas de negocio, algo similar con lo que me ha tocado ver cuando las webservice compuestos se vuelven muy pesados y terminan siendo mas que compuestos. Esto es, empiezan a manejar parte de la capa de lógica de negocio, que no debería estar alli.

esb3

Como puede observar en el diagrama superior, un ESB o la solución de middlaware que usted considera lleva apellido, ese apellido es "Bus de Servicio!" , el riesgo y la posibilidad de agregar lógica de negocio, comprometerá toda su arquitectura, es la capa superior, BPM, la que deberá concentrar sus procesos de negocio, sus reglas de negocio, su lógica de negocio. El rol de un ESB no trata con lógica de negocio, trata con lógica de servicios, esto es resolución de servicios, monitorización de servicios, acceso de servicios, homogeneización de los mismos, Administración de adaptadores, ETLs, y todo este tipo de ámbitos.Pero todo esto lo realiza mediante soluciones del tipo Drag/Drop, o soluciones visuales de integración, el nivel de codificación en la capa ESB es menor, esa es la ventaja de este tipo de Middlewares.

En resumen un ESB no implementa una solución SOA, pero si la da las herramientas para facilitarle ese tipo de arquitecturas y además proveer otros mecanismos de integración, como mensajería, adaptadores hacia repositorios, listener y otros medios de administración de servicios.
Ahora cual seria el camino a seguir, en un escenario empresarial de múltiples plataformas, tecnologías y aplicaciones se queremos llevar todo lo que tenemos a un nivel de arquitectura empresarial flexible y orientada a servicios? (ojo que utilizo el concepto servicio en su amplio espectro no solo webservice, normalmente se confunde este tema).

Bien, dependerá del tamaño y presupuesto que tenga. Personalmente este enfoque de soluciones solo lo he visto en proyectos de banca y compañías de seguros consolidadas. Que cuentan con los presupuestos necesarios.

Personalmente no considero que la solución se inicie seleccionando una tecnología especifica para la empresa, entiendase .Net o J2EE (aunque ordenar la casa en este ámbito es necesario, al menos definir un conjunto finito y pequeño de tecnologías), personalmente me tiendo a inclinar hacia J2EE. La verdad es que la tecnología cambiara, mas allá de lo que usted seleccione hoy en día. Deberá asegurarse que ese cambio que vendrá tarde a temprano, pueda ser soportado en los niveles de procesos de negocio, para ello deberá contar con herramientas de middleware. En ese escenario un ESB resulta una opción precisa. Pero si su escenario tiende a estar mas relacionado a una empresa donde fluyen los procesos y documentos, donde las soluciones tienen componentes fuertes de interacción humana, tales como aprobaciones, altas, bajas, etc. Es decir donde los sistemas son H2S (Human to System) y H2H (Human to Human), mas de que S2S (System to System). Entonces una arquitectura BPM debería ser una opción mejor. Y en esa realidad, una suite BPM de excelencia le podría proveer de un middleware con sabor a ESB sino un ESB hecho y derecho según lo que valga la Suite BPM seleccionada.

En resumen y mi mejor consejo respecto a las ESB, es que los mantenga neutrales, lo mas posible a su negocio, en términos de reglas de negocio, y lógica de procesos. Considere a un ESB como un medio de transporte y coordinador de fuentes de información, mapeador de data, monitorizador de elementos, pero no ponga, y por favor no ponga inteligencia de negocio en el.

Javier Urrutia

5 Votes | Average: 4.8 out of 55 Votes | Average: 4.8 out of 55 Votes | Average: 4.8 out of 55 Votes | Average: 4.8 out of 55 Votes | Average: 4.8 out of 5 (5 votos, promedio: 4.8 de 5)
Loading ... Loading ...
Envie a un Amigo este Post (Click Aqui)Enviar a un Amigo | Version para Impresion del Post (Click Aqui)Version para Impresion


Posibles articulos relacionados


Arquitecturas Empresariales (BPM y SOA)
En los últimos días, he mantenido un intercambio de ideas vía comentarios a propósito de BPMs, SOA, WorkFlows y herramientas relacionadas. Por ello he pensado necesario generar un nuevo articulo en relación a Soluciones BPM, su relación con la arquitectura

Software Utilitarios para Microsoft .asp y .net
Bueno, no todo puede ser Java, así que en esta ocasión quiero dar un aporte de soluciones empresariales para programadores Microsoft. ya sea en la tecnología pasada COM+ y .asp, o en los nuevos modelos .Net. Cuando trabajamos en

JXTA 2.0 El Framework de nivel empresarial que se nos viene (Introducción 1era Parte)
Con tanta tecnología en estos días, no es raro que se me halla pasado una como JXTA,lo complicado fue darme cuenta que no era una tecnología mas, pero por suerte mi colega Cesar Esquerre, en una reunión nos llamo la

Migrando sistemas empresariales - Una aproximación para la transición.
Si usted esta a cargo de algún departamento informático en su empresa, o si tiene alguna responsabilidad en la operación y desarrollo del área tecnológica de su organización, tal vez uno de los hitos que fácilmente recuerde en su mente,

Contratos Informáticos (Puntos a no olvidar)
No se preocupe, este post lo he querido colocar porque aunque sigo viendo temas específicos como los de Ontología, Semántica y otros futuros. Debes en cuando es bueno amenizar con otros temas. Mi blog es un blog temático, pero de


Link de trackback a este post

Boton derecho para copiar enlace de trackback Bus de Servicios Empresariales (ESB), SOA, BPM - Relacionando todas estas siglas.


Escriba un comentario

Tome un momento y escriba su pensar hacerca de este post. Algunos codigos HTML son permitidos para el formato.

Comentarios escritos

HolaJavier.
Muy interesante el tema de ESB, tengo una consulta y es referida a los ESB open source, he estado viendo el middleware de JBOSS y su lista de frameworks para tal fin, particularmente el jBPM por lo que he visto es mas una herrameinta workflow que una herramienta BPM y aún es pobre la parte de diseño de la interfaz, en nuestro caso se tuvo que realizar el diseño utilizando JSF ¿correcto?
Quisiera conocer tu opinion al respecto y si es acertado utilizar en producción dichas herramientas y que es lo que ofrece JBOSS como soporte ESB

Muy clara su explicacion, muchisimas gracias

Alejandro

Hola
Me gustaría que si tienen más información sobre los ESB me los hicieran llegar a mi correo janyrosy@gmail.com pues este me resultó muy bueno
saludos

Estimado Javier
Tengo un consulta. Resulta ser que usamos como ESB Websphere Message Broker de IBM. Para nosotros una cola de requerimiento es un servicio y una cola de respuesta es la respuesta a ese servicio. La pregunta concretas es, ¿debemos exponer dichas colas como servicios para que puedan ser orquestados con un BPM? Si es asi, tengo un servicios de requerimientos y un servicio de respuesta? ¿Como se exponen los servicios en este caso?
Saludos y gracias.

Hola Ivan,

En el caso del Message Broker de IBM, que tengas una cola para llamadas y otra para respuestas no implica que tengas que exponerlos como servicios. Si bien, la definición de un servicio web accesible via jms (con su wsdl) te facilitará la reutilización con un bpm; no es extrictamente necesario. Por ejemplo, el bpm de IBM (Process Server) permite la comunicación asíncrona con MQ o JMS estándar para utilizar las implementaciones que hayas hecho en el message broker.

Un saludo,
Enrique


Technorati Z22 XML-Sitemap RSS a PodCast Usa Firefox es mejor