SOAP: Объяснение сетевого протокола

Если вы хотите общаться с другими людьми в таких сетях, как Интернет, вы можете делать это, только следуя определенным правилам. Чтобы различные компьютеры и другие устройства, подключенные к сети, не погрузились в хаос, они должны соблюдать сетевой протокол. SOAP — наряду с REST — является одним из самых важных протоколов в Интернете.

Что такое SOAP?

Общение в Интернете в основном основано на таких протоколах, как HTTP, HTTPS, FTP или TCP. SOAP — один из них, необходимый для веб-служб, которые управляют поисковыми системами, интернет-магазинами и многими другими услугами в Интернете. SOAP — один из протоколов, обеспечивающих эту работу. Это интерфейс, который может использоваться устройством для использования услуг сервера.

Факт

Первоначально название SOAP использовалось в качестве акронима для «Simple Object Access Protocol». Однако, поскольку это название не совсем соответствует протоколу (он не является ни простым, ни только доступом к объектам), SOAP теперь используется только как название.

SOAP используется с 1990-х годов для обеспечения связи между клиентом — например, интернет-браузером — и службами сервера. Чтобы это работало, клиент должен делать запросы к API. Структура SOAP определяет, как должны выглядеть эти запросы. Однако — и это большое преимущество SOAP — данные, специфичные для конкретного приложения, могут быть учтены в этом наборе правил. Таким образом, веб-сервисы могут предоставлять разнообразные приложения. SOAP устанавливает только основные правила, так что для использования в качестве веб-службы не обязательно, чтобы все они имели одинаковый синтаксис.

Примечание

Разработчик программного обеспечения Дейв Винер создал SOAP в сотрудничестве с командой Microsoft с целью создания рабочего протокола для Интернета. Большое внимание было уделено обеспечению совместимости SOAP со стандартами W3C. В результате сам SOAP стал рекомендацией W3C.

Веб-сервисы SOAP — области применения протокола

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

Различные веб-сервисы основаны на SOAP. Например, Amazon и eBay (частично) работают с этим сетевым протоколом.

Структура SOAP: Как работает протокол

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

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

POST /example HTTP/1.1
Host: example.org
Content-Type: text/xml; charset=utf-8
…
<?xml version="1.0"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
SOAP-ENV:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
...
   <SOAP-ENV:Header>
      ...
   </SOAP-ENV:Header>

   <SOAP-ENV:Body>
      ...
   </SOAP-ENV:Body>

</SOAP_ENV:Envelope>

В данном примере запрос начинается с HTTP-заголовка. Затем следует так называемый конверт SOAP. Как следует из названия, в него заворачивается фактическое содержимое сообщения. Основными элементами SOAP являются заголовок и тело.

  • Заголовок: Заголовок SOAP-запроса содержит метаданные, например, об используемом шифровании. Его использование является необязательным.
  • Тело: Тело сообщения содержит фактические данные.

Термины, используемые в теле, в конечном итоге не имеют никакого отношения к самому SOAP, а полностью зависят от приложения.

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

SOAP против REST

SOAP и REST (последний на самом деле является архитектурой, а не протоколом) оба используются для веб-сервисов, но оба подходят к этой задаче по-разному. Если SOAP немного старше, то REST (или RESTful web services) во многом догнал и в настоящее время предоставляет около 70 процентов web-сервисов, доступных в Интернете.

Однако оба варианта имеют разные преимущества. Например, REST считается относительно простым, работает не только с XML, быстрее и легче по сравнению с SOAP. В то время как REST предоставляет большую свободу в отношении XML (часто используется JSON), SOAP дает пользователям выбор протоколов. Хотя HTTP является наиболее распространенным выбором, теоретически SOAP хорошо работает в сочетании с другими протоколами, включая FTP и SMTP.

SOAP также имеет большое преимущество в плане безопасности: WS-Security (спецификации по аспектам безопасности, относящимся к веб-сервисам) прочно закреплены в сетевом протоколе. Обработка ошибок также лучше регулируется в SOAP, поскольку функция повторения запросов интегрирована в него напрямую.

Резюме

И SOAP, и REST имеют свои преимущества и недостатки — нельзя сказать, что одно решение лучше другого. Однако для простоты большинство разработчиков прибегают к REST. В конечном счете, выбор зависит от того, какой язык программирования вы используете и в каком контексте вы хотите использовать протокол.

Оцените статью
cdelat.ru
Добавить комментарий