SOAP
SOAP ist eine XML-basierte Sprache, die von der W3C für
das Senden von Daten zwischen Anwendungen definiert wurde. SOAP ist transportprotokoll- und
plattformneutral.
Zwar nutzen nicht alle Web-Services SOAP, es ist aber vermutlich das am häufigsten für neue Web-Services verwendete Nachrichtenformat.
SOAP-Nachricht
Eine SOAP-Nachricht besteht aus einer
Rahmenanweisung (Envelope), die Folgendes enthält:
- einen optionalen Header (mit einem oder mehreren Headerblöcken)
- einen obligatorischen Hauptteil (Body)
Der Inhalt des Headers und des Hauptteils wird in der Regel in einer WSDL-Definition
festgelegt.
SOAP-Format
SOAP definiert zwei Formate (styles):
- RPC
- Der SOAP-Hauptteil entspricht einem Methodenaufruf.
- document
- Der SOAP-Hauptteil ist typischerweise ein allgemeiner definiertes XML-Dokument, das durch ein
XML-Schema explizit definiert wird.
SOAP-Codierungen
SOAP definiert außerdem zwei Codierungen:
- SOAP-Codierung (encoded)
- Bei der SOAP-Codierung wird der Inhalt über ein Schema für Codeumsetzung definiert, was eine
bestimmte Zuordnung zu sprachspezifischen Typen impliziert.
- literal
- Bei der Codierung 'literal' wird der SOAP-Inhalt explizit durch ein Schema (normalerweise ein
XML-Schema) definiert.
Kombinationen von SOAP-Format und -Codierung
Aus dem oben Gesagten
ergeben sich vier mögliche Kombinationen von SOAP-Format und -Codierung, wobei jedoch nur die
folgenden drei sinnvoll sind und vom WSDL-Importprogramm und -Generator unterstützt werden:
- document - literal
- RPC - literal
- RPC - encoded (nur unterstützt für WSDL-Importprogramm)
SOAP-Versionen
Zurzeit sind zwei Versionen von SOAP verbreitet:
1.1 und 1.2. SOAP 1.1 ist vermutlich weiter verbreitet, weist jedoch einige Probleme hinsichtlich
der Interoperabilität auf (vor allem in Bezug auf die Nutzung der SOAP-Codierung), für die ein
separater Standard entwickelt wurde: das WS-I Basic Profile.