Patrón de publicación-suscripción


En la arquitectura de software , publicar-suscribir es un patrón de mensajería en el que los remitentes de mensajes , llamados editores, no programan los mensajes para que se envíen directamente a receptores específicos, llamados suscriptores, sino que clasifican los mensajes publicados en clases sin saber qué suscriptores, si los hay. , puede haber. Del mismo modo, los suscriptores expresan interés en una o más clases y solo reciben mensajes que son de su interés, sin saber qué editores, si los hay.

La publicación-suscripción es un hermano del paradigma de la cola de mensajes y, por lo general, es una parte de un sistema de middleware orientado a mensajes más grande . La mayoría de los sistemas de mensajería admiten los modelos de publicación/suscripción y cola de mensajes en su API ; por ejemplo, el servicio de mensajes de Java (JMS).

Este patrón proporciona una mayor escalabilidad de red y una topología de red más dinámica , con la consiguiente disminución de la flexibilidad para modificar el editor y la estructura de los datos publicados.

En el modelo de publicación-suscripción, los suscriptores normalmente reciben solo un subconjunto del total de mensajes publicados. El proceso de selección de mensajes para su recepción y procesamiento se denomina filtrado . Hay dos formas comunes de filtrado: basado en temas y basado en contenido.

En un sistema basado en temas , los mensajes se publican en "temas" o canales lógicos con nombre. Los suscriptores en un sistema basado en temas recibirán todos los mensajes publicados sobre los temas a los que se suscribieron. El editor es responsable de definir los temas a los que los suscriptores pueden suscribirse.

En un sistema basado en contenido , los mensajes solo se entregan a un suscriptor si los atributos o el contenido de esos mensajes coinciden con las restricciones definidas por el suscriptor. El suscriptor es responsable de clasificar los mensajes.