Patrones Esenciales de Mensajería para la Integración de Sistemas Distribuidos
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 4,04 KB
Tipos de Mensajes Fundamentales
Mensaje Comando
Un mensaje comando permite invocar un procedimiento (rutina) en otra aplicación.
- El mensaje debe incluir el nombre del procedimiento.
- Los parámetros necesarios.
Mensaje Documento
Un mensaje documento permite transmitir información estructurada entre aplicaciones.
El formato puede ser de cualquier tipo:
- XML
- SOAP
- Largo Posición (Fixed-Length)
- etc.
Mensaje Evento
Un mensaje evento permite efectuar notificaciones en modalidad asíncrona entre aplicaciones.
La diferencia con un mensaje documento es que aquí sí importa el tiempo del evento.
Gestión y Estructura del Mensaje
Paquete (Fragmentación)
Una aplicación puede requerir enviar una cantidad muy grande de datos. Una solución es dividir los datos en paquetes más pequeños, utilizando un mensaje para cada uno.
Para coordinar la transmisión, cada mensaje debe incluir:
- Identificador del mensaje.
- Identificador de la secuencia (1, 2, 3...).
- Tamaño de datos en el mensaje y/o indicador de fin de paquete.
Expiración (Time-to-Live)
La expiración permite especificar el tiempo de vida de un mensaje.
Cumplido ese tiempo, si el mensaje no ha sido entregado, dependiendo del sistema de mensajería, el mensaje puede ser eliminado o enviado a una cola de Dead Letter.
Patrones de Enrutamiento y Distribución
Lista de Distribución
Permite enviar una copia de un mensaje a cada uno de los destinatarios asociados a la lista de distribución.
Puede ser una opción válida en casos en que el sistema de mensajería no soporte Publish-Subscribe (uso de cola de control).
Mensaje Broker
Este patrón permite recibir mensajes desde múltiples orígenes, determinar el destino y enrutar el mensaje a la cola correcta.
Para su implementación, utiliza otros patrones de enrutamiento.
Patrones de Transformación y Procesamiento
Splitter
Si un mensaje contiene múltiples elementos, el patrón Splitter permite dividir el contenido de manera que cada parte del mensaje sea procesada de una manera diferente.
Aggregator
Permite agrupar un conjunto de mensajes relacionados para generar un único mensaje de salida. Cada mensaje recibido es almacenado temporalmente.
Estrategias sobre la condición de completitud:
- Wait for all: Espera todas las respuestas.
- Timeout: Espera respuestas por un tiempo dado.
Resequencer
Permite agrupar y reordenar un conjunto de mensajes, de manera que sean publicados en la cola de salida en el orden correcto.
Para realizar esto, cada mensaje debe tener un número de secuencia único (distinto del Message ID o Correlation ID provisto por el sistema de mensajería).
Enriquecedor (Content Enricher)
Este componente accede a una base de datos externa para enriquecer el mensaje con información adicional.
Otras variantes para obtener la información adicional son:
- Cálculo interno.
- Ambiente de ejecución.
- LDAP, archivos.
Reductor (Content Filter)
Este componente elimina información no relevante, dejando un mensaje con solamente las partes importantes.
Adicionalmente, puede simplificar la estructura del mensaje (Largo Posición, XML).
Claim Check
Permite reducir el tamaño de un mensaje sin perder información. Para ello, almacena los datos del mensaje en un repositorio persistente y le asocia una llave.
Para recuperar el mensaje original, se busca la información en el repositorio utilizando la llave.
Normalizador
Un Normalizador permite procesar mensajes que semánticamente son equivalentes, pero con formatos distintos.
Para ello, utiliza un enrutador que deriva el mensaje al traductor apropiado.