Was sind WSDL, SOAP und REST?

153

Was ist WSDL ? Wie hängt es mit SOAP zusammen ? Wo passt REST in all das?

javaguy
quelle
2
Welche Art von "Beispielen" suchen Sie? Wie gesagt, es ist keine einfache Sache, für die man ein "einfaches" Beispiel bekommen kann.
John Saunders

Antworten:

180

Eine WSDL ist ein XML-Dokument, das einen Webdienst beschreibt. Es steht eigentlich für Web Services Description Language.

SOAP ist ein XML-basiertes Protokoll, mit dem Sie Informationen über ein bestimmtes Protokoll (z. B. HTTP oder SMTP) zwischen Anwendungen austauschen können. Es steht für Simple Object Access Protocol und verwendet XML als Messaging-Format, um die Informationen weiterzuleiten.

REST ist ein Architekturstil vernetzter Systeme und steht für Representational State Transfer. Es ist kein Standard selbst, verwendet jedoch Standards wie HTTP, URL, XML usw.

keith_c
quelle
4
Ich wollte SMTP oder HTTP als Beispiele für Protokolle verwenden, über die SOAP verwendet werden kann. Ich wollte nicht, dass HTTP das einzige Protokoll ist, das verwendet werden kann (ich habe es nur als Beispiel verwendet).
keith_c
7
Representational State Transfer (REST) ​​ist ein Architekturstil, der Einschränkungen wie die einheitliche Schnittstelle angibt, die bei Anwendung auf einen Webdienst wünschenswerte Eigenschaften wie Leistung, Skalierbarkeit und Modifizierbarkeit hervorrufen, die es den Diensten ermöglichen, im Web am besten zu funktionieren. Im REST-Stil werden Daten und Funktionen als Ressourcen betrachtet und über URIs (Uniform Resource Identifiers) aufgerufen. Auf die Ressourcen wird mithilfe einer Reihe einfacher, genau definierter Operationen reagiert. Es folgt der Client / Server-Architektur und verwendet ein zustandsloses Kommunikationsprotokoll, normalerweise HTTP.
König Am
4
Steht das 'D' in WSDL nicht für "Beschreibung" anstelle von "Definition"?
Sparkzz
11
"A WSDL is an XML document that describes a web service. It actually stands for Web Services Definition Language." Dies erklärt wirklich nicht, was es ist ...
Ojonugwa Jude Ochalifu
2
@ Parkzz laut Wikipedia:The current version of WSDL is WSDL 2.0. The meaning of the acronym has changed from version 1.1 where the "D" stood for "Definition".
Bochu
106

Beispiel: In einfachen Worten, wenn Sie einen Webdienst von Rechner haben.

WSDL: WSDL informiert über die Funktionen, die Sie implementieren oder für den Client verfügbar machen können. Zum Beispiel: Hinzufügen, Löschen, Subtrahieren und so weiter.

SOAP: Wenn Sie SOAP verwenden, führen Sie tatsächlich Aktionen wie doDelete (), doSubtract (), doAdd () aus. SOAP und WSDL sind also Äpfel und Orangen. Wir sollten sie nicht vergleichen. Sie haben beide ihre eigenen unterschiedlichen Funktionen.

Warum wir SOAP und WSDL verwenden: Für den plattformunabhängigen Datenaustausch.

EDIT: In einem normalen Alltag Beispiel:

WSDL: Wenn wir in ein Restaurant gehen, sehen wir die Menüpunkte, das sind die WSDLs.

Proxy-Klassen: Nachdem wir uns die Menüelemente angesehen haben, entscheiden wir uns (was wir bestellen sollen): Im Grunde genommen erstellen wir Proxy-Klassen basierend auf dem WSDL-Dokument.

SOAP: Wenn wir dann das Essen tatsächlich anhand der Menüs bestellen: Das heißt, wir verwenden Proxy-Klassen, um die Servicemethoden aufzurufen, die mit SOAP durchgeführt werden. :) :)

