Sobre a Amostra Soccer Results

A amostra SoccerResults utiliza o tipo de sistema de mensagens de publicação/assinatura para transportar dados. Para obter informações adicionais, leia sobre Sistema de Mensagens de Publicação/Assinatura na documentação do WebSphere Message Brokers.

A amostra Soccer Results demonstra um serviço de reunião de resultados que relata os placares de partidas de futebol enquanto o jogo está em andamento. A amostra consiste em um ou mais aplicativos publicadores, que simulam e publicam os resultados de partidas e um aplicativo assinante, que assina os resultados de todas as partidas que estão sendo jogadas. À medida que os gols são marcados nas partidas simuladas, as informações sobre a hora em que o gol foi marcado e qual time marcou são publicadas.

A amostra Soccer Results inclui dois pequenos aplicativos que são executados a partir da linha de comandos.

A amostra Soccer Results demonstra os seguintes recursos dos aplicativos de publicação/assinatura do WebSphere Message Brokers:

A amostra SoccerResults executa as seguintes ações:

  1. Quando o aplicativo SoccerResults é iniciado, ele registra as seguintes assinaturas com o intermediário:
  2. Quando uma instância do aplicativo SoccerGame é iniciada, ela simula uma partida de futebol entre dois times.
  3. Quando a partida é iniciada, finalizada ou um gol é marcado, o aplicativo SoccerGame publica (e exibe) informações de evento para a fila SOCCER_PUBLICATION nos seguintes tópicos:
  4. As mensagens que contêm as informações sobre eventos são transmitidas através do fluxo de mensagens SoccerPublish para a fila de assinatura SOCCER_SUBSCRIPTION.
  5. SoccerResults recebe as publicações da fila SOCCER_SUBSCRIPTION, porque na etapa 1 o SoccerResults assinou todas as publicações do tópico Sport/Soccer/Event/#. Nenhuma dessas publicações é retida, porque quando uma nova publicação é recebida, as publicações anteriores não são mais de interesse para o assinante.
  6. Quando SoccerResults recebe cada publicação, ele publica o placar, as informações de estado, para o intermediário no tópico: Sport/Soccer/State/LatestScore/Team1 Team2 , em que Team1 e Team2 são os nomes dos times que estão jogando. Essas informações sobre estado são salvas, como uma publicação retida, pelo intermediário.
  7. Se o servidor de resultados do SoccerResults falhar durante uma partida, quando for reiniciado, ele emitirá um comando Request Update para solicitar as publicações retidas em Sport/Soccer/State/LatestScore/# publicado antes da falha. Isso significa que o servidor de resultados pode reconstruir o estado do jogo para o anterior à parada do servidor. Poderá, então, processar todas as publicações de eventos para o tópico Sport/Soccer/Event/# na fila SOCCER_SUBSCRIPTION, que foram publicados pelo SoccerGame e processados pelo fluxo de mensagens enquanto o servidor de resultados estava parado. Apesar do servidor de resultados SoccerResults ter falhado, ele continua assinado ao tópico, porque não emitiu o comando Deregister Subscriber para solicitar que fosse removido seu registro.

As seguintes seções descrevem os recursos da amostra em mais detalhes:

As Mensagens de Publicação

A amostra Soccer Results utiliza mensagens XML autodefinidas que têm um gabarito de mensagem padrão contendo:

O aplicativo SoccerGame utiliza as informações desse gabarito de mensagem para publicar uma mensagem que contém informações de evento na fila SOCCER_PUBLICATION. Por exemplo, quando uma partida é iniciada, o aplicativo SoccerGame publica uma mensagem que contém os seguintes dados no cabeçalho MQRFH2:

<psc>
   <Command>Publish</Command>
   <Topic>Sport/Soccer/Event/MatchStarted</Topic>
</psc>

Quando o aplicativo SoccerResults publica o placar mais atual da partida entre Team1 e Team2, a mensagem publicada contém os seguintes dados em seu cabeçalho MQRFH2:

<psc>
   <Command>Publish</Command>
   <PubOpt>Retain</PubOpt><Topic>Sport/Soccer/State/LatestScore/Team1 Team2</Topic>
</psc>

O Fluxo de Mensagens

A figura a seguir mostra o fluxo de mensagens SoccerPublish, que processa as mensagens de publicação na amostra Soccer Results.

Uma Captura de Tela do Fluxo de Mensagens SoccerPublish.

A tabela a seguir lista os tipos de nós que são utilizados no fluxo de mensagens SoccerPublish.

Tipo de Nó Nome do Nó
MQInput SOCCER_PUBLICATION
Publicação Publish Results

Para obter informações adicionais, leia sobre os nós no fluxo de mensagens SoccerPublish e fluxos de mensagens na documentação do WebSphere Message Brokers.

O fluxo de mensagens SoccerPublish é muito simples porque contém somente dois nós. O nó MQInput é configurado para identificar a fila de publicação SOCCER_PUBLICATION como sua fila de entrada. Quando o aplicativo publicador SoccerGame publica informações sobre eventos, como uma mensagem XML autodefinida, na fila SOCCER_PUBLICATION, o nó MQInput obtém a mensagem e a transmite para o nó Publication a Publish Results.

O nó Publication publica a mensagem para o aplicativo assinante SoccerResults, que assinou o tópico no qual as informações sobre eventos são publicadas.

As Filas do WebSphere MQ

O fluxo de mensagens da amostra Soccer Results interage com duas filas do WebSphere MQ. As filas são definidas no gerenciador de filas WBRK6_DEFAULT_QUEUE_MANAGER, que hospeda o intermediário no qual o fluxo de mensagens é executado.

A tabela a seguir mostra as filas que são utilizadas pelo fluxo de mensagens SoccerPublish e como elas interagem.

Fluxo de Mensagens Fila Como o Fluxo de Mensagens Utiliza a Fila
SoccerPublish SOCCER_PUBLICATION Obtém publicações sobre eventos que foram publicados na fila por uma ou mais instâncias do aplicativo publicador SoccerGame.
SOCCER_SUBSCRIPTION Coloca publicações na fila para o aplicativo assinante SoccerResults receber e publicar no intermediário.

Ícone Página Principal   Voltar para Home da Amostra