¿Qué son WSDL, SOAP y REST?

153

¿Qué es WSDL ? ¿Cómo se relaciona con SOAP ? ¿Dónde encaja REST en todo eso?

javaguy
fuente
2
¿Qué tipo de "ejemplos" estás buscando? Como dije, no es algo simple de lo que puedas obtener un ejemplo "simple".
John Saunders

Respuestas:

180

Un WSDL es un documento XML que describe un servicio web. En realidad significa lenguaje de descripción de servicios web.

SOAP es un protocolo basado en XML que le permite intercambiar información sobre un protocolo particular (puede ser HTTP o SMTP, por ejemplo) entre aplicaciones. Significa Protocolo simple de acceso a objetos y utiliza XML para su formato de mensajes para transmitir la información.

REST es un estilo arquitectónico de sistemas en red y significa Representational State Transfer. No es un estándar en sí mismo, pero sí utiliza estándares como HTTP, URL, XML, etc.

keith_c
fuente
44
Tenía la intención de poner SMTP o HTTP como ejemplos de protocolos sobre los que se puede usar SOAP. No tenía la intención de significar que HTTP es el único protocolo que se puede usar (solo lo estaba usando como ejemplo).
keith_c
77
Representational State Transfer (REST) ​​es un estilo arquitectónico que especifica restricciones, como la interfaz uniforme, que si se aplica a un servicio web induce propiedades deseables, como el rendimiento, la escalabilidad y la modificabilidad, que permiten que los servicios funcionen mejor en la Web. En el estilo REST, los datos y la funcionalidad se consideran recursos y se accede a ellos mediante identificadores uniformes de recursos (URI). Se actúa sobre los recursos mediante el uso de un conjunto de operaciones simples y bien definidas. sigue la arquitectura cliente / servidor y está diseñado para usar un protocolo de comunicación sin estado, típicamente HTTP.
kingAm
44
¿La 'D' en WSDL no significa "Descripción" en lugar de "Definición"?
Sparkzz
11
"A WSDL is an XML document that describes a web service. It actually stands for Web Services Definition Language." Esto realmente no explica qué es ...
Ojonugwa Jude Ochalifu
2
@Sparkzz según 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

Ejemplo: en términos simples, si tiene un servicio web de calculadora.

WSDL: WSDL le informa sobre las funciones que puede implementar o exponer al cliente. Por ejemplo: sumar, eliminar, restar, etc.

SOAP: donde, al usar SOAP, realizas acciones como doDelete (), doSubtract (), doAdd (). SOAP y WSDL son manzanas y naranjas. No debemos compararlos. Ambos tienen su propia funcionalidad diferente.

Por qué utilizamos SOAP y WSDL: para el intercambio de datos independiente de la plataforma.

EDITAR: en un ejemplo normal de la vida diaria:

WSDL: cuando vamos a un restaurante vemos los elementos del menú, esos son los WSDL.

Clases de Proxy: Ahora, después de ver los Elementos del Menú, decidimos (Procesar nuestra mente sobre qué ordenar): Entonces, básicamente hacemos clases de Proxy basadas en el Documento WSDL.

SOAP: Luego, cuando realmente ordenamos los alimentos en función del menú: lo que significa que usamos clases proxy para recurrir a los métodos de servicio que se realizan utilizando SOAP. :)

Irrompible
fuente
38

Cada vez que alguien menciona SOAP / WSDL, pienso en objetos y clases definidos en xml ...

"Utiliza SOAP de la misma manera que lo haría con cualquier clase de PHP. Sin embargo, en este caso, la clase no existe en el sistema de archivos de las aplicaciones locales, sino en un sitio remoto al que se accede a través de http". ... "Si pensamos en usar un servicio SOAP como otra clase de PHP, el documento WSDL es una lista de todos los métodos y propiedades de clase disponibles".

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

..y cada vez que alguien habla de REST pienso en los comandos de HTTP (métodos de solicitud) como POST, GET y DELETE

angelcool.net
fuente
19

SOAP -> SOAP (Protocolo simple de acceso a objetos) es el protocolo de nivel de aplicación creado para la interacción máquina a máquina. El protocolo define reglas estándar. Todas las partes que utilizan el protocolo particular deben cumplir con las reglas del protocolo. Al igual que TCP, se desenrolla en la capa de transporte, el protocolo SOAP será entendido por la capa de aplicación (cualquier aplicación que admita SOAP - Axis2, .Net).

El mensaje WSDL -> SOAP consiste en SoapEnevelope-> SoapHeader y SoapBody. ¿No define cuál sería el formato del mensaje? ¿Cuáles son todos los transportes (HTTP, JMS) que admite? sin esta información, es difícil para cualquier cliente que quiera consumir el servicio web en particular construir el mensaje SOAP. Incluso si lo hacen, no estarán seguros, funcionará todo el tiempo. WSDL es el rescate. WSDL (lenguaje de descripción del servicio web) define las operaciones, los formatos de mensaje y los detalles de transporte para el mensaje SOAP.

