Informationen zum Beispielprogramm 'Soccer Results'

Im Beispielprogramm 'Soccer Results' wird die Publish/Subscribe-Nachrichtenübertragung zum Transport von Daten verwendet. Weitere Informationen finden Sie im Abschnitt über Publish/Subscribe-Nachrichtenübertragungen in der Dokumentation zum WebSphere Message Broker.

Im Beispielprogramm 'SoccerResults' wird ein Ergebniserfassungsdienst demonstriert, der die Ergebnisse eines Fußballspiels während dessen Austragung meldet. Das Beispielprogramm besteht aus einer oder mehreren Publisher-Anwendungen, die die Spielergebnisse simulieren und veröffentlichen, sowie aus einer Subskribenten-Anwendung, die die Ergebnisse aller Fußballspiele abonniert. Sobald in den simulierten Spielen Tore erzielt werden, werden Informationen zum Zeitpunkt des Treffers sowie zu der Mannschaft, die das Tor geschossen hat, veröffentlicht.

Das Beispielprogramm 'SoccerResults' umfasst zwei kleine Anwendungen, die über die Befehlszeile ausgeführt werden:

Das Beispielprogramm 'Soccer Results' veranschaulicht die folgenden Funktionen der Publish/Subscribe-Anwendungen von WebSphere Message Brokers:

Das Beispielprogramm 'Soccer Results' führt Folgendes aus:

  1. Die Anwendung 'Soccer Results' registriert bei ihrem Start die folgenden Subskriptionen beim Broker:
  2. Sobald eine Instanz der Anwendung 'SoccerGame' gestartet wird, simuliert sie ein Fußballspiel zwischen zwei Mannschaften.
  3. Wird das Spiel gestartet oder beendet oder wird ein Treffer erzielt, werden von der Anwendung 'SoccerGame' Ereignisdaten zu den folgenden Themen für die Warteschlange SOCCER_PUBLICATION veröffentlicht (und in dieser angezeigt):
  4. Die Nachrichten mit den Ereignisdaten werden über den Nachrichtenfluss 'SoccerPublish' an die Subskriptionswarteschlange SOCCER_SUBSCRIPTION übergeben.
  5. 'Soccer Results' empfängt die Veröffentlichungen von der Warteschlange SOCCER_SUBSCRIPTION, da 'Soccer Results' in Schritt 1 eine Subskription für alle Veröffentlichungen zum Thema Sport/Soccer/Event/# eingerichtet hat. Diese Veröffentlichungen werden nicht permanent gespeichert, da frühere Veröffentlichungen bei Erhalt einer neuen Veröffentlichung nicht mehr für den Subskribenten von Interesse sind.
  6. Jedesmal, wenn 'Soccer Results' eine Veröffentlichung erhält, veröffentlicht die Anwendung für den Broker den Spielstand zum Thema: Sport/Soccer/State/LatestScore/Team1 Team2 ; dabei sind Team1 und Team2 die Namen der Mannschaften. Diese Statusinformation werden vom Broker als ständige Veröffentlichung gespeichert.
  7. Falls im Ergebnisserver 'Soccer Results' während eines Spiels ein Fehler auftritt, gibt er bei seinem Neustart einen Befehl zur Anforderung einer Aktualisierung aus, wodurch ständige Veröffentlichungen zum Thema Sport/Soccer/State/LatestScore/# angefordert werden, das er vor seinem Absturz veröffentlicht hat. Dies bedeutet, dass der Ergebnisserver den Spielstand wiederherstellen kann, der bei seiner Beendigung aktuell war. Anschließend kann er alle Ereignisveröffentlichungen zum Thema Sport/Soccer/Event/# in der Warteschlange SOCCER_SUBSCRIPTION verarbeiten, die von 'SoccerGame' während der Beendigung des Ergebnisservers veröffentlicht und vom Nachrichtenfluss verarbeitet wurden. Auch wenn der Ergebnisserver 'Soccer Results' fehlschlägt, bestehen seine Subskriptionen für das Thema weiterhin, da er keine Aufhebung der Registrierung mit dem Befehl zur Aufhebung der Registrierung als Subskribent angefordert hat.

