SOAP
aus www.iwiki.de, der freien Wissensdatenbank
Ein Kommunikationsprotokoll für Webservices.
Inhaltsverzeichnis |
Entstehung
Ursprünglich entwickelt von IBM, Microsoft, DevelopMentor und UserLand Software wurde die SOAP-Spezifikation Anfang 2001 in der Version 1.1 beim World Wide Web Consortium (W3C) eingereicht. In einer Arbeitsgruppe entstand dort dann Version 1.2, welche im Juni 2003 als offizielle Empfehlung anerkannt wurde. SOAP stand bis zu dieser Version für das Akronym “Simple Object Access Protocol”. Seither gilt der Begriff SOAP jedoch nicht mehr als Abkürzung, sondern als eigenständiger Name. Die Abkürzung spiegelte nicht den vollständigen Inhalt und dessen Nutzungsbereiche wider.
Grundlagen
Die SOAP-Spezifikation beschreibt Aufbau und Format von Nachrichten, die bei einem Webservice zwischen dem Anbieter (Provider) und Nutzer (Consumer) ausgetauscht werden.
Durch Methodenaufrufe werden die Daten einer Anwendung in SOAP-Nachrichten gekapselt und anschließend verschickt. Dieses Verfahren wurde in den Grundzügen von XML-RPC übernommen, und in vielen Punkten verbessert bzw. erweitert.
Der eigentliche Transport (durch das Netz) kann mittels verschiedener Transportprotokolle erfolgen. Meist wird HTTP verwendet. Es lassen sich jedoch ebenso FTP, SMTP oder direkt TCP verwenden.
Aufbau
Beispiel
Der Methodenaufruf eines Webservice via SOAP kann beispielsweise so aussehen:
<?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <m:GetPrice xmlns:m="http://www.w3schools.com/prices"> <m:Item>Apples</m:Item> </m:GetPrice> </soap:Body> </soap:Envelope>
Die Methode “GetPrice” ist hierbei eine anwendungsspezifische Komponente, und nicht Bestandteil der eigentlichen SOAP-Spezifikation. Als Übergabeparameter empfängt diese Methode hier den Wert “Apples”.
Die entsprechende SOAP-Antwort könnte dann folgendermassen aussehen:
<?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <m:GetPriceResponse xmlns:m="http://www.w3schools.com/prices"> <m:Price>1.90</m:Price> </m:GetPriceResponse> </soap:Body> </soap:Envelope>
Siehe auch
Literatur
- Java Webservices mit Apache Axis (ISBN 3-935042-57-4)

