Der Web-Messaging-Service ist eine Publish/Subscribe-Implementierung, die eine Verbindung zwischen dem Browser und dem WebSphere Application Server-SIB (Service Integration Bus) für serverseitige Übertragung von Ereignissen mit Push-Operationen herstellt.
Die Client/Server-Kommunikation erfolgt über das Bayeux-Protokoll. Das Bayeux-Protokoll ist ein HTTP-basiertes Messaging-Routing-Protokoll. Clientunterstützung für das Bayeux-Protokoll wird vom Dojo Toolkit bereitgestellt. Derzeit ist das Dojo Toolkit die einzige JavaScript-Bibliothek, die das Bayeux-Protokoll unterstützt, obwohl jede JavaScript-Bibliothek bzw. jeder HTTP-Client, die bzw. der die Bayeux-Protokollunterstützung implementiert, mit dem Web-Messaging-Service kommunizieren kann. Die Web-Messaging-Serviceimplementierung überbrückt eingehende Bayeux-Anforderungen an den Service Integration Bus, um Web-Services, JMS-Clients oder Elemente zu aktivieren, die mit dem Service Integration Bus für die Publizierung von Ereignissen in webbasierten Clients verbunden sind. Sie können den Web-Messaging-Service in einer neuen oder vorhandenen Anwendung verwenden, indem Sie eine JAR-Laufzeitdatei (Java™-Archiv) in WebSphere Application Server ablegen, eine JAR-Bibliotheksdatei für Dienstprogrammdateien in einem Anwendungswebmodul ablegen und eine einfache Konfigurationsdatei sowie Servletzuordnungen konfigurieren.
Weitere Informationen finden Sie auf der Website Bayeux and cometd.
In einer typischen Anwendung fordert ein Browser regelmäßig Updates von einem Server in einem angegebenen Intervall bzw. Sendeaufruf an. Die Übertragungsarten des Bayeux-Protokolls unterscheiden sich vom traditionellen Sendeaufrufmodell. Die Kommunikation findet über eine HTTP-Langzeitverbindung statt, während der ein Server normalerweise für einen gewissen Zeitraum eine Verbindung offen hält, um zu warten, bis ein Ereignis mit einer Push-Operation an den Browser übertragen wird. Bei dieser Art der Kommunikation kann der Web-Container nicht skalieren, da jeder wartende Client einen Thread konsumiert, der auf ein Ereignis wartet. Andere Server, die diese Art der Anforderung verarbeiten, haben andere Methoden für die Skalierung. Da der Web-Messaging-Service so konzipiert ist, dass er mit vorhandenen Versionen von WebSphere Application Server funktioniert, und der aktuelle Web-Container bei dieser Kommunikationsmethode keine ordnungsgemäße Skalierung durchführt, wurde ein neuer Mechanismus in den Web-Messaging-Service eingeführt, um Skalierbarkeit zu erreichen.
Dieser neue Mechanismus nutzt die Channel-Framework-Architektur und erstellt einen neuen Channel-Framework-Kanal, der den HTTP-Kanal erweitert, um eingehende Bayeux-Anforderungen an den Service Integration Bus zu überbrücken.
Die aktuelle Browserunterstützung für den Web-Messaging-Service wird durch das Dojo Toolkit CometD-Clientmodul ermöglicht. Operationen für Initialisierung, Subskription, Aufheben der Subskription und Publizierung werden mit dem CometD-Client vereinfacht. Über den CometD-Client 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 "QuoteStreamer".
Der Web-Messaging-Service stellt eine Verbindung zwischen Browser-Clients und der integrierten Messaging-Engine sowie dem Service Integration Bus (SIB) her, damit Ereignisse subskribiert und publiziert und Nachrichten empfangen werden können. Die zugrunde liegende Brücke zum Service Integration Bus wird direkt über API-Aufrufe eines SIB-Topic-Bereichs hergestellt. Es gibt mehrere Möglichkeiten für die Publizierung von Nachrichten in Web-Clients, weil eine Verbindung zwischen den Web-Clients und dem Service Integration Bus besteht. Zu diesen Optionen gehören: Publizieren von Standard-Enterprise JavaBeans (EJB) unter einem Topic, Publizieren eins JMS-Clients unter einem Topic, Publizieren eines Web-Service oder des Web-Clients selbst in anderen Web-Clients.