Download - Mule ESB
Mule ESBSpring Tours UPeU 2009
José Luis Gutiérrez
Descripción General Características de Mule Arquitectura Mule Conceptos Mule Ejemplo/Demo Herramientas Mule
◦ MuleHQ◦ MuleIDE
Agenda
¿Qué es Mule?
Framework de Integración y plataforma de mensajería Open Source.
Estadísticas(desde 1.0)◦ Más de 1,000,000 de descargas◦ Más de 2,500 desarrolladores en lista de usuarios.◦ Más de 2,000 despliegues en producción.◦ Más de 10 millones de vistas del web page, entre
otros.
Información Mule
Descripción General
Soporta una variedad de topología de servicios incluyendo ESB.
Altamente escalable; usando SEDA modelo de eventos. Asíncrono, Síncrono y Request/Response de
mensajería. Soporte J2EE: JBI, JMS, EJB, JCA, JTA, Servlet. Potentes capacidades de enrutamiento de eventos. Amplitud de conectividad (Más de 60 tecnologías). Distribución tranparente. Transacciones: Local y Distribuido(XA). Tolerancia a fallos; Gestión de excepciones- Seguridad; Authentication/Authorization.
SOA Navaja Suiza
No hay formato de mensaje prescrito◦ XML, CSV, Binary, Streams, Record, Java Objects. Mezclar
y combinar. Cero código de intrusión
◦ Mule no impone un API en objetos de servicio◦ Los Objetos son totalmente portables
Existencia de objetos que pueden ser manejados◦ POJOs, IoC Objects, EJB Session Beans, Remote Objects◦ REST Web Services
Fácil de testear◦ Mule puede ser facilmente ejecutado desde Junit test
case.◦ El Framework provee un kit compatible de Test
¿Porque elegir Mule?
Arquitectura de componentes Mule
Configuración en XML◦ Schema no en DTD◦ Configuración específica de Endpoint◦ IDE/Editor amigable, finalización de código
Configuración Java Endpoint para enlaces Java
◦ Metodo asociado a llamadas Endpoint Registro de configuración Mejora de manipulación de Mensajes
◦ Streaming◦ Transformation
Características de configuración
Arquitectura de Nodos Mule
Tecnologías Soportadas
Usa Spring2.x para manejar Namespace Cada modulo tiene su propio Namespace Cada modulo puede definir configuración personalizada
◦ Mule provee un framework para ayudar con consistencia Los Spring Beans pueden ser fácilmente embebidos
◦ Sin problemas para mezclar objectos◦ Objetos desde otros contenedores también son soportados
Seasar Hivemind PicoContainer
Soporta AOP◦ Puede asesorar configuración de objetos
Puede ser usado Spring DAO y JDBC
Configuración XML
No hay nombres de clases Las propiedades son definidas en el
esquema Validación de valor de las propiedades Los namespaces definen los modulos al ser
usados
Configuración Mule 2
Usando diferentes módulos (namespaces)
1. Services 2. Endpoints and Transport Providers 3. Inbound 4. Outbound 5. Transformers 7. Service Manager
Conceptos Mule
En Mule pueden ser objetos - POJOs, EJBs, Remote Objects, WS/REST Services.
Configurado en XML. Mule maneja hilos, Pool y recursos de
administración via JMX.
Services
Se utiliza para conectar los componentes y sistemas externos
Endpoints usa una URI para acceder. Pueden tener transformer, transaction,
filter, security y meta-information asociada. Existen dos tipos de URI
scheme://[username][:password]@[host][:port]?[params]
smtp://ross:pass@localhost:25 scheme://[address]?[params]
jms://my.queue?persistent=true
Endpoints
Controla los eventos que son enviados y recibidos. Se puede modelar todos los patrones de enrutamiento
definido en el libro EIP. Inbound Routers
Idempotency Selective Consumers Re-sequencing Message aggregation
Outbound Routers Message splitting / Chunking Content-based Routing Broadcasting Rules-based routing Load Balancing
Routers
Ejemplo; Amulzon Bookstore
AlmuzonService es un POJO que implementa BookstoreService
Código del servicio
La implementacion (El POJO puede ser manejado por Mule)
Order.class◦ Payment Details◦ Customer Details◦ Ordered Items
ProcessedOrder.class
Objetos de dominio son los mensajes
Configurando Almuzon Bookstore
Exponiendo como un Servicio Web
Exponiendo como un Servicio Web
Llamando a otro servicio
JMS con ActiveMQ y Mule. Servicio Web con Xfire y Mule. Iniciando servicios mediante Quartz y HTTP.
Demo
Monitorea el estado de tus servidores y servicios
Vistas y gráficos de estadísticas para recursos y eventos Mule durante el tiempo.
Auto inventario de servidores y servicios.
Alertas personalizadas para algunos eventos en Mule incluyendo Excepciones, fallas de conexiones y seguridad.
Control total JMX.
MuleQH
MuleHQ Dashboard
Basado en Eclipse IDE
Asistente de proyecto Mule
Configuración Drag and Drop
Editor gráfico extensible
Mule IDE 2.x Eclipse
Referencias
http://www.mulesoft.orghttp://www.mulesoft.org/display/MULE2INTRO/Examples
¿Preguntas?