Richtlinie: Java Messaging Service (JMS)
In dieser Richtlinie werden die Verwendung des Java Message Service (JMS) sowie sein Design und seine Modellierung für eine J2EE-Anwendung erläutert.
Beziehungen
Zugehörige Elemente
Hauptbeschreibung

Einführung

Der Java Message Service (JMS) kann für die Kommunikation zwischen Komponenten eingesetzt werden. Die Features von JMS, z. B. die asynchrone Übertragung und garantierte Nachrichtenübermittlung, haben dazu geführt, dass er in Unternehmensanwendungen vielfach eingesetzt wird. JMS kann auch für die synchrone Übertragung verwendet werden, wobei die Verwendung für die asynchrone Übertragung überwiegt.

Die folgenden Richtlinien beschreiben, wie JMS verwendet und modelliert wird, und erläutern einige Aspekte des geeigneten Designs.

Nähere Informationen zu JMS finden Sie unter Konzept: Java Messaging Service.

Modellierung von JMS

JMS-Clients werden als Klassen modelliert. Im folgenden Diagramm ist eine typische Interaktion eines Nachrichtenproduzenten zum Senden von Nachrichten über JMS dargestellt. Das Beispiel verwendet eine Warteschlange als Zieladresse.

Im Begleittext beschriebenes Diagramm.

Ein JMS-Client muss die MessageListener-Schnittstelle implementieren. Der JMS-Provider sorgt dafür, dass die spezielle Methode onMessage aufgerufen wird, sobald eine Nachricht ankommt.

Im Begleittext beschriebenes Diagramm.

Das nächste Diagramm zeigt eine typische Konfiguration eines JMS-Konsumentenclients.

Im Begleittext beschriebenes Diagramm.

Design von JMS

Es gibt zwei Hauptvorgehensweisen für das Design von JMS-Anwendungen: Punkt-zu-Punkt und Publish/Subscribe.

In einem Punkt-zu-Punkt-Modell wird JMS verwendet, um eine Nachricht an EINEN Client zu übermitteln.

Im Begleittext beschriebenes Diagramm.

Nachrichtenproduzenten kommunizieren mit einem Nachrichtenkonsumenten, indem sie Nachrichten an eine einzige Warteschlange senden. Vom Konzept her hat eine Warteschlange nur einen Konsumenten, viele JMS-Provider erlauben jedoch die Verwendung mehrerer Konsumenten, um die Lastverteilung zu unterstützen. Wenn mehrere Konsumenten vorhanden sind, wird jede Nachricht jeweils nur von einem einzigen Konsumenten verwendet. Die Nachrichten werden so lange in der Warteschlange gespeichert, bis sie konsumiert wurden oder bis ihr Zeitlimit abläuft.

In einem Publish/Subscribe-Modell erlaubt es das Kommunikationsmuster, dass mehrere Produzenten Nachrichten an mehrere Konsumenten senden. Die Konsumenten abonnieren Topics und die Middleware übermittelt die Nachrichten an die Konsumenten.

Im Begleittext beschriebenes Diagramm.

Im Gegensatz zum Punkt-zu-Punkt-Modell werden die Nachrichten beim Publish/Subscribe-Modell so lange in einem Topic gespeichert, bis alle Clients sie empfangen haben.

Anmerkung: Ab JMS 1.1 können diese beiden Modelle innerhalb einer JMS-Anwendung kombiniert werden.