ГОСТ Р ИСО/МЭК 40220-2015 Информационные технологии (ИТ). W3C SOAP. Версия 1.2. Часть 2. Дополнения (вторая редакция) стр. 7

Идентификатор данного шаблона обмена сообщениями: URI [ИСО/МЭК 40210, подраздел 5.6] "http://www.w3.org/2003/05/soap/mep/soap-response/".
8.3.2 Описание
ШОС "ответ SOAP" определяет шаблон обмена сообщениями, в котором за сообщением, которое не является сообщением SOAP, но выступает в роли запроса, следует сообщение SOAP, выступающее в роли ответа. При условии, что нет отказа нижележащего протокола, данный ШОС состоит ровно из двух сообщений, причем только одно из них является сообщением SOAP:
- запрос передается методом, определенным привязкой, который не включает конверт SOAP, и, следовательно, не требует SOAP-обработки получающим узлом SOAP;
- сообщение ответа, которое содержит конверт SOAP. ШОС завершается обработкой конверта SOAP в соответствии с правилами модели обработки SOAP (см. [ИСО/МЭК 40210, раздел 5]).
Аварийная работа во время обмена сообщениями "ответ SOAP" может быть вызвана отказом при передаче сообщения запроса или ответа. Информирование о таких отказах может быть опущено на одном или обоих запрашивающем и отвечающем узлах SOAP или может быть осуществлено с помощью генерации отказа SOAP или отказа, определенного привязкой (см. 8.3.4). Кроме того, во время аварийной работы каждый узел SOAP, участвующий в обмене сообщениями, может по-разному определять успешность выполнения операции обмена сообщениями.
Область применения ШОС "ответ SOAP" ограничивается запросом на сообщение-ответ при обмене сообщениями между одним запрашивающим и одним отвечающим узлами SOAP Данный шаблон не налагает требований ни на корреляции между множественными запросами, ни на определенную синхронизацию множественных запросов. Реализации МОГУТ поддерживать одновременно несколько запросов и связанную с ними обработку ответов.
Примечание - Данный ШОС не может использоваться в сочетании с функциями, которые задаются в блоках заголовка SOAP в запросе, потому что в данном случае нет конверта SOAP, в который можно было бы их включить.
8.3.3 Описание конечного автомата
ШОС "ответ SOAP" определяет ряд свойств, описанных в таблице 8.
Таблица 8 - Определения свойств для ШОС "ответ SOAP"
Имя свойства
Описание свойства
Тип свойства
http://www.w3.org/2003/05/soap/mep/OutboundMessageАбстрактная структура, представляющая текущее исходящее сообщение в обмене сообщениями. Данная структура абстрагирует и инфо-набор конверта SOAP (который МОЖЕТ отсутствовать), и любые другие информационные структуры, передающиеся вместе с конвертомНе задан
http://www.w3.org/2003/05/soap/mep/lnboundMessageАбстрактная структура, представляющая текущее входящее сообщение в обмене сообщениями. Данная структура абстрагирует и инфо-набор конверта SOAP (который МОЖЕТ отсутствовать), и любые другие информационные структуры, передающиеся вместе с конвертомНе задан
http://www.w3.org/2003/05/soap/mep/lmmediateDestinationИдентификатор непосредственного узла назначения исходящего сообщенияxs:anyURI
http://www.w3.org/2003/05/soap/mep/lmmediateSenderИдентификатор непосредственного отправителя входящего сообщенияxs:anyURI
Чтобы инициировать обмен сообщениями, который соответствует ШОС "ответ SOAP", запрашивающий узел SOAP создает экземпляр локального контекста обмена сообщениями. В таблице 9 описано, как инициализируется контекст.
Таблица 9 - Создание экземпляра контекста обмена сообщениями для запрашивающего узла SOAP
Имя свойства:http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/ExchangePatternName.Значение: http://www.w3.org/2003/05/soap/mep/soap-response/.
Имя свойства:http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/FailureReason.Значение: "None".Примечания: относительный URI, который будет разрешен относительно значения свойства с именем http://www.w3.org/2002/12/soap/bindingFramework/ExchangeContext/ExchangePatternName
Имя свойства: http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role.Значение: "RequestingSOAPNode".Примечания: относительный URI, который будет разрешен относительно значения свойства с именем http://www.w3.org/2002/12/soap/bindingFramework/ExchangeContext/ExchangePatternName
Имя свойства: http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/State.Значение: "Init".Примечания: относительный URI, базовый URI которого - значение свойства с именем http://www.w3.org/2002/12/ soap/bindingFramework/ExchangeContext/Role
Имя свойства: http://www.w3.org/2003/05/soap/mep/OutboundMessage.Значение: абстракция сообщения запроса, которое не включает инфо-набор конверта SOAP
Имя свойства: http://www.w3.org/2003/05/soap/mep/lmmediateDestination.Значение: идентификатор (URI), который обозначает отвечающий узел SOAP
Могут присутствовать и другие свойства, имеющие отношения к операциям экземпляра контекста обмена сообщениями. Такие свойства инициализируются согласно их собственным спецификациям.
Как только контекст обмена сообщениями инициализирован, управление контекстом передается к соответствующему локальному экземпляру привязки.
На рисунке 3 представлены логические переходы между состояниями запрашивающего и отвечающего узлов SOAP во время обмена сообщениями. В каждом узле SOAP локальные экземпляры привязки логически обновляют значение свойства http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/State для отражения текущего состояния процесса обмена сообщениями. Имена состояний - относительные URI, заданные относительно значения базового URI, которое содержится в свойстве http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role локального контекста обмена сообщениями.

