Cosa sono WSDL, SOAP e REST?


Risposte:


180

Un WSDL è un documento XML che descrive un servizio Web. In realtà è l'acronimo di Web Services Description Language.

SOAP è un protocollo basato su XML che consente di scambiare informazioni su un determinato protocollo (ad esempio HTTP o SMTP) tra applicazioni. È l'acronimo di Simple Object Access Protocol e utilizza XML per il suo formato di messaggistica per inoltrare le informazioni.

REST è uno stile architettonico di sistemi in rete e sta per Rappresentational State Transfer. Non è uno standard in sé, ma utilizza standard come HTTP, URL, XML, ecc.


4
Intendevo mettere SMTP o HTTP come esempi di protocolli su cui SOAP può essere utilizzato. Non avevo intenzione di significare che HTTP è l'unico protocollo che può essere usato (lo stavo solo usando come esempio).
keith_c,

7
Representational State Transfer (REST) ​​è uno stile architettonico che specifica vincoli, come l'interfaccia uniforme, che se applicati a un servizio Web inducono proprietà desiderabili, come prestazioni, scalabilità e modificabilità, che consentono ai servizi di funzionare al meglio sul Web. Nello stile REST, i dati e le funzionalità sono considerati risorse e sono accessibili tramite gli Uniform Resource Identifier (URI). Le risorse vengono gestite utilizzando una serie di operazioni semplici e ben definite. segue l'architettura client / server ed è progettato per utilizzare un protocollo di comunicazione senza stato, in genere HTTP.
King:

4
La 'D' in WSDL non sta per "Descrizione" anziché "Definizione"?
Sparkzz,

11
"A WSDL is an XML document that describes a web service. It actually stands for Web Services Definition Language." Questo non spiega davvero di cosa si tratta ...
Ojonugwa Jude Ochalifu,

2
@Sparkzz secondo 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

Esempio: in parole povere se si dispone di un servizio Web di calcolatrice.

WSDL: WSDL descrive le funzioni che è possibile implementare o esporre al client. Ad esempio: aggiungi, elimina, sottrai e così via.

SOAP: laddove utilizzando SOAP si eseguono effettivamente azioni come doDelete (), doSubtract (), doAdd (). Quindi SOAP e WSDL sono mele e arance. Non dovremmo confrontarli. Entrambi hanno le loro diverse funzionalità.

Perché utilizziamo SOAP e WSDL: per lo scambio di dati indipendente dalla piattaforma.

EDIT: in un normale esempio di vita quotidiana:

WSDL: Quando andiamo in un ristorante vediamo le voci del menu, quelle sono le WSDL.

Classi proxy: ora dopo aver visto le voci di menu decidiamo (elabora la nostra mente su cosa ordinare): quindi, fondamentalmente, realizziamo classi proxy basate sul documento WSDL.

SOAP: Quindi, quando ordiniamo effettivamente il cibo in base al Menu: Significato, usiamo le classi proxy per fare appello ai metodi di servizio che sono fatti usando SOAP. :)


38

Ogni volta che qualcuno menziona SOAP / WSDL, penso a oggetti e classi definiti in xml ...

"Usi SOAP esattamente come faresti con qualsiasi classe PHP. Tuttavia, in questo caso la classe non esiste nel file system delle applicazioni locali, ma in un sito remoto accessibile tramite http." ... "Se pensiamo di usare un servizio SOAP come solo un'altra classe PHP, il documento WSDL è un elenco di tutti i metodi e le proprietà della classe disponibili."

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

..e ogni volta che qualcuno parla di REST penso ai comandi HTTP (metodi di richiesta) come POST, GET e DELETE


19

SOAP -> SOAP (Simple object access protocal) è il protocal a livello di applicazione creato per l'interazione macchina-macchina. Il protocollo definisce le regole standard. Tutte le parti che utilizzano il protocollo specifico devono aderire alle regole del protocollo. Come TCP, si svolge a livello di trasporto, il protocollo SOAP sarà compreso dal livello Applicazione (qualsiasi applicazione che supporti SOAP - Axis2, .Net).

WSDL -> Il messaggio SOAP è composto da SoapEnevelope-> SoapHeader e SoapBody. Non definisce quale sarebbe il formato del messaggio? quali sono tutti i trasporti (HTTP, JMS) supportati? senza queste informazioni, è difficile per qualsiasi cliente che desideri utilizzare il particolare servizio Web per costruire il messaggio SOAP. Anche se lo fanno, non ne saranno sicuri, funzionerà sempre. WSDL è il salvataggio. WSDL (linguaggio di descrizione del servizio Web) definisce le operazioni, i formati dei messaggi e i dettagli di trasporto per il messaggio SOAP.

