Mule, el motor de tiempo de ejecución de Anypoint Platform, es un bus de servicios de empresa (ESB) y una plataforma de integración de carácter empresarial y basado en Java que permite a los desarrolladores conectar aplicaciones rápida y fácilmente, lo que habilita el intercambio de datos. Hace posible la integración sencilla de sistemas existentes, independientemente de las diferentes tecnologías que empleen las aplicaciones, incluidas JMS, Web Services, JDBC, HTTP y más. El ESB se puede desplegar en cualquier ubicación, es capaz de integrar y coordinar eventos en tiempo real o por lotes, y tiene conectividad universal.
La principal ventaja de un ESB es que permite que diferentes aplicaciones se comuniquen entre sí, actuando como un sistema de transporte que lleva datos de una aplicación a otra dentro de la empresa o a través de Internet. Mule tiene potentes funciones, entre las que se incluyen las siguientes:
- Creación y alojamiento de servicios: expone y aloja servicios reutilizables, utilizando el ESB como un contenedor de servicios ligero.
- Mediación entre servicios: protege los servicios de protocolos y formatos de mensaje, separa la lógica empresarial de la mensajería y habilita las llamadas de servicio independientes de la ubicación.
- Enrutamiento de mensajes: enruta, filtra, agrega y resecuencia mensajes en función de reglas y del contenido.
- Transformación de datos: intercambia datos de diferentes formatos y protocolos de transporte.
¿Por qué Mule?
Mule es ligero pero altamente escalable, por lo que permite empezar poco a poco y conectar más aplicaciones con el tiempo. El ESB gestiona todas las interacciones entre aplicaciones y componentes de manera transparente, independientemente de si existen en la misma máquina virtual o en Internet, así como del protocolo de transporte subyacente utilizado.
Actualmente, existen varias implementaciones comerciales de ESB en el mercado. Sin embargo, muchas de ellas ofrecen funciones limitadas o se han desarrollado a partir de un servidor de aplicaciones o mensajería ya existente, por lo que el usuario depende de un proveedor específico. Mule no depende de ningún proveedor concreto, por lo que admite la conexión con diferentes implementaciones. Al usar Mule, siempre gozarás de la mayor libertad.
Mule ofrece muchas ventajas respecto a la competencia, entre las que se cuentan las siguientes:
- Los componentes de Mule pueden ser de cualquier tipo. Así, es posible integrar cualquier elemento, desde un «simple objeto Java antiguo» (POJO) hasta un componente de otro marco de trabajo.
- Mule y el modelo ESB posibilitan un grado notable de reutilización de componentes. A diferencia de otros marcos de trabajo, Mule permite usar componentes existentes sin necesidad de cambios. Los componentes no requieren código específico de Mule para ejecutarse en Mule, ni tampoco una API programática. La lógica empresarial se mantiene totalmente aparte de la lógica de mensajería.
- Los mensajes pueden tener cualquier formato, desde SOAP a archivos de imagen binarios. Mule no impone ninguna limitación de diseño al arquitecto, como los contratos de servicio de mensajería XML o WSDL.
- Mule se puede desplegar en una amplia variedad de topologías, no solo en ESB. Gracias a su naturaleza ligera e integrable, Mule puede reducir considerablemente el tiempo de comercialización y aumentar la productividad de los proyectos para ofrecer aplicaciones seguras y escalables capaces de adaptarse a los cambios y ampliar o reducir su escala según las necesidades.
- La arquitectura está basada en eventos por etapas (SEDA) de Mule, lo que la hace altamente escalable. Una importante empresa de servicios financieros procesa miles de millones de transacciones al día gracias a miles de servidores de Mule dentro de un entorno altamente distribuido.
Mule Enterprise
Mule se presenta en dos ediciones diferentes: Community y Enterprise. Enterprise es la versión empresarial del ESB, con funciones adicionales y características ideales para despliegues de producción de Mule con ciertos requisitos de rendimiento, alta disponibilidad, resiliencia o soporte técnico. Tanto Mule Community como Mule Enterprise se han diseñado sobre una base de código común, por lo que ascender de Community a Enterprise es muy sencillo.