Я не понимаю, как сообщения SOAP и WSDL сочетаются друг с другом? Я начал изучать сообщения SOAP, такие как:
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>
Все ли сообщения SOAP являются WSDL? Является ли SOAP протоколом, принимающим собственные «сообщения SOAP» или «WSDL»? Если они разные, тогда когда мне следует использовать сообщения SOAP, а когда - WSDL?
Некоторые разъяснения по этому поводу были бы потрясающими.
java
web-services
soap
wsdl
Джеймс
источник
источник
Ответы:
Документ SOAP отправляется по запросу. Допустим, у нас был книжный магазин, и у нас был удаленный сервер, который мы запрашивали, чтобы узнать текущую цену конкретной книги. Допустим, нам нужно передать на сервер название книги, количество страниц и номер ISBN.
Каждый раз, когда мы хотели узнать цену, мы отправляли уникальное сообщение SOAP. Это выглядело бы примерно так;
И мы ожидаем получить ответное сообщение SOAP, например:
Затем WSDL описывает, как обрабатывать это сообщение, когда сервер его получает. В нашем случае он описывает, какими будут типы Title, NumPages и ISBN, следует ли ожидать ответа от сообщения GetBookPrice и как этот ответ должен выглядеть.
Типы будут выглядеть так:
Но WSDL также содержит дополнительную информацию о том, какие функции связаны друг с другом для выполнения операций, и какие операции доступны в службе, а также о местонахождении в сети, в которой вы можете получить доступ к службе / операциям.
См. Также примеры WSDL с аннотациями W3
источник
Сообщение SOAP - это XML-документ, который используется для передачи ваших данных. WSDL - это XML-документ, в котором описывается, как подключаться к вашей веб-службе и делать запросы к ней.
В основном сообщения SOAP - это данные, которые вы передаете, WSDL сообщает вам, что вы можете делать и как совершать вызовы.
Быстрый поиск в Google даст много источников для дополнительного чтения (ссылка на предыдущую книгу теперь мертва, для борьбы с этим любые новые рекомендации будут помещены в комментарии)
Просто отмечая ваши конкретные вопросы:
Все ли сообщения SOAP являются WSDL? Нет, это совсем не одно и то же.
Является ли SOAP протоколом, принимающим собственные «сообщения SOAP» или «WSDL»? Нет - требуется чтение, так как это далеко.
Если они разные, тогда когда мне следует использовать сообщения SOAP, а когда - WSDL? Мыло - это структура, которую вы применяете к своему сообщению / данным для передачи. WSDL используются только для определения того, как в первую очередь выполнять вызовы службы. Часто это делается один раз, когда вы впервые добавляете код для вызова определенной веб-службы.
источник
WSDL (язык определения веб-службы) - это файл метаданных, описывающий веб-службу.
Такие вещи, как название операции, параметры и т. Д.
Мыльные сообщения - это фактическая полезная нагрузка
источник
Нам нужно определить, что такое веб-сервис, прежде чем рассказывать, в чем разница между SOAP и WSDL, где два (SOAP и WSDL) являются компонентами веб-сервиса.
Большинство приложений разрабатываются для взаимодействия с пользователями, пользователь вводит или ищет данные через интерфейс, а затем приложение отвечает на ввод пользователя.
Веб-служба делает более или менее то же самое, за исключением того, что приложение веб-службы обменивается данными только от машины к машине или от приложения к приложению. Часто нет прямого взаимодействия с пользователем.
Веб-сервис в основном представляет собой набор открытых протоколов, который используется для обмена данными между приложениями. Использование открытых протоколов позволяет веб-сервисам быть независимыми от платформы. Программное обеспечение, написанное на разных языках программирования и работающее на разных платформах, может использовать веб-службы для обмена данными через компьютерные сети, такие как Интернет. Другими словами, приложения Windows могут взаимодействовать с приложениями PHP, Java, Perl и многими другими, что в обычных условиях было бы невозможно.
Поскольку разные приложения написаны на разных языках программирования, они часто не могут взаимодействовать друг с другом. Веб-служба обеспечивает такую связь, используя комбинацию открытых протоколов и стандартов, главным образом XML, SOAP и WSDL. Web-сервис использует XML для тегирования данных, SOAP для передачи сообщения и, наконец, WSDL для описания доступности сервисов. Давайте посмотрим на эти три основных компонента приложения веб-службы.
Протокол простого доступа к объектам (SOAP)
Протокол простого доступа к объектам или SOAP - это протокол для отправки и получения сообщений между приложениями без столкновения с проблемами взаимодействия (взаимодействие означает, что платформа, на которой работает веб-служба, становится неактуальной). Другой протокол, имеющий аналогичную функцию, - это HTTP. Он используется для доступа к веб-страницам или для работы в сети. HTTP гарантирует, что вам не нужно беспокоиться о том, какой тип веб-сервера - Apache, IIS или любой другой - обслуживает просматриваемые вами страницы или были ли просматриваемые страницы созданы в ASP.NET или HTML.
Поскольку протокол SOAP используется как для запроса, так и для ответа, его содержимое может немного отличаться в зависимости от его назначения.
Ниже приведен пример сообщения запроса и ответа SOAP.
SOAP-запрос:
Ответ SOAP:
Хотя оба сообщения выглядят одинаково, они используют разные методы. Например, глядя на приведенные выше примеры, вы можете видеть, что запрашивающее сообщение использует
GetBookPrice
метод для получения цены книги. Ответ осуществляетсяGetBookPriceResponse
методом, который будет сообщением, которое вы, как "запрашивающий", увидите. Вы также можете видеть, что сообщения составляются с использованием XML.Язык описания веб-сервисов или WSDL
WSDL - это документ, описывающий веб-службу, а также объясняющий, как получить доступ и использовать ее методы.
WSDL заботится о том, как узнать, какие методы доступны в веб-сервисе, на который вы наткнулись в Интернете.
Взгляните на образец файла WSDL:
Главное, что нужно помнить о файле WSDL, это то, что он предоставляет вам:
источник
Лучшая аналогия, чем телефонный звонок: заказ продуктов по почте в службе доставки по почте. Документ WSDL похож на инструкции, объясняющие, как создавать формы заказа, которые поставщик услуг будет принимать. Сообщение SOAP похоже на конверт со стандартным дизайном (размер, форма, конструкция), с которым каждое почтовое отделение в мире умеет обращаться. В такой конверт вы вкладываете бланк заказа. Сеть (например, Интернет) - это почтовая служба. Вы кладете конверт в почту. Сотрудники почтовой службы не заглядывают внутрь конверта. XML полезных данных - это форма заказа, которую вы вложили в конверт. После того, как почтовое отделение доставит конверт, поставщик веб-услуг открывает конверт и обрабатывает форму заказа. Если вы правильно создали и заполнили форму,
источник
Проще говоря, если у вас есть веб-сервис калькулятора. WSDL сообщает о функциях, которые вы можете реализовать или предоставить клиенту. Например: сложить, удалить, вычесть и так далее. Если при использовании SOAP вы фактически выполняете такие действия, как doDelete (), doSubtract (), doAdd (). Итак, SOAP и WSDL - это яблоки и апельсины. Мы не должны их сравнивать. У них обоих разные функции.
источник
SOAP: это открытый стандартный протокол связи на основе XML, который используется для обмена информацией между пользователем и веб-службой или наоборот. Мыло - это просто документ, в котором данные каким-то образом организованы. Для каждого запроса и ответа может присутствовать отдельное мыло.
WSDL: в soap данные каким-то образом организованы, и эта организация указана в WSDL. Здесь также указывается тип данных, который должен использоваться. Для запроса и ответа будет присутствовать один WSDL
источник
WSDL - это своего рода контракт между поставщиком API и клиентом, который описывает веб-службу: общедоступная функция, необязательное / обязательное поле ...
Но мыльное сообщение - это данные, передаваемые между клиентом и провайдером (полезная нагрузка)
источник
WSDL действует как интерфейс между отправителем и получателем.
Сообщение SOAP - это запрос и ответ в формате xml.
сравнение с java RMI
WSDL - это
сообщение SOAP класса интерфейса, которое маршалирует сообщение запроса и ответа.
источник
Мы можем рассматривать телефонный звонок в этом номере wsdl и обмен информацией мылом.
WSDL - это описание того, как подключиться к коммуникационному серверу. OAP - это коммуникационные сообщения.
источник