REST -> REST (trasferimento di stato rappresentativo) si basa sul trasporto. A differenza di SOAP che ha come obiettivo le azioni, REST riguarda maggiormente le risorse. REST individua le risorse utilizzando l'URL (esempio -http: // {indirizzo server} / impiegati / impiegatoNumero / 12345) e dipende dal protocollo di trasporto (con HTTP - GET, POST, PUT, DELETE, ...) per le azioni da eseguire sulle risorse. Il servizio REST individua la risorsa in base all'URL ed esegue l'azione in base al verbo dell'azione di trasporto. È più basato sullo stile architettonico e sulle convenzioni.


16

Non capirai "semplicemente" qualcosa di complesso.

WSDL è un linguaggio basato su XML per la descrizione di un servizio Web. Descrive i messaggi, le operazioni e le informazioni sul trasporto di rete utilizzate dal servizio. Questi servizi Web di solito utilizzano SOAP, ma possono utilizzare altri protocolli.

Un WSDL è leggibile da un programma e quindi può essere utilizzato per generare tutto o parte del codice client necessario per chiamare il servizio web. Questo è ciò che significa chiamare i servizi web basati su SOAP "auto-descrittivi".

REST non è affatto correlato a WSDL.


11

SOAP sta per Simple (sic) Object Access Protocol. Doveva essere un modo per eseguire chiamate di procedura remote a oggetti remoti inviando XML su HTTP.

WSDL è il linguaggio di descrizione del servizio Web. Una richiesta che termina con ".wsdl" su un endpoint genererà un messaggio XML che descrive la richiesta e la risposta che un uso può aspettarsi. Descrive il contratto tra servizio e cliente.

REST utilizza HTTP per inviare messaggi ai servizi.

SOAP è una specifica, REST è uno stile.


2
-1: scusa, ma non sono d'accordo con l'associazione di SOAP con RPC. Che dire dei servizi in stile messaggio? Inoltre, non esiste uno standard che dice che una richiesta che termina con .wsdl o? Wsdl genererà un WSDL.
John Saunders,

4
Stai dicendo che non puoi fare RPC con SOAP? So che potrebbe non comprendere l'intero standard, ma era sicuramente la motivazione originale. Se l'URL WSDL fa parte o meno dello standard, ammetto che mi hai lì. Di solito è il modo in cui lo vedo fatto, ma non posso citare nulla nello standard che lo impone.
duffymo,

1
Potresti aver confuso il fatto che SOAP fosse derivato da XML-RPC con l'idea che SOAP fosse originariamente inteso come RPC. Tuttavia, notare che WSDL, sin dall'inizio, è stato in grado di descrivere i servizi in stile documento, oltre ai servizi in stile RPC. Se RPC fosse la motivazione originale dietro SOAP e WSDL, allora ci si aspetterebbe che i servizi in stile documento sarebbero stati assenti dallo standard originale.
John Saunders,

6

Wikipedia dice "Il linguaggio di descrizione dei servizi Web è un linguaggio basato su XML che fornisce un modello per la descrizione dei servizi Web". Detto in altro modo, WSDL è per un servizio web, come javadoc è per una libreria java.

La cosa veramente dolce di WSDL, tuttavia, è che il software può generare un client e un server usando WSDL.


4

REST è leggero in termini di codifica, molto più utile per dispositivi leggeri, ovvero API non rigorose.

REST è indipendente dal formato. XML, HTML, JSON sono disponibili tutte le opzioni.

REST offre le capacità per il trasferimento di messaggi su 2 punti (non sorprende poiché REST sta per REpresentational State Transfer) in cui l'interazione WSDL / SOAP è interazione di messaggi a più punti.

REST non richiede una nuova estensione per i messaggi XML, dove in WSDL / SOAP questo è il caso.

WSDL / SOAP utilizza più protocolli di trasporto, REST si basa solo su HTTP. Pertanto WSDL / SOAP può essere utilizzato come un modo RESTful, tuttavia le richieste semplici possono essere eccessivamente complicate / pesanti.

Una semplice analogia: REST è come un motociclista che consegna il tuo cibo in modo facile e veloce. XML ha esteso WSDL / SOAP più come la consegna UPS, roba più strutturata e seria ma ha un costo.



0

Un documento WSDL descrive un servizio web. Specifica l'ubicazione del servizio e i metodi del servizio utilizzando questi elementi principali: i tipi di dati che utilizzano in webservice gli elementi di dati per ciascuna operazione descrivono le operazioni che possono essere eseguite e i messaggi coinvolti

SOAP (Simple Object Access Protocol) è un protocollo di messaggistica che consente ai programmi eseguiti su diversi sistemi operativi di comunicare tramite http e xml.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.