Estou confuso sobre como as mensagens SOAP e WSDL se encaixam? Comecei a pesquisar mensagens SOAP como:
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
Todas as mensagens SOAP são WSDL? O SOAP é um protocolo que aceita suas próprias 'mensagens SOAP' ou 'WSDL's? Se forem diferentes, quando devo usar mensagens SOAP e quando devo usar WSDLs?
Algum esclarecimento sobre isso seria incrível.
java
web-services
soap
wsdl
James
fonte
fonte
Respostas:
Um documento SOAP é enviado por solicitação. Digamos que fôssemos uma livraria e tivéssemos um servidor remoto consultado para saber o preço atual de um livro específico. Digamos que precisássemos passar o título do livro, o número de páginas e o número do ISBN para o servidor.
Sempre que queríamos saber o preço, enviamos uma mensagem SOAP exclusiva. Seria algo assim;
E esperamos receber uma mensagem de resposta SOAP como;
O WSDL descreve como tratar / processar essa mensagem quando um servidor a recebe. Em nosso caso, ele descreve os tipos de Título, NumPages e ISBN, se devemos esperar uma resposta da mensagem GetBookPrice e como essa resposta deve ser.
Os tipos seriam assim;
Mas o WSDL também contém mais informações, sobre quais funções se conectam para fazer operações e quais operações estão disponíveis no serviço, e onde em uma rede você pode acessar o serviço / operações.
Veja também W3 Annotated WSDL Exemplos
fonte
Uma mensagem SOAP é um documento XML usado para transmitir seus dados. WSDL é um documento XML que descreve como conectar e fazer solicitações ao seu serviço da web.
Basicamente, as mensagens SOAP são os dados que você transmite. O WSDL informa o que você pode fazer e como fazer as chamadas.
Uma busca rápida no Google irá render muitas fontes para leitura adicional (o link do livro anterior agora está morto, para combater isso colocará novas recomendações nos comentários)
Apenas observando suas perguntas específicas:
Todas as mensagens SOAP são WSDL? Não, eles não são a mesma coisa.
O SOAP é um protocolo que aceita suas próprias 'mensagens SOAP' ou 'WSDL's? Não - leitura necessária, pois isso está longe.
Se forem diferentes, quando devo usar mensagens SOAP e quando devo usar WSDLs? O sabão é a estrutura que você aplica à sua mensagem / dados para transferência. WSDLs são usados apenas para determinar como fazer chamadas para o serviço em primeiro lugar. Freqüentemente, isso acontece apenas uma vez quando você adiciona o código pela primeira vez para fazer uma chamada para um determinado serviço da web.
fonte
Um WSDL (Web Service Definition Language) é um arquivo de metadados que descreve o serviço da web.
Coisas como nome da operação, parâmetros etc.
As mensagens de sabão são as cargas úteis reais
fonte
Precisamos definir o que é um serviço da web antes de dizer quais são as diferenças entre o SOAP e WSDL onde os dois (SOAP e WSDL) são componentes de um serviço da web
A maioria dos aplicativos é desenvolvida para interagir com os usuários, o usuário insere ou pesquisa dados por meio de uma interface e o aplicativo responde à entrada do usuário.
Um serviço da Web faz mais ou menos a mesma coisa, exceto que um aplicativo de serviço da Web se comunica apenas de máquina para máquina ou de aplicativo para aplicativo. Geralmente, não há interação direta do usuário.
Um serviço da Web é basicamente uma coleção de protocolos abertos que são usados para trocar dados entre aplicativos. O uso de protocolos abertos permite que os serviços da Web sejam independentes de plataforma. O software que é escrito em diferentes linguagens de programação e executado em diferentes plataformas pode usar serviços da Web para trocar dados em redes de computadores, como a Internet. Em outras palavras, aplicativos Windows podem se comunicar com aplicativos PHP, Java e Perl e muitos outros, o que em circunstâncias normais não seria possível.
Como diferentes aplicativos são escritos em diferentes linguagens de programação, eles geralmente não podem se comunicar uns com os outros. Um serviço da Web permite essa comunicação usando uma combinação de protocolos e padrões abertos, principalmente XML, SOAP e WSDL. Um serviço da Web usa XML para marcar dados, SOAP para transferir uma mensagem e finalmente WSDL para descrever a disponibilidade dos serviços. Vamos dar uma olhada nesses três componentes principais de um aplicativo de serviço da Web.
Protocolo de Acesso a Objetos Simples (SOAP)
O Simple Object Access Protocol ou SOAP é um protocolo para enviar e receber mensagens entre aplicativos sem enfrentar problemas de interoperabilidade (interoperabilidade significa que a plataforma em que um serviço da Web está sendo executado torna-se irrelevante). Outro protocolo com função semelhante é o HTTP. Ele é usado para acessar páginas da Web ou para navegar na Internet. O HTTP garante que você não precise se preocupar com o tipo de servidor Web - seja Apache ou IIS ou qualquer outro - que atende as páginas que você está visualizando ou se as páginas visualizadas foram criadas em ASP.NET ou HTML.
Como o SOAP é usado tanto para solicitar quanto para responder, seu conteúdo varia um pouco dependendo de sua finalidade.
Abaixo está um exemplo de uma solicitação SOAP e mensagem de resposta
Solicitação SOAP:
Resposta SOAP:
Embora as duas mensagens tenham a mesma aparência, elas executam métodos diferentes. Por exemplo, olhando para os exemplos acima, você pode ver que a mensagem solicitante usa o
GetBookPrice
método para obter o preço do livro. A resposta é realizada peloGetBookPriceResponse
método, que vai ser a mensagem que você como "solicitante" verá. Você também pode ver que as mensagens são compostas usando XML.Linguagem de descrição de serviços da Web ou WSDL
WSDL é um documento que descreve um serviço da Web e também informa como acessar e usar seus métodos.
WSDL cuida de como você sabe quais métodos estão disponíveis em um serviço da Web que você encontra na Internet.
Dê uma olhada em um arquivo WSDL de amostra:
As principais coisas a lembrar sobre um arquivo WSDL são que ele fornece:
fonte
Melhor analogia do que o telefonema: encomendar produtos por correio de um serviço de venda por correspondência. O documento WSDL é como as instruções que explicam como criar o tipo de formulário de pedido que o provedor de serviços aceitará. Uma mensagem SOAP é como um envelope com um design padrão (tamanho, formato, construção) que todos os correios do mundo sabem como lidar. Você coloca seu formulário de pedido em um envelope. A rede (por exemplo, a Internet) é o serviço postal. Você colocou seu envelope no correio. Os funcionários dos correios não olham para dentro do envelope. O XML de carga útil é o formulário de pedido que você incluiu no envelope. Depois que os correios entregam o envelope, o provedor de serviços da Web abre o envelope e processa o formulário de pedido. Se você criou e preencheu o formulário corretamente,
fonte
Em termos simples, se você tiver um serviço web de calculadora. WSDL informa sobre as funções que você pode implementar ou expor ao cliente. Por exemplo: adicionar, excluir, subtrair e assim por diante. Onde, ao usar o SOAP, você realmente executa ações como doDelete (), doSubtract (), doAdd (). Portanto, SOAP e WSDL são maçãs e laranjas. Não devemos compará-los. Ambos têm suas próprias funcionalidades diferentes.
fonte
SOAP: É um protocolo de comunicação baseado em XML de padrão aberto que é usado para trocar informações do usuário para o serviço web ou vice-versa. O sabão é apenas o documento no qual os dados são organizados de alguma forma. Para cada solicitação e resposta, sabonete separado pode estar presente.
WSDL: Em soap, os dados são organizados de alguma maneira e essa organização é especificada em WSDL. O tipo de dados que deve ser usado também é especificado aqui. Para solicitação e resposta, WSDL único estará presente
fonte
O WSDL é uma espécie de contrato entre o provedor de API e o cliente e descreve o serviço web: a função pública, campo opcional / obrigatório ...
Mas a mensagem soap é uma transferência de dados entre cliente e provedor (carga útil)
fonte
WSDL atua como uma interface entre o remetente e o destinatário.
A mensagem SOAP é um pedido e uma resposta no formato xml.
comparando com java RMI
WSDL é a
mensagem SOAP da classe de interface é uma mensagem de solicitação e resposta empacotada.
fonte
Podemos considerar um telefonema Nesse Número é wsdl e a troca de informações é sabonete.
WSDL é a descrição de como se conectar ao servidor de comunicação. O SOAP é ter mensagens de comunicação.
fonte