SOAP
SOAP im TCP/IP-Protokollstapel
Anwendung | SOAP | |||
HTTP | HTTPS | |||
Transport | TCP | |||
Netzwerk | IP | |||
Netzzugang | Ethernet | Token Ring |
FDDI | ... |
SOAP ist ein Protokoll, mit dessen Hilfe Daten zwischen Systemen ausgetauscht und Remote Procedure Calls durchgeführt werden können. SOAP stützt sich auf die Dienste anderer Standards, XML zur Repräsentation der Daten und Internet-Protokolle der Transport- und Anwendungsschicht (vgl. TCP/IP-Referenzmodell) zur Übertragung der Nachrichten. Die gängigste Kombination ist SOAP über HTTP und TCP. Ursprünglich war SOAP die Abkürzung für Simple Object Access Protocol (Einfaches Objekt-Zugriffs-Protokoll), seit Version 1.2 ist SOAP jedoch offiziell keine Abkürzung mehr, da es nicht (nur) dem Zugriff auf Objekte dient.
Geschichtlicher Abriss
Ursprünglich wurde SOAP durch Dave Winer und Microsoft entwickelt, ein erstes Produkt aus dieser Zusammenarbeit ist XML-RPC. Das Ziel war jedoch SOAP, das zum ersten Mal, mit der Unterstützung durch Don Box, Ende 1999 veröffentlicht wurde. Damals war die Version 0.9 aktuell, die Reaktion der Entwickler jedoch noch sehr zurückhaltend. Später im Jahr 1999 wurde die Version 1.0 veröffentlicht. Das war der Zeitpunkt, an dem die Entwicklung mehr Unterstützung fand. Dies kann man vor allem daran erkennen, dass 2000 IBM sich der Entwicklung von SOAP anschloss, was dazu führte, dass IBM, Microsoft, DevelopMentor (Don Box) und UserLand Software (Dave Winer) SOAP 1.1 als Note beim WWW Consortium (W3C) einreichten. (siehe James Snell - Reflections on SOAP (englisch)) Dabei wurde das Ziel verfolgt, eine Working Group anzustoßen, die SOAP weiterentwickeln sollte. Das Ergebnis dieser Working Group ist SOAP Version 1.2. Eine wichtige Änderung ist, dass SOAP keine Abkürzung mehr ist, da sämtliche Erklärungen für SOAP, wie "Simple Object Access Protocol" oder "Servive Oriented Architecture Protocol", den Sinn von SOAP nicht treffen. Zudem ist es so möglich, SOAP als Namen in den USA anzumelden, eine Abkürzung könnte nicht geschützt werden.
Struktur einer SOAP Nachricht
Eine SOAP-Nachricht ist nach dem Head-Body Pattern modelliert. Im Head-Bereich der Nachricht werden die Metainformationen der Nachricht untergebracht. Diese umfassen Informationen über das Routing der Nachricht, über eine eventuelle Verschlüsselung und / oder über die Zugehörigkeit zu einer Transaktion.
Im Body der Nachricht sind, wie bei HTML auch, die Nutzdaten untergebracht. Diese Daten müssen vom Empfänger der Nachricht interpretiert werden, mögliche Zwischenstationen können diese auch ignorieren.
Anschließend können mögliche Attachments folgen, diese werden abhängig von dem Transportprotokoll an die Nachricht angehängt.
Implementierungen
- Apache SOAP
- Axis (Nachfolger von Apache SOAP)
- Microsoft .NET
Siehe auch: XML, Web Service, XML-RPC