Afortunadamente tenemos muchas opciones para implementar SOA en la empresa. Algunas de estas opciones son de pago y pertenecen a los grandes fabricantes de software como IBM o Oracle. Por otra parte, hay otras soluciones que pueden servir en determinados escenarios y que son completamente gratuitas.
Así, puestos en la tesitura de tener que buscar una solución que nos sirva a nuestras necesidades y situación. ¿Qué aspectos deberíamos mirar?
Algunos de los criterios de comparación entre las distintas alternativas, de manera esquemática, podrían ser los siguientes:
- Conceptos básicos y arquitectura
- Capacidad de realizar tests
- Facilidad del despliegue
- Popularidad o índice de adopción del producto en la comunidad
- Soporte comercial
- Soporte de herramienta de desarrollo integrada (IDE)
- Manejo de errores
- Monitorización
- Lenguaje específico de dominio de integración (DSL)
- Número de componentes para interfaces, tecnologías y protocolos
- Extensibilidad
Evidentemente para realizar una comparativa hay que poner el foco en aquellas características distintivas de las alternativas analizadas. Y en estas alternativas disponibles quiero centrarme en lo que se conocen como «frameworks de integración». Que son son soluciones de más bajo nivel que las suites SOA de los grandes fabricantes pero que pueden perfectamente satisfacer nuestras necesidades en muchos de los escenarios más habituales.
Un framework de integración se caracteriza por lo siguiente:
- Implementación de los patrones de integración empresariales (EIP)
- Modelo consistente de integración y arquitectura de mensajes para dar soporte a diferentes tecnologías.
Este tipo de soluciones tienen el mismo concepto de “flujo” de integración aunque se llamen con diferente nombre: “route”, “component” o “adapter” - Son ESB “ligeros” frente a los ESB “pesados” de Oracle o IBM. En todos los casos, su uso se “reduce” a incorporar unas cuantas librerías de código a nuestro desarrollo de integración. Por lo tanto son capaces de ejecutarse en cualquier entorno: servidores de aplicaciones, batch, aplicaciones de escritorio, etc.
- Todas las opciones son open source. Y todas disponen de una comunidad de desarrolladores (usuarios) viva y dinámica que constantemente están probando el producto y dando feedback. Se dispone de documentación, blogs, libros, etc. Etc.
- Soporte de entorno integrado de desarrollo (IDE). Incluso disponen de editores visuales de los flujos o rutas de integración
- Características necesarias para su uso en la empresa como manejo de errores, test automáticos, transacciones, ejecución en paralelo con multi hebra, escalabilidad y monitorización
En cuanto a las diferencias entre las alternativas estudiadas, de manera resumida, serían las siguientes:
- Número de tecnologías soportadas. Es decir, cuantos «conectores» tenemos a nuestra disposición de caja. Para invocar a servicios SOAP y REST, invocación a SQL y stored procedures, colas, etc. etc.
- Lenguaje específico de dominio de integración. Es decir, como se plasma el flujo de integración. Puede ser mediante un XML con un espacio de nombres propio o puede ser en código java.
Afortunadamente, dentro de la oferta de soluciones de frameworks de integración tenemos varias opciones. Las más conocidas son estas dos:
Así pues, y respondiendo a la pregunta del título, creo que en muchos escenarios dentro de una empresa, e incluso en todos los casos de determinadas empresas, es suficiente con tener un framework de integración en lugar de un complejo suite SOA. La conclusión de todo esto, sería que, al menos, antes de adquirir un determinado producto analicemos cual es nuestra situación. No siempre nos conviene comprar lo más caro…
09/06/2014 at 12:30
Hola Andres,
buen review de frameworks de integración.
Apache Synapse (https://synapse.apache.org) es otro “ESB ligero”, equiparable a Apache Camel, igual implementa los EIPs (Enterprise Integration Patterns).
WSO2 ESB está basado en Apache Synapse y provee funciones más avanzadas para Integración.
Saludos.
Roger
10/06/2014 at 23:11
Buena aportación, gracias
17/06/2014 at 18:44
Artículo muy interesante. En España se está desarrollando una plataforma de integración (http://www.guaranasolutions.com/)
Tiene su propio DSL gráfico (basado en patrones de integración) con un editor «drag & drop», Aunque no es open source.
También podemos destacar Mule (http://www.mulesoft.org/)
Algunas de estas plataformas, como por ejemplo Guarana, WSO2 o Mule (CloudHub) tienden ya al cloud como iPaaS (Integration Platform As A Service)
23/10/2014 at 13:55
Buen dias, excelente tu Blog, me ha servido mucho para aclarar dudas y entender algunos conceptos. Me gustaría saber tu opinión particular de Mule de MuleSoft, en mi empresa hemos implementado una solución de integración basada en esta plataforma y mantenemos disponible aproximadamente 176 servicios; pero hemos tenido muchos problemas a nivel de gobierno en tiempo de ejecución.
27/10/2014 at 22:19
Hola Ricardo. Me temo que tener problemas de Gobierno (ya sea en tiempo de ejecución o en cualquier otro tiempo 😉 es bastante generalizado. No tengo una experiencia directa con Emule y no te puedo decir nada concreto al respecto. Si quieres podemos hablar del tema extensamente por mail.