330 likes | 513 Views
ESB. Víctor Cabrera Cañizares. ESB. Enterprise Service Bus. Un ESB nos ofrece todas las herramientas y la infraestructura necesarias para construir un SOA (Service Oriented Architectures).
E N D
ESB Víctor Cabrera Cañizares
ESB Enterprise Service Bus Un ESB nos ofrece todas las herramientas y la infraestructura necesarias para construir un SOA (Service Oriented Architectures) Es la plataforma que brinda los servicios de enrutamiento y transformación de mensajería para la arquitectura SOA Problemas de interoperabilidad entre implementaciones de distintos fabricantes
ESB • También conocido como message broker. • Es un estándar abierto basado en mensajería síncrona o asíncrona como elemento middleware, que proporciona interoperabilidad segura entre aplicaciones de empresa por medio de XML, interfaces de Servicios Web y reglas de enrutamiento estandarizado de documentos. • Método unificado de interactividad con formato de datos de fuentes dispares. • El diseño multilenguaje y multiplataforma de un ESB permite a las empresas procesar datos entre aplicaciones de varias fuentes. • J2EE y .NET.
ESB Funciones clave • Transformación: La capacidad de transformar documentos de un formato de datos a otro de modo que el grupo receptor pueda hacer uso de la interfaz con los datos en un formato de aplicación diferente del que se envió. • Enrutamiento: La habilidad para enrutar mensajes. • Portabilidad: La capacidad de compartir los datos entre diferentes sistemas y entornos de operación. • Balanceo de carga / agrupamiento (Load balancing/clustering): La capacidad de distribuir procesamiento entre varios dispositivos para que ninguno se sobrecargue. • Failover: La capacidad para transferir funciones de mensajería hacia otro servidor si falla uno de ellos durante el intercambio de datos.
ESB Propiedades • Distribuido: Para eliminar restricciones geográficas. • Basado en mensajes: Para proporcionar loose coupling. • Estándar abierto: Para preservar inversión y fomentar la participación.
Implementaciones Open Source Celtix Mule Service Mix
Celtix ------ Componentes principales -------
Configuration Service • Ofrece a los componentes Celtix recuperar datos de configuración sin saber cómo y dónde están almacenados • Plugin Manager • Permite que los plugins se auto-registren al ser cargados • Realiza la carga de plugins dinámicamente • Binding Manager • Un binding, en el contexto, referencia a la cadena de componentes a través de las cuales un mensaje pasa desde el cliente hasta el servidor • El Binding Manager es el responsable de montar los componentes en un binding y linkarlos en una cadena Celtix
Celtix • Dispatcher/Workqueue • Permite el envío eficiente de peticiones y mensajes de respuesta • Proporciona un Workqueue y un pool de hilos para el envío concurrente de mensajes • WSDL Model • Celtix parsea un contrato WSDL y crea un modelo WSDL con el árbol resultante • Este modelo es importante para proporcionar un acceso eficiente en tiempo de ejecución a los datos WSDL • Permite cambiar atributos en tiempo de ejecución
Transport plugins • Permite integrar Celtix con cualquier clase de transporte • El framework para implementar un transporte Celtix debe ser flexible y hacer el mínimo de suposiciones sobre el tipo y transporte subyacente • Request-Level Interceptors • Permite acceder o modificar el contenido de una petición o un mensaje de respuesta • Proporciona acceso a mensajes en un formato de relativo alto nivel • Útiles para la lectura y escritura de cabeceras de mensajes Celtix ------ Plugins e Interceptores -------
Message-Level Interceptors • Proporciona acceso a mensajes en un formato de bajo nivel • Útiles para ciertas tareas como codificación o compresión de mensajes Celtix ------ Plugins e Interceptores -------
Celtix ------ Componentes cliente -------
Celtix ------ Componentes cliente ------- • Cliente Proxy • Expone las mismas operaciones que aquellas definidas en un WSDL type port • El cliente proxy actúa como un sustituto (stand-in) del objeto remoto que en realidad hace el trabajo (el servicio remoto WSDL) • Plugin cliente genérico • Celtix aún no lo ha definido
Celtix ------ Componentes servidor -------
Servant • Objeto que implementa un servicio WSDL • La relación entre un objeto servant y un servicio WSDL es flexible Celtix ------ Componentes servidor -------
Celtix ------ Ejemplo (RequestHandling ) -------
Celtix ------ Ejemplo (RequestHandling ) -------
Celtix ------ Trabajos futuros ------- • Mantiene aún en desarrollo la integración entre Celtix y JBI • Solución 1: Desarrollo de componentes JBI dentro de un contenedor Celtix
Celtix ------ Trabajos futuros ------- • Solución 2: Desarrollo de componentes Celtix dentro de un entorno JBI
Celtix ------ Trabajos futuros ------- • Integración JBI JBI (Java Business Integration), Service Engines (SE) y Binding Components (BC). Los SEs proporcionan lógica de negocio y servicio de transformaciones. Los BCs proporcionan conectividad para aplicaciones que son externas al JBI
Mule • El canal puede tener cualquier método de comunicación de datos entre dos puntos. • El recibidor de mensajes se usa para leer o recibir datos desde una aplicación. • El conector entiende cómo enviar y recibir datos sobre un canal particular. • El transformador se usa para transformar formatos de mensajes. • El inbound router se puede usar para controlar cómo y qué eventos son recibidos por un componente UMO. • El componente UMO es el que procesa la orden. • El outbound router se usa para publicar mensajes/eventos.
Mule ------ Arquitectura ------- • Mule Manager • Su objetivo es gestionar los objetos: • Conectores • Endpoints • Transformadores • Proporciona servicios al Mule Model y los componentes que éste maneja
Mule ------ Arquitectura ------- • Mule Model • Contenedor de los componentes • Controla el flujo de mensajes desde/hacia los componentes • Maneja hilos • Basado en SEDA (staged event-driven architecture)
Mule ------ Arquitectura ------- • Mule Model • Es responsable del mantenimiento de las instancias UMO y su configuración. • Hospeda uno o más componentes UMO. • Encapsula y controla el comportamiento de una instancia de servidor Mule en tiempo de ejecución. • El EntryPointResolver se usa para determinar qué método invocar en un componente UMO cuando se recibe un evento.
Mule ------ Arquitectura ------- • Componente UMO • UMO: Universal Message Object • Son componentes autónomos simples • Envía/Recibe eventos hacia/desde cualquier otro UMO • Ejecuta lógica de negocio sobre un evento de llegada
Mule ------ Arquitectura ------- • Componente UMO
Mule ------ Arquitectura ------- • Componente UMO Ciclo de vida
Mule ------ Interceptores -------
Bibliografía Celtix -> https://wiki.objectweb.org/celtix ServiceMix -> http://www.servicemix.org Mule -> http://mule.codehaus.org/ Para descargar: ServiceMix -> http://www.servicemix.org/Download Mule -> http://mule.codehaus.org/Download Celtix -> http://forge.objectweb.org/project/showfiles.php?group_id=192