47
Ing. Julio Cejas Junio 2008 Mule Enterprise Service Bus

Mule ESB Introduccion

Embed Size (px)

Citation preview

Page 1: Mule ESB Introduccion

Ing. Julio CejasJunio 2008

Mule

Enterprise Service Bus

Page 2: Mule ESB Introduccion

Agenda

1. Historia Mule ESB.2. Necesidad.3. Que es Mule.4. Objetivos de Mule.5. Que es SEDA.6. Tecnologías

Soportadas.7. Demostración 1.

Page 3: Mule ESB Introduccion

Mule ESB

Page 4: Mule ESB Introduccion

Mule Historia

1. La historia comenzó en el 2003.2. Creado por el Ross Mason (CTO de MuleSource).3. Mas de 650,000 downloads.4. Mas de 2000 desarrolladores en lista de usuarios.5. Mas de 500 despliegues en producción.6. Algunos Clientes: Walmart, Citigroup, BofA, JPMC, Verizon, McKesson, Wells

Fargo.

Page 5: Mule ESB Introduccion

La Necesidad…

Soporte de varios protocolos.

Bajo Acoplamiento.

Enrutamiento de mensajes inteligente

Orientado en Eventos. Seguro y transaccional

Soporte de topologías distribuidas

Transformación de Mensajes.

Asegurar Disponibilidad

Page 6: Mule ESB Introduccion

Que es Mule ESB

Mule es un framework ligero de mensajeria basado en el manejo de eventos

Desarrollado para ambientes altamente escalables SEDA (Staged Event Driven Architecture).

Arquitectura basada en Enterprise Service Network.

Posee capacidades de comunicación o canales llamados Endpoints.

Control del flujo de mensajes con MessageRouters: Inbound / Outbound / Response, Routers, Filters, etc.

Page 7: Mule ESB Introduccion

Objetivos de Mule ESB

Exponer Componentes sobre multiples transportes.

Implementar tareas de integración (transformación, adaptación, conexión, etc.).

Desacoplar tecnologías.

Proporcionar una arquitectura altamente escalable.

Acelerar la integración de sistemas heterogéneos.

Incentivar el reuso de aplicaciones existentes.

Disponibilizar de aplicaciones asíncronas.

Proporcionar una arquitectura Altamente escalable (SEDA).

Page 8: Mule ESB Introduccion

Que es SEDA?

SEDA descompone una aplicación en un set de estados conectados por colas.

Este diseño evita el alto overhead asociado con modelos de concurrencia basados en thread, y desacopla los eventos y los thread de la lógica de aplicación.

Para admitir eventos en la cola, el servicio puede ser condicionado para prevenir que la carga que exceda la capacidad del servicio.

SEDA emplea control dinámico automático para entonar parámetros en tiempo de ejecución.

Page 9: Mule ESB Introduccion

Que es SEDA

Page 10: Mule ESB Introduccion

Que es SEDA

Page 11: Mule ESB Introduccion

Tecnologías Soportadas

Page 12: Mule ESB Introduccion

Mule Demostración A

Page 13: Mule ESB Introduccion

Agenda

1. Que son los Universal Message Object (UMO).

2. Mule Componentes.3. Mule en un Grafico.4. Mule Configuración.5. Demostración 2.6. Mule Topologías.7. Mule Flujo de Eventos.8. Demostración 3.9. Mule ESB y EAI.10. Referencias.

Page 14: Mule ESB Introduccion

Universal Message Object (UMO)

Los UMO son JavaBeans Estándares. Un UMO es un tipo de objeto java que puede recibir y enviar eventos.

Los componentes UMO son usualmente objetos de negocio que ejecutan lógica de negocio, en un evento incoming.

Los componentes UMO son usualmente objetos de negocio que ejecutan lógica de negocio, en un evento incoming.

No existe código especifico de Mule, en los componentes

Mule maneja todas los enrutamientos y transformación de eventos a y desde objetos basados en un modelo de configuración.

Page 15: Mule ESB Introduccion

Mule Componentes

EndPoints.

Routers.

Transformers.

Filters.

Transports.

Connectors.

Page 16: Mule ESB Introduccion

Mule Componentes

EndPoints.

Los Endpoint:URIs describe como conectarse a un determinado transporte.Mule URI: scheme://[host][:port]/[endpoint name]/[address]?[params]El schema debe ser siempre establecido.El resto de los parámetros depende de proveedor de transporte.El schema describe cual descriptor del servicio es usado.

Page 17: Mule ESB Introduccion

Mule Componentes

EndPoints.

Page 18: Mule ESB Introduccion

Mule Componentes

Routers.

Un router es un objeto que manipula un mensaje una vez que ha sido recibido por un conector, o puede enviar a otro conector.

Page 19: Mule ESB Introduccion

Mule Componentes

Transformers.

Un transformer opcionalmente cambia los mensajes de entrada y salida de alguna manera.ejemplo: El transformer ByteArrayToString, convierte de arrays de byte en objetos String.

Page 20: Mule ESB Introduccion

Mule Componentes

Filters.

Un filtro puede filtrar opcionalmente los mensajes entrantes o de salida que interactúan con un conectador.Por ejemplo, el “File Provider” viene con un “FilenameWildcardFilter” que restringe cuales archivos pueden ser procesados por un conector basado en patrones de nombre. Por ejemplo solo archivos con extensión .xml pueden ser enrutados. Los Filters son usados en conjunto con los Routers.

Page 21: Mule ESB Introduccion

Mule Componentes

Transports.

Un transport o "provider", es un conjunto de objetos que proporcionan soporte para que Mule pueda manejar transportes y protocolos específicos.Ejemplo: El "Email Provider" provee a Mule un mecanismo para enviar y recibir mensajes vía SMTP, POP y IMAP.

