Aus dem Kurs: Grundlagen der Programmierung: APIs und Webservices

Überblick über SOAP

Eine Alternative zu RESTful-APIs ist SOAP. SOAP steht für Simple Object Access Protocol. Dieses Nachrichtenprotokoll nutzt XML, damit Anwendungen, die auf verschiedenen Systemen laufen, miteinander kommunizieren können. SOAP kann etwas mehr Ballast tragen. Es ermöglicht zusätzliche Sicherheit, andere Arten von Transaktionen und ACID-Compliance. ACID steht für Atomicity. Consistency, Isolation und Durability. Diese Qualitäten brauchen Sie, wenn Sie komplexe oder wichtige Operationen verarbeiten. Wenn Sie zum Beispiel Geld von einem Konto auf ein anderes übertragen, wollen Sie sicherstellen, dass das Geld einmal belastet und einmal gutgeschrieben wird. Scheitert eine dieser Transaktionen, sollte keine von ihnen stattfinden. Wenn Sie mehr über ACID wissen möchten, werfen Sie doch einen Blick auf den Kurs »Grundlagen der Programmierung: Datenbanken«. SOAP definiert auch Regeln, um Nachrichten und Sicherheit zu strukturieren. In SOAP informiert die WSDL-Datei den Client über die Dienste, die der Webservice anbieten kann. Stellen Sie sich vor, Sie gehen in ein Eiscafé. Sie sehen mehrere leckere Sorten hinter Glas, aber Sie dürfen nicht selbst hinter das Glas gehen. Die Bedienung muss das tun, Ihr Hörnchen füllen, es Ihnen überreichen, und Sie müssen zahlen. Doch Sie bekommen Ihr Hörnchen im Eiscafé nur dann, wenn Sie es auf die richtige Art verlangen. Sagen wir, Sie bestellen anders, als es das Protokoll und Nachrichtenformat vorschreiben. Ihre Anfrage kann dann nicht erfüllt werden und Sie bekommen kein Eis. Genau dafür ist das WSDL-Dokument da. WSDL steht für Web Service Description Language. Das WSDL-Dokument teilt dem Client alle Operationen mit, die der Webservice ausführen kann. Es ist wie ein Leitfaden zum Bestellen von Eis oder eben von den Informationen, die Sie zurückbekommen wollen. Das WSDL enthält alle nötigen Informationen, zum Beispiel die in den SOAP-Nachrichten genutzten Datentypen oder die Operationen, die der Webservice bereitstellt. SOAP-Spezifikationen sind offizielle Webstandards, die vom W3C, dem World Wide Web Consortium, gepflegt und entwickelt werden. Die SOAP-Nachrichten selbst haben mehrere Teile. Die gelieferten Daten werden in einen sogenannten Envelope gesteckt. Das ist im Grunde eine normale XML-Datei, die aus bestimmten Teilen besteht und eine bestimmte Struktur hat, Regeln für Verschlüsselung, Aufrufe und Antworten, und sie werden oft über HTTP übertragen. Eine SOAP-Nachricht hat vier Teile. Der Envelope ist erforderlich. Das sind die Start- und End-Tags der Nachricht. Der Header ist optional. Er enthält die Attribute der Nachricht. Er ermöglicht Ihnen, eine SOAP-Nachricht zu erweitern, indem Sie Informationen wie Sicherheits-Tokens hinzufügen. Der Body ist erforderlich. Er enthält die eigentlichen XML-Daten, die der Server an den Empfänger überträgt. Abschließend gibt es den Fault, der optional ist. Der Fault enthält Informationen über Fehler, die bei der Verarbeitung der Nachricht auftreten könnten. SOAP-Nachrichten sehen je nach Implementierung anders aus, aber sie haben immer dieselben Teile in derselben Reihenfolge.

Inhalt