28.05.2013 Views

download tesi - MobiLab

download tesi - MobiLab

download tesi - MobiLab

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Analisi delle prestazioni delle principali soluzioni<br />

per servizi publish/subscribe<br />

Figura 2.13 Un client-library trasforma messaggi JMS da e per eventi strutturati.<br />

JMS supporta due modi di ricevere gli eventi: un modello pull o un modello push. Nel<br />

modello pull, un client JMS richiama un metodo per il consumatore del messaggio al fine<br />

di ricevere un evento. Nel modello push, i registri dei consumatori richiamano un oggetto<br />

con il consumatore o di sessione ed i messaggi vengono ricevuti in modo asincrono dalle<br />

invocazioni del metodo onMessage nell'interfaccia di callback. Entrambi i modelli per<br />

la ricezione di eventi hanno una mappa per il servizio di notifica dei modelli push e pull.<br />

Non è possibile, tuttavia, per un consumatore del servizio di notifica essere sia un<br />

consumatore push che un consumatore pull, pertanto, il servizio di notifica dovrà essere<br />

esteso per supportare una nuova consegna. Il messaggio di interfaccia è un messaggio di<br />

base per tutti i messaggi JMS. Dal momento che tutti i messaggi JMS sono interfacce, la<br />

responsabilità è dei fornitori delle librerie JMS client fornire implementazioni dei<br />

messaggi. Un messaggio JMS è costituito da una intestazione, un insieme di proprietà e di<br />

un corpo. La parte del corpo è diverso per ciascuno dei cinque diversi tipi di messaggi<br />

JMS. L'intestazione e le proprietà sono le stesse per tutti i tipi di messaggi. JMS consente<br />

solo ai clienti di filtrare le proprietà del messaggio. Per garantire che solo le intestazioni<br />

dei messaggi possono essere filtrati, queste informazioni devono essere confezionati<br />

59

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!