JMS Provider

JMS Provider

Java Message Service (JMS) ist eine durch den Java Community Process genormte Programmierschnittstelle (API) für die Ansteuerung von Message Oriented Middleware aus einem Client heraus, der in der Programmiersprache Java geschrieben ist.

Die API und der durch diese angesteuerte Dienst unterstützen zwei unterschiedliche Ansätze zum Versenden von Nachrichten, zum einen die Nachrichtenwarteschlangen (point-to-point) und zum anderen ein Anmelde-Versendesystem (publish-subscribe).

Bei der Warteschlange gibt es immer je einen Abnehmer. Ist dieser nicht verfügbar, kann die Nachricht optional gespeichert werden und der Empfänger kann sie jederzeit abholen. 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. Wahlweise können die Nachrichten auch zwischengespeichert werden (durable-subscription).

Die Spezifikation des Dienstes sowie die zugehörige API wurden durch den Java Community Process genormt. 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.

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, colocated) 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 eingebettet Englischsprachige Dokumentation zum Advanced Queueing mit Oracle. http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96587/qintro.htm
SonicMQ Progress 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 eigenständig, eingebettet Proprietäre, aber JMS-konforme, Library und komplett JMS-konforme Schnittstelle verfügbar. http://www-306.ibm.com/software/integration/wmq/

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • JMS-Provider — Java Message Service (JMS) ist eine durch den Java Community Process genormte Programmierschnittstelle (API) für die Ansteuerung von Message Oriented Middleware aus einem Client heraus, der in der Programmiersprache Java geschrieben ist. Die API… …   Deutsch Wikipedia

  • Java Message Service Provider — Java Message Service (JMS) ist eine durch den Java Community Process genormte Programmierschnittstelle (API) für die Ansteuerung von Message Oriented Middleware aus einem Client heraus, der in der Programmiersprache Java geschrieben ist. Die API… …   Deutsch Wikipedia

  • Java Message Service — (JMS) ist eine Programmierschnittstelle (API) für die Ansteuerung einer Message Oriented Middleware (MOM) zum Senden und Empfangen von Nachrichten aus einem Client heraus, der in der Programmiersprache Java geschrieben ist. JMS hat das Ziel, lose …   Deutsch Wikipedia

  • Java Message Service — The Java Message Service (JMS) API is a Java Message Oriented Middleware (MOM) API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the… …   Wikipedia

  • JBoss Messaging — Infobox Software name = JBoss Messaging caption = developer = JBoss latest release version = latest release date = latest preview version = latest preview date = operating system = Cross platform programming language = Java genre = asynchronous… …   Wikipedia

  • Sun Java System Message Queue — Infobox Software name = Sun Java System Message Queue caption = developer = Sun Microsystems latest release version = 4.0 latest release date = May, 2006 operating system = Cross platform genre = Java Message Service license = Common Development… …   Wikipedia

  • Apache OpenEJB — Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web Anwendungen. Sie ist eine… …   Deutsch Wikipedia

  • J2EE — Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web Anwendungen. Sie ist eine… …   Deutsch Wikipedia

  • JEE — Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web Anwendungen. Sie ist eine… …   Deutsch Wikipedia

  • JavaEE — Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web Anwendungen. Sie ist eine… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”