Базы данных - Cache - статьи

       

SOAP (Simple Object Access Protocol)


SOAP - это основанный на XML протокол, который позволяет взаимодействовать различным приложениям на основе стандарта HTTP.

объектам” (Simple Object Access Protocol) и предназначен для коммуникациями (передачи информации) между удаленными объектами. Использование HTTP является наиболее удобным способом коммуникации между приложениями, поскольку протокол HTTP поддерживается всеми Веб-браузерами и серверами. SOAP представляет собой способ коммуникации между приложениями на базе протокола HTTP и некоторых других Internet-протоколов, а использование XML в качестве основы SOAP позволяет ему работать под управлением различных операционных систем, на основе различных технологий и языков программирования.

Таким образом, протокол SOAP позволяет обмениваться сообщениями между клиентом и сервером. Сообщение SOAP является обычным XML-документом. Этот документ состоит из следующих XML-элементов:

  • SOAP header ("заголовок", не обязательный элемент), в нем содержится заголовочная информация;
  • SOAP envelope ("конверт"), который определяет содержание послания;
  • SOAP body ("тело"), в нем содержится информация вызовов и ответов на вызовы.

Сообщения между сервером Веб-служб и клиентом пакуются в SOAP-конверты (SOAP envelopes). Сообщения содержат либо запрос на осуществление какого-либо действия, либо ответ - результат выполнения этого действия. Конверт и его содержимое закодировано языком XML. Ниже приведен простой пример SOAP-запроса GetTranslation, который отправляется через HTTP к Веб-сервису. Здесь запрашивается перевод слова помидор с русского языка на английский. <soap:Envelope>
<soap:Body>
<xmlns:m="http://www.somesite.org/translation" />
 <m:GetTranslation>
    <m:Word>помидор</m:Word>
     <m:Language>RussianTOEnglish</m:Language>
</m:GetTranslation>
</soap:Body>
</soap:Envelope> Также приведен пример SOAP-ответа на данный запрос. <soap:Envelope>
<soap:Body>
<xmlns:m="http://www.somesite.org/translation" />
 <m:GetTranslationResponse>
    <m:Translation>tomato</m:Translation>
 </m:GetTranslationResponse>
</soap:Body>
</soap:Envelope>

Элемент <m:GetTranslation> в запросе поменялся на элемент <m:GetTranslationResponse> в ответе на запрос. В этом элементе содержится только один элемент <m:Translation>, значение которого и обозначает запрашиваемый перевод слова помидор с русского языка на английский. Таким образом, с помощью SOAP мы сформировали запрос в виде XML, передали его серверу Веб-служб и получили определенного вида ответ на языке XML. При этом, наша программа должна была только сформировать запрос и передать его серверу, никаких обращений, например, к БД наша программа не производила, а получила сразу готовый, структурированный специальным образом, результат.



Содержание раздела