Informazioni sull'esempio Risultati di calcio

L'esempio Risultati di calcio utilizza il tipo di messaggistica pubblicazione/sottoscrizione per il trasporto dei dati. Per ulteriori informazioni, leggere la sezione relativa alla messaggistica pubblicazione/sottoscrizione nella documentazione di WebSphere Message Brokers.

L'esempio Risultati di calcio dà dimostrazione di un servizio di raccolta di risultati che notifica il punteggio di una partita di calcio mentre la partita è in corso. L'esempio è composto di una o più applicazioni autore (publisher), che simulano e pubblicano i risultati della partita e di una applicazione sottoscrittore (subscriber), che esegue una sottoscrizione ai risultati di tutte le partite che vengono disputate. Quando si segnano goal nelle partite simulate, vengono pubblicate le informazioni sul minuto in cui il goal è stato segnato e sulla squadra che ha segnato.

L'esempio Risultati di calcio include due piccole applicazioni che vanno eseguite dalla riga comandi:

L'esempio Risultati di calcio dà dimostrazione delle seguenti funzioni delle applicazioni di pubblicazione/sottoscrizione di WebSphere Message Brokers:

L'esempio Risultati di calcio esegue queste azioni:

  1. Quando si avvia l'applicazione SoccerResults, registra le seguenti sottoscrizioni con il broker:
  2. Quando viene avviata un'istanza dell'applicazione SoccerGame, essa simula un incontro di calcio tra due squadre.
  3. Quando la partita inizia, finisce oppure viene segnato un goal, l'applicazione SoccerGame pubblica (e visualizza) le informazioni sull'evento nella coda SOCCER_PUBLICATION nei seguenti argomenti:
  4. I messaggi che contengono le informazioni sugli eventi vengono trasmessi attraverso il flusso di messaggi SoccerPublish nella coda di sottoscrizione SOCCER_SUBSCRIPTION.
  5. SoccerResults riceve le pubblicazioni dalla coda SOCCER_SUBSCRIPTION poiché, nel passo 1, SoccerResults ha effettuato la sottoscrizione a qualsiasi pubblicazione nell'argomento Sport/Soccer/Event/#. Nessuna di queste pubblicazioni viene conservata poiché quando si riceve una nuova pubblicazione, le pubblicazioni precedenti non interessano più il sottoscrittore (subscriber).
  6. Quando SoccerResults riceve ciascuna pubblicazione, pubblica il punteggio, cioè le informazioni sullo stato, nel broker nell'argomento: Sport/Soccer/State/LatestScore/Team1 Team2 dove Team1 e Team2 sono i nomi delle squadre che disputano l'incontro. Queste informazioni sullo stato vengono salvate, come una pubblicazione conservata, dal broker.
  7. Se il server dei risultati SoccerResults dà un errore durante un incontro, quando viene riavviato emette un comando di richiesta aggiornamento per richiedere le pubblicazioni conservate in Sport/Soccer/State/LatestScore/#, che aveva pubblicato prima dell'errore. Questo significa che il server dei risultati può ricostruire lo stato del gioco, quale era al momento dell'arresto del server. Può quindi elaborare tutte le pubblicazioni dell'evento per l'argomento Sport/Soccer/Event/# nella coda SOCCER_SUBSCRIPTION, che erano state pubblicate da SoccerGame ed elaborate dal flusso di messaggi durante l'arresto del server dei risultati. Anche in caso di errore del server dei risultati SoccerResults, esso dispone ancora di sottoscrizione all'argomento poiché non ha emesso il comando per l'annullamento della registrazione sottoscrittore per richiedere tale annullamento.

Le seguenti sezioni descrivono le risorse dell'esempio in maggiori dettagli:

I messaggi di pubblicazione

L'esempio Risultati di calcio utilizza messaggi XML a definizione automatica che hanno una maschera di messaggio standard contenente:

L'applicazione SoccerGame utilizza le informazioni in questa maschera di messaggio per pubblicare un messaggio che contenga informazioni sull'evento nella coda SOCCER_PUBLICATION. Ad esempio, all'inizio di un incontro, l'applicazione SoccerGame pubblica un messaggio che contiene i seguenti dati nell'intestazione MQRFH2:

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

Quando l'applicazione SoccerResults pubblica il punteggio più aggiornato dell'incontro tra Team1 e Team2, il messaggio che pubblica contiene i seguenti dati nella relativa intestazione MQRFH2:

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

Il flusso di messaggi

La seguente figura mostra il flusso di messaggi SoccerPublish, che elabora i messaggi di pubblicazione nell'esempio Risultati di calcio.

Una screen capture del flusso di messaggi SoccerPublish.

La seguente tabella elenca i tipi di nodi utilizzati nel flusso messaggi SoccerPublish.

Tipo nodo Nome nodo
MQInput SOCCER_PUBLICATION
Publication Publish Results

Per ulteriori informazioni, leggere la sezione relativa ai nodi nel flusso di messaggi SoccerPublish e ai flussi di messaggi nella documentazione di WebSphere Message Brokers.

Il flusso di messaggi SoccerPublish è molto semplice poiché contiene solo due nodi. Il nodo MQInput è configurato per identificare la coda di pubblicazioni SOCCER_PUBLICATION come propria coda di input. Quando l'applicazione autore (publisher) SoccerGame pubblica le informazioni sull'evento, come messaggio XML a definizione automatica, nella coda SOCCER_PUBLICATION, il nodo MQInput richiama il messaggio e lo trasmette al nodo Publication denominato Publish Results.

Il nodo Publication pubblica il messaggio nell'applicazione sottoscrittore (subscriber) SoccerResults, che ha eseguito la sottoscrizione all'argomento nel quale sono state pubblicate le informazioni sull'evento.

Le code WebSphere MQ

Il flusso di messaggi di esempio Soccer Results interagisce con due code WebSphere MQ. Le code sono definite nel gestore code WBRK6_DEFAULT_QUEUE_MANAGERr, in cui risiede il broker su cui è in esecuzione il flusso di messaggi.

La seguente tabella mostra le code utilizzate dal flusso di messaggi SoccerPublish e la relativa modalità di interazione.

Flusso di messaggi Coda Modalità di utilizzo della coda da parte del flusso di messaggi
SoccerPublish SOCCER_PUBLICATION Richiama le pubblicazioni evento che sono state pubblicate nella coda da una o più istanze della applicazione autore (publisher) SoccerGame.
SOCCER_SUBSCRIPTION Inserisce le pubblicazioni nella coda perché l'applicazione sottoscrittore SoccerResults le acquisisca e le pubblichi nel broker.

icona Pagina principale   Torna alla pagina home dell'esempio