Middleware de Mensajería: Definición, Características y Conceptos Básicos
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 6,55 KB
MiddleWare de Mensajería
Definición: Message Oriented Middleware (MOM) es uno de los más utilizados en integración de aplicaciones
- Provee un mecanismo de comunicación asíncrona basado en el encolamiento de mensajes (Message Queuing)
- Administra el envío y entrega de mensajes. Su tarea principal es asegurar que este proceso sea realizado de una manera confiable
Características
El objetivo principal de un middleware de mensajería es transmitir mensajes desde un computador a otro
- Cuando una aplicación envía un mensaje, la aplicación receptora no necesariamente debe estar disponible
- Aún cuando ambas aplicaciones se encuentren disponibles, pueden existir problemas de red que impidan la transmisión de un mensaje
- Un sistema de mensajería debe superar estas limitaciones intentando reenviar el mensaje hasta que sea logrado
Transmisión de Mensaje
En esencia, un mensaje es enviado en cinco pasos:
- Creación: el emisor crea el mensaje adjuntando datos
- Envío: el emisor coloca el mensaje en un cola
- Entrega: el sistema de mensajería mueve el mensaje desde el computador del emisor al computador del receptor, dejándolo disponible para su recepción
- Recepción: El receptor lee el mensaje desde un cola
- Procesamiento: El receptor procesa la data desde el mensaje
Conceptos Básicos
Colas
Una vez que se está disponible un sistema de mensajería, se requiere un medio físico para la transmisión de mensajes entre dos aplicaciones
- Para que dos aplicaciones se puedan comunicar, ambas deben utilizar la misma cola
- La aplicación emisora no sabe necesariamente cual es la aplicación receptora. Lo mismo aplica en sentido inverso
Mensaje
Aplicaciones empaquetan información dentro de un mensaje, que corresponde a datos que un sistema de mensajería puede transmitir desde un emisor a un receptor a través de un canal
- Un mensaje consiste de dos partes:
- Header: información usada por el sistema de mensajería que describe la data transmitida, su origen, destinos, etc
- Body: Contiene la data a ser transmitida entre dos aplicaciones. El sistema de mensajería conserva su integridad y formato durante la transmisión
Filtro
Los filtros son utilizados para dividir el procesamiento de un mensaje en tareas más pequeñas, independientes, que son conectadas a través de una cola
- Un filtro recibe un mensaje desde una cola, procesa el mensaje y lo coloca en un cola de entrada a otro filtro
Enrutadores
Un enrutador (Router) es un filtro especial, el cual consume un mensaje desde una cola y lo republica en otra, dependiendo de ciertas reglas
- Se diferencia de un Filtro dado que conecta múltiples colas de salida
- El beneficio principal de usar un enrutador es que las reglas para decidir el destino de un mensaje reside en un solo lugar
Transformador
Un transformador es un filtro especial que traduce un tipo de formato en otro
- Permite que aplicaciones con modelos de datos diferentes puedan ser integradas
- Permite que aplicaciones con interfaces propietarias puedan ser accesadas por otras aplicaciones
Niveles de Transformación
Estructuras de datos:
- Entidades, relaciones, cardinalidad
- Tipos de datos:
- Nombres, tipos y dominios de datos, códigos
- Representación de datos:
- XML, largo posición, uso de separadores, propietario
- Transporte:
- Protocolos de comunicación: TCP/IP, HTTP, SOAP
End Points
Endpoints permiten a las aplicaciones conectarse a un sistema de mensajería para enviar o recibir mensajes
- Una aplicación no necesita conocer el formato, cola utilizada, ni otros detalles de comunicación con otras aplicaciones a través del sistema de mensajería
- Un endpoint utiliza la API del sistema de mensajería. Si el sistema de mensajería cambia, sólo es necesario modificar el endpoint, no las aplicaciones
- Un endpoint puede servir para enviar o recibir mensajes, o ambas tareas
Patrones de Diseño
Los patrones describen un problema y qué hacer para solucionarlo
- Los patrones permiten tomar decisiones que conduzcan a una buena solución, sin necesidad de tener un conocimiento o experiencia para desarrollar una solución particular
Point to Point
Este tipo de colas permite asegurar que solamente un receptor recibirá un mensaje particular
- Si más de un receptor intenta obtener un mensaje (Competing Consumers), el sistema de mensajería asegura que solo uno podrá obtener un mensaje a la vez
Publish Subscribe
Una aplicación se suscribe para recibir solo mensajes que cumplan ciertas condiciones
- Cuando una aplicación publica un mensaje, un copia de éste es entregado a todas las aplicaciones suscritas
Request Reply
Permite que una aplicación pueda enviar un mensaje y esperar la respuesta desde el receptor
- Puede ser implementado tanto en modalidad síncrona como asíncrona
- Utiliza una cola para el requerimiento (request) y otra para la respuesta (reply)
Reply to Q
Para evitar tener fija (âhard codeâ) la cola de respuesta, el mensaje de requerimiento debe indicar cuál es la cola donde desea la respuesta
- Implementa el mismo concepto del campo Reply-To de un mensaje de correo electrónico
Correlation ID
Cuando llega una respuesta, cómo sabe el emisor que esa respuesta corresponde al requerimiento previamente enviado?
- Para solucionarlo, cada mensaje debe contener un correlativo único (correlation id). El receptor debe replicar el identificador en el mensaje de respuesta
Mensajes Inválidos
En teoría, una aplicación espera cierto tipo de datos con un formato dado
- Si la aplicación receptora no puede procesar el mensaje debido a que la data asociada no es válida, se envía ese mensaje a una cola especial
- Esta cola actúa como âlogâ, permitiendo identificar situaciones anómalas
Dead Letter
Si una aplicación no puede procesar un mensaje, éste se deja en una cola de mensajes inválidos
- Sin embargo, puede ocurrir que este mensaje no pueda ser entregado. En tal caso, este mensaje es derivado a una cola especial llamada âDead Letterâ