Qual a diferença de WSDL e SOAP?

Prezados,
Estou iniciando em Web Services…Gostaria de saber a diferença entre WSDL e SOAP, pois li alguns tópicos aki no GUJ e não intendi.
Se possível alguem postar um exemplos dos dois sendo usados juntos…

Definições:
SOAP é um procolo projetado para invocar aplicações remotas através um ambiente independente de plataforma e linguagem de programação.
WSDL é uma linguagem baseada em XML, utilizada para descrever um Web Service.

Meu intendimento (90% de certeza que está errado):
Tenho um método que quero disponibizar como serviço, então crio um WSDL para distribuir publicamente…
A partir desse WSDL é possível preencher os parametros do meu método etc…para chamar o serviço.
Após chamar o serviço, é retornado um novo WSDL com a resposta? Onde o SOAP entra nisso?

Alguém pode me dar uma forcinha?^^
Abraços!

Olá amigo, tudo bem ?

Bom, vamos lá :slight_smile:

SOAP - Simple Object Access Protocol - É um protocolo lógico de integração (convenção), cujo o propósito é trafegar o grafo de objetos entre protocolos físiscos distintos. Ou seja, ele servirá para integrar o HTTP com JMS por exemplo.

Você não precisa do WSDL para fazer requisições a serviços e trocar mensagens com o mesmo. O SOAP poderia carregar as mensagens, sem nenhum problema, mas Quais Mensagens meu serviço suporta ? Quem tem permissão de fazer essas consultas ?

O WSDL - Web Service Description Language, nasceu para descrever como se dá essa integração. O que o serviço vai receber como parâmetro de entrada e o que ele irá retornar. Especificar isso é o papel do WSDL, que normalmente utiliza o SOAP para trafegar as mensagens.

Se tiver com muitas dúvidas, fique esperto com os nossos minicursos, que são gratuítos e explicam muita coisa bacana em 3 horas. Devemos rodar um desse dia 19 de Novembro.

Pra ficar sabendo, é só acompanhar nosso twitter: @soaexpertbr

Um abraço,

Kenobi

Obrigado Ueshiba Kenobi Sensei;)
Deu pra ter uma idéia sobre o funcionamento disso, então basicamente o WSDL utiliza SOAP por baixo dos panos para troca de mensagems com o servidor do mesmo jeito que Http utiliza TCP/IP…
É mais ou menos isso?

Caso seja, quando eu enviei um WSDL…a resposta que o servidor deveria me dar teria de ser em WSDL também…ou não?
Nesse caso a resposta veio em SOAP?

<soapenv:Envelope> <soapenv:Body> <subtrairResponse> <ns1:subtrairReturn>-8</ns1:subtrairReturn> </subtrairResponse> </soapenv:Body> </soapenv:Envelope>

Isei segui-los no Twitter, valew.

InsaneChess, o WSDL nada mais é um contrato que contém as especificações de um seviço. Um SOAP é um envelope em formato XML, XSD, que será montado pelo seu client ao efetuar uma requisição de um serviço com nome de métodos, parâmetros e sempre será retornado para o client pelo server, independente do tipo de resposta, se ocorreu uma falha em uma transação do seu serviço etc.

http://www.teses.usp.br/teses/disponiveis/55/55134/tde-24072012-164751/pt-br.php