Mit Message Queue 4.3 wird ein neuer Universal Messaging Service (UMS) und eine Messaging-API eingeführt, die den Zugriff auf Message Queue über ein beliebiges HTTP-fähiges Gerät ermöglicht. Auf diese Art können fast alle Anwendungen miteinander kommunizieren und von der Zuverlässigkeit und garantierten Zustellung durch JMS-Messaging profitieren. Außerdem bietet UMS eine erweiterte Skalierbarkeit für JMS-Messaging, wodurch die Anzahl der Messaging-Clients internetähnliche Ausmaße erreichen kann.
Die grundlegende UMS-Architektur wird in der folgenden Abbildung gezeigt:
Der UMS, der auf einem Webserver ausgeführt wird, ist sprachneutral und plattformunabhängig. Der UMS dient als Schnittstelle zwischen einer Client-Anwendung ohne JMS und einem JMS-Provider. Er empfängt Meldungen, die mithilfe der UMS-API versendet werden, wandelt sie in JMS-Meldungen um und erzeugt sie am Ziel im JMS-Provider mithilfe des nativen Protokolls des Providers. Ebenso empfängt er Nachrichten von den Zielen im JMS-Provider, wandelt sie in Text oder SOAP-Nachrichten um und sendet sie entsprechend den über die UMS-API angegebenen Anforderungen an Clients ohne JMS.
Die einfache, sprachunabhängige, protokollbasierte UMS-API unterstützt sowohl webbasierte als auch nicht webbasierte Anwendungen und kann mit Skript- und Programmiersprachen verwendet werden. Die API wird in zwei Stilen angeboten: als einfache Messaging-API, die ein Protokoll des Typs Representational State Transfer (REST) verwendet, und als XML-Messaging-API, die das Protokoll in einen SOAP-Nachrichten-Header einbettet. In beiden Fällen erfordert jedoch die API nur eine einfache HTTP-Anforderung zum Senden oder Empfangen einer Nachricht.
Die Einfachheit und Flexibilität der UMS-API bedeutet, dass AJAX, .NET, Python, C, Java und viele andere Anwendungen Textnachrichten und/oder SOAP-Nachrichten (mit Anhang) an JMS-Ziele senden oder von JMS-Zielen empfangen können. Beispielsweise können Python-Anwendungen mit .NET-Anwendungen, das iPhone mit Java-Anwendungen usw. kommunizieren.
Für Message Queue 4.3 unterstützt der UMS nur Message Queue als JMS-Provider.
Der UMS kann nicht nur wie oben beschrieben als einfache Schnittstelle verwendet werden. Er unterstützt Client-Sitzungen mit und ohne Status. Der UMS behält den Sitzungsstatus für die Client-Anwendung über mehrere Dienstanforderungen hinweg bei, wenn dies vom Client gefordert wird. Der UMS kann eine Container-verwaltete Authentifizierung nutzen und/oder zur Authentifizierung von Clients mithilfe des Message Queue-Brokers konfiguriert werden. Der UMS unterstützt außerdem Transaktionen und ermöglicht Client-Anwendungen das Übernehmen und Zurücksetzen von mehreren Dienstanforderungen als einzelne atomare Einheit.
Da der UMS eine große Anzahl von Clients über eine einzelne Verbindung mit dem Message Queue-Broker unterstützen kann, entlastet er die Verbindungsdienste des Brokers und ermöglicht maximale Skalierbarkeit. Außerdem kann die UMS-Kapazität durch horizontale Skalierung erhöht werden und ermöglicht so ein internetähnliches Messaging-Aufkommen.
Aufgrund der Einfachheit der protokollbasierten UMS-API sind auf der Client-Seite keine Client-Bibliotheken erforderlich. Dadurch kann die API zukünftig für zusätzliche JMS-Funktionen ohne Upgrade der Client-Anwendungen erweitert werden.
Um den UMS zu verwenden, stellen Sie ihn in einem Webcontainer bereit, der Servlet 2.4 oder höhere Spezifikationen unterstützt. Starten Sie den Message Queue-Broker, erstellen Sie die gewünschten Ziele und schreiben Sie eine Messaging-Anwendung, die die UMS-API zum Senden oder Empfangen von Nachrichten verwendet.
Die im Rahmen von Message Queue 4.3 bereitgestellte UMS-Datei imqums.war wird, abhängig von der Plattform, an einem der folgenden Speicherorte installiert:
Sie können die .war-Datei bei Bedarf umbenennen.
Tabelle 1–5 Speicherort der Datei imqums.war
Plattform |
Speicherort von imqums.war |
---|---|
Solaris |
/usr/share/lib/imq |
Linux |
/opt/sun/mq/share/lib |
AIX |
IMQ_HOME/lib |
Windows |
IMQ_HOME\lib |
Nachdem Sie die Datei imqums.war in einem Webcontainer unter localhost:port bereitgestellt haben, finden Sie die UMS-Dokumentation unter:
http://localhost:port/imqums
Andernfalls steht Ihnen folgende UMS-Dokumentation zur Verfügung:
Informationen zur Konfiguration des UMS finden Sie unter https://mq.dev.java.net/4.3-content/ums/config.html.
Die Dokumentation zur UMS-API finden Sie unter https://mq.dev.java.net/4.3-content/ums/protocol.html.
Programmierbeispiele in mehreren Sprachen finden Sie unter https://mq.dev.java.net/4.3-content/ums/examples/README.html.
UMS wird gegenwärtig auf folgenden Webcontainern unterstützt:
Sun GlassFish Enterprise Server, Version 2.1 und Version 3 Prelude
Tomcat, Version 5.5 und 6.0