PATRÓN
Un patrón es una solución general para un problema que aparece con frecuencia en un dominio determinado.
Un patrón no es una solución completa sino un una guía/esqueleto que debe ser adaptado para cada problema específico.
MENSAJERÍA
La mensajería permite la comunicación asíncrona entre dos aplicaciones, las aplicaciones se comunican mediante un canal (message BUS) por donde las aplicaciones envían sus mensajes, este canal recolecta los mensajes que pueden ser compartidos por múltiples aplicaciones a la vez. Las aplicaciones pueden ser de tipo productor (crea el mensaje) y consumidor o receptor (recibe el mensaje). Los mensajes tienen una estructura de datos (encabezado, propiedades y cuerpo), estos pueden ser desde texto plano hasta archivos XML,JSON, Etc.
PATRONES DE DISEÑO PARA SERVICIOS DE MENSAJERÍA
Los patrones basados en mensajes se asemejan en cierta forma a los patrones orientados a servicios. Sin embargo, existe una diferencia clave en la forma en que podemos pensar en ellos. En el modelo orientado al servicio, nos enfocamos generalmente en el suministro de servicios que pueden ser consumidos por muchos 'clientes', es decir, tomamos una posición de proveedor a consumidor. En un modelo orientado a los mensajes, solemos enfocarnos mucho más en los datos que fluyen a través del sistema y al conjunto de acciones que deben ser aplicadas a estos datos en curso; es decir, tomamos una postura de productor a consumidor.
Mensaje
Si tenemos una empresa que tiene dos aplicaciones separadas podemos comunicarlas a través de mensajes, usando un canal de mensajes que los conecta. Esto se logra empaquetando la información como un mensaje, el cual es un registro de datos que el sistema de mensajería puede transmitir a través de un canal de mensajes.
Message Channel
Tiene como objetivo conectar dos aplicaciones mediante un sistema de mensajería.
Se utiliza este estilo para dividir una tarea de procesamiento más grande en una secuencia de pasos más pequeños, independientes de procesamiento (filtros) que están conectados por canales (tuberías).
Content-Based Router
Se encarga de examinar el contenido de un mensaje para distribuirlo por diferentes canales en función de los datos que componen dicho mensaje. Una propiedad fundamental del mensaje Router es que no modifica el contenido del mensaje. Sólo se ocupa del destino del mensaje.
Recipient List
Encaminar un mensaje a una lista de suscriptores del mismo. Este proceso se puede dividir en 2 partes: La primera parte calcula una lista de destinatarios. La segunda parte sencillamente recorre la lista y envía una copia del mensaje recibido a cada destinatario. Al igual que un Content-Based Router, la lista de destinatarios no suelen modificar el contenido del mensaje.
Message Endpoint
Es la interfaz entre una aplicación y un sistema de mensajería. Se puede tener un punto final remitente, a veces llamado un proxy o un consumidor de servicios, que es el responsable de enviar en los mensajes, y un extremo receptor, a veces llamado endpoint o servicio, que se encarga de recibir los mensajes.
Splitter
Se utiliza para descomponer un mensaje que contiene una lista de elementos repetitivos, para que estos puedan ser procesados de forma individual.
Aggregator
Se encarga de combinar varios mensajes individuales pero que se relacionan entre ellos en un único mensaje para que puedan ser procesados de una forma global.
Message Translator
Transformación de un mensaje en otro para que pueda ser usado en un contexto diferente.
Scatter-Gather
El Scatter-Gather enruta mensajes solicitados a un número de destinatarios. A continuación, utiliza un agregador para recoger las respuestas y se las consolida en un único mensaje de respuesta.
VENTAJAS MESSAGING
El emisor desconoce quien, como y cuando se recibirá el mensaje, por lo que al no existir receptor o no estar disponible, el emisor no se ve afectado.
Permite la comunicación entre distintos equipos distribuidos con distintos sistemas operativos y lenguajes
Es asíncrona, el emisor de un mensaje no tiene que esperar que el receptor reciba el mensaje, una vez la aplicación envía el mensaje, esta sigue con el resto de sus tareas, el emisor solo espera que el mensaje llegue al sistema de mensajería.
Una vez el mensaje ingresa al sistema de mensajería este debe garantizar que el mensaje sea recibido, lo mantendrá encolado hasta que el destinatario lo pueda recibir
DESVENTAJAS MESSAGING
Algunas aplicaciones requieren recibir los mensajes en secuencia, el sistema de mensajería puede asegurar que los mensajes serán correctamente entregados pero no garantiza que estos sean entregados en una secuencia esperada por el receptor
Utilizar un sistema de mensajería, agrega procesamiento extra.
Muchas veces se necesita invertir en hardware o procesamiento adicional.
Referencias:
http://www.enterpriseintegrationpatterns.com/toc.html
Utilizar un sistema de mensajería, agrega procesamiento extra.
Muchas veces se necesita invertir en hardware o procesamiento adicional.
Referencias:
http://www.enterpriseintegrationpatterns.com/toc.html
No hay comentarios.:
Publicar un comentario