12/13/2012

Entrenamiento Mule ESB en Banco Central de Venezuela

Hace algunos meses tuve la experiencia de dictar un entrenamiento de Mule ESB en el Banco Central de Venezuela para un proyecto integración de gran envergadura. Durante el intercambio de experiencias en el campo de integración, el equipo de trabajo enriqueció muchos conceptos, que quisimos compartir con la comunidad.  Mule ESB es una plataforma de integración ligera basada en Java que permite conectar  aplicaciones de forma rápida y sencilla, actuando como un sistema de transporte e intercambio de datos. En líneas generales se utiliza un bus de servicios cuando se requiere:
  1. La creación y alojamiento de servicios web reutilizables en un contenedor de servicios ligero.
  2. El enrutamiento de mensajes, para enrutar, filtrar, agregar, y redirigir mensajes entrantes o salientes basados en su contenido o en reglas.
  3. La transformación e intercambio de datos a través de distintos formatos y protocolos de transporte.
  4. Servicios de mediación para el manejo de formatos, mensaje y protocolos, además de lógicas de integración.
Cuando debemos utilizar un ESB?
  1. Cuando se requiere la integración de 3 o más aplicaciones o servicios.
  2. Cuando se requiere conectar más aplicaciones en un futuro.
  3. Cuando es necesario utilizar más de un tipo de protocolo de comunicación.
  4. Cuando se requiere capacidades de enrutamiento de mensajes, tales como bifurcación y agregación de flujos de mensajes, o enrutamiento basado en contenido.
  5. Cuando es necesario  publicar los servicios destinados al consumo de otras aplicaciones
Recomendaciones para el uso de Mule ESB
  1. El patrón de intercambio seleccionado para un flow o flujo incide en el número de hilos que mule utiliza para la ejecución de servicios de integración. Si el patrón es Request-Response, este se desarrolla sobre un solo hilo; si el patrón es Onew-Way se desarrolla sobre un pool de hilos (inbound, core y outbount). Es necesario considerar esta política durante el diseño de los servicios.
  2. Por defecto Mule ESB solo gestiona 16 hilos, por ende, es importante monitorear el número de hilos y aumentarlo según la demanda de un servicio de integración específico.
  3. Mule ESB proporciona patrones de configuración, que están optimizados para casos comunes de procesamiento de mensajes. Los cuatro patrones de configuración incluidos en Mule son: Servicio simple (componente que expone servicios web SOAP/ JAX-WS , beans, REST/JAX-RS, JAXB, XML y el contenido de simples componentes POJO), Web Service Proxy ( Proxies de servicios web remotos que pueden realizar transformaciones), Bridge ( establecen un canal de comunicación directo entre un endpoint de entrada y uno de salida), por ultimo Validador (Valida los mensajes entrantes contra un filtro de aceptación definido. Devuelve una respuesta ACK o NACK sincrónica y envía mensajes válidos de forma asíncrona).
  4. Utilice el Scope Pool para ajustar el desempeño de un servicio de integración mediante pool de objetos.
  5. Utilice wiretap para realizar auditorías en los flows o flujos de servicios.
  6. Si requiere utilizar multiples entradas en un mismo flow utilice composite source.
  7. Si requiere establecer rutas alternativas al fallar una rama de ejecución utilice first successfull.
  8. Si requiere reorganizar la secuencia de mensajes utilice un resequencer.
  9. Si va a realizar mapeo recomiendo utilizar smooks y dozer.
  10. La información del header de un mensaje en el inbound no se propaga al siguiente flow, solo de outbound a inboud, considere esta característica cuando diseñe sus servicios.
Agradezco al equipo que con su participacion y observaciones enriquecieron los talleres.


Ejemplo: Como enviar un mensaje a multiples destinos.
 
 Ejemplo: Como realizar el procesamiento de una coleccion de datos.

 Ejemplo: Como exponer un servicio web implementado en un POJO.

  Ejemplo: Como filtrar el mensaje entrante de un servicio.

  Ejemplo: Como realizar auditorias a un servicios de integracion:

Saludos;

1 comentario:

Unknown dijo...

Muy buena la información publicada, felicitaciones y continua cosechando éxitos.