Java Message Service Provider

aus Wikipedia, der freien Enzyklopädie

Java Message Service (JMS) ist eine Programmierschnittstelle (API) der Firma Sun Microsystems für den Austausch von Nachrichten zwischen zwei oder mehr Clients, die in der Programmiersprache Java geschrieben sind.

Die API und der zugehörige Dienst unterstützen zwei unterschiedliche Ansätze zum Versenden von Nachrichten, zum einen die Nachrichtenwarteschlangen (message queues) und zum anderen ein Anmelde-Versendesystem (publish-subscribe).

Bei der Warteschlange gibt es immer einen Abnehmer, der auf die Nachrichten wartet. Bei dem Anmelde-Versendesystem werden die Nachrichten einfach geschickt, egal ob sich jemand angemeldet hat. Wird die Nachricht nicht konsumiert, dann ist dies unerheblich. Man kann dies am besten mit einem Fernseh-Sender vergleichen (Broadcasting). Entweder man schaltet den Fernseher ein und sieht die Nachricht oder man lässt den Fernseher aus und sieht die Nachricht nicht.

Die Spezifikation des Dienstes sowie die zugehörige API stammen von Sun. Für die Anwendung braucht man einen Provider, der die API umsetzt und somit den Dienst bereitstellt. Dafür gibt es sowohl kommerzielle Produkte als auch Open-Source-Projekte.

[Bearbeiten] JMS-Provider

Um JMS nutzen zu können, wird ein JMS-Provider benötigt, der die Topics, Queues und Sessions verwaltet. Die folgende Liste führt JMS-Provider auf. Sie nennt sowohl kommerzielle als auch freie Software, erhebt aber keinen Anspruch auf Vollständigkeit.

Nicht aufgeführt sind jedoch solche JMS-Provider, die ausschließlich als Bestandteil eines Java-EE-Containers (Java-Anwendungsservers) angeboten werden. Eine Übersicht von Java-EE-Containern ist separat verfügbar.

In der untenstehenden Tabelle bedeuten die in der Spalte »Betriebsmodi« enthaltenen Angaben folgendes:

  • eigenständig: Der JMS-Provider läuft als eigenständiger Prozess (stand alone) und damit separat von den JMS-Client-Prozessen. Die Kommunikation mit den Clients erfolgt beispielsweise über TCP/IP oder Unix Domain Sockets.
  • eingebettet: Der JMS-Provider läuft in derselben JVM (embedded, collocated) wie einer der JMS-Clients. Ein Vorteil ist die schnellere Nachrichtenübertragung.

Moderne JMS-Provider erlauben beide Betriebsmodi.

Name Firma Lizenz Betriebsmodi Eigenschaften, Besonderheiten Stand URL
ActiveMQ Apache Open Source (Apache 2) eigenständig, eingebettet 2008-02-11 http://activemq.apache.org/
FioranoMQ Fiorano kommerziell
iBus//MessageServer Softwired kommerziell
JBoss Messaging Red Hat Open Source (LGPL) eigenständig
Joram ObjectWeb Open Source (LGPL) eigenständig, eingebettet Die Dokumentation ist in schlechtem Englisch verfasst und eignet sich nicht gut zum Nachschlagen. Wichtiges fehlt: So ist die Information, wo der JMS-Provider seine Konfigurationsdatei erwartet und wie man dies beeinflussen kann, nur dem Quellcode zu entnehmen.
MantaRay Coridan Open Source (Mozilla Public License) eigenständig, eingebettet
Mom4j Mom4j development team Open Source (LGPL) eingebettet
OpenJMS Open Source eigenständig, eingebettet 2008-03-26 http://openjms.sourceforge.net/
Open Message Queue Sun Microsystems eigenständig Offene und vom Hersteller nicht unterstützte Variante von Sun Java System Message Queue 2008-02-11 https://mq.dev.java.net/
Oracle Advanced Queueing (OAQ) Oracle kommerziell
SonicMQ Sonic Software kommerziell
Sun Java System Message Queue Sun Microsystems kommerziell eigenständig 2008-02-11 http://java.sun.com/products/jms
SwiftMQ Router IIT Software kommerziell
TIBCO Enterprise Message Service TIBCO kommerziell
webMethods Broker Software AG kommerziell
Websphere MQ IBM kommerziell http://www-306.ibm.com/software/integration/wmq/

[Bearbeiten] Weblinks

  • Um dem Leser einen unnötigen Übersetzungsschritt zu ersparen, sind die Links zu den JMS-Providern unmittelbar in der obigen Tabelle enthalten.