Рисунок 3 - Диаграмма переходов ШОС "ответ SOAP"

579 × 364 пикс.     Открыть в новом окне
Рисунок 3 - Диаграмма переходов ШОС "ответ SOAP"
Когда локальный экземпляр привязки в отвечающем узле SOAP начинает получать входящее сообщение запроса, он логически создает экземпляр контекста обмена сообщениями. В таблице 10 описаны свойства, которые привязка инициализирует как часть создания экземпляра контекста.
Таблица 10 - Создание экземпляра контекста обмена сообщениями для входящего сообщения-запроса
Имя свойства:http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/ExchangePatternName.Значение: http://www.w3.org/2003/05/soap/mep/soap-response/.Примечания: инициализируется как можно раньше в жизненном цикле обмена сообщениями
Имя свойства:http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/FailureReason.Значение: "None".Примечания: относительный URI, который будет разрешен относительно значения свойства с именем http://www.w3.org/2002/12/soap/bindingFramework/ExchangeContext/ExchangePatternName
Имя свойства: http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role.Значение: "RespondingSOAPNode".Примечания: относительный URI, который будет разрешен относительно значения свойства с именем http://www.w3.org/2002/12/soap/bindingFramework/ExchangeContext/ExchangePatternName, инициализируется во время жизненного цикла обмена сообщениями как можно раньше
Имя свойства: http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/State.Значение: "Init".Примечания: относительный URI, который будет разрешен относительно значения свойства с именем http://www.w3.org/2002/12/soap/bindingFramework/ExchangeContext/Role
Когда происходит переход между состояниями запрашивающего и отвечающего узлов SOAP, локальный экземпляр привязки логически обновляет отдельные свойства. В таблицах 11 и 12 описаны эти обновления для запрашивающих и отвечающих узлов SOAP.
Таблица 11 - Переходы запрашивающего узла SOAP
Текущее состояние
Init ИнициализацияУсловие перехода: безусловный переход. Следующее состояние: "Requesting". Действие: инициировать запрос
Requesting ЗапросУсловие перехода: отказ при передаче сообщения.Следующее состояние: "Fail".Действие: установить http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/FailureReason в "transmissionFailure"
Условие перехода: начато получение сообщения ответа. Следующее состояние: "Receiving".Действие: установить значение http://www.w3.org/2003/05/soap/mep/lmmediateSender, для обозначения отправителя сообщения ответа (может отличаться от значений в http://www.w3.org/2003/05/soap/mep/lmmediateDestination). Начать конструировать абстрактное сообщение ответа в http://www.w3.org/2003/05/soap/mep/lnboundMessage
Receiving ПолучениеУсловие перехода: отказ при обмене сообщениями.Следующее состояние: "Fail".Действие: установить значение http://www.w3.org/2003/05/soap/bindingFramework/Exchange-Context/FailureReason в "exchangeFailure".
Условие перехода: завершено получение сообщения ответа. Следующее состояние: "Success"
Таблица 12 - Переходы отвечающего узла SOAP
Текущее состояние
Init ИнициализацияУсловие перехода: начато получение запроса.Следующее состояние: "Receiving".Действие: установить значение переменной http://www.w3.org/2003/05/soap/mep/lmmediateSender для обозначения отправителя сообщения запроса (если его можно определить). Передать управление контекстом обмена сообщениями процессору SOAP
Receiving ПолучениеУсловие перехода: отказ при приеме сообщения.Следующее состояние: "Fail".Действие: установить значение переменной http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/FailureReason в "receptionFailure"
Условие перехода: начало сообщения ответа доступно в http://www.w3.org/2003/05/soap/mep/OutboundMessage.Следующее состояние: "Sending".Действие: инициировать передачу абстрактного сообщения ответа, содержащегося в http://www.w3.org/2003/05/soap/mep/OutboundMessage
Sending ОтправкаУсловие перехода: отказ при передаче сообщения.Следующее состояние: "Fail".Действие: установить http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/FailureReason в "exchangeFailure"
Условие перехода: отправка сообщения ответа завершена. Следующее состояние: "Success"
8.3.4 Обработка отказов
Во время работы ШОС "ответ SOAP" участвующие узлы SOAP могут генерировать отказы SOAP. 
Если отказ SOAP сгенерирован отвечающим узлом SOAP, находящимся в состоянии "Получение", то отказ SOAP сохраняется в http://www.w3.org/2003/05/soap/mep/OutboundMessage, и конечный автомат переходит в состояние "Отправка".
Данный ШОС не специфицирует порождение или обработку отказов SOAP, сгенерированных запрашивающим узлом SOAP во время обработки сообщения ответа в состояниях, следующих за состоянием "Успех" в таблице переходов запрашивающего узла SOAP (см. таблицу 11).
8.4 Функция SOAP "Веб-метод"
Данный раздел определяет функцию SOAP "Веб-метод".
8.4.1 Имя функции SOAP
Идентификатор функции SOAP "Веб-метод": URI [ИСО/МЭК 40210, подраздел 5.6] "http://www.w3.org/2003/05/soap/features/web-method/".
8.4.2 Описание
Нижележащие протоколы, разработанные для использования в сети Интернет, предусматривают для работы с ресурсами небольшой набор Веб-методов, таких как GET, PUT, POST и DELETE. Эти методы формально определены в спецификации HTTP [RFC 2616], но и нижележащие базовые протоколы могут также их поддерживать. Привязкам к HTTP или другим подобным протоколам СЛЕДУЕТ использовать функцию SOAP "Веб-метод" для предоставления приложениям контроля над Веб-методами, которые будут применяться при передаче сообщений SOAP.
Привязкам, поддерживающим эту функцию, СЛЕДУЕТ использовать подходящую реализацию этой функции, если она предоставляется базовым протоколом; например, привязка HTTP, описанная в данной спецификации, представляет метод "GET" как запрос HTTP GET и метод "POST" как запрос HTTP POST (см. раздел 9). Привязкам, поддерживающим эту функцию, СЛЕДУЕТ предоставлять получающему узлу информацию о Веб-методе, использованном для передачи.
Функция SOAP "Веб-метод" МОЖЕТ быть реализована привязкой к нижележащим транспортным протоколам, у которых нет предпочтительных реализаций определенных Веб-методов (например, не различающих GET и POST). Таким привязкам СЛЕДУЕТ предоставлять получающему узлу информацию о Веб-методе, использованном при передаче, но не требуется предпринимать дополнительных действий для поддержки данной функции.
8.4.3 Конечный автомат функции SOAP "Веб-метод"
Функция SOAP "Веб-метод" определяет единственное свойство, которое описано в таблице 13.
Таблица 13 - Определение свойства для функции SOAP "Веб-метод"
Имя свойства
Описание свойства
Тип свойства
http://www.w3.org/2003/05/soap/features/web-method/MethodОдин из "GET", "POST", "PUT", "DELETE" (или другие, которые позднее могут быть добавлены к набору Веб-методов)Не определен
Данная спецификация предусматривает использование функции SOAP "Веб-метод" в сочетании с шаблонами обмена сообщениями (см. 8.2 и 8.3). Данная функция МОЖЕТ использоваться с другими ШОС тогда и только тогда, когда это предусмотрено в спецификациях других ШОС.
Узел, отправляющий сообщение запроса, ДОЛЖЕН предоставлять значение для свойства http://www.w3.org/2003/05/soap/features/web-method/Method. Привязке протокола, поддерживающей эту функцию, СЛЕДУЕТ установить значение свойства http://www.w3.org/2003/05/soap/features/web-method/Method в получающем узле, чтобы оно соответствовало значению, указанному отправителем; средство передачи этого свойства определяется привязкой.
Отвечающему узлу СЛЕДУЕТ отвечать способом, согласующимся с запрашиваемым Веб-методом (например, вызов метода "GET" должен привести к извлечению представления идентифицированного ресурса), или, если Веб-метод не поддерживается, СЛЕДУЕТ произвести отказ специфичным для приложения способом.
Привязки, реализующие эту функцию, ДОЛЖНЫ использовать шаблон обмена сообщениями с семантикой, которая совместима с выбранным Веб-методом. Например, шаблон обмена сообщениями SOAP "ответ SOAP" (см. 8.3) совместим с "GET".
8.5 Функция SOAP "Действие"