Definition: Simple Object Access Protocol Was ist SOAP?

SOAP ist ein Protokollstandard für den Austausch von Daten zwischen verschiedenen über Netzwerke verbundenen Systemen. Auch Remote Procedure Calls lassen sich mit SOAP ausführen. Das Protokoll ist im TCP/IP-Protokollstapel auf der Anwendungsebene angesiedelt und arbeitet auf den unteren Ebenen mit TCP und Protokollen wie HTTP, HTTPS oder SMTP.

Anbieter zum Thema

Simple Object Access Protocol: SOAP ist ein Protokollstandard für den Online-Datenaustausch zwischen Systemen.
Simple Object Access Protocol: SOAP ist ein Protokollstandard für den Online-Datenaustausch zwischen Systemen.
(Bild: gemeinfrei © Gerd Altmann / Pixabay )

Ursprünglich war SOAP das Akronym für Simple Object Access Protocol. Seit der Version 1.2 wird nur noch der Kurzname SOAP verwendet. SOAP ist ein Protokollstandard, mit dem sich Daten zwischen verschiedenen über Netzwerke verbundenen Systemen austauschen und Remote Procedure Calls ausführen lassen. Das Protokoll arbeitet unabhängig von den auf den Systemen verwendeten Betriebssystemen, Sprachen, Frameworks oder Plattformen. Ursprünglich wurde das Protokoll von Microsoft entwickelt.

Die Version 1.0 erschien im Jahr 1999. Da sich große Unternehmen wie IBM dem Protokollstandard anschlossen, wurde der Standard beim World Wide Web Consortiums (W3C) eingereicht. Seit der Version 1.2 ist SOAP ein vom W3C anerkannter Standard. Die eigentliche Spezifikation ist in mehrere Dokumente aufgeteilt. Sie umfassen ein SOAP-Tutorial, den normativen Rahmen der SOAP-Nachrichten, das Datenmodell für SOAP sowie das Kodierungsschema für Remote Procedure Calls. Die Spezifikationen regeln das Format der Nachrichten und wie Daten in Nachrichten abgebildet und interpretiert werden. Prinzipiell lassen sich mit SOAP beliebige applikationsspezifische Informationen übertragen.

SOAP ist im TCP/IP-Protokollstapel auf der Anwendungsebene angesiedelt und arbeitet auf den unteren Ebenen mit TCP und Protokollen wie HTTP, HTTPS, FTP oder SMTP. Gebräuchlich ist die Kommunikation über HTTP oder HTTPS. Zur Repräsentation der Daten wird XML verwendet. Mithilfe von WS-Security ist eine Ende-zu-Ende-Verschlüsselung der SOAP-Nachrichten realisierbar.

Das SOAP-Nachrichtenformat und der prinzipielle Ablauf der SOAP-Kommunikation

Ein zentraler Teil der SOAP-Spezifikationen ist die Definition des Nachrichtenformats. Eine SOAP-Nachricht besteht aus drei grundlegenden Elementen. Diese drei Elemente sind:

  • der SOAP-Envelope,
  • der SOAP-Header,
  • der SOAP-Body.

SOAP-Envelope und SOAP-Body müssen in jeder Nachricht vorhanden sein. Der SOAP-Header ist optional.

Ein SOAP-Envelope umhüllt als eine Art digitaler Briefumschlag den eigentlichen Inhalt der SOAP-Nachricht. Er ist quasi der Container für den optionalen Header und den SOAP-Body.

Im optionalen SOAP-Header sind Metainformationen über die SOAP-Nachricht enthalten. Inhalte des Headers sind beispielsweise Anweisungen für die aufgerufenen Anwendungen, Routinginformationen oder Informationen zur verwendeten Verschlüsselung und zur Zugehörigkeit zu einer bestimmten Transaktion. Der Header spezifiziert den endgültigen Empfänger und den nächsten Zwischenknoten (Hop). Falls vorhanden, ist der Header immer das erste Element in einem SOAP-Envelope und nur einmal vorhanden.

Im nachfolgenden SOAP-Body sind die Nutzdaten mit den zu übertragenden Informationen der Nachricht enthalten, beispielsweise in Form einer mit XML repräsentierten Nachricht. Eingeleitet wird der SOAP-Body durch das Schlüsselwort „Body“. Die Struktur der Informationen vereinbaren die Kommunikationspartner. Der eigentliche Inhalt ist anwendungsbezogen und nicht von SOAP vorgegeben. Im SOAP-Body können auch die Anweisungen für Remote Procedure Calls enthalten sein.

Eine SOAP-Nachricht wird von einem SOAP-Sender zu einem SOAP-Empfänger geschickt. Knoten werden bei der Verwendung von TCP und HTTP in Form von IP-Adressen oder URLs adressiert. Auf dem Weg vom Sender zum Empfänger können dazwischenliegende Stationen als SOAP-Vermittler agieren und bestimmte Rollen übernehmen. SOAP-Knoten, die eine SOAP-Nachricht erhalten, müssen darauf reagieren. Sie bearbeiten oder beantworten die SOAP-Nachricht oder lösen einen Fehler aus.

