Linea guida: JMS (Java Messaging Service)
Questa linea guida illustra come utilizzare JMS (Java Message Service), nonché come progettarlo e modellarlo per un'applicazione J2EE.
Relazioni
Descrizione principale

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.

Diagramma descritto nel testo di accompagnamento.

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.

Diagramma descritto nel testo di accompagnamento.

Il diagramma successivo mostra l'impostazione tipica di un client che utilizza JMS.

Diagramma descritto nel testo di accompagnamento.

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.

Diagramma descritto nel testo di accompagnamento.

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.

Diagramma descritto nel testo di accompagnamento.

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.