Die SOAP-Knoten fungieren als Punkte innerhalb des Datenflusses, in dem die Web-Service-Verarbeitung konfiguriert und verarbeitet wird. Die Verarbeitung wird durch die in den SOAP-Knoten definierten Eigenschaften gesteuert. Diese können mittels einer WSDL-Definition, durch manuelle Konfiguration oder auch durch eine Kombination aus beidem festgelegt werden.
SOAP-Knoten
- Die SOAPInput- und SOAPReply-Knoten werden in einem Nachrichtenfluss verwendet, mit dem ein Web-Service implementiert wird. Die SOAP-Knoten werden zur Erstellung eines
Nachrichtenflusses verwendet, der einen Web-Serviceanbieter implementiert.
Der
SOAPInput-Knoten wartet auf eingehende
Web-Service-Anforderungen, während der SOAPReply-Knoten
die Antworten zurück zum Client sendet (siehe SOAPInput-Knoten und
SOAPReply-Knoten).
- Ein Client kann eine HTTP GET-Anforderung mit dem Suffix ?wsdl an den vom Datenfluss angebotenen Endpunkt senden und eine Antwort mit der WSDL-Definition empfangen, die zur Konfiguration des Datenflusses verwendet wird. Eine ausführliche Beschreibung finden Sie unter Nachrichtenflüsse unter Verwendung von WSDL konfigurieren.
- Mit dem SOAPRequest-Knoten wird in einem Nachrichtenfluss ein Web-Service-Provider synchron aufgerufen.
Beim synchronen Web-Service-Aufruf
sendet der Knoten eine Web-Service-Anforderung und wartet danach auf die Antwort des zugeordneten
Web-Service. Während der Knoten auf die Antwort wartet, blockiert er den Nachrichtenfluss. Erst
nach dem Empfang der Antwort kann der Nachrichtenfluss fortgesetzt werden (siehe
SOAPRequest-Knoten).
- Die SOAPAsyncRequest- und
SOAPAsyncResponse-Knoten werden zur Erstellung eines
Nachrichtenflusses (bzw. eines Nachrichtenflusspaares) verwendet, der einen Web-Service asynchron
aufruft. Beim asynchronen Web-Service-Aufruf sendet der
SOAPAsyncRequest-Knoten eine Web-Service-Anforderung,
der Nachrichtenfluss wird aber während des Wartens auf die Antwort des zugeordneten Web-Service
nicht blockiert, da die Web-Service-Antwort vom
SOAPAsyncResponse-Knoten empfangen wird, der sich in
einem anderen Nachrichtenfluss befindet. Die logische Zuordnung der Antwort zur ursprünglichen
Anforderung wird durch den Knotenkorrelator sichergestellt. Daher können auch mehrere Anforderungen
parallel verarbeitet werden (siehe SOAPAsyncRequest-Knoten und
SOAPAsyncResponse-Knoten).
- Die SOAPExtract- und
SOAPEnvelope-Knoten ermöglichen die Bearbeitung der Nutzdaten im
SOAP-Hauptteil. Der SOAPExtract-Knoten kann mit der SOAP-Domäne interagieren. Der SOAPEnvelope-Knoten wird von den SOAP-Knoten nicht wirklich benötigt, da diese Knoten auch Nicht-SOAP-Nachrichten direkt verarbeiten können. Für HTTP-Knoten ist der SOAPEnvelope-Knoten hingegen erforderlich. Weitere
Informationen hierzu finden Sie unter SOAPExtract-Knoten und
SOAPEnvelope-Knoten.
- Sie können den Betriebsmodus der SOAP-Knoten so ändern, dass sie im Gateway-Modus agieren. Im Gateway-Modus ist keine WSDL-Datei für die Konfiguration der Knoten erforderlich, da sie generische Anforderungs-/Antwort- und unidirektionale SOAP-Nachrichten verarbeiten, die nicht an eine bestimmte WSDL-Datei gebunden sind. Nähere Informationen finden Sie unter Gateway-Betriebsmodus für SOAP-Knoten.
Die SOAP-Bestimmung des W3C bezeichnet mit "SOAP nodes" (SOAP-Knoten) eine Einheit der Anwendungslogik (vergleichen Sie hierzu Web
Services Glossary). Verweise auf 'SOAP-Knoten' im Information Center von
WebSphere Message
Broker beziehen sich in der Regel auf
WebSphere Message
Broker-SOAP-Knoten.
Wenn Sie SOAP-Knoten und HTTP-Knoten in Nachrichtenflüssen auf einem einzelnen Broker verwenden, können Sie festlegen, ob die Verarbeitung von HTTP-Nachrichten über das Empfangsprogramm des Brokers oder über die eingebetteten Empfangsprogramme der Ausführungsgruppen erfolgt.
Wenn ein Empfangsprogramm in Ihrer Konfiguration Nachrichten empfängt, die sowohl von SOAPInput- als auch von HTTPInput-Knoten abgerufen werden könnten, müssen die URL-Spezifikationen in diesen Knoten genau überprüft werden. Wenn beide URL-Spezifikationen einer eingehenden Nachricht entsprechen, besteht die Gefahr, dass der falsche Knotentyp die Nachricht erhält und die Verarbeitung fehlschlägt oder zu unerwarteten Ergebnissen führt. Diese Situation entsteht, wenn Sie identische Werte für die Eigenschaften
Pfadsuffix für URL des HTTPInput-Knotens und des
SOAPInput-Knotens angeben. Dies ist im Übrigen auch der Fall, wenn Sie in einer der beiden Spezifikationen Platzhalterzeichen verwenden und eine eingehende Nachricht dadurch beiden Eigenschaften entspricht.