Der prinzipielle Ablauf einer SOAP-Kommunikation zwischen einem Client und einem Web-Service lässt sich vereinfacht folgendermaßen darstellen:

Ein Webserver erhält über HTTP eine Anfrage eines Clients für einen SOAP-Dienst. Er übergibt die SOAP-Nachricht an den SOAP-Anwendungsserver. Der Anwendungsserver validiert und interpretiert die Anfrage und führt den angeforderten SOAP-Dienst aus. Dafür muss er alle Teile der SOAP-Nachricht identifizieren und sicherstellen, dass die Nachricht verstanden wird. Falls nicht, wird die Nachricht verworfen und ein Fehler ausgelöst. Zur Verarbeitung der SOAP-Nachricht werden Informationen über die Datenrepräsentation und Datenkodierung, über die Semantik und den eventuellen Einsatz von RPC-Mechanismen benötigt.

Gemeinsamkeiten und Unterschiede von SOAP und REST

Neben SOAP existieren weitere Protokolle und Architekturmodelle für den Online-Nachrichtenaustausch von Anwendungen. Eine weit verbreitete Web-Service-API ist REST (Representational State Transfer). Während es sich bei SOAP um ein standardisiertes Protokoll handelt, ist REST ein Paradigma für eine Softwarearchitektur in verteilten Systemen. REST ist speziell auf die Bedürfnisse mobiler Applikationen, schlanker Webservices und des Serverless Computings ausgerichtet.

Wie SOAP verwendet REST in der Regel HTTP. Als Nachrichtenformate lassen sich neben XML auch HTML, JSON oder einfacher Text verwenden. Das bevorzugte Format ist das von Maschinen und Menschen lesbare JSON. Abhängig von der geplanten Verwendung und den eingesetzten Programmiersprachen haben REST und SOAP jeweils spezifische Vor- und Nachteile. REST gilt als modernere Architektur und ist flexibler, schneller und einfacher zu implementieren. REST-APIs sind schlank. In Sachen Sicherheit punktet SOAP durch die Integration von WS-Security.

Anwendungsbereiche von SOAP

Entwickelt wurde SOAP für den Zugriff und den Datenaustausch lose gekoppelter Systeme. SOAP stellt sicher, dass ein anfragender Client keinen kompletten Zugriff auf einen Anwendungsserver erhält, indem es die Kommunikation ordnet und den Nachrichtenaustausch auf die Anwendungsebene beschränkt. Prädestiniert ist der Einsatz von SOAP für Webservices. Das Protokoll erlaubt den Clients, Dienste eines Servers in Anspruch zu nehmen. Unter anderem arbeiten Suchmaschinen, Onlineshops und B2B-E-Commerce-Anwendungen mit SOAP. Bekannte Beispiele sind verschiedene Webservices bei Amazon und eBay

Vor- und Nachteile von SOAP

SOAP basiert auf dem TCP/IP-Protokollstapel und ist mit unterschiedlichen Transportprotokollen wie HTTP, HTTPS, SMTP oder FTP einsetzbar. Die Unabhängigkeit des SOAP-Protokolls von Programmiersprachen, Objektmodellen, Betriebssystemen und Herstellern ist sichergestellt. SOAP-Nachrichten lassen sich mithilfe von XML repräsentieren und sind plattform- und sprachunabhängig. SOAP bietet eine zuverlässige Lösung für den sicheren Informationsaustausch zwischen unterschiedlichen Systemen. Die Fehlerbehandlung ist im Protokoll integriert. Selbst komplexe Anfragen lassen sich mit einer einzigen Anfrage realisieren. Durch die Nutzung von HTTP und HTTPS sind in der Regel keine zusätzlichen Firewall-Regeln für den Datenaustausch und die Anfrage an Webservices notwendig. Ein weiterer Vorteil von SOAP ist, dass sich auch Zwischenstationen in den Nachrichtenaustausch integrieren lassen und so auf den Teilstrecken unterschiedliche Transportprotokolle verwendbar sind. Mit SOAP und WS-Security ist die Sicherheit des Nachrichtenaustauschs auf Anwendungsebene gegeben.

Nachteile von SOAP sind:

  • komplexes Protokoll,
  • hohes Übertragungsvolumen durch den relativ großen Metadatenanteil,
  • erhöhter Rechenaufwand bei recht geringer Performance,
  • auf den Nachrichtenaustausch beschränkt – keine vollständige Objektarchitektur.
Public, Private, Hybrid & Co.: Definitionen rund um Cloud Computing

Definitionen rund um Cloud ComputingAlle relevanten Schlagworte aus dem Bereich Cloud Computing finden Sie auch gut erklärt in unseren Definitionen. Ganz im Sinne eines kleinen, aber feinen Glossars lesen Sie hier leicht verständliche Erklärungen zu den wichtigsten Begriffen. Als Service für Sie haben wir die hier erklärten Begriffe in unseren Beiträgen auch direkt mit den zugehörigen Lexikoneinträgen verlinkt. So können Sie die wichtigsten Begriffe direkt dort nachschlagen, wo sie im Text auftauchen.  

Zum Special: Definitionen rund um Cloud Computing

(ID:48200249)