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.
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.
Das nächste Diagramm zeigt eine typische Konfiguration eines JMS-Konsumentenclients.
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.
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 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.
|