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â

Entradas relacionadas: