В чем разница между обычным веб-сервисом и веб-сервисом на основе мыла? - PullRequest
6 голосов
/ 27 декабря 2011

Насколько я знаю, существует 2 типа веб-сервисов.Первый - это пользовательские сообщения в формате XML, а второй - стандартные сообщения XML SOAP.Каковы различия между ними?Какой из них лучше, каковы плюсы и минусы каждого из этих двух подходов?

Ответы [ 3 ]

27 голосов
/ 27 декабря 2011

Под "обычным" я предполагаю, что вы имеете в виду RESTful услуги. Это обсуждение будет долгим, поэтому я постараюсь дать вам несколько ключевых моментов:

  1. Службы RESTful являются наиболее распространенным видом веб-служб. Они тесно связаны с функциональностью и принципами HTTP и могут быть доступны так же просто, как запрос GET (другие операции - POST, DELETE и PUT). Основная концепция - это «ресурс», который идентифицируется URI. Распространенными форматами для REST являются XML и JSON. Это довольно простая и простая в использовании технология, которая делает ее настолько широко доступной.

  2. Веб-службы SOAP основаны на XML, большинство из которых придерживаются RPC-стиля разработки приложений (вызов удаленных методов на сервере и получение ответа) и используют 3 основных столпа:

    * * 1010
  3. WSDL - язык описания веб-службы - используется для описания службы в терминах доступных операций, параметров и т. Д.
  4. SOAP - Простой протокол доступа к объектам - используется для создания сообщений взаимодействия между вовлеченными объектами (клиент, сервер).
  5. UDDI - универсальное описание, обнаружение и интеграция - используется для классификации и публикации доступных веб-служб в репозитории и обеспечения возможности обнаружения потенциальными пользователями.

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

11 голосов
/ 27 декабря 2011

Строго говоря, только сервисы Soap являются веб-сервисами. Они основаны на спецификациях WS- * , стандартизированных W3C и Oasis. Иногда также упоминается как Webservice так называемая конечная точка POX (обычный XML) или конечная точка REST, которая позволяет просто получить необработанный XML через HTTP GET.

Сервисы SOAP несут свою схему в виде конечной точки wsdl (обычно добавляют? Wsdl к конечной точке службы), поэтому существует множество инструментов для создания прокси-объектов и скрытия сложности вызова веб-службы. С POX Services вы должны знать, какую схему использовать, например, документация.

Сервисы SOAP несут полезную нагрузку внутри конверта SOAP (XML-схема с заголовком и телом с полезной нагрузкой в ​​теле). Наличие независимого от полезной нагрузки заголовка позволяет перенаправлять содержимое, подписывать и шифровать, аутентифицировать и т. Д., Не зная содержимого. Но вы платите дополнительными накладными расходами в самом сообщении.

POX, с другой стороны, оставляет все это веб-серверу и обычно использует HTTP для аутентификации и сжатия. Записывание и подписание должны были быть сделаны вашей системой. Это низкие накладные расходы, но также низкая открываемость.

То, что работает лучше для вас, во многом зависит от вашего сценария. Если вы работаете в .Net или Java World, вам часто проще всего создать прокси и использовать его для работы с веб-сервисами в качестве удаленных объектов. Вы получаете хорошо построенную инфраструктуру и удобный опыт программирования. Если ваша среда не поддерживает генерацию прокси-сервера или его нужно было вызывать из чего-либо, POX может оказаться гораздо более легким способом.

5 голосов
/ 27 декабря 2011

«Веб-сервис» относится к более абстрактной и общей концепции. Мы можем сказать, что все, что можно обслуживать в Интернете, - это веб-сервис. Веб-сервисы SOAP или сервисы RESTful - это особый вид веб-сервисов, который имеет широкое признание и имеет свои собственные стандарты. Хотя службы SOAP построены на новом стандарте, основанном на XML, в подходе RESTful используются существующие методы HTTP, поэтому они стали более широко распространенными (на мой взгляд).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...