Que sont WSDL, SOAP et REST?

153

Qu'est-ce que WSDL ? Quel est le lien avec SOAP ? Où se situe REST dans tout cela?

Javaguy
la source
2
Quel genre d '«exemples» recherchez-vous? Comme je l'ai dit, ce n'est pas une chose simple dont vous pouvez obtenir un exemple "simple".
John Saunders

Réponses:

180

Un WSDL est un document XML qui décrit un service Web. Il s'agit en fait de Web Services Description Language.

SOAP est un protocole basé sur XML qui vous permet d'échanger des informations sur un protocole particulier (peut être HTTP ou SMTP, par exemple) entre les applications. Il signifie Simple Object Access Protocol et utilise XML pour son format de messagerie pour relayer les informations.

REST est un style architectural de systèmes en réseau et signifie Representational State Transfer. Ce n'est pas une norme en soi, mais utilise des normes telles que HTTP, URL, XML, etc.

keith_c
la source
4
Je voulais mettre SMTP ou HTTP comme exemples de protocoles sur lesquels SOAP peut être utilisé. Je ne voulais pas que cela signifie que HTTP est le seul protocole qui peut être utilisé (je l'utilisais juste comme exemple).
keith_c
7
Le transfert d'état de représentation (REST) ​​est un style architectural qui spécifie des contraintes, telles que l'interface uniforme, qui, si elles sont appliquées à un service Web, induisent des propriétés souhaitables, telles que les performances, l'évolutivité et la modifiabilité, qui permettent aux services de fonctionner au mieux sur le Web. Dans le style REST, les données et les fonctionnalités sont considérées comme des ressources et sont accessibles à l'aide d'identificateurs de ressources uniformes (URI). Les ressources sont exploitées en utilisant un ensemble d'opérations simples et bien définies. il suit l'architecture client / serveur et est conçu pour utiliser un protocole de communication sans état, généralement HTTP.
kingAm
4
Le «D» dans WSDL ne signifie-t-il pas «Description» au lieu de «Définition»?
Sparkzz du
11
"A WSDL is an XML document that describes a web service. It actually stands for Web Services Definition Language." Cela n'explique vraiment pas ce que c'est ...
Ojonugwa Jude Ochalifu
2
@Sparkzz selon 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

Exemple: En termes simples si vous avez un service web de calculatrice.

WSDL: WSDL décrit les fonctions que vous pouvez implémenter ou exposées au client. Par exemple: ajouter, supprimer, soustraire et ainsi de suite.

SOAP: Lorsque vous utilisez SOAP, vous effectuez en fait des actions telles que doDelete (), doSubtract (), doAdd (). Donc SOAP et WSDL sont des pommes et des oranges. Nous ne devons pas les comparer. Ils ont tous deux leurs propres fonctionnalités.

Pourquoi nous utilisons SOAP et WSDL: pour l'échange de données indépendant de la plate-forme.

EDIT: Dans un exemple de la vie quotidienne normale:

WSDL: Lorsque nous allons dans un restaurant, nous voyons les éléments de menu, ce sont les WSDL.

Classes Proxy: Maintenant, après avoir vu les éléments du menu, nous nous décidons (Traitez notre esprit sur ce qu'il faut commander): Donc, fondamentalement, nous créons des classes Proxy basées sur le document WSDL.

SOAP: Ensuite, lorsque nous commandons réellement la nourriture en fonction du menu: ce qui signifie que nous utilisons des classes proxy pour faire appel aux méthodes de service qui sont effectuées à l'aide de SOAP. :)

Incassable
la source
38

Chaque fois que quelqu'un mentionne SOAP / WSDL, je pense aux objets et aux classes définis en xml ...

"Vous utilisez SOAP de la même manière que n'importe quelle classe PHP. Cependant, dans ce cas, la classe n'existe pas dans le système de fichiers des applications locales, mais sur un site distant accessible via http." ... "Si nous pensons que l'utilisation d'un service SOAP n'est qu'une autre classe PHP, le document WSDL est une liste de toutes les méthodes et propriétés de classe disponibles."

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

..et chaque fois que quelqu'un parle de REST, je pense aux commandes HTTP (méthodes de requête) comme POST, GET et DELETE

angelcool.net
la source
19

SOAP -> SOAP (Simple object access protocal) est le protocole de niveau application créé pour l'interaction machine à machine. Le protocole définit les règles standard. Toutes les parties qui utilisent le protocole particulier doivent adhérer aux règles du protocole. Comme TCP, il se déroule au niveau de la couche de transport. Le protocole SOAP sera compris par la couche Application (toute application prenant en charge SOAP - Axis2, .Net).

WSDL -> Le message SOAP se compose de SoapEnevelope-> SoapHeader et SoapBody. Il ne définit pas quel serait le format du message? quels sont tous les transports (HTTP, JMS) qu'il prend en charge? sans cette information, il est difficile pour tout client qui souhaite utiliser le service Web particulier de créer le message SOAP. Même s'ils le font, ils ne seront pas sûrs, cela fonctionnera tout le temps. WSDL est le sauvetage. WSDL (Web Service description Language) définit les opérations, les formats de message et les détails de transport pour le message SOAP.

REST -> REST (Representational state transfer) est basé sur le Transport. Contrairement à SOAP qui cible les actions, REST concerne davantage les ressources. REST localise les ressources en utilisant l'URL (exemple -http: // {serverAddress} / Employees / employeeNumber / 12345) et cela dépend du protocole de transport (avec HTTP - GET, POST, PUT, DELETE, ...) pour les actions à effectuer sur les ressources. Le service REST localise la ressource en fonction de l'URL et exécute l'action en fonction du verbe d'action de transport. Il est plus basé sur le style architectural et les conventions.

Raj kannan Iyyappan
la source
16

Vous n'allez pas «simplement» comprendre quelque chose de complexe.

WSDL est un langage basé sur XML pour décrire un service Web. Il décrit les messages, les opérations et les informations de transport réseau utilisés par le service. Ces services Web utilisent généralement SOAP, mais peuvent utiliser d'autres protocoles.

Un WSDL est lisible par un programme et peut donc être utilisé pour générer tout ou partie du code client nécessaire pour appeler le service Web. C'est ce que signifie appeler les services Web basés sur SOAP "auto-descriptifs".

REST n'est pas du tout lié à WSDL.

John Saunders
la source
11

SOAP est l'acronyme de Simple (sic) Object Access Protocol. Il était destiné à être un moyen de faire des appels de procédure distante vers des objets distants en envoyant du XML via HTTP.

WSDL est le langage de description de service Web. Une demande se terminant par '.wsdl' à un point de terminaison se traduira par un message XML décrivant la demande et la réponse qu'une utilisation peut attendre. Il décrit le contrat entre le service et le client.

REST utilise HTTP pour envoyer des messages aux services.

SOAP est une spécification, REST est un style.

duffymo
la source
2
-1: désolé, mais je ne suis pas d'accord pour associer SOAP à RPC. Qu'en est-il des services de type message? De plus, aucune norme n'indique qu'une requête se terminant par .wsdl ou? Wsdl générera un WSDL.
John Saunders
4
Êtes-vous en train de dire que vous ne pouvez pas faire de RPC avec SOAP? Je sais que cela pourrait ne pas englober toute la norme, mais c'était certainement la motivation initiale. Quant à savoir si l'URL WSDL fait ou non partie de la norme, j'admets que vous m'avez là. C'est généralement la façon dont je vois les choses, mais je ne peux rien citer dans la norme qui l'exige.
duffymo
1
Vous avez peut-être confondu le fait que SOAP était dérivé de XML-RPC avec l'idée que SOAP était à l'origine conçu comme un RPC. Cependant, notez que WSDL, dès le départ, a été en mesure de décrire des services de style document, en plus des services de style RPC. Si RPC était la motivation originale derrière SOAP et WSDL, alors on pourrait s'attendre à ce que les services de type document aient été absents de la norme originale.
John Saunders
6

Wikipédia dit que "Le langage de description des services Web est un langage basé sur XML qui fournit un modèle pour décrire les services Web". En d'autres termes, WSDL est à un service Web, comme javadoc est à une bibliothèque java.

La chose vraiment intéressante à propos de WSDL, cependant, est que le logiciel peut générer un client et un serveur en utilisant WSDL.

Michael Burrows
la source
4

REST est léger en termes de codage, beaucoup plus utile pour les appareils légers, c'est-à-dire les API non strictes.

REST est indépendant du format. XML, HTML, JSON toutes les options sont disponibles.

REST offre des capacités pour le transfert de messages sur 2 points (ce qui n'est pas surprenant puisque REST signifie REpresentational State Transfer) où l'interaction WSDL / SOAP est une interaction de message à points multiples.

REST ne nécessite pas de nouvelle extension pour les messages XML, alors qu'en WSDL / SOAP c'est le cas.

WSDL / SOAP utilise plusieurs protocoles de transport, REST repose uniquement sur HTTP. Par conséquent, WSDL / SOAP peut être utilisé comme une manière RESTful, mais les requêtes simples peuvent être trop compliquées / lourdes.

Une analogie simple: REST est comme un motoboy qui livre votre nourriture facilement et rapidement. XML étendu WSDL / SOAP plus comme la livraison UPS, des choses plus structurées et plus sérieuses, mais a un coût.

Bedi Egilmez
la source
0

Un document WSDL décrit un service Web. Il spécifie l'emplacement du service et les méthodes du service utilisant ces éléments majeurs: les types de données utilisant dans le webservice des éléments de données pour chaque opération décrivent les opérations qui peuvent être effectuées et les messages envolés

SOAP (Simple Object Access Protocol) est un protocole de messagerie qui permet aux programmes qui s'exécutent sur des systèmes d'exploitation disparates de communiquer en utilisant http et xml.

Farzaneh
la source