REST vs SOAP: Einführung, Unterschiede, Vorteile
Für den Informationsaustausch im Internet sorgen Webservices. Sie führen die automatisierte Kommunikation zwischen Maschinen durch. Als Beispiel sei die Suchmaschine auf einem Server genannt, die den günstigsten Anbieter eines Produkts herausfindet.
Ein solcher Online-Service verwendet standardisierte Verfahren, um mit unterschiedlich strukturierten Clients und Servern zu kommunizieren. Zwei dieser Standards sind REST und SOAP. Durch sie werden Grenzen der Kommunikation, die z.B. durch unterschiedliche Betriebssysteme oder Programmiersprachen gesetzt sind, überwunden. Der folgende Text ist als Einführung zu verstehen.
Was bedeutet SOAP?
Der Begriff war ursprünglich die Abkürzung für Simple Object Access Protocol. Heute stellt das Wort einen Eigennamen für einen Standard zur Kommunikation dar. Ihn gibt es seit den späten 1990er Jahren und er wird seit der Jahrtausendwende von Web-Diensten bevorzugt verwendet.
Er nutzt Auszeichnungssprachen wie XML oder CSV zur Darstellung von Nachrichten. Die Internet-Protokolle HTTP (Hypertext Transfer Protocol) oder TCP (Transmission Control Protocol) finden als Kommunikationsprotokolle Verwendung. Der Standard basiert auf dem Vorgang, Requests (Anfragen) in Form einer mit XML erstellten Nachricht an einen Server zu senden. Dieser interpretiert Inhalte sowie Strukturen und erkennt Daten sowie Vorgänge, die abgerufen werden sollen.
Eine mit diesem Standard versendete Nachricht besteht aus einem Envelope (Briefumschlag) sowie aus Header und Body. Der Envelope ist als Verpackung der anderen Bestandteile zu verstehen.
Der Header enthält Kontrolldaten, die für die Verarbeitung einer Message von Bedeutung sind. Als Beispiel seien Regeln zur Kodierung einer Nachricht genannt. Im Body befindet sich die eigentliche Message.
Die Vorteile von SOAP
Ein klarer Vorteil liegt in den umfangreichen Tool-Hilfen zur Erleichterung der Handhabung dieses Standards. Für dessen Nutzung bieten im Netz verbreitete Programmiersprachen wie PHP einen optimalen Rahmen. Weiterhin ermöglicht der Standard die intuitive Umsetzung von Webservices. Er lässt also Spielraum für Freiheiten.
Was bedeutet REST?
Die Abkürzung steht für Representational State Transfer. Es handelt sich dabei um eine besondere Form von Kommunikationsstandard. Streng genommen ist es kein Standard, sondern ein Architekturstil.
Der durch REST definierte Stil basiert auf Technologien, die seit langer Zeit bestehen und von Suchmaschinen, Online-Shops oder Buchungsseiten intensiv gunutzt werden. Daher ist das Internet (World Wide Web) als großes Anwendungsgebiet des Architekturstils anzusehen.
Der Stil beschreibt, wie Standards so eingesetzt werden können, dass sie mit den Gegebenheiten des Internets gut harmonieren. Es wird bevorzugt HTTP als Kommunikationsprotokoll verwendet. JSON (JavaScript Object Notation) oder CSV können auch zum Einsatz kommen.
Der Architekturstil basiert auf dem Konzept der Ressource in Form von Nachrichtentypen. Eine kommunizierte Ressource ist an folgende Bedingungen gebunden:
- Client-Server Struktur
Die Funktion einer Client-Server Struktur muss gegeben sein. Der Client fragt an, welcher Anbieter ein Produkt zum günstigsten Preis verkauft. Der Server stellt den Dienst zur Beantwortung der Frage bereit. - Zustandslosigkeit
Alle verschickten Nachrichten enthalten die Informationen, welche Client und Server benötigen, um deren Zustand zu verstehen. Beide Maschinen speichern diese Informationen jedoch nicht. Die Situation nennt sich Zustandslosigkeit. - HTTP-Caching
Das HTTP-Caching soll angewendet werden. Es dient der Zwischenspeicherung von Daten zur Vermeidung überflüssiger Kommunikationsvorgänge wie z.B. von unnötigen Serveranfragen. - Die Nutzung einer einheitlichen Anwendungsschnittstelle (API) soll gewährleistet sein. Diese Bedingung setzt sich aus vier Bestandteilen zusammen:
- 1) Adressierbarkeit: Jeder Webservice muss per URI (Unique Ressource Identifiers) eindeutig identifizierbar und somit adressierbar sein. Dafür sorgen URLs (Unique Ressource Locator), die Nutzern des Internets bekannt sind. Name, Straße und Hausnummer im Netz sind ähnlich wie bei Adressen von Personen eindeutig identifizierbar.
- 2) Verschiedene Darstellungen von Ressourcen: Ein Webservice soll unterschiedliche Darstellungsformen haben können. Als Beispiel ist es möglich, dass eine Ressource in verschiedenen Sprachen erscheint.
- 3) Die Fähigkeit zur Selbstbeschreibung: Ressourcen sollen z.B. im Sinne der Nutzung von Standards selbstbeschreibend sein.
- 4) HATEOAS (Hypermedia as the Engine of Application State): Die Abkürzung steht für das Grundprinzip des Architekturstils. Dies besteht darin, das die Kommunikation eines Clients über die API Schnittstelle immer durch die vom Server bereitgestellten URLs erfolgt.
Die Vorteile von REST
Klarer Vorteil ist die Skalierbarkeit, also die Fähigkeit, sich an wachsende Ansprüche in Sachen Leistungsfähigkeit anzupassen. Web-Dienste unter diesem Architekturstil müssen den Status einer Kommunikation zwischen Server und Client nicht speichern. Sie sparen Zeit sowie Speicherplatz und damit Kapazitäten für die Erweiterung der Leistungsfähigkeit.
Die bereits beschriebene Zustandslosigkeit steigert die Zuverlässigkeit, weil dadurch Wiederherstellungsprozesse nach Fehlern erleichtert werden. Ein fehlerhafter Service kann schnell neu gestartet werden, weil sein Zustand grundsätzlich keine Rolle spielt.
Vorteilhaft ist auch, dass fremde Systeme von Maschinen über eine Schnittstelle jederzeit eingebunden werden können.
Weil die Bestandteile des Architekturstils unabhängig voneinander laufen, ist stabile Kommunikation möglich. Der Vorteil ist vergleichbar mit einer Website, von der einzelne Seiten ausgetauscht werden können, ohne die andere Seiten anpassen zu müssen.
Welcher von beiden ist besser?
SOAP ist der bevorzugt im Internet genutzte Standard und wird es wohl auch bleiben, weil das Herz wichtiger Software-Unternehmen dafür schlägt. Dies bedeutet jedoch nicht, dass für REST gar nichts spricht. Der Architekturstil erfordert theoretisch weniger Implementierungsaufwand. Da sich die Software-Hersteller in der Praxis jedoch eher um ihren Liebling kümmern, haben sie jede Menge Tools entwickelt, um dessen Implementierung zu erleichtern. Im Unterschied dazu gibt es für den Architekturstil nur wenige Tools.
Die Funktionsweisen beider Standards unterscheiden sich in einem wesentlichen Punkt. Zur Erläuterung soll das Beispiel der Postzusendung an eine Firma dienen. Während REST die Briefe direkt an die einzelnen Mitarbeiter sendet, verschickt SOAP zunächst alle Nachrichten an die allgemeine Firmenadresse. Diese werden dann innerhalb des Betriebes weiter verteilt.
In SOAP sind alle Nachrichten so verschlüsselt, dass sie nicht interpretiert werden können. Beim Architekturstil ist jede Message in der URL codiert. Mithilfe einer Firewall können Administratoren bestimmte URLs sperren und so Maßnahmen gegen unberechtigte Zugriffe auf Server ergreifen. Der Architekturstil vermeidet also Nachteile in Sachen Sicherheit.
Technologien im Netz sollten skalierbar und zuverlässig sein. Die Funktionsweise des Architekturstils bietet durch ihren oben beschriebenen Anspruch auf Zustandslosigkeit gute Voraussetzungen dafür.
Die Entscheidung, welcher Standard gebraucht werden soll, hängt im Einzelfall von den Umständen ab, unter denen ein Webservice funktioniert.
Begriffserklärungen
Auszeichnungssprache: Eine Auszeichnungssprache ist eine maschinenlesbare Sprache zur Strukturierung von Daten. Eine bekanntes Beispiel ist HTML, das den inhaltlichen Aufbau von Webseiten definiert.
HTTP: Das Hypertext Transfer Protocol (HTTP) ist ein Protokoll zur Kommunikation in einem Netzwerk. Im Internet wird es zur Übertragung von Webseiten in den Browser eines Computers verwendet.
Eine API (Application Programming Interface – Deutsch: Anwendungsschnittstelle) ist ein Software-System, das anderen Programmen zur Anbindung an das eigene zur Verfügung gestellt wird.
JSON (JavaScript Object Notation) ist ein in leicht lesbarer Textform geschriebenes Datenformat, das der Kommunikation im Netz dient.
Interessante Links:
Der Unterschied von SOAP und Rest
Ein Vergleich von SOAP und Rest
Bilder: Canva
Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.
Schreibe einen Kommentar