Introduzione
JMS (Java Message Service) può essere utilizzato per la comunicazione tra i componenti. Le funzioni di JMS, come la
comunicazione asincrona e la produzione garantita, fanno sì che tale servizio venga usato spesso per le applicazioni
dell'impresa. JMS può essere utilizzato anche per la comunicazione sincrona, ma viene più frequentemente impiegato per
quella asincrona.
Queste linee guida descrivono quando utilizzare JMS e come modellarlo, facendo anche considerazioni applicabili alla
progettazione.
Per ulteriori informazioni su JMS, vedere il Concetto: JMS (Java Messaging Service).
Modellazione di JMS
I client JMS sono modellati come classi. Il diagramma sottostante mostra l'interazione tipica di un autore nell'invio
di messaggi tramite JMS. L'esempio utilizza una coda come destinazione.
Un client JMS deve implementare l'interfaccia listener del messaggio. Il provider JMS si assicura che venga richiamato
un metodo speciale onMessage all'arrivo di ogni messaggio.
Il diagramma successivo mostra l'impostazione tipica di un client che utilizza JMS.
Progettazione di JMS
Esistono due modi principali per progettare applicazioni JMS: point-to-point e publish-subscribe.
In un modello point-to-point, JMS viene impiegato per consegnare un messaggio ad UN client.
Gli autori del messaggio comunicano con un utente inviando messaggi ad una coda. Concettualmente, una coda ha soltanto
un utente, ma molti provider di JMS consentono a diversi utenti di supportare il bilanciamento del carico. Quando
vengono utilizzati diversi utenti, ogni messaggio è gestito da uno solo di questi. I messaggi rimangono in coda finché
non arrivano a destinazione o scadono.
In un modello publish-subscribe, il pattern di comunicazione consente a più autori di inviare messaggi a più
utenti. Gli utenti si abbonano ad argomenti e il middleware consegna loro i messaggi.
Contrariamente al modello point-to-point, il modello publish-and-subscribe mantiene i messaggi in un argomento finché
tutti i client non li hanno ricevuti.
Nota: A partire da JMS 1.1 è possibile combinare entrambi i modelli nella stessa applicazione JMS.
|