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.