SOAP

SOAP (bisher unter der Bezeichnung Simple Object Access Protocol) ist ein schlankes Protokoll für den Informationsaustausch in einer dezentralen, verteilten Umgebung. Eine SOAP-Nachricht ist die Übertragung von Informationen von einem Absender an einen Empfänger. SOAP-Nachrichten können verbunden werden, um Anfrage/Antwort-Muster auszuführen.

SOAP ist zwar unabhängig von einem Transportprotokoll, wird jedoch üblicherweise über HTTP übertragen, um mit den vorhandenen Internetinfrastrukturen verarbeitet zu werden. SOAP aktiviert das Binding und die Verwendung von erkannten Web-Services, indem es einen Nachrichtenpfad für die Weiterleitung von Nachrichten definiert. SOAP wird verwendet, um UDDI nach Web-Services abzufragen. Die Workbench unterstützt SOAP 1.1.

SOAP ist ein XML-basiertes Protokoll, das die drei Bestandteile einer jeden Nachricht definiert:

Bindingstile

SOAP unterstützt zwei unterschiedliche Kommunikationsstile:

Remote Procedure Call (RPC - Fernprozeduraufruf):  Aufruf einer Operation, die ein Ergebnis zurückgibt. Wird typischerweise mit SOAP-Codierung verwendet, die nicht WS-I-konform ist.

Dokumentstil  Auch als dokumentorientierter oder nachrichtenorientierter Stil bezeichnet. Dieser Stil bietet eine niedrigere Abstraktionsschicht und erfordert mehr Programmierungsaufwand.

Codierungsdarstellungen

In verteilten Datenverarbeitungsumgebungen (Network-Computing) definiert die Codierungsdarstellung, wie in der Anwendung definierte Datenwerte in ein bestimmtes Protokollformat bzw. wieder aus diesem zurück konvertiert werden können. Dieser Konvertierungsprozess wird auch als Serialisierung und Deserialisierung bezeichnet.

Die SOAP-Spezifikation definiert die SOAP-Codierungsdarstellung:

SOAP-Codierung:   Mit der SOAP-Codierungsdarstellung können Sie die Werte von Datentypen aus dem SOAP-Datenmodell serialisieren und deserialisieren. Die Codierungsdarstellung ist im SOAP-Standard 1.1 definiert und nicht WS-I-konform.

WSDL definiert die Literal-XML-Codierungsdarstellung:

Literal-XML:  'Literal' weist darauf hin, dass das Dokument unverschlüsselt, d. h. auf AS-IS-Basis, gelesen werden soll. Das Dokument ist als XMI serialisiert, d. h. die Nachrichten-XML entspricht dem Schema in WSDL. Bei der Verwendung von Literalcodierung verweist jeder Nachrichtenteil auf eine konkrete Schemadefinition. Die Literalcodierung ist WS-I-konform.

Datenmodell

Der Zweck des SOAP-Datenmodells ist die Bereitstellung einer sprachunabhängigen Abstraktion für Datentypen, die von den herkömmlichen Programmiersprachentypen verwendet werden. Dazu gehören:

Alle Elemente und Kennungen, die das SOAP-Datenmodell ausmachen, sind in der Namespace-URI definiert. Der SOAP-Standard definiert die Regeln, wie Datentypen konstruiert werden können. Ein projektspezifisches XML-Schema muss die tatsächlichen Datentypen definieren. Definitionen der Elemente der SOAP-Spezifikation finden Sie unter http://schemas.xmlsoap.org/soap/envelope/ und http://schemas.xmlsoap.org/soap/encoding/

SOAP-Implementierungen

Heutzutage sind verschiedene Implementierungen des SOAP-Protokolls verfügbar. So stellt zum Beispiel die Apache Foundation Apache SOAP zur Verfügung, das aus einem IBM®-Projekt mit dem Namen SOAP4J entstanden ist, ebenso wie Apache Axis und die IBM WebSphere®-Laufzeitumgebungen.

Mappings

Eine Zuordnung (Mapping) definiert eine Zuordnung zwischen einem qualifizierten XML-Elementnamen, einem Java™-Klassennamen und einer Codierungsdarstellung. Die Zuordnung gibt an, wie nach der angegebenen Codierung ein ankommendes XML-Element mit einem vollständig qualifizierten Namen in eine Java-Klasse konvertiert wird, und umgekehrt.

Weitere Informationen zu Apache SOAP finden Sie unter xml.apache.org/soap. Weitere Informationen zu SOAP finden Sie unter www.w3.org/TR/SOAP.