SOAP

aus www.iwiki.de, der freien Wissensdatenbank

(Weitergeleitet von Soap)

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

Bild:Soap.png

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

Weblinks