Un poco de Spring Integration

Spring Integration brinda una extensión a Spring para facilitar el desarrollo de soluciones de integración soportando los Patrones de Integración Corporativos (EAI).

Puede verse como un ESB ligero montado sobre el contenedor de Spring y por tanto independiente del AppServer

Soporta estos casos de uso:

  • Transformar mensajes: permite cambiar el contenido o cabeceras de un mensaje antes de pasarlo a otro endpoint
  • Rutear mensajes: permite establecer lógica de ruteado (pj pasar de un input channel a varios output channels)
  • Filtrar mensajes: datos que no deben procesarse
  • Adaptar mensajes entre sistemas cambiando el mecanismo de comunicación
  • Split mensajes cuando el mensaje es demasiado grande
  • Agregar mensajes: generar un mensaje agregado en base a varios

En cuanto a Patrones de Integración soporta:

· Patrones de Interacción: permite a los despachar mensajes o recibirlos

· Patrones de mediación: Transforman mensajes al vuelo

· Patrones compuestos: combinaciones entre patrones de interacción y mediación

Los principales conceptos de Spring Integration son (ya los contamos en este post)

· Message:contenedor de datos (Payload) y cabecera (Header) que provee propiedades de mensajería (id, id de correlación, expiración, url de retorno,…).

· Channel: representa un canal lógico por donde se reciben o se envían mensajes.

Provee métodos para enviar (send) y recibir (receive)

Hay canales de tipo Punto a punto y Publish-Suscribe:

· Channel Adapter representa el adaptador entre el canal lógico (MessageChannel) y una implementación física de ese canal.

Hay adaptadores para ficheros, UDP, TCP, HTTP, RSS/ATOM, Web Services, Mail, JMS, JDBC, RMI, JMX, Mongo, Twitter,…

Por ejemplo:

O:

  • Message Endpoint Conecta un Handler a un MessageChannel de entrada o/y a uno de salida.

Hay diferentes tipos como:

  • Channel Adapter

  • Service Activator: invoca un servicio en base a un mensaje de entrada y envía un mensaje de salida con el resultado

  • Gateway

  • Routers, Splitters, Agregadores, Transformadores

Soporte Herramientas

Spring Integration está soportado por STS (Spring Tool Suite), que permite modelar visualmente los flujos:

Esquema de uso:

Otro ejemplo:

En STS este modelado

Corresponde con:

Algo más complejo:

Algunos componentes:

jdbcInbound:

wsOutbound:

Filter:

Splitter:

Transformer:


Deja un comentario