Opções para Associar um Namespace de Tópico Permanente a um Espaço de Tópico do Barramento

Ao configurar um namespace de tópico permanente em um serviço WS-Notification, você indica um espaço de tópico do barramento de integração de serviço no qual as mensagens são publicadas em resposta à operação Notify do WSN e a partir do qual elas são recebidas quando correspondem a uma assinatura. É possível criar relacionamentos de muitos para muitos entre o conjunto de namespaces de tópicos permanentes definidos em uma célula (ou seja, para todos os serviços do WS-Notification definidos nessa célula) e os espaços de tópico do barramento de integração de serviço aos quais eles estão associados. Esses relacionamentos podem se tornar muito complexos, dependendo das topologias necessárias pelos aplicativos que se conectam ao serviço do WS-Notification. Este tópico fornece orientação sobre quando determinadas configurações podem ou não ser apropriadas

As opções a seguir estão organizadas em ordem crescente de complexidade. Pense cuidadosamente antes de configurar qualquer coisa, exceto a associação de 1 para 1:

Associação 1 para 1 entre um espaço de tópico de barramento de integração de serviços e um URI de namespace de tópicos

Nesta situação, existe apenas um serviço WS-Notification definido neste barramento ou, se existirem dois serviços WS-Notification definidos, o segundo serviço não conterá um namespace de tópico associado ao mesmo espaço de tópico do barramento de integração de serviço.

Esta configuração oferece a capacidade de os aplicativos WS-Notification inserirem notificações de eventos (ou receber notificações de) no espaço de tópico do barramento de integração de serviço, que pode incluir notificações originadas por outros clientes do barramento.

Em situações em que há diversos serviços WS-Notification definidos em um determinado Barramento, essa associação 1 para 1 garante a separação entre os clientes conectados a cada serviço, ou seja, nenhuma notificação de eventos inserida pelo uso do primeiro serviço WS-Notification será recebida pelos aplicativos conectados por meio do segundo serviço WS-Notification. Observe que esse padrão de separação é uma das razões para criar dois serviços do WS-Notification no mesmo barramento.

Associação muitos para 1 entre um espaço de tópico de barramento de integração de serviços e um URI de namespace de tópico

Neste caso, um único URI de namespace de tópico foi associado a vários espaços de tópicos do barramento de integração de serviço. Isto pode ocorrer apenas se vários serviços WS-Notification tiverem sido definidos, porque um URI de namespace pode ser associado apenas a um único espaço de tópico do barramento de integração de serviço em um determinado serviço WS-Notification.

Essa abordagem deve ser tomada em situações em que há vários clientes usando o mesmo URI de namespace e você deseja separar um subconjunto dos clientes para que eles não interajam com os outros clientes. A justificação exata para fazer isso depende totalmente da situação existente; no entanto, normalmente, isto não é necessário. Observe que esse padrão de separação é o segundo (e mais convincente) motivo para criar mais de um serviço WS-Notification em um determinado barramento.

Associação 1 para muitos entre um espaço de tópico de barramento de integração de serviços e diversos URIs de namespaces de tópico (mesmo serviço WS-Notification)

Neste caso, foram definidos vários espaços de nomes de tópicos permanentes no mesmo serviço WS-Notification nesse ponto no mesmo espaço de tópico do barramento de integração de serviço.

O motivo mais óbvio para fazer isso é que há dois grupos de aplicativos que já estão codificados para usar os dois URIs distintos, e esses grupos de aplicativos estão, de algum modo, vinculados, e você, portanto, deseja suportá-los usando o mesmo espaço de tópico do barramento de integração de serviços. Isso pode ocorrer por qualquer um dos seguintes motivos:
  • Os tópicos utilizados pelos dois grupos de aplicativos não se sobrepõem, mas desejam interagir com os mesmos aplicativos não WS-Notification. Utilizando este padrão, os outros aplicativos do barramento precisam apenas conectar-se a um único espaço de tópico para poder receber mensagens dos dois grupos de aplicativos.
  • Os tópicos utilizados pelos dois grupos de aplicativos se sobrepõem de alguma maneira e você deseja que eles possam receber publicações enviadas por aplicativos do outro grupo. Por exemplo, se dois espaços de nomes contiverem exatamente os mesmos tópicos, mas o URI do namespace tiver sido mudado para estar em conformidade com alguns esquemas de nomenclatura padronizados, então os aplicativos mais antigos usarão o nome original, ao passo que os novos aplicativos usarão o novo nome.
Uma segunda razão para definir vários espaços de nomes de tópicos no mesmo serviço WS-Notification (com o mesmo espaço de tópico do barramento de integração de serviço mas diferentes URIs de namespace) é aplicar diferentes documentos de espaços de tópicos para diferentes grupos de aplicativos. Isso pode ocorrer por qualquer um dos seguintes motivos:
  • Os espaços de nomes não estão, de nenhuma forma, relacionados, mas você deseja usar o mesmo espaço do tópico do barramento de integração de serviços para evitar o custo administrativo de criar um espaço de tópico de barramento de integração de serviços separado. Geralmente, isso deveria ser feito somente se os tópicos usados pelos espaços de nomes não se sobrepuserem, do contrário poderá haver interferência entre os dois conjuntos de aplicativos.
  • Os tópicos definidos nos espaços de nomes se sobrepõem e os aplicativos que usam cada um dos espaços de nomes desejam interagir com os mesmos aplicativos não WS-Notification. Nessa situação, utilize um documento de namespace de tópicos para definir (em uma estrutura em árvore) o subconjunto de tópicos que se aplica a um determinado namespace de tópicos, bem como associa esse documento a um determinado grupo de aplicativos. Observe que se os documentos de namespace de tópicos para dois grupos diferentes de aplicativos definirem uma estrutura de tópicos que se sobrepõe, um aplicativo não WS-Notification que assina o tópico de sobreposição receberá as notificações publicadas pelos dois grupos de aplicativos.

Associação 1 para muitos entre um espaço de tópico de barramento de integração de serviços e diversos URIs de namespaces de tópico (diferentes serviços WS-Notification)

Se você tiver definido múltiplos serviços WS-Notification, poderá criar definições de namespace de tópico permanentes equivalentes em cada serviço para poder fornecer as mesmas funções para clientes conectados a qualquer um dos serviços WS-Notification. Isso pode, entretanto, ser alcançado mais facilmente ao fazer com que todos os aplicativos se conectem aos pontos de serviço associados a um único serviço.

Diferentes Barramentos com Nomes de Espaços de Tópicos do Barramento de Integração de Serviço Iguais

Um caso adicional que pode causar confusão é onde existem dois barramentos de integração de serviço, cada um com um (único) serviço WS-Notification definido e os barramentos contêm nomes de espaços de tópicos do barramento de integração de serviço idênticos. Nesta situação, os destinos de espaço de tópico usados são completamente separados (não vinculados) e, portanto, não há sobreposição entre os aplicativos que usam os dois serviços WS-Notification. Você deve estar ciente da possibilidade de confusão nesta situação e executar a ação apropriada.