O que são WSDL, SOAP e REST?

153

O que é WSDL ? Como isso está relacionado ao SOAP ? Onde o REST se encaixa em tudo isso?

javaguy
fonte
2
Que tipo de "exemplos" você está procurando? Como eu disse, não é uma coisa simples da qual você pode obter um exemplo "simples".
John Saunders

Respostas:

180

Um WSDL é um documento XML que descreve um serviço da web. Na verdade, significa o idioma dos serviços da Web.

SOAP é um protocolo baseado em XML que permite trocar informações sobre um protocolo específico (pode ser HTTP ou SMTP, por exemplo) entre aplicativos. Significa Protocolo Simples de Acesso a Objetos e usa XML em seu formato de mensagens para retransmitir as informações.

REST é um estilo arquitetônico de sistemas em rede e significa Representational State Transfer. Não é um padrão em si, mas usa padrões como HTTP, URL, XML etc.

keith_c
fonte
4
Eu pretendia colocar o SMTP ou HTTP como exemplos de protocolos nos quais o SOAP pode ser usado. Eu não pretendia que isso significasse que o HTTP é o único protocolo que pode ser usado (estava apenas usando-o como exemplo).
keith_c
7
Representational State Transfer (REST) ​​é um estilo de arquitetura que especifica restrições, como a interface uniforme, que se aplicada a um serviço da Web induz propriedades desejáveis, como desempenho, escalabilidade e modificabilidade, que permitem que os serviços funcionem melhor na Web. No estilo REST, dados e funcionalidade são considerados recursos e são acessados ​​usando URIs (Uniform Resource Identifiers). Os recursos são utilizados usando um conjunto de operações simples e bem definidas. segue a arquitetura cliente / servidor e foi projetado para usar um protocolo de comunicação sem estado, normalmente HTTP.
kingAm
4
O 'D' no WSDL não significa "Descrição" em vez de "Definição"?
Sparkzz
11
"A WSDL is an XML document that describes a web service. It actually stands for Web Services Definition Language." Isso realmente não explica o que é ...
Ojonugwa Jude Ochalifu
2
@Sparkzz de acordo com a 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

Exemplo: Em termos simples, se você tiver um serviço web de calculadora.

WSDL: o WSDL informa sobre as funções que você pode implementar ou expor ao cliente. Por exemplo: adicione, exclua, subtraia e assim por diante.

SOAP: onde, ao usar o SOAP, você realmente executa ações como doDelete (), doSubtract (), doAdd (). Então, o SOAP e o WSDL são maçãs e laranjas. Não devemos compará-los. Ambos têm suas próprias funcionalidades diferentes.

Por que usamos SOAP e WSDL: para troca de dados independente da plataforma.

EDIT: Em um exemplo normal da vida cotidiana:

WSDL: Quando vamos a um restaurante, vemos os itens de menu, esses são os WSDLs.

Classes de proxy: Agora, depois de ver os itens de menu, decidimos (processar nossa mente sobre o que pedir): Então, basicamente fazemos classes de proxy com base no documento WSDL.

SOAP: Então, quando realmente pedimos a comida com base no menu: significa que usamos classes proxy para chamar os métodos de serviço que são feitos usando o SOAP. :)

Inquebrável
fonte
38

Toda vez que alguém menciona SOAP / WSDL, penso em objetos e classes definidos em xml ...

"Você usa o SOAP da mesma maneira que usaria qualquer classe PHP. No entanto, nesse caso, a classe não existe no sistema de arquivos dos aplicativos locais, mas em um site remoto acessado por http." ... "Se pensarmos em usar um serviço SOAP como apenas outra classe PHP, o documento WSDL é uma lista de todos os métodos e propriedades de classe disponíveis."

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

..e sempre que alguém fala sobre REST, penso nos comandos do HTTP (métodos de solicitação) como POST, GET e DELETE

angelcool.net
fonte
19

SOAP -> SOAP (protocal de acesso a objetos simples) é o protocal no nível do aplicativo criado para a interação máquina a máquina. Protocolo define regras padrão. Todas as partes que estão usando o protocolo específico devem aderir às regras do protocolo. Como o TCP, ele se desenrola na camada de transporte. O protocolo SOAP será entendido pela camada Aplicativo (qualquer aplicativo que suporte SOAP - Axis2, .Net).

A mensagem WSDL -> SOAP consiste em SoapEnevelope-> SoapHeader e SoapBody. Ele não define o que seria o formato da mensagem? Quais são todos os transportes (HTTP, JMS) suportados? sem essas informações, é difícil para qualquer cliente que queira consumir o serviço da Web específico criar a mensagem SOAP. Mesmo se o fizerem, não terão certeza, funcionará o tempo todo. WSDL é o resgate. O WSDL (Web Service description Language) define as operações, formatos de mensagem e detalhes de transporte para a mensagem SOAP.

