Auf eine WebSphere MQ-fähige Anwendung als Web-Service zugreifen

In diesem Szenario wird ein Web-Service beschrieben, der als Schnittstelle zu einer WebSphere MQ-fähigen Anwendung dient, die die MIME-Domäne verwendet. Im Folgenden sind ein Nachrichtenfluss für dieses Szenario sowie die resultierenden Nachrichtenbaumstrukturen dargestellt.

In diesem Diagramm wird ein externer HTTP-Client gezeigt, der Nachrichten an einen Nachrichtenfluss sendet bzw. von diesem empfängt. Der Nachrichtenfluss besteht aus einem HTTPEmpfangsknoten, der mit einem Rechenknoten namens 'Compute1' verbunden ist. Der Rechenknoten wird dann mit einem MQSendeknoten verbunden. Der MQSendeknoten reiht die Nachricht in eine Warteschlange ein, die von einer externen Anwendung verwendet wird. Die Anwendung reiht die Nachricht wiederum in eine weitere Warteschlange ein. Die Nachricht aus der Warteschlange geht an einen MQEmpfangsknoten. Dieser Knoten ist mit einem anderen Rechenknoten namens 'Compute2' verbunden. Der Rechenknoten ist mit einem HTTPAntwortknoten verbunden. Die Antwortnachricht wird wieder an den HTTP-Client gesendet.

Wenn eine MIME-Nachricht in den Nachrichtenfluss eintritt, wird der Inhaltstyp (Content-Type) der höchsten Ebene der Nachricht in der Baumstruktur 'HTTPInputHeader' sowie in der logischen MIME-Nachrichtenbaumstruktur gespeichert. Der Broker speichert auch eine Kopie des Inhaltstyps der Nachricht als Wert 'ContentType' in der Unterverzeichnisstruktur mit den Eigenschaften (Properties). Das folgende Diagramm zeigt die Nachrichtenbaumstruktur, nachdem die Nachricht den HTTPEmpfangsknoten verlassen hat:

Das Diagramm zeigt die logische Nachrichtenbaumstruktur, nachdem die die Nachricht den HTTPEmpfangsknoten verlassen hat. Das Stammverzeichnis der Baumstruktur heißt 'Root' und verfügt über drei untergeordnete Einträge. Diese heißen der Reihe nach 'Properties', 'HTTPInputHeader' und MIME.

Der erste Rechenknoten (Compute1) muss der Nachricht einen MQMD-Header hinzufügen und den HTTP-Korrelator zur Verwendung durch den Rücklieferungsfluss speichern. Der HTTP-Korrelator kann in einer Datenbank gespeichert oder in den Hauptteil der Nachricht kopiert werden. Der folgende ESQL-Beispielcode veranschaulicht, wie der Korrelator in einem XML-Nachrichtenhauptteil gespeichert werden kann:
SET OutputRoot.XML.X.rid = CAST(InputLocalEnvironment.Destination.HTTP.RequestIdentifier AS CHARACTER); 
Das folgende Diagramm zeigt die Nachrichtenbaumstruktur, nachdem die Nachricht 'Compute1' verlassen hat:

Das Diagramm zeigt die logische Nachrichtenbaumstruktur, nachdem die die Nachricht den ersten Rechenknoten verlassen hat. Das Stammverzeichnis der Baumstruktur heißt 'Root' und verfügt über vier untergeordnete Einträge. Diese heißen der Reihe nach 'Properties', 'HTTPInputHeader', MQMD und MIME.

Wenn die Anwendung, von der die MQ-Nachricht empfangen wird, die Nachricht im MIME-Format erwartet, ist eine MIME-Baumstruktur erforderlich. Durch die Erstellung einer neuen MIME-Baumstruktur oder die Änderung und Weitergabe der bestehenden MIME-Baumstruktur kann diese von 'Compute1' bereitgestellt werden. Zur Änderung des Inhaltstyps der Nachricht sollte die Brokereigenschaft 'Content-Type' verwendet werden. Wenn die Brokereigenschaft 'ContentType' geändert wird, wird die Eigenschaft 'Content-Type' in der MIME-Baumstruktur automatisch aktualisiert.

Wenn die Nachricht über den MQEmpfangsknoten aus der Nachrichtenwarteschlange empfangen wird, muss der zweite Rechenknoten (Compute2) den MQMD-Header aus der Nachricht entfernen und den HTTP-Korrelator wiederherstellen. Wenn der Korrelator aus dem Nachrichtenhauptteil wie oben beschrieben vom Rechenknoten 'Compute1' kopiert wurde, kann 'Compute2' den Korrelator mit folgendem ESQL-Code wiederherstellen:
SET OutputLocalEnvironment.Destination.HTTP.RequestIdentifier = CAST(InputRoot.XML.X.rid AS BLOB); 
'Compute2' kann auch einen expliziten HTTPReplyHeader einrichten.

Wenn die Ausgabedomäne MIME ist, muss für die Ausgabe der Nachricht eine MIME-Baumstruktur erstellt werden. 'Compute2' erstellt entweder eine neue MIME-Nachricht oder ändert und leitet die MIME-Eingabenachricht bedarfsgerecht weiter, um die Ausgabenachricht zu erstellen. Das folgende Diagramm zeigt die Nachrichtenbaumstruktur, nachdem die Nachricht durch 'Compute2' geleitet wurde:

Das Diagramm zeigt die logische Nachrichtenbaumstruktur, nachdem die die Nachricht den zweiten Rechenknoten verlassen hat. Das Stammverzeichnis der Baumstruktur heißt 'Root' und verfügt über vier untergeordnete Einträge. Diese heißen der Reihe nach 'Properties', 'HTTPInputHeader', 'HTTPReplyHeader' und MIME.

Es sind viele Abwandlungen dieses Szenarios denkbar. Beispielsweise könnte ein einzelner Fluss unter Verwendung eines MQAbrufknotens anstelle des MQEmpfangsknotens erstellt werden; in diesem Fall müsste der HTTP-Korrelator nicht gespeichert werden. Diese Vorgehensweise ist jedoch möglicherweise nicht so skalierbar. Im Beispiel Beispielprogramm 'Coordinated Request Reply' finden Sie weitere Informationen zur Verwendung des MQAbrufknotens.

Zugehörige Konzepte
Nachrichten in der MIME-Domäne bearbeiten
Details der MIME-Baumstruktur
MIME-Nachrichten
Zugehörige Tasks
ESQL erstellen
Java-Code entwickeln
Zugehörige Verweise
Web-Service mit HTTP als Transportmethode erstellen
Web-Service mit WebSphere MQ als Transportmethode erstellen
Eine WebSphere MQ-fähige Anwendung, die einen Web-Service aufruft
HTTPAntwortknoten (HTTPReply)
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac30040_