Patrones EAI (I)

Comenzamos hoy con una serie de entradas que resumen los patrones EAI (Enterprise Application Integration) actuales.

Estos patrones documentan las prácticas de integración de aplicaciones mediante paso de mensajes (es decir, utilizando middleware de tipo MOM) más habituales y sirven de gran ayuda a la hora de abordar un proyecto de integración o interoperabilidad.

Los patrones de EAI se agrupan en categorías que representan diferentes tipos de problema y resumen los distintos tipos de soluciones exploradas hasta el momento. Actualmente son seis categorías y estos son los patrones para la primera de ellas, Message Endpoints, que describe las diferentes maneras de conectar las aplicaciones con los sistemas de mensajes, es decir, define cómo las aplicaciones pueden enviar y recibir mensajes: de manera síncrona o asíncrona, directamente o a través de algún bloque de código con funciones concretas, recibiendo todos los mensajes o utilizando algún tipo de filtro, etc.

  • Messaging Gateway: El código necesario para enviar y recibir mensajes está separado del resto de la aplicación.
  • Messaging Mapper: Existe un bloque de código encargado de convertir los objetos de negocio al formato necesario para acceder a la infraestructura de mensajería y viceversa.
  • Transactional client: El acceso al sistema de mensajería para enviar y recibir mensajes se contempla como una transacción explícita por parte de las aplicaciones.
  • Polling Consumer: Para recibir los mensajes se necesita una comprobación por parte del receptor para ver si hay mensajes pendientes.
  • Event-driven Consumer: El sistema de mensajería activa un evento para avisar al receptor de al llegada de un nuevo mensaje.
  • Competing Consumer: Varios receptores conectados a un mismo canal pueden recibir los mensajes que llegan por él. Deben competir por recibirlos, porque una vez entregado un mensaje en un receptor, no llega a los demás.
  • Message Dispatcher: Varios receptores conectados a un mismo canal pueden recibir los mensajes que llegan por él. Entre ellos y el canal se coloca un repartidor que recibe los mensajes y los entrega al receptor adecuado en cada caso.
  • Idempotent Receiver: Un receptor puede recibir el mismo mensaje en múltiples ocasiones sin que esto afecte al funcionamiento de la aplicación.
  • Service Activator: La recepción del mensaje se hace en un activador que invoca a un servicio concreto o al servicio que haya pedido el mensaje.
  • Selective Consumer: El receptor filtra los mensajes recibidos por el canal de manera que sólo procesa aquéllos que cumplen sus criterios de búsqueda.
  • Durable Subscriber: Cuando se utilizan sistemas de publicación y suscripción, este tipo de endpoint permite guardar los mensajes que se han publicado mientras el receptor estaba desconectado para que no se pierdan.
Para obtener más información acerca de estos patrones (los más complicados se entienden muy bien con los diagramas), os dejo el siguiente enlace, en el que también tenéis la información del libro en el que están publicados los patrones:

http://www.eaipatterns.com
aaa

No hay comentarios: