Einleitung
Unter Web Services versteht man im Netz (Internet oder Intranet) veröffentlichte Software, die über Schnittstellen angesprochen werden kann. Die Kommunikation zwischen Client (aufrufender Teil) und Service (Bereitstellung der Software) erfolgt über den Austausch von XML-basierten Nachrichten. Diese werden mittels Internetprotokollen übertragen. Die Web Services sind dabei plattformunabhängig und auch unabhängig von Programmiersprachen. Die Frage ist: benutze ich einen SOAP oder REST Service ?
Was ist SOAP
SOAP steht für Simple Access Protocoll. Es handelt sich hier um ein auf XML- basierendes Protokoll zum Austausch von strukturierten Informationen und unterliegt dem W3C-Standard. Man kann SOAP als Framework für die Übertragung von XML-Nachrichten ansehen, dass nur eine minimale Grundfunktionalität bietet. Von daher sind Merkmale, wie Routing, Sicherheit und Verlässlichkeit nicht im Standard enthalten. Diese können jedoch durch beliebige Erweiterungen zur Verfügung gestellt werden. SOAP übernimmt bei der Kommunikation zwischen Service und Konsument die Verpackung, Strukturierung und Kapselung der auszutauschenden Informationen. Dabei ist es auf kein bestimmtes Transportprotokoll festgelegt.
Was ist REST
Rest steht für Representional State Transfer. REST hatte ursprünglich nichts mit Web Services zu tun. Es diente vielmehr als Architekturvorbild für das Internet. Deshalb basiert nahezu das gesamte Internet auf REST. Viele Suchmaschinen, Shops etc. wurden instinktiv so implementiert, dass diese der REST- Architektur entsprechen. Der Begriff selber wurde jedoch erst im Jahr 2000 in der Dissertation von Thomas Roy Fielding definiert. Bei einer Rest-Anwendung ist jede Ressource – bspw. Bilder, Websites, Videos – über eine URI adressiert und kann so angesprochen werden. Die Interaktionen von REST sind dabei statuslos, was bedeutet, dass eine Anfrage sämtliche benötigen Informationen braucht, und keine Abhängigkeiten zu anderen Anfragen hat. Als Transportprotokoll wird das http-Protokoll verwendet.
Der Vergleich
SOAP erfordert einen höheren Implementierungsaufwand als REST. Allerdings gibt es für SOAP zahlreiche Frameworks, die das Planen und Entwickeln erleichtern. So gibt es Tools, die aus der WSDL Datei (Web Service Description Language) die passenden Klassen entwickeln. Dies ist bei REST noch nicht der Fall. SOAP erfordert allerdings eine starke Bindung zwischen Client und Service. Bei jeder Veränderung des Servers muss der Client angepasst werden. So ist es ratsam den Client erst nach der Fertigstellung des Server-Teils zu implementieren. Dies ist bei REST nicht der Fall. Ändert sich die Darstellung einer Ressource oder wird eine neue Ressource hinzugefügt, so kann der Client beibehalten werden. Man muss lediglich nur wissen über welche URL die neue Ressource erreichbar ist. Allerdings fehlt bei REST-Services eine standardisierte Sprache zur Beschreibung des Web Services (in SOAP WSDL). Auch gibt es keinen Dienst zum Auffinden von Webservices (in SOAP UDDI). Solange diese Lücken nicht vollständig gefüllt sind, ist REST kein vollwertiger Ersatz für SOAP. Als Microsoft Partner stehen wir Ihnen bei Ihren Fragen und Herausforderungen jederzeit gerne beratend zur Seite. Nehmen Sie doch einfach einmal unverbindlich Kontakt mit uns auf.