Технология SOAP. Язык описания веб-сервисов (WSDL) | MetodPro.ru

Реклама на сайте

Технология SOAP. Язык описания веб-сервисов (WSDL)


Изначально SOAP расшифровывался как "Протокол доступа простых объектов" (SimpleObjectAccessProtocol).

SOAP – это облегченный протокол, предназначенный для обмена структурированной информацией в децентрализованной, распределенной среде. Для определения наращиваемой оболочки обмена сообщениями, обеспечивающей структуру сообщения, которая может быть использована при обмене различными базовыми протоколами, SOAP использует XML технологии. Эта оболочка разработана независимой от любой конкретной модели программирования и других особых семантик реализации.

 

SOAP определяет способ перемещения XML сообщений из точки А в точку В. Это делается путем обеспечения оболочки обмена сообщениями на базе XML, которая является: 1) наращиваемой; 2) пригодной к использованию различными базовыми сетевыми протоколами; 3) независимой от моделей программирования.

 

Рисунок 1. Простой обмен сообщениями SOAP

Во-первых, ключевым в SOAP является его наращиваемость. Когда аббревиатура еще что-то означала, буква "S" имела значение "Простой".Простота остается одной из основных целей при разработке SOAP, что доказывает отсутствие в SOAP различных возможностей распределенных систем, таких как безопасность, маршрутизация, надежность и т.д. SOAP определяет оболочку взаимосвязи, в которой есть возможность добавить эти возможности в будущем как многоуровневые расширения.

 

Во-вторых, SOAP может использоваться в любом транспортном протоколе, таком как TCP, HTTP, SMTP или даже MSMQ. Тем не менее, чтобы поддерживать возможность взаимодействия, должны быть определены взаимосвязи co стандартными протоколами, структура которых различна для каждой среды. Спецификация SOAP обеспечивает гибкую оболочку для определения взаимосвязей произвольных протоколов и сегодня обеспечивает явное связывание для HTTP, поскольку он так широко используется.

 

В-третьих, SOAP разрешен для всех моделей программирования и не привязан к RPC. SOAP определяет модель обработки отдельных, однонаправленных сообщений. Рисунок 1 иллюстрирует простое однонаправленное сообщение, при котором отправитель не получает ответа. Однако получатель может послать отправителю ответ SOAP предусматривает любое количество схем обмена сообщениями, запрос/ответ является всего лишь одним из них. Другие примеры включают требование/ответ (обратный запросу/ответу), нотификации и длительные одноранговые разговоры.

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

 

Модель обработки

SOAP определяет модель обработки, которая содержит основные правила обработки SOAP сообщений по мере их следования от SOAP отправителя к SOAP получателю. Рисунок 1 иллюстрирует  простейший сценарий обмена SOAP сообщениями, в котором одно приложение (SOAP отправитель) посылает SOAP сообщение другому приложению (SOAP получателю).

Однако модель обработки допускает и более интересные архитектуры, которая содержит множество промежуточных узлов.

 

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

Обрабатывая сообщение, SOAP узел берет на себя одну или более ролей, которые влияют на то, как обрабатываются SOAP заголовки. Ролям даются уникальные имена (в форме URI), таким образом, они могут быть идентифицированы во время обработки. SOAP узел, получив сообщение для обработки, сначала должен определить, какие роли он будет выполнять. Для этого он может проверить SOAP сообщение.

Как только он определится с ролями, которые будет выполнять, SOAP узел должен обработать все обязательные заголовки, направленные на одну из его ролей. Также SOAP узел может выбрать для обработки любой необязательный заголовок, направленный на одну из его ролей.

Если SOAP узел успешно обработал заголовок, требуется удалить этот заголовок из сообщения. SOAP узлам разрешено повторно вставлять заголовки, но это изменяет участников контракта – теперь заголовки targets между текущим и следующим узлами. Если SOAP узел оказывается конечным получателем, он также должен обработать и SOAP тело.

 

Взамодействие протоколов

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

Конкретное взаимодействие протоколов определяет как именно SOAP сообщения должны передаваться с помощью данного протокола. Иначе говоря, он определяет детали того, как SOAP согласовывается в рамках другого протокола, который, возможно, имеет собственную оболочку обмена сообщениями наряду с разнообразием заголовков. Что действительно определяет взаимодействие протоколов в большой степени зависит от характеристик и возможностей протокола. Например, взаимодействие протоколов для TCP будет сильно отличаться от взаимодействия для MSMQ или SMTP.

Спецификация SOAP 1.1 кодифицирует взаимодействие протоколов только для HTTP из-за его широкого распространения. SOAP используется и с другими протоколами, но реализации не следовали стандартизованному взаимодействию.

HTTP взаимодействие

Взаимодействие протокола HTTP определяет правила использования SOAP поверх HTTP. SOAP запрос/ответ просто преобразовывается в модель HTTP запроса/ответа.

Недостатки

  • Использование SOAP для передачи сообщений увеличивает их объём и снижает скорость обработки. В системах, где скорость важна, чаще используется пересылка XML-документов через HTTP напрямую, где параметры запроса передаются как обычные HTTP-параметры.
  • Хотя SOAP является стандартом, различные программы часто генерируют сообщения в несовместимом формате. Например, запрос, сгенерированный AXIS-клиентом, не будет понят сервером WebLogic.


Методические пособия

  • Системы автоматизированного проектирования
  • Социология молодёжи
  • Общая социология
  • Криптография
  • Проектирование трансляторов
  • Компьютерная графика
  • Моделирование систем
  • Информационная безопасность
  • Теория вычислительных процессов
  • Логические основы искусственного интелекта
  • Проектирование распределённых информационных систем