Презентация "Web - службы"

Подписи к слайдам:
Web-службы
  • SOAP, WSDL, UDDI, GXA
  • четверг, 27 Апрель, 2017
XML-RPC
  • XML-RPC представляет собой определение семантики удалённого вызова процедуры на XML.
  • Сообщение XML-RPC переносится методом POST запроса HTTP, а ответ – в обычном ответе HTTP.
  • Запрос обычно содержит XML-документ с корневым элементом methodCall, а ответ - XML-документ с корневым элементом methodResponse.
  • В настоящий момент имеется более 30 реализаций XML-RPC.
SOAP
  • SOAP (Simple Object Access Protocol) – реализует наиболее важный аспект web-сервисов – транспортировку данных по сети.
  • SOAP расширяет HTTP для возможности передачи XML-сообщений, используемых для удалённого взаимодействия и для передачи целых XML-документов.
Схема SOAP-взаимодействия
  • Отправитель
  • Получатель
  • XML-сообщение
  • XML-сообщение
  • SOAP-конверт
  • SOAP-конверт
  • HTTP
Что такое SOAP?
  • SOAP – простой протокол доступа к объектам (Simple Object Access Protocol)
  • является особым форматом сообщений
  • SOAP создан для обмена сообщениями через Интернет
  • (почти) не зависит от платформы и языка
  • основан на XML
  • относительно(!) прост и расширяем
  • не является стандартом
Что такое SOAP?
  • SOAP – простой протокол доступа к объектам (Simple Object Access Protocol)
  • является особым форматом сообщений
  • SOAP создан для обмена сообщениями через Интернет
  • (почти) не зависит от платформы и языка
  • основан на XML
  • относительно(!) прост и расширяем
  • не является стандартом
Что такое SOAP?
  • SOAP – простой протокол доступа к объектам (Simple Object Access Protocol)
  • является особым форматом сообщений
  • SOAP создан для обмена сообщениями через Интернет
  • (почти) не зависит от платформы и языка
  • основан на XML
  • относительно(!) прост и расширяем
  • не является стандартом
Зачем нужен SOAP?
  • Когда-то давно веб-серсисы были простыми и понятными, и выглядели вот так:
  • Пользователь ↔ Веб-сайт (веб-сервис)
  • Веб-сервис был самодостаточен и взаимодейство-вал только с пользователем и внутренней логикой
  • Пример – rp5.ru
Зачем нужен SOAP?
  • Потом всё усложнилось, и веб-сервис стал выглядеть вот так:
  • Пользователь ↔ Веб-портал
  • <магистральная шина>
  • ⁞ ⁞ ⁞
  • Сервис1 Сервис2 Сервис3
Зачем нужен SOAP?
  • SOAP предназначен для обмена структуриро-ванными сообщениями в распределённой вычи-слительной среде.
  • Проще говоря, SOAP помогает различным приложениям, размещённым в сети, и плохо знакомым друг другу, обмениваться информацией на понятном им языке.
Структура SOAP
  • Все сообщения SOAP оборачиваются в “конверт” - Envelope
  • В конверте может быть необязательный элемент Header
  • Само сообщение передаётся в элементе Body
Структура SOAP
  • Пример SOAP-сообщения
  • <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  • <SOAP-ENV:Body>
  • <GetStockQuote xmlns:ns1="urn:xmethods-quotes">
  • <symbol>T-Systems</symbol>
  • </ns1:GetStockQuote>
  • </SOAP-ENV:Body>
  • </SOAP-ENV:Envelope>
Структура SOAP
  • Еще один пример SOAP-сообщения
  • <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/>
  • <SOAP-ENV:Body>
  • <m:GetStockQuoteResponse xmlns:m="urn:xmethods-quotes">
  • <Price>34.5</Price>
  • </m:GetStockQuoteResponse>
  • </SOAP-ENV:Body>
  • </SOAP-ENV:Envelope>
Стандарты WS-Addressing и WS-Security
  • WS-Addressing - устраняет всякую зависимость от транспортных заголовков или передачи специфических параметров при получении доступа к Web-сервисам.
  • WS-Security- обеспеченивает безопасность SOAP-сообщений, позволяет определять источник SOAP сообщения, подписывать сообщение и шифровать его содержимое.
SOAP-Fault
  • Необязательный элемент SOAP-Fault позволяет передать сообщение об ошибке
  • Элемент SOAP-Fault должен быть единственным в сообщении
  • Позволяет указать на источник проблемы, что очень важно для сложных веб-сервисов
Язык WSDL
  • WSDL (Web Services Description Language) — язык описания веб-сервисов и доступа к ним, основанный на языке XML.
  • WSDL не является стандартом W3C
  • WSDL определяет расположение сервиса и операции (или методы), предоставляемые им.
WSDL – структура описания
  • <portType> Методы, предоставляемые web-сервисом
  • <message> Сообщения, используемые web-сервисом
  • <types> Типы данных, используемые web-сервисом
  • <binding>Протоколы связи, используемые web-сервисом
Пример WSDL-описания
  • <message name="getTermRequest">
  • <part name="term" type="xs:string"/>
  • </message>
  • <message name="getTermResponse">
  • <part name="value" type="xs:string"/>
  • </message>
  • <portType name="glossaryTerms">
  • <operation name="getTerm">
  • <input message="getTermRequest"/>
  • <output message="getTermResponse"/>
  • </operation>
  • </portType>
  • <binding type="glossaryTerms" name="b1">
  • <soap:binding style="document"
  • transport="http://schemas.xmlsoap.org/soap/http" />
  • <operation>
  • <soap:operation soapAction="http://example.com/getTerm"/>
  • <input><soap:body use="literal"/></input>
  • <output><soap:body use="literal"/></output>
  • </operation>
  • </binding>