Unzerbrechlich
quelle
38

Jedes Mal, wenn jemand SOAP / WSDL erwähnt, denke ich an Objekte und Klassen, die in XML definiert sind ...

"Sie verwenden SOAP genauso wie jede andere PHP-Klasse. In diesem Fall ist die Klasse jedoch nicht im Dateisystem der lokalen Anwendungen vorhanden, sondern an einem Remotestandort, auf den über http zugegriffen wird." ... "Wenn wir uns vorstellen, einen SOAP-Dienst nur als eine andere PHP-Klasse zu verwenden, ist das WSDL-Dokument eine Liste aller verfügbaren Klassenmethoden und -eigenschaften."

http://www.doublehops.com/2009/07/07/quick-tutorial-on-getting-started-with-soap-in-php/comment-page-1/

..und wenn jemand über REST spricht, denke ich an HTTP-Befehle (Anforderungsmethoden) wie POST, GET und DELETE

angelcool.net
quelle
19

SOAP -> SOAP (Simple Object Access Protocal) ist das Protocal auf Anwendungsebene, das für die Interaktion von Maschine zu Maschine erstellt wurde. Das Protokoll definiert Standardregeln. Alle Parteien, die das jeweilige Protokoll verwenden, sollten die Protokollregeln einhalten. Wie TCP wird es auf der Transportschicht abgewickelt. Das SOAP-Protokoll wird von der Anwendungsschicht verstanden (jede Anwendung, die SOAP - Axis2, .Net unterstützt).

WSDL -> SOAP-Nachricht besteht aus SoapEnevelope-> SoapHeader und SoapBody. Es definiert nicht, was Nachrichtenformat wäre? Welche Transporte (HTTP, JMS) werden unterstützt? Ohne diese Informationen ist es für jeden Client, der den jeweiligen Webdienst nutzen möchte, schwierig, die SOAP-Nachricht zu erstellen. Selbst wenn sie es tun, werden sie nicht sicher sein, es wird die ganze Zeit funktionieren. WSDL ist die Rettung. WSDL (Web Service Description Language) definiert die Vorgänge, Nachrichtenformate und Transportdetails für die SOAP-Nachricht.

