2010-09-21 2 views

ответ

113

WSDL - это XML-документ, описывающий веб-службу. Это фактически означает язык определения веб-сервисов.

SOAP - это протокол на основе XML, который позволяет обмениваться информацией по определенному протоколу (например, HTTP или SMTP) между приложениями. Он представляет собой протокол простого доступа к объектам и использует XML для его формата обмена сообщениями для передачи информации.

REST - это архитектурный стиль сетевых систем и выступает за передачу государственного представительства. Он не является стандартом, но использует стандарты, такие как HTTP, URL, XML и т. Д.

+3

Я хотел поставить SMTP или HTTP в качестве примеров протоколов, которые SOAP можно использовать. Я не предполагал, что это означает, что HTTP - единственный протокол, который можно использовать (просто использовал его в качестве примера). –

+0

добавлено, все лучше :-) –

+4

Репрезентативный перенос состояний (REST) ​​- это архитектурный стиль, который задает ограничения, такие как единый интерфейс, который, если применяется к веб-службе, вызывает желаемые свойства, такие как производительность, масштабируемость и изменяемость , которые позволяют службам работать лучше всего в Интернете. В стиле REST данные и функциональные возможности считаются ресурсами и доступны через Uniform Resource Identifiers (URI). На ресурсы воздействует набор простых, четко определенных операций. он следует за архитектурой клиент/сервер и предназначен для использования протокола связи без состояния, как правило, HTTP. – kingAm

9

SOAP означает простой (ый) протокол доступа к объектам. Он предназначался для того, чтобы делать удаленные вызовы процедур для удаленных объектов, отправляя XML через HTTP.

WSDL - это Язык описания веб-сервиса. Запрос, заканчивающийся на «.wsdl» конечной точке, приведет к представлению XML-сообщения, описывающего запрос и ответ, который может ожидать использование. Он описывает контракт между сервисом & клиентом.

REST использует HTTP для отправки сообщений службам.

SOAP - это спецификация, REST - это стиль.

+2

-1: извините, но я не согласен с ассоциированием SOAP с RPC. Как насчет услуг в стиле сообщений? Кроме того, нет стандарта, который говорит, что запрос, заканчивающийся на .wsdl или? Wsdl, будет генерировать WSDL. –

+4

Вы говорите, что вы не можете делать RPC с SOAP? Я знаю, что это может не охватывать весь стандарт, но это, безусловно, оригинальная мотивация. Что касается того, является ли URL-адрес WSDL частью стандарта, я признаю, что у вас есть я там. Обычно я это делаю, но я не могу ссылаться ни на что в стандарте, который его мандат. – duffymo

+0

Возможно, вы сбиваете с толку тот факт, что SOAP был получен из XML-RPC с идеей, что SOAP первоначально был предназначен как RPC. Однако обратите внимание, что WSDL с самого начала смог описать сервисы в стиле документа, в дополнение к сервисам стиля RPC. Если RPC были оригинальной мотивацией SOAP и WSDL, то можно было бы ожидать, что службы стиля документа будут отсутствовать в исходном стандарте. –

7

Вы не собираетесь «просто» понимать что-то сложное.

WSDL - это язык, основанный на XML, для описания веб-службы. В нем описываются сообщения, операции и информация о транспортной сети, используемые службой. Эти веб-службы обычно используют SOAP, но могут использовать другие протоколы.

WSDL читается программой и поэтому может использоваться для генерации всего или части кода клиента, необходимого для вызова веб-службы. Это то, что означает вызов SOAP-ориентированных веб-сервисов «самоописанием».

ОТДЫХ вообще не связан с WSDL.

4

Wikipedia говорит: «Язык описания веб-служб - это язык на основе XML, который предоставляет модель для описания веб-сервисов». Другими словами, WSDL относится к веб-службе, так как javadoc относится к библиотеке java.

Действительно, очень приятная вещь в WSDL заключается в том, что программное обеспечение может генерировать клиент и сервер с использованием WSDL.

+0

сравнение с javadoc помогло, ура. – Andrejs

28

Каждый раз, когда кто-то упоминает SOAP/WSDL, я думаю, объектов и классов, определенных в XML ...

«Вы можете использовать SOAP точно так же, что и любой PHP класс. Однако, в этом если класс не существует в локальной файловой системе приложений, а на удаленном узле, доступ к которому осуществляется через http. " ... «Если мы думаем об использовании сервиса SOAP, как только другой класс PHP, то WSDL документ представляет собой список всех доступных методов и свойств класса.»

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

