Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы осапр.docx
Скачиваний:
9
Добавлен:
15.04.2019
Размер:
393.86 Кб
Скачать

46) Технология soap

В настоящее время все более широкое распространение приобретает технология интеграции Internet-ресурсов, основанная на протоколе SOAP (Simple Object Access Protocol). SOAP — транспортный протокол, предназначенный для организации взаимодействия удаленных систем при помощи асинхронного обмена XML-документами. Первоначально SOAP предназначался, в основном, для реализации удалённого вызова процедур (RPC).

SOAP — объектная технология, в которой объектами являются Web-службы (Web Services), а для представления обращений к Web-службам используется язык XML. Язык разметки XML распознается разными системами, и потому технология SOAP значительно проще реализуется, чем такие технологии как CORBA или DCOM.

Протокол SOAP обеспечивает взаимодействие распределенных систем независимо от типа объектной модели, операционной системы или языка программирования. Благодаря использованию XML, сообщения SOAP могут передаваться посредством транспортного протокола HTTP, как правило, не закрываемого сетевыми экранами.

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

Структура SOAP-сообщения показана на рис. 1.

Рис. 1.  Структура SOAP-сообщения

Заголовок HTTP может иметь вид:

POST/OrderEntry HTTP/1.1

Host: www.xmlbus.com

Content-Type: text/xml; charset="utf-8"

Content-Length: ...

SOAPAction: ...

В строке SOAPAction указывается URI получателя запроса или посредника.

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

SOAP-заголовок и тело вложены в конверт, имеющий вид:

<soap-env:Envelope

xmlns:soap-env="http://www.w3.org/2001/06/soap-envelope">

<!-- Далее следует заголовок -->

<soap-env:Header>

...

</soap-env:Header>

<!-- Далее следует тело -->

<soap-env:Body>

. . .

</soap-env:Body>

</soap-env:Envelope>

Прием информации, содержащейся в теле SOAP-сообщения, выполняется SOAP-процессором, который пересылает сведения из тела сообщения в запрошенную службу (например, EJB).

Кроме языка XML и Интернет-протоколов, таких как HTTP, в технологии Web-служб входят следующие компоненты:

  • язык WSDL (Web Service Description Language) — язык объявления возможностей (функций) Web-службы, описания на WSDL являются XML-документами;

  • стандарт UDDI (Universal Description, Discovery and Integration), служащий для фиксации возможностей Web-службы.

Стандарт UDDI помогает Web-сервис найти, WSDL — его охарактеризовать, а SOAP — взаимодействовать с ним.

Механизм взаимодействия клиента и сервера в технологии SOAP можно представить в виде последовательности следующих процедур (рис. 2):

  1. Клиентское приложение создает экземпляр объекта SOAPClient;

  2. SOAPClient просматривает UDDI, тем самым определяется нужный метод Web-сервиса;

  3. SOAPClient формирует SOAP-сообщение и отправляет его серверу;

  4. Серверная программа Listener принимает SOAP-сообщение, создает объект SOAPServer и передает ему это сообщение;

  5. SOAPServer вызывает метод Web-сервиса;

  6. Результаты помещаются объектом SOAPServer в ответное сообщение и передаются клиенту;

  7. Объект SOAPClient проводит разбор принятого сообщения и возвращает клиентскому приложению результаты работы Web-сервиса.

Рис. 2.  Взаимодействие клиента и сервера в SOAP

Пример системы интеграции Internet-ресурсов — платформа .NET Framework компании Microsoft. В нее входят семейство .NET Enterprise Servers, представляющее собой набор корпоративных серверных приложений, и визуальная среда VisualStudio.NET, поддерживающая все основные языки программирования и используемая для разработки и потребления Web-сервисов.

Компания IBM предлагает сервер приложений WebSphere Application Server, MQ Series для управления сообщениями для объединения систем, включая поддержку SOAP и Web-сервисов на уровне СУБД DB2.