REST -> REST (transferência de estado representacional) é baseado no transporte. Diferentemente do SOAP, que tem como alvo as ações, o REST se preocupa mais com os recursos. O REST localiza os recursos usando a URL (exemplo -http: // {serverAddress} / employee / employeeNumber / 12345) e depende do protocolo de transporte (com HTTP - GET, POST, PUT, DELETE, ...) para as ações a ser executado nos recursos. O serviço REST localiza o recurso com base na URL e executa a ação com base no verbo de ação de transporte. É mais um estilo arquitetônico e é baseado em convenções.

Raj kannan Iyyappan
fonte
16

Você não vai "simplesmente" entender algo complexo.

WSDL é uma linguagem baseada em XML para descrever um serviço da web. Ele descreve as mensagens, operações e informações de transporte de rede usadas pelo serviço. Esses serviços da Web geralmente usam SOAP, mas podem usar outros protocolos.

Um WSDL é legível por um programa e, portanto, pode ser usado para gerar todo ou parte do código do cliente necessário para chamar o serviço da web. É isso que significa chamar os serviços da web baseados em SOAP "de auto-descrição".

O REST não está relacionado ao WSDL.

John Saunders
fonte
11

SOAP significa Simple (sic) Object Access Protocol. O objetivo era ser uma maneira de fazer chamadas de procedimento remoto a objetos remotos enviando XML por HTTP.

WSDL é o idioma da descrição do serviço da web. Uma solicitação que termina em '.wsdl' em um nó de extremidade resultará em uma mensagem XML descrevendo a solicitação e a resposta que um uso pode esperar. Descreve o contrato entre serviço e cliente.

O REST usa HTTP para enviar mensagens aos serviços.

SOAP é uma especificação, REST é um estilo.

duffymo
fonte
2
-1: desculpe, mas não concordo em associar o SOAP ao RPC. E os serviços no estilo de mensagem? Além disso, não há um padrão que diga que uma solicitação que termina em .wsdl ou? Wsdl irá gerar um WSDL.
John Saunders
4
Você está dizendo que não pode fazer RPC com SOAP? Eu sei que isso pode não abranger todo o padrão, mas certamente foi a motivação original. Desde que a URL WSDL faça parte ou não do padrão, admito que você me tenha lá. Geralmente, é assim que eu vejo, mas não posso citar nada no padrão que o exija.
duffymo
1
Você pode estar confundindo o fato de que o SOAP foi derivado do XML-RPC com a ideia de que o SOAP foi originalmente concebido como um RPC. No entanto, observe que o WSDL, desde o início, conseguiu descrever os serviços no estilo de documento, além dos serviços no estilo RPC. Se o RPC fosse a motivação original por trás do SOAP e do WSDL, seria de esperar que os serviços no estilo de documento estivessem ausentes do padrão original.
John Saunders
6

A Wikipedia diz que "a linguagem de descrição de serviços da Web é uma linguagem baseada em XML que fornece um modelo para descrever serviços da Web". Dito de outra maneira, o WSDL é para um serviço da web, como o javadoc é para uma biblioteca java.

O mais interessante sobre o WSDL, porém, é que o software pode gerar um cliente e servidor usando o WSDL.

Michael Burrows
fonte
4

O REST é leve em termos de codificação, muito mais útil para dispositivos leves, ou seja, APIs não rígidas.

O REST é independente do formato. XML, HTML, JSON todas as opções estão disponíveis.

O REST fornece recursos para transferência de mensagens de 2 pontos (não é surpreendente, pois REST significa REpresentational State Transfer), onde a interação WSDL / SOAP é uma interação de mensagens de vários pontos.

O REST não requer uma nova extensão para mensagens XML, onde no WSDL / SOAP este é o caso.

O WSDL / SOAP usa vários protocolos de transporte, o REST depende apenas de HTTP. Portanto, o WSDL / SOAP pode ser usado como uma maneira RESTful, no entanto, solicitações simples podem ser excessivamente complicadas / pesadas.

Uma analogia simples: o REST é como um motoboy entrega sua comida de maneira fácil e rápida. O WSDL / SOAP estendido por XML é mais parecido com a entrega da UPS, coisas mais estruturadas e sérias, mas tem um custo.

Bedi Egilmez
fonte
0

Um documento WSDL descreve um serviço da web. Ele especifica a localização do serviço e os métodos do serviço usando esses elementos principais: tipos de dados que usam elementos de dados no serviço da web para cada operação descrevem as operações que podem ser executadas e as mensagens envolvidas

SOAP (Simple Object Access Protocol) é um protocolo de mensagens que permite que programas executados em sistemas operacionais diferentes se comuniquem usando http e xml.

Farzaneh
fonte