¿Has pensado alguna vez en trabajar con Mule ESB? ¿No acabas de entender el potencial que tiene para mejorar tu negocio? Pues sigue leyendo y te explicamos qué es Mule ESB, qué puede hacer por ti, y mejor aún, qué funcionalidades le ofrecen los productos que hemos desarrollado en Hawkore.

¿Qué es Mule ESB?

Mule es un framework de mensajería ESB (Enterprise Service Bus), escalable y distribuible, que puede orquestar interacciones con servicios y aplicaciones que usan distintas tecnologías de transporte y mensajería.

image

Características

Estas son algunas de sus características más relevantes:

  • Código abierto[1].
  • Tecnología madura y en constante evolución.
  • Amplia comunidad de usuarios.
  • Mucha y muy buena documentación con ejemplos prácticos.
  • Completamente modular y desacoplado.
  • Ofrece una amplia gama de servicios y componentes de transporte.
  • Altamente productivo.
  • Orientado a mensaje.

Una de las principales funcionalidades de Mule ESB es que permite que te olvides de las integraciones punto a punto, que según crecen en complejidad pueden convertirse en un verdadero quebradero de cabeza.

Gracias a la capacidad de reutilización y conectividad de Mule, es posible establecer una red de aplicaciones mucho más consistente y sostenible, de manera que futuras integraciones puedan reutilizar componentes ya creados e integrarse en la red de manera cada vez más dinámica.

Con esto en mente, MuleSoft propone seguir una arquitectura Api-led Connectivity[2] a la hora de diseñar el modelo de integraciones a gestionar con Mule ESB.

Altamente productivo

Existen una infinidad de conectores prediseñados para integrarse con numerosos frameworks y sistemas como Spring, Amazon AWS, Apache Ignite, SAP, Salesforce, Microsoft Dynamics, Mongo DB, Cassandra, etc. Soporta también múltiples y muy variados componentes de transporte y servicio como:

  • HTTP
  • JDBC
  • JMS
  • SOAP
  • OData
  • EJB
  • TCP
  • LDAP
  • UDP
  • SMTP
  • FILE
  • FTP

Así mismo, Mule provee poderosas capacidades de enrutado, transformación y auditoría de mensajes.

Su IDE (Anypoint Studio) y la gran variedad de componentes prediseñados permiten crear aplicaciones muy rápidamente.

Anypoint Studio

Mule viene provisto de un entorno de desarrollo visual, denominado Anypoint Studio. Está basado en Eclipse, lo que lo convierte en muy intuitivo y familiar para la mayoría de programadores.

El diseño de los flujos por lo que irán pasando los mensajes de Mule se realiza arrastrando componentes, transformadores o conectores desde una paleta de diseño. Esto permite que los desarrolladores puedan olvidar los pequeños detalles para centrarse en los conceptos de más alto nivel.

image

Su facilidad de uso, hacen que la curva de aprendizaje sea muy rápida, de modo que los desarrolladores pueden ser productivos en un periodo muy corto de tiempo.

Orientado a mensaje

A diferencia de otras soluciones, Mule está orientado a mensaje, es decir, no necesitas unos conocimientos avanzados para diseñar tus aplicaciones, simplemente preocuparte por los mensajes que entran y salen de flujos y/o conectores.

Un mensaje de Mule (Mule Message) es el contenido de una pieza más grande denominada evento (Mule Event). Estos eventos son generados por el conector de entrada del flujo en el que nos encontremos (Inbound Endpoint). Cada procesador que forma parte de un flujo, recibe un mensaje del procesador anterior y devuelve uno nuevo con las pertinentes modificaciones realizadas.

Cada mensaje está compuesto por dos piezas principales:

  • Atributos - que contienen metadatos asociados con el cuerpo del mensaje y variarán en función del conector de entrada de nuestro flujo. Por ejemplo, en un flujo cuyo conector de entrada sea un HTTP, contendrá las cabeceras de la petición HTTP que inicie el flujo.
  • Payload - que contiene el cuerpo del mensaje. Por ejemplo, tras una invocación a un servicio REST, contendrá la respuesta del mismo.

image

Versiones disponibles

Existen dos versiones de Mule:

  • Mule Community Edition (CE)
  • Mule Enterprise Edition (EE)

Ambas versiones están construidas sobre la misma base de código, por lo que es muy sencillo actualizar aplicaciones desarrolladas para la versión CE a la versión EE. Aunque el proceso contrario puede implicar ciertos desarrollos adicionales, pues hay funcionalidades que sólo están presentes en la versión EE (alta disponibilidad, conectores específicos, módulo batch, scopes de caché y transacciones, Anypoint Platform, soporte…).

Puedes consultar la lista completa de diferencias entre versiones aquí

Hawkore y Mulesoft

Para dotar de funcionalidades adicionales a Mule ESB, desde Hawkore hemos desarrollado varios componentes adicionales con distintas características:

Módulo de clusterización

Mediante esta extensión del core de Mule, Hawkore ha conseguido dotar a Mule de la capacidad de trabajar en clúster con otras instancias, ya estemos trabajando con la versión CE o con la EE (donde sería interesante en el caso de no disponer de licencia para alta disponibilidad). ¡Y sin límite en el número de nodos!

Su instalación es muy sencilla y su uso es completamente transparente para el desarrollador, pues no es necesario realizar ninguna modificación sobre las aplicaciones para que éstas pasen a funcionar dentro del clúster.

Si estás interesado en probarlo, puedes hacerlo aquí.

Conectores adicionales

Apache Ignite & GridGain Connectors

Con los conectores de Apache Ignite y GridGain desarrollados por Hawkore podrás crear aplicaciones Mule con alto nivel de concurrencia y capacidad de escalado horizontal.

Si quieres ampliar la información relacionada con estos conectores e incluso probarlos, puedes hacerlo desde aquí.

Sap Connector

Desde Hawkore hemos desarrollado un conector que permite integrar tus aplicaciones Mule (CE o EE) con SAP ERP Central Component.

Permite la comunicación con SAP a traves de BAPIs y IDocs y está perfectamente integrado con DataSense para que la integración sea aún más sencilla.

Si quieres probarlo, puedes hacerlo aquí.

OData Connector

Con este conector desarrollado por Hawkore podrás integrar tus aplicaciones Mule (CE o EE) con servicios Open Data V2 y V4.

Si crees que puede ser de utilidad en tus proyectos, puedes probarlo aquí.

Transferwise Connector

El conector para Transferwise creado por Hawkore permite acceder a todas las posibilidades de la API de Transferwise desde tus aplicaciones Mule (CE o EE).

Puedes probarlo aquí.

Conclusiones

La mayoría de empresas quieren reducir el tiempo de desarrollo de las integraciones con sistemas externos y la dificultad del mantenimiento de las mismas. Aquí es donde Mule ESB puede ser de gran ayuda, pues utilizando los conectores ya incluídos en el propio producto, los añadidos por Hawkore u otros desarrolladores, o los de desarrollo propio, se puede construir una red de aplicaciones altamente escalable y con un alto nivel de reutilización.


  1. 1.Mule ESB se distribuye bajo los terminos de licencia CPAL (Common Public Attribution License). Para información sobre el tipo de licencia bajo el que se rigen cada una de las librerías de terceros utilizadas por Mule, consultar la siguiente url
  2. 2.Arquitectura propuesta por MuleSoft para el desarrollo de entornos altamente escalables y con gran reutilización de componentes. Más información aquí.