SOAP

SOAP (прежнее название - Simple Object Access Protocol) - это упрощенный протокол обмена информацией в распределенной среде без централизованного управления. Для передачи информации между отправителем и получателем применяются сообщения SOAP. Путем объединения нескольких сообщений SOAP можно создавать шаблоны запрос-ответ.

Несмотря на отсутствие зависимости от конкретного транспортного протокола, в большинстве случаев протокол SOAP используется совместно с протоколом HTTP для обеспечения поддержки существующей инфраструктуры сети Internet. SOAP позволяет создавать привязки и использовать обнаруженные Web-службы, описывая пути для маршрутизации сообщений. SOAP применяется для поиска Web-служб в реестрах UDDI. Рабочая среда поддерживает SOAP 1.1.

SOAP - это протокол на основе XML, описывающий три части каждого сообщения:

Стили связывания

SOAP поддерживает два стиля взаимодействия:

Вызов удаленных процедур (RPC):  Вызов операции с возвратом результата. Как правило, используется совместно с кодировкой SOAP, которая несовместима с WS-I.

Обмен документами:  Этот стиль предусматривает обмен документами или сообщениями; он описывает слой абстракций более низкого уровня, требующий большего объема программирования.

Стили кодировки

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

Спецификация SOAP задает стиль кодировки SOAP:

Кодировка SOAP:  Стиль кодировки SOAP обеспечивает сериализацию/десериализацию значений типов данных из модели данных SOAP. Данный стиль кодировки описан в стандарте SOAP 1.1 и не поддерживает WS-I.

WSDL описывает литеральный тип кодировки:

Литеральный тип:  Термин литеральный указывает, что документ считывается в исходном виде, т.е. без кодировки. Сериализация документа выполняется в виде XMI (исходный код XML сообщения компилируется в соответствии со схемой из WSDL). В случае применения литерального типа каждый фрагмент сообщения связан с конкретным определением схемы. Литеральный тип совместим с WS-I.

Модель данных

Модель данных SOAP призвана предоставить независимые от языка абстрактные типы данных, применяемые общими типами языков программирования. Она состоит из следующих типов:

Все элементы и идентификаторы, входящие в состав модели данных SOAP, определены в URI пространства имен. Стандарт SOAP описывает правила создания типов данных. Схема XML проекта должна задавать фактические типы данных. Элементы спецификации SOAP описаны на Web-страницах http://schemas.xmlsoap.org/soap/envelope/ и http://schemas.xmlsoap.org/soap/encoding/.

Реализации SOAP

Теперь доступны различные реализации протокола SOAP. Например, Apache Foundation предоставляет Apache SOAP, разработанный на основе проекта IBM SOAP4J, а также среды выполнения Apache Axis и IBM WebSphere.

Связи

Связь задает связывание между полным именем элемента XML, именем класса Java и стилем кодировки. Связь описывает способ прямого и обратного преобразования между входящим элементом XML с полным именем и классом Java в пределах конкретной кодировки.

Дополнительная информация о стандарте Apache SOAP приведена на Web-сайте xml.apache.org/soap. Дополнительная информация о стандарте SOAP приведена на Web-сайте www.w3.org/TR/SOAP.