REST -> REST (Representational State Transfer) basiert auf dem Transport. Im Gegensatz zu SOAP, das auf die Aktionen abzielt, betrifft REST mehr die Ressourcen. REST sucht die Ressourcen mithilfe der URL (Beispiel -http: // {serverAddress} / employee / employeeNumber / 12345) und hängt vom Transportprotokoll (mit HTTP - GET, POST, PUT, DELETE, ...) für die Aktionen ab an den Ressourcen durchgeführt werden. Der REST-Service sucht die Ressource basierend auf der URL und führt die Aktion basierend auf dem Transportaktionsverb aus. Es basiert eher auf architektonischem Stil und Konventionen.

Raj kannan Iyyappan
quelle
16

Sie werden etwas Komplexes nicht "einfach" verstehen.

WSDL ist eine XML-basierte Sprache zur Beschreibung eines Webdienstes. Es beschreibt die vom Dienst verwendeten Nachrichten, Vorgänge und Netzwerktransportinformationen. Diese Webdienste verwenden normalerweise SOAP, können jedoch auch andere Protokolle verwenden.

Eine WSDL kann von einem Programm gelesen werden und kann daher verwendet werden, um den gesamten oder einen Teil des Clientcodes zu generieren, der zum Aufrufen des Webdienstes erforderlich ist. Dies bedeutet, SOAP-basierte Webdienste als "selbstbeschreibend" zu bezeichnen.

REST ist überhaupt nicht mit WSDL verbunden.

John Saunders
quelle
11

SOAP steht für Simple (sic) Object Access Protocol. Es sollte eine Möglichkeit sein, Remoteprozeduraufrufe an Remoteobjekte durchzuführen, indem XML über HTTP gesendet wird.

WSDL ist die Web Service Description Language. Eine Anforderung, die mit '.wsdl' an einen Endpunkt endet, führt zu einer XML-Nachricht, die die Anforderung und Antwort beschreibt, die eine Verwendung erwarten kann. Es beschreibt den Vertrag zwischen Service & Kunde.

REST verwendet HTTP, um Nachrichten an Dienste zu senden.

SOAP ist eine Spezifikation, REST ist ein Stil.

Duffymo
quelle
2
-1: Entschuldigung, aber ich bin nicht damit einverstanden, SOAP mit RPC zu verknüpfen. Was ist mit Diensten im Nachrichtenstil? Es gibt auch keinen Standard, der besagt, dass eine Anforderung, die mit .wsdl oder? Wsdl endet, eine WSDL generiert.
John Saunders
4
Wollen Sie damit sagen, dass Sie mit SOAP kein RPC ausführen können? Ich weiß, dass dies möglicherweise nicht den gesamten Standard umfasst, aber es war sicherlich die ursprüngliche Motivation. Soweit die WSDL-URL Teil des Standards ist oder nicht, gebe ich zu, dass Sie mich dort haben. Normalerweise sehe ich das so, aber ich kann nichts in dem Standard zitieren, der es vorschreibt.
Duffymo
1
Möglicherweise haben Sie die Tatsache, dass SOAP von XML-RPC abgeleitet wurde, mit der Idee verwechselt, dass SOAP ursprünglich als RPC gedacht war. Beachten Sie jedoch, dass WSDL von Anfang an neben RPC-Diensten auch Dienste im Dokumentstil beschreiben konnte. Wenn RPC die ursprüngliche Motivation für SOAP und WSDL wäre, würde man erwarten, dass Dienste im Dokumentstil im ursprünglichen Standard nicht enthalten wären.
John Saunders
6

Wikipedia sagt: "Die Web Services Description Language ist eine XML-basierte Sprache, die ein Modell zur Beschreibung von Web Services bietet." Anders ausgedrückt, WSDL ist ein Webdienst, wie Javadoc eine Java-Bibliothek.

Das wirklich Süße an WSDL ist jedoch, dass Software mithilfe von WSDL einen Client und einen Server generieren kann.

Michael Burrows
quelle
4

REST ist in Bezug auf die Codierung leichtgewichtig und für leichte Geräte, dh nicht strenge APIs, viel nützlicher.

REST ist formatunabhängig. XML, HTML, JSON Alle Optionen sind verfügbar.

REST bietet Funktionen für die 2-Punkt-Nachrichtenübertragung (nicht überraschend, da REST für REpresentational State Transfer steht), bei der die WSDL / SOAP-Interaktion eine Mehrpunkt-Nachrichteninteraktion ist.

Für REST ist keine neue Erweiterung für XML-Nachrichten erforderlich. In WSDL / SOAP ist dies der Fall.

WSDL / SOAP verwendet mehrere Transportprotokolle, REST basiert nur auf HTTP. Daher kann WSDL / SOAP wie ein REST-fähiger Weg verwendet werden, jedoch können einfache Anforderungen übermäßig kompliziert / schwergewichtig sein.

Eine einfache Analogie: REST ist wie ein Motoboy, der Ihr Essen einfach und schnell liefert. XML erweitert WSDL / SOAP eher wie UPS-Zustellung, strukturierter und seriöser, ist jedoch mit Kosten verbunden.

Bedi Egilmez
quelle
0

Ein WSDL-Dokument beschreibt einen Webservice. Es gibt den Speicherort des Dienstes und die Methoden des Dienstes unter Verwendung dieser Hauptelemente an: Datentypen, die in Webservice-Datenelementen für jede Operation verwendet werden, beschreiben die Operationen, die ausgeführt werden können, und die beteiligten Nachrichten

SOAP (Simple Object Access Protocol) ist ein Messaging-Protokoll, mit dem Programme, die auf unterschiedlichen Betriebssystemen ausgeführt werden, über http und xml kommunizieren können.

Farzaneh
quelle