2010-09-21 21 views

Respuesta

113

Un WSDL es un documento XML que describe un servicio web. En realidad significa Web Services Definition Language.

SOAP es un protocolo basado en XML que le permite intercambiar información sobre un protocolo en particular (puede ser HTTP o SMTP, por ejemplo) entre aplicaciones. Significa Simple Object Access Protocol y utiliza XML para su formato de mensajería para retransmitir la información.

REST es un estilo arquitectónico de los sistemas en red y representa Representational State Transfer. No es una norma en sí, sino que hace uso de estándares como HTTP, URL, XML, etc.

+3

Quise poner SMTP o HTTP como ejemplos de protocolos sobre los que se puede usar SOAP. No pretendo que signifique que HTTP es el único protocolo que se puede usar (solo lo estaba usando como ejemplo). –

+0

añadido, todo mejor :-) –

+4

Representational State Transfer (REST) ​​es un estilo arquitectónico que especifica restricciones, como la interfaz uniforme, que si se aplica a un servicio web inducen 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 utilizando 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

9

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

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

REST usa HTTP para enviar mensajes a servicios.

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

+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 existe un estándar que indique que una solicitud que finaliza en .wsdl o? Wsdl generará un WSDL. –

+4

¿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 parte del estándar, admitiré que me tienes allí. Por lo general, es la forma en que lo veo hecho, pero no puedo citar nada en el estándar que lo exige. – duffymo

+0

Es posible que haya confundido el hecho de que SOAP se derivó de XML-RPC con la idea de que SOAP originalmente estaba destinado a ser una 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 era 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. –

7

No va 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 WSDL es legible por un programa y, por lo tanto, se puede usar para generar todo o parte del código de 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.

4

Wikipedia dice "La Web Services Description Language 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.

Lo realmente bueno de WSDL, sin embargo, es que el software puede generar un cliente y un servidor utilizando WSDL.

+0

comparación con javadoc ayudado, aplausos. – Andrejs

28

Cada vez que alguien menciona SOAP/WSDL, pienso en los objetos y clases definidas en XML ...

"utiliza jabón de la misma manera que lo haría con cualquier clase PHP. Sin embargo, en este caso, la clase no existe en el sistema de archivos de aplicaciones locales, sino en un sitio remoto al que se accede a través de http ". ... "Si pensamos en el uso de un servicio SOAP como otra clase PHP entonces el documento WSDL es una lista de todos los métodos de la clase y las propiedades 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

2

REST es de peso ligero en términos de codificación, mucho más útil para los dispositivos de peso ligero es decir, no APIs estrictas.

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

REST proporciona capacidades para la transferencia de mensajes de 2 puntos (lo cual no es de extrañar ya que REST significa REpresentational State Transfer) donde la interacción WSDL/SOAP es una 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 varios protocolos de transporte, REST solo se basa en HTTP. Por lo tanto, WSDL/SOAP se puede utilizar de manera RESTful, sin embargo, las solicitudes simples pueden ser demasiado complicadas/pesadas.

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

29

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: agregar, borrar, restar, etc.

SOAP: Cuando se usa SOAP, en realidad se realizan acciones como doDelete(), doSubtract(), doAdd(). Así que SOAP y WSDL son manzanas y naranjas. No deberíamos compararlos. Ambos tienen su propia funcionalidad diferente.

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

EDIT: En un día normal de la vida cotidiana ejemplo:

WSDL: Cuando vamos a un restaurante vemos los elementos de menú, esos son los WSDL de.

Clases de Proxy: Ahora, después de ver los elementos del menú, tomamos nuestra Mente (procesamos nuestra mente sobre qué orden): básicamente, hacemos clases de Proxy basadas en el Documento WSDL.

SOAP: Entonces, cuando realmente ordenamos la comida basándonos en los menús: Significamos que usamos clases de proxy para llamar a los métodos de servicio que se hace usando SOAP. :)

+0

¡Me encanta esta respuesta! – realnsleo

9

SOAP -> SOAP (protocal de acceso a objetos simple) 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 usan el protocolo particular deben cumplir las reglas del protocolo. Al igual que TCP, se desenrolla en la capa de transporte. La capa de aplicación comprenderá el protocolo SOAP (cualquier aplicación que admita SOAP - Axis2, .Net).

WSDL -> El mensaje SOAP consta de SoapEnevelope-> SoapHeader y SoapBody. No define lo que sería formato de 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 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 de servicio web) define las operaciones, los formatos de mensaje y los detalles de transporte para el mensaje SOAP.

REST -> REST (Transferencia de estado representacional) se basa en el Transporte. A diferencia de SOAP que se enfoca en las acciones, REST se refiere más a los recursos. REST localiza los recursos utilizando URL (ejemplo -http: // {serverAddress}/employees/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 basado en 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.

0

Un documento WSDL describe un servicio web. Se especifica la ubicación del servicio y los métodos de los servicios que utilizan estos elementos principales: tipos de datos utilizando en servicio web elementos de datos para cada operación describir las operaciones que se pueden realizar y los mensajes de alguien, pero

de SOAP (Simple Object Access Protocol) es un protocolo de mensajería que permite a los programas que se ejecutan en sistemas operativos dispares comunicarse usando http y xml.