Standard für asynchrone Kommunikation

JMS vereinfacht Programmierung verteilter Web-Anwendungen

01.10.1999
MÜNCHEN (ws) - Mit dem Java Message Service (JMS) legte Sun die Spezifikation eines weiteren API vor, das für Java-Programmier den Zugriff auf Enterprise-Services vereinheitlichen soll. JMS etabliert eine Schnittstelle für die Nutzung von Message Orientied Middleware (MOM). Dazu zählen etablierte Produkte wie IBMs "MQ Series" genauso wie eine Reihe eben erschienener Java-Produkte.

Komponenten von verteilten Applikationen, die auf Messaging-Dienste aufsetzen, kommunizieren nicht direkt miteinander, sondern verschicken ihre Nachrichten über eine MOM. Im Gegensatz zu Remote Procedure Calls (RPC), die beispielsweise bei Javas Remote Method Invocation (RMI), Corba oder DCOM Verwendung finden, muß beim Message Queuing die aufrufende Funktion nicht auf das Ergebnis der entfernten Komponenten warten. Diese vergleichsweise lose Kopplung von Anwendungen bewährt sich besonders im Internet, wo Verbindungen oft nicht verläßlich und stabil sind. Synchrone Kommunikation würde bei Netzproblemen die Anwendung so lange blockieren, bis eine Zeitüberschreitung zum Abbruch der Operation führt. Demgegenüber garantiert Messaging die Zustellung von Nachrichten nach einem Publish-and-Subscribe- oder einem Point-to-Point-Modell, wo beim Ausfall eines Rechners oder einer Netzverbindung die Zustellung der Nachricht so lange versucht wird, bis die gewünschte Applikation wieder erreichbar ist. Messages bestehen aus Benachrichtigungen über Ereignisse, Anforderungen und Anworten darauf.

Diese Nachrichten haben ein genau definiertes Format, um Anwendungskomponenten zu den gewünschten Aktionen zu veranlassen. Bei der Spezifikation von JMS ging es darum, Java-Programmierern unabhängig von den Nachrichtenformaten der einzelnen MOM-Hersteller ein einheitliches API für die asynchone Kommunikation zwischen Anwendungen anzubieten. Mit Ausnahme von Microsoft, das mit "MS MQ" eine COM-basierte MOM anbietet, arbeiten alle namhaften Hersteller wie IBM, Bea oder Progress daran, bestehende Produkte mit JMS kompatibel zu machen oder neue, JMS-konforme Middleware auf den Markt zu bringen.

Neben bekannten Funktionen erweitert Sun mit JMS das Message Queuing um die Fähigkeit, serialisierte (also persistente) Java-Objekte zu verschicken. Da sich die Extensible Markup Language (XML) immer mehr als Technik für den Datenaustausch in heterogenen Umgebungen etabliert, unterstützt JMS zudem auch Nachrichten in Form von XML-Dokumenten.

Seit der Verabschiedung von JMS 1.0 vor rund einem Jahr brachten vor allem kleinere Anbieter damit konforme Messaging-Produkte auf den Markt. Dazu zählen beispielsweise die Push Technologies Inc. (http:// www.push-technologies.com) mit "Spirit", die Fiorano Software Inc. mit "Fiorano/EMS" oder die Venue Software Corp. mit "View Points".

Unter den renommierten Anbietern schickt sich Progress an, mit "Sonic MQ" noch vor Suns "Java Message Queue" als erster auf den Markt zu kommen. Diese Middleware ist vollständig in Java implementiert und umfaßt ein Administrationsprogramm, das in einem Java-fähigen Browser läuft. Cluster-Fähigkeit nach einer Hub-and-Spoke-Architektur soll dem Produkt zu hoher Skalierbarkeit verhelfen.

Middleware für Java-Applikations-Server

Sonic MQ soll Ende dieses Jahres auf den Markt kommen und in einer Entwicklerversion für Windows NT kostenlos erhältlich sein. Progress plant, die Messaging-Middleware mit einer späteren Version des Java-Applikations-Servers "Apptivity" zu verschmelzen. Die Zusammenführung der beiden Produkte wird begünstigt durch eine zukünftige Spezifikation von Enterprise Javabeans (EJB), die das Format von Message-orientierten Java-Komponenten definiert.