REST -> REST (Transferencia de estado representativa) se basa en el transporte. A diferencia de SOAP que se enfoca en las acciones, REST se preocupa más por los recursos. REST localiza los recursos mediante el uso de URL (ejemplo -http: // {serverAddress} / employee / employeeNumber / 12345) y depende del protocolo de transporte (con HTTP - GET, POST, PUT, DELETE, ...) para las acciones para ser realizado en los recursos. El servicio REST localiza el recurso en función de la URL y realiza la acción en función del verbo de acción de transporte. Es más de estilo arquitectónico y convenciones basadas.

Raj kannan Iyyappan
fuente
16

No vas a "simplemente" entender algo complejo.

WSDL es un lenguaje basado en XML para describir un servicio web. Describe los mensajes, las operaciones y la información de transporte de red utilizada por el servicio. Estos servicios web generalmente usan SOAP, pero pueden usar otros protocolos.

Un programa puede leer un WSDL y, por lo tanto, puede usarse para generar todo o parte del código del cliente necesario para llamar al servicio web. Esto es lo que significa llamar a los servicios web basados ​​en SOAP "autodescriptivos".

REST no está relacionado con WSDL en absoluto.

John Saunders
fuente
11

SOAP significa Protocolo simple (sic) de acceso a objetos. Estaba destinado a ser una forma de realizar llamadas de procedimiento remoto a objetos remotos mediante el envío de XML a través de HTTP.

WSDL es lenguaje de descripción de servicio web. Una solicitud que termina en '.wsdl' a un punto final dará como resultado un mensaje XML que describe la solicitud y la respuesta que un uso puede esperar. Describe el contrato entre servicio y cliente.

REST usa HTTP para enviar mensajes a los servicios.

SOAP es una especificación, REST es un estilo.

duffymo
fuente
2
-1: lo siento, pero no estoy de acuerdo con asociar SOAP con RPC. ¿Qué pasa con los servicios de estilo de mensaje? Además, no hay un estándar que diga que una solicitud que termina en .wsdl o? Wsdl generará un WSDL.
John Saunders
44
¿Estás diciendo que no puedes hacer RPC con SOAP? Sé que podría no abarcar todo el estándar, pero sin duda fue la motivación original. En cuanto a si la URL WSDL es o no parte del estándar, admitiré que me tienes allí. Por lo general, es como lo veo hecho, pero no puedo citar nada en el estándar que lo exija.
duffymo
1
Es posible que haya confundido el hecho de que SOAP se derivó de XML-RPC con la idea de que SOAP se pensó originalmente como un RPC. Sin embargo, tenga en cuenta que WSDL, desde el principio, pudo describir los servicios de estilo de documento, además de los servicios de estilo RPC. Si RPC fuera la motivación original detrás de SOAP y WSDL, entonces uno esperaría que los servicios de estilo de documento hubieran estado ausentes del estándar original.
John Saunders
6

Wikipedia dice "El lenguaje de descripción de servicios web es un lenguaje basado en XML que proporciona un modelo para describir servicios web". Dicho de otra manera, WSDL es para un servicio web, como javadoc es para una biblioteca java.

Sin embargo, lo realmente bueno de WSDL es que el software puede generar un cliente y un servidor usando WSDL.

Michael Burrows
fuente
4

REST es liviano en términos de codificación, mucho más útil para dispositivos livianos, es decir, API no estrictas.

REST es un formato independiente. XML, HTML, JSON todas las opciones están disponibles.

REST proporciona capacidades para la transferencia de mensajes de 2 puntos (no es sorprendente ya que REST significa Transferencia de estado representativa) donde la interacción WSDL / SOAP es interacción de mensajes de múltiples puntos.

REST no requiere una nueva extensión para mensajes XML, donde en WSDL / SOAP este es el caso.

WSDL / SOAP utiliza múltiples protocolos de transporte, REST se basa solo en HTTP. Por lo tanto, WSDL / SOAP puede usarse como una forma RESTful, sin embargo, las solicitudes simples pueden ser demasiado complicadas / pesadas.

Una analogía simple: REST es como un motoboy que entrega su comida de manera fácil y rápida. XML extendió WSDL / SOAP más como entrega de UPS, cosas más estructuradas y serias pero tiene un costo.

Bedi Egilmez
fuente
0

Un documento WSDL describe un servicio web. Especifica la ubicación del servicio y los métodos del servicio utilizando estos elementos principales: los tipos de datos que se utilizan en los elementos de datos del servicio web para cada operación describen las operaciones que se pueden realizar y los mensajes involucrados

SOAP (Protocolo simple de acceso a objetos) es un protocolo de mensajería que permite que los programas que se ejecutan en sistemas operativos dispares se comuniquen mediante http y xml.

Farzaneh
fuente