Este apéndicepresenta el relevamiento completo de los productos Apache Synapse y Apache ServiceMix, JBoss ESB, OpenESB y Mule ESB, el cual permitió seleccionar el producto ESB más adecuado a las necesidades de este proyecto.
Apache Synapse ESB
Apache Synapse es un software libre y de código abierto. Es un ESB ligero y de alto rendimiento que proporciona muy buen soporte para manear documentos XML, Web Services y servicios REST, siendo compatible con varios formatos de intercambio de contenido. Adicionalmente, su amplia gama de adaptadores permite comunicar muchas aplicaciones a través de diversos protocolos de la capa de transporte. [27]
Características brindadas
Es un ESB que soporta la mayoría de las funcionalidades de los modelos de ESB teóricos.
Es sencillo de configurar y de utilizar, además la calidad de su documentación es buena comparada con otros ESB Open Source.
Provee soporte a HTTP/S, Mail (POP3, IMAP, SMTP), JMS, TCP, UDP, VFS, SMS, XMPP and FIX.
También soporta transformación de mensajes (XSLT, Scripting).
Dispone de ruteos dinámicos a través de XPath o a través de expresiones regulares, donde un mensaje puede tener un destino diferente según su estructura.
Posee un balanceador de carga, el cual es configurable según distintos algoritmos de balanceo.
Las funciones de monitoreo de este ESB se delegan a los logs del sistema. Sin embargo, existen herramientas Open Source (como WSO2 Carbon), que lo convierten en una herramienta gráfica que brinda facilidades de monitoreo.
Permite implementar fácilmente un gateway de aplicación a partir de uno de sus componentes nativos.
- 124 -
Arquitectura
La Figura 76 presenta la arquitectura de los componentes del producto Apache Synapse, detallando sus conectores y protocolos.
Figura 76 - Arquitectura del producto Apache Synapse. Extraído de [27].
Service Mix ESB
Apache ServiceMix es un contenedor de integración flexible y de código abierto que unifica las características y funcionalidades de Apache ActiveMQ, Camel, CXF, ODE y Karaf en una plataforma de ejecución de gran alcance. ServiceMix está basado en JBI, y tiene el objetivo de permitir que los componentes y servicios se integren de una manera independiente a los proveedores. [28]
Características brindadas
Es un ESB basado en la especificación JBI.
Soporta múltiples protocolos de transporte como por ejemplo JMS, HTTP, FTP, Sistema de ficheros, entre otros.
Dispone de una consola web para tareas de administración, además de un IDE gráfico que permite la generación de Proyectos ESB.
Posee motor de orquestación de servicios BPEL.
Permite transformación de documentos XML a través de XSLT y XSLTComponent.
Dispone de ruteo basado en contenido a partir de expresiones XPath sobre mensajes XML normalizados
- 125 -
Posee motor de orquestación de servicios BPEL.
La intercepción de mensajes se puede realizar utilizando SEDA y JMS flows.
El producto puede ser integrado de forma nativa con JBoss AS, Apache Geronimo o JOnAS.
Arquitectura
La Figura 77 presenta la arquitectura del ESB ServiceMix, donde se detallan sus principales componentes.
Figura 77 - Arquitectura del producto ServiceMix. Extraída de [29].
JBoss ESB
JBoss Enterprise SOA Platform incluye middleware de código abierto para soportar arquitecturas orientadas a servicios (SOA), uno de sus principales productos es JBoss Enterprise Service Bus (ESB), que permite integrar aplicaciones, servicios, operaciones y componentes empresariales en distintos procesos. [30]
Características
Soporta el estándar JBI.
Soporta múltiples protocolos de transporte, como por ejemplo JMS, TCP/IP, Email y Sistema de ficheros, entre otros.
- 126 -
Posee motor de orquestación de servicios BPEL.
Transformación de mensajes XML, a través de XSLT y Smooks. Se dispone de una gran variedad de tipos de datos soportados.
Posee diferentes tipos de ruteo de mensajes, como por ejemplo, ruteo basado en contenido.
Se integra de forma nativa con jBPM y con JBoss AS.
Posee muy buena documentación y comunidad activa.
Tiene gran variedad de ejemplos de código para la generación de nuevos servicios.
Es posible cambiar fácilmente el comportamiento de las acciones predefinidas, como transformaciones y ruteos.
Arquitectura
La Figura 78 presenta la arquitectura de JBoss ESB, la cual que se basa en los principios de SOA y hace hincapié en un enfoque gradual para la implementación de una infraestructura SOI (Service Oriented Infrastructure). [31]
Figura 78 - Arquitectura de JBoss ESB. Extraído de [31].
Open ESB
OpenESB es un ESB basado en la especificación JBI, iniciado por Sun Microsystems, y que permite integrar fácilmente aplicaciones empresariales y servicios como aplicaciones con bajo acoplamiento.
- 127 -
Esto ESB permite desarrollar de manera fluida y rápida aplicaciones compuestas, con todas las ventajas de la Arquitectura Orientada a Servicios. [32]
Características brindadas
Basado en el estándar JBI.
Soporta múltiples protocolos de transporte, como JMS, HTTP, SOAP, REST, FTP, Email y Sistema de ficheros, entre otros.
Incluye IDE gráfico y una consola de administración web.
Motor de orquestación de servicios BPEL.
Transformación de datos XML a través de XSLT y TransformXL.
Dispone de ruteo de mensajes basado en contenido.
Se integra de manera nativa con Glassfish y/o con JBoss AS.
Arquitectura
La Figura 79 presenta los principales componentes arquitectónicos que son relevantes para la integración de OpenESB con Glassfish.
- 128 -
Mule ESB
Mule ESB está implementado en Java y permite integrar sistemas de forma sencilla, independientemente de las diferentes tecnologías y aplicaciones. Mule fue diseñado para integrarse fácilmente con servidores de aplicación o ejecutar como un servidor standalone. Se integra con numerosos framework, como por ejemplo spring, además soporta una gran cantidad de conectores de capa de transporte. [34]
Características brindadas
Soporta múltiples protocolos de transporte como por ejemplo JMS, HTTP, email, FTP, etc. Incluye IDE gráfico para el desarrollo de aplicaciones.
Soporta transformación de datos XML, utilizando transformaciones XSLT.
Ruteo de mensajes basado en contenido, a través de Xpath y JXPath.
Permite comunicación síncrona y asíncrona.
Manejo de mensajería utilizando request y response.
Brinda soporte a J2EE, como por ejemplo JBI, JMS, EJB, JCA, JTA, Servlet.
Amplitud de conectividad (más de 60 tecnologías). Tolerancia a fallos a través de la gestión de excepciones.
Opciones de seguridad, brindando funcionalidades de autenticación y autorización.
Facilidad para realizar pruebas unitarias a través de la biblioteca JUnit. Es el ESB Open Source más utilizado.
- 129 -
Arquitectura
A continuación, la Figura 80 presenta la arquitectura general del producto Mule ESB, detallando sus principales componentes, los cuales hacen posible su integración con varios servidores de aplicaciones.