SOAP

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

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

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

Стили привязки

SOAP поддерживает два разных стиля связи:

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

Стиль документов: этот формат также называют ориентированным на документы или ориентированным на сообщения. Он реализован на более низком уровне абстракции и требует больше программирования.

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

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

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

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

WSDL задает стиль кодировки Literal XML:

Literal XML: Literal подразумевает, что документ следует читать "как есть", без кодировки. Документ сериализован как XMI, это значит, что сообщение XML соответствует схеме в WSDL. При использовании кодировки Literal каждая часть сообщения указывает на определенное определение схемы. Кодировка Literal совместима с WS-I.

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

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

Все элементы и идентификаторы модели данных SOAP определены в URI пространства имен. В стандарте SOAP зафиксированы правила создания типов данных. Используемые типы данных объявляются на уровне схемы XML конкретного проекта. Элементы спецификации SOAP определены в http://schemas.xmlsoap.org/soap/envelope/ и http://schemas.xmlsoap.org/soap/encoding/

Реализации SOAP

В настоящее время доступны различные реализации протокола SOAP. Например, Apache Foundation предоставляет Apache SOAP, созданный на базе проекта IBM® SOAP4J, а также Apache Axis и среду выполнения IBM WebSphere®. Инструменты для работы с Web-службами поддерживают реализации Apache SOAP 2.3, Axis 1.0 и IBM WebSphere.

Связи

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

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