In folgenden Abschnitten werden die Ressourcen des Beispielprogramms ausführlicher erläutert:

Die Veröffentlichungsnachrichten

Das Beispielprogramm 'Soccer Results' verwendet selbstdefinierende XML-Nachrichten, denen eine Standardnachrichtenschablone zugeordnet ist. Diese Schablone enthält Folgendes:

Die Anwendung 'SoccerGame' veröffentlicht mit Hilfe der Informationen in dieser Nachrichtenschablone eine Nachricht mit Ereignisdaten für die Warteschlange SOCCER_PUBLICATION. Beim Beginn eines Spiels beispielsweise veröffentlicht 'SoccerGame' eine Nachricht, die im MQRFH2-Header die folgenden Daten enthält:

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

Wenn die Anwendung 'Soccer Results' den aktuellen Spielstand im Spiel zwischen Mannschaft1 und Mannschaft2 veröffentlicht, enthält die veröffentlichte Nachricht in ihrem zugehörigen MQRFH2-Header die folgenden Daten:

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

Der Nachrichtenfluss

Die folgende Abbildung zeigt den Nachrichtenfluss 'SoccerPublish', der die Veröffentlichungsnachrichten im Beispielprogramm 'Soccer Results' verarbeitet.

Screenshot des Nachrichtenflusses 'SoccerPublish'.

In der folgenden Tabelle sind die Knotentypen aufgelistet, die im Nachrichtenfluss 'SoccerPublish' verwendet werden.

Knotentyp Knotenname
MQEmpfang SOCCER_PUBLICATION
Veröffentlichung Publish Results

Weitere Informationen finden Sie in Abschnitten zu den Knoten im Nachrichtenfluss 'SoccerPublish' und Nachrichtenflüssen in der Dokumentation zum WebSphere Message Broker.

Der Nachrichtenfluss 'SoccerPublish' ist sehr einfach strukturiert, da er lediglich zwei Knoten enthält. Der MQEmpfangsknoten ist so konfiguriert, dass er die Veröffentlichungswarteschlange SOCCER_PUBLICATION als seine Eingabewarteschlange identifiziert. Wenn die Publisher-Anwendung 'SoccerGame' Ereignisdaten in Form einer selbstdefinierenden XML-Nachricht für die Warteschlange SOCCER_PUBLICATION veröffentlicht, ruft der MQEmpfangsknoten die Nachricht ab und übergibt diese an den Veröffentlichungsknoten 'Publish Results'.

Der Veröffentlichungsknoten veröffentlicht die Nachricht für die Subskribentenanwendung 'Soccer Results', die das Thema, zu dem die Ereignisdaten veröffentlicht wurden, abonniert hat.

Die WebSphere MQ-Warteschlangen

Das Beispielprogramm 'Soccer Results' interagiert mit zwei WebSphere MQ-Warteschlangen. Diese sind im Warteschlangenmanager WBRK6_DEFAULT_QUEUE_MANAGER definiert, der den Broker enthält, in dem der Nachrichtenfluss ausgeführt wird.

Die folgende Tabelle enthält die Warteschlangen, die vom Nachrichtenfluss 'SoccerPublish' verwendet werden, sowie eine Beschreibung der jeweiligen Interaktion.

Nachrichtenfluss Warteschlange Verwendung der Warteschlange durch den Nachrichtenfluss
SoccerPublish SOCCER_PUBLICATION Ruft Ereignisveröffentlichungen ab, die zuvor von einer oder mehreren Instanzen der Publisher-Anwendung 'SoccerGame' für die Warteschlange veröffentlicht wurden.
SOCCER_SUBSCRIPTION Reiht Veröffentlichungen in die Warteschlange ein, die von der Subskribenten-Anwendung 'Soccer Results' abgerufen und für den Broker veröffentlicht werden können.

Symbol für die Hauptseite   Zurück zum Beginn des Beispielprogramms