Mule ESB Introduccion

  • View
    5.705

  • Download
    0

  • Category

    Travel

Preview:

Citation preview

Ing. Julio CejasJunio 2008

Mule

Enterprise Service Bus

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.

Mule ESB

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.

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

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.

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).

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.

Que es SEDA

Que es SEDA

Tecnologías Soportadas

Mule Demostración A

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.

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.

Mule Componentes

EndPoints.

Routers.

Transformers.

Filters.

Transports.

Connectors.

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.

Mule Componentes

EndPoints.

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.

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.

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.

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.

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.

Mule en un Grafico

Mule ESB

TCP WSDL HTTPS OTROS

Bpel

Engine

JMS

Provider

JBI

Container

Servicio

1

Otras

Instancias

Servicios Externos

Frameworks

Integrados

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

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>

Ejemplo de Configuración

Ejemplo de Configuración

Mule Demostración A

Mule Topologías

Mule Topologías

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

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.

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.

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.

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.

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!.

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.

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.

Mule Demostración A

Exponer un UMO como Web Services

Referencia

Ejemplo 2

Ejemplo 2

Ejemplo 2

Mule ESB y EAI

Referencias

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

Gracias

Gracias

Recommended