SOAP-Header

Verwenden Sie einen SOAP-Header, um anwendungsspezifische Kontextinformationen in den SOAP-Anforderungs- und -Antwortnachrichten des Web-Service einzufügen.

SOAP ist ein einfaches XML-basiertes Protokoll für den Austausch von Informationen in einer dezentral organisierten verteilten Umgebung. Mit SOAP können Sie über das Internet Informationen abfragen und zurückgeben sowie Services aufrufen.

SOAP-Nachrichten werden in einem Anforderung/Antwort-Format ausgetauscht. Wenn IBM® Business Process Manager eine Anforderung an einen Web-Service sendet, gibt der Web-Service die angeforderten Werte zurück. Diese Werte werden in einer SOAP-Nachricht angegeben.

Das XML-basierte Protokoll besteht aus den folgenden drei Teilen:
  • Die Rahmenanweisung definiert den Inhalt der Nachricht und wie die Nachricht verarbeitet wird
  • Die Codierungsregeln drücken die von Anwendungen definierten Datentypinstanzen aus
  • Die Konvention dient zum Darstellen von Prozeduraufrufen und Antworten

Jede SOAP-Nachricht muss ein Element enthalten, das als SOAP-Rahmenanweisung bezeichnet wird. Die SOAP-Rahmenanweisung beschreibt den Inhalt der Nachricht und stellt Anweisungen für die Verarbeitung der Nachricht bereit. Die SOAP-Rahmenanweisung enthält zwei untergeordnete Elemente, den Hauptteil (erforderlich) und den Header (optional). Alle Elemente müssen im Namensbereich für die SOAP-Rahmenanweisung deklariert sein.

Der SOAP-Hauptteil enthält die SOAP-Nachricht, der eine Web-Services-Anforderung oder -Antwort zugeordnet ist. Der Hauptteil enthält in der Regel den Wert der Eingabeparameter für eine Anforderungsnachricht und den Wert der Ausgabeparameter für eine Antwortnachricht.

Der SOAP-Header ist ein optionaler Abschnitt in der SOAP-Rahmenanweisung. Manche WSDL-Dateien setzen jedoch voraus, dass mit jeder Anforderung ein SOAP-Header übergeben wird. Ein SOAP-Header enthält anwendungsspezifische Kontextinformationen (z. B. Sicherheits- oder Verschlüsselungsinformationen), die der SOAP-Anforderungs- oder der -Antwortnachricht zugeordnet sind. Eine SOAP-Anforderung enthält nur einen Abschnitt für den SOAP-Header. Wenn ein SOAP-Header vorhanden ist, muss er das erste untergeordnete Element der Rahmenanweisung sein. SOAP-Header können Eingabe- und/oder Ausgabeelemente sein und müssen in der WSDL-Datei nicht angegeben werden.

Sie können einen SOAP-Header mit den folgenden Methoden füllen:
  • Definieren Sie den SOAP-Header in der WSDL-Definition als Teil der SOAP-Bindung. Diese Header können durch den Tag <soap:header> in den Elementen <wsdl:input> und <wsdl:output> der WSDL-Datei gekennzeichnet werden. Wenn IBM BPM eine Anforderung an den Server sendet, der den Web-Service per Hosting bereitstellt, enthält die SOAP-Nachricht den SOAP-Header.
  • Kopieren Sie Header direkt aus Systemvariablen sowie aus benutzerdefinierten Variablen, die den korrekten Typ aufweisen, in die vordefinierten Anforderungs- und Antwortdatentypen für SOAP-Header. Dieser SOAP-Header gilt als implizites Element, da er nicht Teil der SOAP-Bindung ist. Weitere Informationen finden Sie unter Implizite SOAP-Header für ausgehende Web-Service-Integrationen erstellen.
  • Erfassen Sie einen eingehenden SOAP-Header in der Antwort. Wählen Sie in der Eigenschaftsansicht die Registerkarte Datenzuordnung aus und ordnen Sie den eingehenden SOAP-Header einer vorhandenen SOAPHeader- oder SOAPHeaders-Variable zu. Systemvariablen werden bereitgestellt oder Sie können Ihre eigenen Variablen des Typs SOAPHeader oder SOAPHeaders erstellen. Dieser SOAP-Header gilt ebenfalls als implizites Element, da er nicht in der WSDL-Datei definiert ist.