Publicação/assinatura é um estilo de aplicativo de mensagem no qual os fornecedores de informações (publicadores) são desacoplados dos consumidores dessas informações (assinantes) utilizando um intermediário.
Em um sistema de Publicação/Assinatura, um publicador não necessita saber quem utiliza as informações (publicação) que ele fornece, e um assinante não necessita saber quem fornece as informações que ele recebe como resultado de uma assinatura.
Compare isso com um estilo ponto-a-ponto de aplicativo de mensagens, no qual o aplicativo que envia as mensagens precisa conhecer os destinos das mensagens que ele envia.
Os intermediários de mensagens se certificam de que as mensagens cheguem no destino correto e sejam transformadas para o formato requerido em cada destino.
A figura a seguir mostra o aplicativo de publicação/assinatura mais simples. Há um publicador, um intermediário e um assinante. Uma publicação é enviada do publicador ao intermediário, uma assinatura é enviada do assinante ao intermediário e a publicação é, então, enviada do intermediário ao assinante.
Contudo, um sistema típico de Publicação/Assinatura tem mais de um publicador e mais de um assinante, e muitas vezes mais de um intermediário. Um aplicativo pode ser publicador e assinante.
O publicador gera uma mensagem que deseja publicar e define o tópico da mensagem. Um fluxo de mensagens em execução no intermediário recupera a mensagem de seu nó input e transmite a mensagem para um nó Publication para distribuição a todos os assinantes com interesse registrado no tópico.
O nó de entrada pode ser um dos seguintes nós internos:
Um assinante registra um pedido para uma publicação, especificando um dos seguintes itens:
Consulte Tour Rápido para obter uma ilustração de como um sistema Publicação/Assinatura funciona.