Подтвердить что ты не робот

Зачем использовать SOAP для веб-сервисов?

Я прочитал учебник "web-service-php-mysql-xml-json".

Кажется, все в порядке. Но почему мы должны использовать мыло для веб-сервисов?

4b9b3361

Ответ 1

При создании веб-сервисов вы можете использовать два способа:

  • SOAP
  • REST

Большинство людей выбирают путь меньшего сопротивления, который REST. Это означает простоту, простоту разработки, использование HTTP так, как оно предназначено для использования, хорошо использовать прокси кеша, более читаемые пользователем результаты и т.д.

SOAP на другом конце более тяжелый, чем REST, а также подкрепляется большим набором specifications. Но поскольку он более сложный (SOAP был акронимом для Simple Object Access Protocol - который оказался... НЕ) SOAP не понравился многим людям.

Оба подхода работают, и оба имеют преимущества и недостатки.

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

Я не буду вдаваться в подробности, так как вы можете найти много сравнений SOAP и REST в Интернете. То, что я хочу подчеркнуть, это тот факт, что в некоторых случаях один работает лучше, чем другой, и зависит от вас, чтобы определить и выбрать, какой из них реализовать для вашего конкретного случая.

РЕДАКТИРОВАТЬ: Чтобы ответить на ваш вопрос:

зачем использовать SOAP или REST? мы можем иметь веб-сервис без них?

Ну, W3C определяет веб-службу как " программную систему, предназначенную для поддержки взаимодействия между машинами и машинами через сеть".

ОК... это хорошо для определения. Но это не определение для SOAP/REST, это требование может быть успешно передано на

Но вы создаете веб-службу, потому что вы хотите, чтобы некоторые клиенты использовали ваш сервис. И ваши клиенты находятся там на диком западе (т.е. В Интернете: D), и люди там говорят SOAP/REST. Там вы приходите и говорите: "Мы точно не любим SOAP и REST здесь, в нашем магазине, нам нравятся такие вещи, как RPC, CORBA и наше собственное уникальное создание протокола" Bone Crusher 10000 ". Если вы хотите вести бизнес с нами, вы узнаете" Bone Crusher 10000 ". И ваши клиенты скажут (поднял бровь)" Yeaaaaah righttttt.....".

(Я предполагаю, что ваш протокол не будет чем-то вроде грубой атаки, которая полностью превзойдет SOAP/REST: D)

Итак, если вы не используете SOAP/REST, вы ограничите свою целевую аудиторию. Это, например, английский. Я не носитель английского языка, не так ли? Ну, это не имеет большого значения, так как мы можем общаться на английском языке. Хотите попробовать это в ?, Будете ли вы ждать меня, пока я изучаю исландский, так как это не мой родной язык?

Как я уже сказал, вам решать, выбирать и выбирать, что реализовать с учетом вашего конкретного случая, но если вы уйдете от известных технологических стеков, вы выбросите то, что приходит с этим: много опыта, ресурсов, инструментов и возможностей связи.

В качестве закрывающего примера сегодня существует много поддержки протокола SOAP, и вы можете легко создавать клиенты, начиная с файла WSDL. И ... ваши клиенты могут общаться с вашим веб-сервисом. Будет ли это так же просто, как это сделать с "Bone Crusher 10000"? Если вы пишете инструменты, предоставляете ресурсы, поддержку и т.д.... Да! Но это будет стоить вам времени и денег, чтобы создать что-то, что уже было изобретено и широко используется сегодня.

Ответ 2

Важный момент, который пользователь159088 упоминает в своем ответе: " [...] вы можете легко создавать клиенты, начиная с файла WSDL [...]"!

Я хотел бы подробнее остановиться на этом:

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

Это знание может быть использовано f.e. для создания инструментов, которые генерируют безопасные типы/объекты привязки типа из файла WSDL. Вы можете использовать эти сгенерированные классы (для создания RPC) без ручного внедрения запросов и кодирования/анализа данных, которые обмениваются.

В то время как для REST нет стандарта (например, схемы WSDL), как выглядят данные с обменом. В результате вы часто разбираете данные самостоятельно.


Второй момент заключается в том, что REST работает в основном с протоколом HTTP (s) (он основан на нем). Он использует глаголы CRUD (CREATE/READ/UPDATE/DELETE) протокола HTTP (s). SOAP не полагается на него и поэтому может использоваться и с другими протоколами.