MuleSoft - Introducción a Mule ESB
ESB significa Enterprise Service Busque es básicamente una herramienta de middleware para integrar varias aplicaciones juntas sobre una infraestructura similar a un bus. Fundamentalmente, es una arquitectura diseñada para proporcionar un medio uniforme de mover el trabajo entre aplicaciones integradas. De esta forma, con la ayuda de la arquitectura ESB podemos conectar diferentes aplicaciones a través de un bus de comunicación y permitir que se comuniquen sin depender unas de otras.
Implementación de ESB
El enfoque principal de la arquitectura ESB es desacoplar los sistemas entre sí y permitirles comunicarse de manera constante y controlable. La implementación de ESB se puede realizar con la ayuda de‘Bus’ y ‘Adapter’ de la siguiente manera -
El concepto de "bus", que se logra a través de un servidor de mensajería como JMS o AMQP, se utiliza para desacoplar diferentes aplicaciones entre sí.
El concepto de “adaptador”, responsable de comunicarse con la aplicación backend y transformar los datos del formato de la aplicación al formato del bus, se utiliza entre las aplicaciones y el bus.
Los datos o mensajes que pasan de una aplicación a otra a través del bus tienen un formato canónico, lo que significa que habría un formato de mensaje coherente.
El adaptador también puede realizar otras actividades como seguridad, monitoreo, manejo de errores y administración de enrutamiento de mensajes.
Principios rectores de ESB
Podemos llamar a estos principios como principios básicos de integración. Son los siguientes:
Orchestration - Integración de dos o más servicios para lograr la sincronización entre datos y proceso.
Transformation - Transformar datos de formato canónico a formato específico de la aplicación.
Transportation - Manejo de negociación de protocolos entre formatos como FTP, HTTP, JMS, etc.
Mediation - Proporcionar múltiples interfaces para admitir múltiples versiones de un servicio.
Non-functional consistency - Proporcionar mecanismo para gestionar transacciones y seguridad también.
Necesidad de ESB
La arquitectura ESB nos permite integrar diferentes aplicaciones donde cada aplicación puede comunicarse a través de ella. A continuación se presentan algunas pautas sobre cuándo utilizar ESB:
Integrating two or more applications - El uso de la arquitectura ESB es beneficioso cuando existe la necesidad de integrar dos o más servicios o aplicaciones.
Integration of more applications in future - Supongamos que si queremos agregar más servicios o aplicaciones en el futuro, entonces se puede hacer fácilmente con la ayuda de la arquitectura ESB.
Using multiple protocols - En caso de que necesitemos utilizar varios protocolos como HTTP, FTP, JMS, etc., ESB es la opción correcta.
Message routing - Podemos usar ESB en caso de que necesitemos un enrutamiento de mensajes basado en el contenido del mensaje y otros parámetros similares.
Composition and consumption - ESB se puede utilizar si necesitamos publicar servicios para composición y consumo.
Integración P2P frente a integración ESB
Con el aumento en el número de aplicaciones, una gran pregunta frente a los desarrolladores era cómo conectar diferentes aplicaciones. La situación se manejó codificando manualmente una conexión entre varias aplicaciones. Se llamapoint-to-point integration.
Rigidityes el inconveniente más obvio de la integración punto a punto. La complejidad aumenta con el mayor número de conexiones e interfaces. Las desventajas de la integración P-2-P nos llevan a la integración ESB.
ESB es un enfoque más flexible para la integración de aplicaciones. Encapsula y expone la funcionalidad de cada aplicación como un conjunto de capacidades reutilizables discretas. Ninguna aplicación se integra directamente con otra, sino que se integran a través de un ESB como se muestra a continuación:
Para gestionar la integración, ESB tiene los siguientes dos componentes:
Service Registry- Mule ESB tiene Registro / Repositorio de Servicios donde se publican y registran todos los servicios expuestos en el ESB. Actúa como un punto de descubrimiento desde donde se pueden consumir los servicios y capacidades de otras aplicaciones.
Centralized Administration - Como su nombre lo indica, proporciona una vista de los flujos transaccionales de desempeño de las interacciones que ocurren dentro del ESB.
ESB Functionality- La abreviatura VETRO se utiliza generalmente para resumir la funcionalidad de ESB. Es como sigue:
V(Validar): como su nombre lo indica, valida la validación del esquema. Requiere un analizador de validación y un esquema actualizado. Un ejemplo es un documento XML que confirma un esquema actualizado.
E(Enriquecer): agrega datos adicionales a un mensaje. El propósito es hacer que el mensaje sea más significativo y útil para un servicio objetivo.
T(Transformar) - Convierte la estructura de datos a un formato canónico o de un formato canónico. Algunos ejemplos son la conversión de fecha / hora, moneda, etc.
R(Enrutamiento): enrutará el mensaje y actuará como guardián del punto final de un servicio.
O(Operar): el trabajo principal de esta función es invocar el servicio de destino o interactuar con la aplicación de destino. Corren en el backend.
El patrón VETRO proporciona flexibilidad general para la integración y asegura que solo los datos consistentes y validados serán enrutados a través del ESB.
¿Qué es Mule ESB?
Mule ESB es una plataforma de integración y bus de servicio empresarial (ESB) basada en Java ligera y altamente escalable proporcionada por MuleSoft. Mule ESB permite al desarrollador conectar aplicaciones de forma fácil y rápida. Independientemente de las diversas tecnologías utilizadas por las aplicaciones, Mule ESB permite una fácil integración de las aplicaciones, lo que les permite intercambiar datos. Mule ESB tiene las siguientes dos ediciones:
- Edición de la comunidad
- Edición de Empresa
Una ventaja de Mule ESB es que podemos actualizar fácilmente de la comunidad Mule ESB a la empresa Mule ESB porque ambas ediciones se basan en una base de código común.
Características y capacidades de Mule ESB
Mule ESB posee las siguientes características:
- Tiene un diseño gráfico simple de arrastrar y soltar.
- Mule ESB es capaz de mapear y transformar datos visuales.
- El usuario puede obtener la facilidad de cientos de conectores certificados prefabricados.
- Seguimiento y administración centralizados.
- Proporciona sólidas capacidades de aplicación de la seguridad empresarial.
- Proporciona la facilidad de gestión de API.
- Hay una puerta de enlace de datos segura para la conectividad en la nube / local.
- Proporciona el registro de servicios donde se publican y registran todos los servicios expuestos en el ESB.
- Los usuarios pueden tener el control a través de una consola de administración basada en web.
- La depuración rápida se puede realizar mediante el analizador de flujo de servicios.