Page 22: Mule ESB Introduccion

Mule Componentes

Connector.

Un connector es el objeto que envía y recibe mensajes a un endpoint.Los conectores son parte de los transports o providers.Por ejemplo: el FileConnector puede leer y escribir archivos en el file system.

Page 23: Mule ESB Introduccion

Mule en un Grafico

Mule ESB

TCP WSDL HTTPS OTROS

Bpel

Engine

JMS

Provider

JBI

Container

Servicio

1

Otras

Instancias

Servicios Externos

Frameworks

Integrados

Page 24: Mule ESB Introduccion

Mule Configuración

<mule-descriptor name="echoService" inboundEndpoint="axis:http://localhost:81/services" implementation="org.mule.components.simple.EchoComponent">

</mule-descriptor>

Servicio disponible: http://localhost:81/services/echoService

Page 25: Mule ESB Introduccion

Mule Configuración

Definición de Interceptores

Definición de Transformers

Globales

Definición de Conectores Globales

<interceptor-stack name="default"><interceptor className="org.mule.interceptors.LoggingInterceptor"/><interceptor className="org.mule.interceptors.TimerInterceptor"/>

</interceptor-stack>

<transformers><transformer name="HttpRequestToSoapRequest" className="org.mule.providers.soap.transformers.HttpRequestToSoapRequest"/> </transformers>

<connector name="SystemStreamConnector" className="org.mule.providers.stream.SystemStreamConnector">

<properties><property name="promptMessage" value="Ingrese el mensaje: "/><property name="messageDelayTime" value="1000"/>

</properties></connector>

Page 26: Mule ESB Introduccion

Ejemplo de Configuración

Page 27: Mule ESB Introduccion

Ejemplo de Configuración

Page 28: Mule ESB Introduccion

Mule Demostración A

Page 29: Mule ESB Introduccion

Mule Topologías

Page 30: Mule ESB Introduccion

Mule Topologías

Page 31: Mule ESB Introduccion

Mule Flujo de Eventos

Inbound Router

Endpoint(Message Receiver)

Interceptor

Inbound Transformer

Service Invocation

Interceptor

Outbound Router

Outbound Transformer

Endpoint(Message Dispatcher)

Un archivo a un directorio.

Un mensaje llegando a un cola de mensajeria.

Un registro de una base de datos.

Datos escritos a un socket

Page 32: Mule ESB Introduccion

Mule Flujo de Eventos

Inbound Router

Endpoint(Message Receiver)

Interceptor

Inbound Transformer

Service Invocation

Interceptor

Outbound Router

Outbound Transformer

Endpoint(Message Dispatcher)

Un inbound router es el primer paso en un mensaje.

funciones típicas:

Filtrado / Correlaciones / enriquecimiento.

Page 33: Mule ESB Introduccion

Mule Flujo de Eventos

Inbound Router

Endpoint(Message Receiver)

Interceptor

Inbound Transformer

Service Invocation

Interceptor

Outbound Router

Outbound Transformer

Endpoint(Message Dispatcher)

Usado para disparar servicios de monitoreo y eventos o para interrumpir el flujo de mensajes.

Un ejemplo es usar un interceptor para autorización el cual verifique que el request posee las credenciales adecuadas para invocar un servicio.

Page 34: Mule ESB Introduccion

Mule Flujo de Eventos

Inbound Router

Endpoint(Message Receiver)

Interceptor

Inbound Transformer

Service Invocation

Interceptor

Outbound Router

Outbound Transformer

Endpoint(Message Dispatcher)

Si los datos en el inbound no se encuentran en el formato adecuado para el servicio, este debe ser transformado en este punto.

Page 35: Mule ESB Introduccion

Mule Flujo de Eventos

Inbound Router

Endpoint(Message Receiver)

Interceptor

Inbound Transformer

Service Invocation

Interceptor

Outbound Router

Outbound Transformer

Endpoint(Message Dispatcher)

El Servicio es invocado.

Page 36: Mule ESB Introduccion

Mule Flujo de Eventos

Inbound Router

Endpoint(Message Receiver)

Interceptor

Inbound Transformer

Service Invocation

Interceptor

Outbound Router

Outbound Transformer

Endpoint(Message Dispatcher)

Ya lo vimos!.

Page 37: Mule ESB Introduccion

Mule Flujo de Eventos

Inbound Router

Endpoint(Message Receiver)

Interceptor

Inbound Transformer

Service Invocation

Interceptor

Outbound Router

Outbound Transformer

Endpoint(Message Dispatcher)

Enviar o despacha los datos a todos los endpoint disponibles.

Page 38: Mule ESB Introduccion

Mule Flujo de Eventos

Inbound Router

Endpoint(Message Receiver)

Interceptor

Inbound Transformer

Service Invocation

Interceptor

Outbound Router

Outbound Transformer

Endpoint(Message Dispatcher)

Cualquier transformación que se necesite hacer sobre el mensaje después que el servicio ha sido ejecutado antes de colocarlo en el endpoint final.

Page 39: Mule ESB Introduccion

Mule Demostración A

Page 40: Mule ESB Introduccion

Exponer un UMO como Web Services

Page 41: Mule ESB Introduccion

Referencia

Page 42: Mule ESB Introduccion

Ejemplo 2

Page 43: Mule ESB Introduccion

Ejemplo 2

Page 44: Mule ESB Introduccion

Ejemplo 2

Page 45: Mule ESB Introduccion

Mule ESB y EAI

Page 46: Mule ESB Introduccion

Referencias

http://mule.codehaus.org/display/MULE/Homehttp://www.enterpriseintegrationpatterns.com/http://sanjaydwivedi.blogspot.com/

Page 47: Mule ESB Introduccion

Gracias

Gracias