Der Web-Messaging-Service ist eine Publish- und Subscribe-Implementierung,
die den Browser für serverseitige Ereignisangebote mit dem SIB (Service Integration Bus) von
WebSphere® Application Server verbindet. Die Client-Server-Kommunikation erfolgt über das Bayeux-Protokoll. Das Bayeux-Protokoll ist ein auf HTTP basierendes Protokoll für Nachrichtenweiterleitung. Weitere Informationen hierzu finden Sie auf der Website
zu Bayeux und cometd.
Die Clientunterstützung für das Bayeux-Protokoll wird von Dojo Toolkit bereitgestellt. Dojo Toolkit
ist derzeit die einzige JavaScript(TM)-Bibliothek, die das
Bayeux-Protokoll unterstützt. Dennoch müsste jede JavaScript(TM)-Bibliothek und jeder HTTP-Client mit Unterstützung
für das Bayeux-Protokoll mit dem Web-Messaging-Service kommunizieren können. Die Implementierung des
Web-Messaging-Service bildet die Brücke zwischen ankommenden Bayeux-Anforderungen und dem Service Integration Bus und ermöglicht Web Services, JMS-Clients oder anderen mit dem SIB verbundenen Komponenten, Ereignisse auf webbasierten Clients
zu veröffentlichen. Sie können den Web-Messaging-Service in einer neuen oder vorhandenen Anwendung verwenden, indem Sie eine JAR-Datei in WebSphere Application Server aufnehmen, eine JAR-Datei mit einer Dienstprogrammbibliothek in das Webmodul der Anwendung
stellen, eine
einfache Konfiguration definieren und Servlet-Zuordnungen konfigurieren.
Abbildung 1: Architekturüberblick
In einer typischen Anwendung fordert ein Browser in regelmäßigen Intervallen Updates von einem Server an. Die Kommunikation über das Bayeux-Protokoll weicht vom herkömmlichen Polling-Modell ab. Sie erfolgt über eine langlebige HTTP-Verbindung, die in der Regel von einem Server eine bestimmte Zeit offengehalten wird, um auf die Bereitstellung eines Ereignisses für den Browser zu warten. Bei dieser Art der Kommunikation ist keine Skalierung des Webcontainers möglich, denn jeder auf ein Ereignis wartende Client verbraucht einen Thread. Server, die mit dieser Art von Anforderungen arbeiten, haben verschiedene Skalierungsmöglichkeiten. Da der Web-Messaging-Service für die Verwendung mit vorhandenen Versionen von WebSphere Application Server konzipiert ist und bei dieser Kommunikationsmethode keine Skalierung des Webcontainers möglich ist, wurde für die Skalierung ein neuer Mechanismus für den Web-Messaging-Service eingeführt.
Dieser neue Mechanismus nutzt die Kanalframeworkarchitektur und erstellt einen neuen Kanal, der den HTTP-Kanal erweitert und ein Brücke zwischen ankommenden Bayeux-Anforderungen und dem Service Integration Bus bildet.
Die derzeitige Browserunterstützung für den Web-Messaging-Service wird durch das Clientmodul "cometd" von Dojo Toolkit ermöglicht. Mit diesem Modul sind Initialisierung, Subskription, Aufheben von Subskriptionen und Veröffentlichungen einfach auszuführen. Über den Client "cometd" werden servergesteuerte Ereignisse in das Dojo-System für Ereignisse und Topics integriert. Verwendungsbeispiele für Dojo cometd finden Sie im AJAX-Entwicklerhandbuch und in der Beispielanwendung Quote Streamer.
Der Web-Messaging-Service verbindet Browserclients für das Abonnieren und Veröffentlichen von Ereignissen sowie das Empfangen von Nachrichten mit der integrierten Messaging-Engine und dem Service Integration Bus. Direkte API-Aufrufe an einen SIB-Topicbereich bilden das Brückenglied zum Service Integration Bus. Es gibt mehrere Möglichkeiten, Nachrichten auf Webclients zu veröffentlichen, da die Webclients mit dem Service Integration Bus verbunden sind. Einige dieser Möglichkeiten sind die EJB-Standardveröffentlichungen in einem Topic, JMS-Clientveröffentlichungen in einem Topic, oder Veröffentlichungen von Web Services oder des Webclients selbst in anderen Webclients.