Simple Object Access Protocol (SOAP)
Was ist das Simple Object Access Protocol (SOAP)?
Simple Object Access Protocol (SOAP) ist ein Nachrichtenprotokoll, das die Kommunikation zwischen den verteilten Elementen einer Anwendung ermöglicht. SOAP kann über eine Vielzahl von Standardprotokollen übertragen werden, darunter Hypertext Transfer Protocol (HTTP).
SOAP wurde als Zwischensprache für Anwendungen mit unterschiedlichen Programmiersprachen entwickelt, damit diese Anwendungen über das Internet miteinander kommunizieren können. SOAP ist flexibel und unabhängig, was es Entwicklern ermöglicht, SOAP-Programmierschnittstellen (APIs) in verschiedenen Sprachen zu schreiben und gleichzeitig Merkmale und Funktionen hinzuzufügen.
SOAP ist ein leichtgewichtiges Protokoll, das zur Erstellung von Web-APIs verwendet wird, normalerweise mit der Extensible Markup Language (XML). Es unterstützt eine breite Palette von Kommunikationsprotokollen im Internet, darunter HTTP, Simple Mail Transfer Protocol (SMTP) und Transmission Control Protocol (TCP).
Der SOAP-Ansatz definiert, wie eine SOAP-Nachricht verarbeitet wird, welche Funktionen und Module enthalten sind, welche Kommunikationsprotokolle unterstützt werden und wie SOAP-Nachrichten aufgebaut sind. SOAP verwendet das XML Information Set als Nachrichtenformat und stützt sich auf Protokolle der Anwendungsschicht, wie HTTP, für die Nachrichtenübertragung und -verarbeitung.
Komponenten des Simple Object Access Protocols (SOAP)
Das Simple Object Access Protocol als Spezifikation definiert Nachrichten, die an Webservices und Client-Anwendungen gesendet werden. SOAP-Nachrichten sind XML-Dokumente, die sich aus den folgenden drei Grundbausteinen zusammensetzen:
- Die Rahmenanweisung (Envelope) kapselt alle Daten in einer Nachricht und identifiziert das XML-Dokument als SOAP-Nachricht.
- Das Header-Element enthält zusätzliche Informationen über die SOAP-Nachricht. Dabei kann es sich zum Beispiel um Authentifizierungsdaten handeln, die von der aufrufenden Anwendung verwendet werden.
- Das Body-Element enthält die Details der eigentlichen Nachricht, die vom Webservice an die aufrufende Anwendung gesendet werden muss. Zu diesen Daten gehören Aufruf- und Antwortinformationen.
Die Fehlermeldung ist eine optionale vierte Komponente. Wenn ein SOAP-Fehler generiert wird, wird dieser als HTTP-500-Fehler zurückgegeben. Fehlermeldungen enthalten einen Fehlercode, eine Zeichenfolge, einen Akteur und Details.
Wie funktioniert das Simple Object Access Protocol (SOAP)?
SOAP-Anfragen sind einfach zu erzeugen und Antworten leicht zu verarbeiten. Zunächst wird eine Anfrage für einen Service von einem Client mit einem XML-Dokuments erstellt. Anschließend sendet der SOAP-Client das XML-Dokument an einen SOAP-Server.
Wenn der Server die SOAP-Nachricht empfängt, sendet er diese als Serviceaufruf an die angeforderte serverseitige Anwendung. Eine Antwort, die die angeforderten Parameter, Rückgabewerte und Daten für den Client enthält, wird zunächst an den SOAP-Request-Handler und dann an den anfragenden Client zurückgesendet. Sowohl SOAP-Anfragen als auch Antworten werden über das Hypertext Transfer Protocol Secure (HTTPS) oder ein ähnliches Protokoll wie HTTP übertragen.
Vor- und Nachteile des Simple Object Access Protocols (SOAP)
SOAP ist ein integraler Bestandteil der serviceorientierten Architektur (SOA) und der Spezifikationen für Webservices.
Die Vorteile von SOAP sind:
- Plattform- und Betriebssystemunabhängigkeit. SOAP kann über eine Vielzahl von Protokollen übertragen werden und ermöglicht die Kommunikation zwischen Anwendungen mit unterschiedlichen Programmiersprachen sowohl unter Windows als auch unter Linux.
- Funktioniert mit dem HTTP-Protokoll. Auch wenn SOAP mit vielen verschiedenen Protokollen funktioniert, ist HTTP das Standardprotokoll, das von Webanwendungen verwendet wird.
- Kann über verschiedene Netzwerk- und Sicherheitsgeräte übertragen werden. SOAP kann problemlos durch Firewalls hindurchgelassen werden, während andere Protokolle möglicherweise eine spezielle Anpassung erfordern.
Zu den Nachteilen gehören:
- Keine Möglichkeit, Daten per Referenz zu übermitteln. Dies kann zu Synchronisationsproblemen führen, wenn mehrere Kopien desselben Objekts gleichzeitig übertragen werden.
- Geschwindigkeit. Die Datenstruktur von SOAP basiert auf XML. XML ist größtenteils für Menschen lesbar, was das Verstehen einer SOAP-Nachricht relativ einfach macht. Dadurch werden die Nachrichten jedoch auch relativ groß, verglichen mit der Common Object Request Broker Architecture (CORBA) und ihrem Remote Procedure Call (RPC) -Protokoll, das binäre Daten verarbeiten kann. Aus diesem Grund sind CORBA und RPC schneller.
- Nicht so flexibel wie andere Methoden. Obwohl SOAP flexibel ist, verwenden neuere Methoden XML, JavaScript Object Notation (JSON), YAML oder jeden beliebigen Parser, was sie flexibler als SOAP macht.
SOAP APIs
SOAP ist ein Protokoll, das fast immer im Kontext eines Webservice- oder SOA-Frameworks verwendet wird. Daher wird seine API in der Regel durch die übergeordnete Schnittstelle für SOA verborgen. SOA-API-Middleware-Tools sind für fast alle modernen Programmiersprachen verfügbar, und Microsoft bietet eine Reihe von .NET SOAP- und SOA-Tools an.
SOAP versus REST
SOAP wurde entwickelt, um herkömmliche monolithische Anwendungen in eine mehrkomponentige, verteilte Struktur aufzulösen, ohne dabei Sicherheit und Kontrolle zu verlieren. Im Gegensatz dazu ist Representational State Transfer(REST) ein Modell der verteilten Computerinteraktion auf der Grundlage des HTTP-Protokolls. Es gibt vor, wie Webserver Clients unterstützen. REST over HTTP ist fast immer die Grundlage für die Entwicklung und Kommunikation moderner Microservices. RESTful APIs verwenden HTTP-Anfragen wie GET, PUT, POST und DELETE.
REST over HTTP ist einfach, flexibel, leichtgewichtig und bietet lediglich eine Möglichkeit zum Austausch von Informationen. SOAP kann ebenfalls auf HTTP aufsetzen, aber es verbindet die Elemente eines komplexen Satzes verteilter Datenverarbeitungswerkzeuge – die Webservices und das SOA-Framework – sowie Anwendungskomponenten, und dies ist Teil eines vollständig serviceorientierten Frameworks.
Die Zukunft des Simple Object Access Protocols (SOAP)
SOAP war das erste weit verbreitete Protokoll für die Verbindung von Webservices in einer serviceorientierten Architektur. Heute basiert die moderne Entwicklung verteilter Anwendungen weitgehend auf RESTful-Prinzipien. SOAP ist fast immer auf Legacy-Plattformen beschränkt. Ein Bereich, in dem SOAP immer noch verwendet wird, sind Anwendungen, die Online-Transaktionen abwickeln, da es sich um eine API handelt, die starrer und protokollgesteuert ist.