..и всякий раз, когда кто-то говорит о REST, я думаю о командах HTTP (методы запроса), такие как POST, GET и DELETE

2

РЕСТ облегченны с точкой зрения кодирования, гораздо более полезными для легких весовых устройств то есть не строгое API.

REST независим от формата. XML, HTML, JSON доступны все опции.

REST предоставляет возможности для двухточечной передачи сообщений (неудивительно, поскольку REST означает REpresentational State Transfer), где взаимодействие WSDL/SOAP является взаимодействием с несколькими точками.

REST не требует нового расширения для XML-сообщений, где в WSDL/SOAP это так.

WSDL/SOAP использует несколько транспортных протоколов, REST полагается только на HTTP. Поэтому WSDL/SOAP можно использовать как метод RESTful, однако простые запросы могут быть чрезмерно сложными/тяжелыми.

Простая аналогия: REST похож на мотобой, который обеспечивает вашу пищу легко и быстро. XML расширенный WSDL/SOAP больше похож на доставку ИБП, более структурированный и серьезный материал, но поставляется с затратами.

29

Пример: Простыми словами, если у вас есть веб-сервис калькулятора.

WSDL: WSDL рассказывает о функциях, которые вы можете реализовать или подвергнуть действию клиенту. Например: добавление, удаление, вычитание и т. Д.

SOAP: где, используя SOAP, вы фактически выполняете действия, такие как doDelete(), doSubtract(), doAdd(). Таким образом, SOAP и WSDL являются яблоками и апельсинами. Мы не должны сравнивать их. Они оба имеют свою собственную функциональность.

Почему мы используем SOAP и WSDL: для обмена данными с независимой платформой.

EDIT: В обычный день к примеру день жизни:

WSDL: Когда мы идем в ресторан, мы видим, что пункты меню, те являются WSDL-х.

Прокси-классы: Теперь, увидев пункты меню, мы составляем наш разум (обрабатываем наш разум, что делать): Итак, в основном мы делаем классы прокси на основе документа WSDL.

SOAP: Затем, когда мы заказываем еду на основе меню: подразумевается, что мы используем прокси-классы для вызова методов обслуживания, которые выполняются с использованием SOAP. :)

+0

Люблю этот ответ! – realnsleo

9

SOAP -> SOAP (Простой прототип доступа к объектам) - это протокальный уровень приложения, созданный для взаимодействия машины с машиной. Протокол определяет стандартные правила. Все стороны, которые используют конкретный протокол, должны придерживаться правил протокола. Как и TCP, он разматывается на транспортном уровне. Протокол SOAP будет пониматься на уровне приложения (любое приложение, поддерживающее SOAP - Axis2, .Net).

WSDL -> SOAP сообщение состоит из SoapEnevelope-> SoapHeader и SoapBody. Он не определяет, какой будет формат сообщений? какие все транспорты (HTTP, JMS) поддерживаются?без этой информации. Для любого клиента, который хочет использовать конкретный веб-сервис для создания SOAP-сообщения, трудно. Даже если они это сделают, они не будут уверены, это будет работать все время. WSDL - это спасение. WSDL (язык описания веб-служб) определяет операции, форматы сообщений и данные о транспортировке для сообщения SOAP.

ОТДЫХ -> ОТДЫХ (Репрезентативная передача состояния) основано на транспорте. В отличие от SOAP, который нацелен на действия, REST больше относится к ресурсам. REST находит ресурсы с помощью URL-адреса (пример -http: // {serverAddress}/employees/employeeNumber/12345) и зависит от транспортного протокола (с HTTP-GET, POST, PUT, DELETE, ...) для действий для выполнения ресурсов. Служба REST находит ресурс на основе URL-адреса и выполняет действие на основе глагола действия транспорта. Это больше архитектурный стиль и условности.

0

Документ WSDL описывает веб-сервис. Он определяет местонахождение службы и методы обслуживания, используя эти основные элементов: типов данных, используя в вебсервисе элементов данных для каждой операции описывают операции, которые могут быть выполнены и сообщения профессиональней

SOAP (Simple Протокол доступа к объектам) - это протокол обмена сообщениями, который позволяет программам, работающим на разрозненных операционных системах, обмениваться данными с помощью http и xml.