Протокол SOAP
SOAP
Что такое SOAP?
SOAP (Simple Object Access Protocol) — это протокол для обмена структурированными данными в веб-сервисах. Он использует XML для форматирования сообщений и работает поверх различных транспортных протоколов, таких как HTTP, SMTP или TCP.
Про SOAP можно почитать на официальном сайте W3 - https://www.w3.org/TR/soap12-part1/

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

Пример:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header>
<auth:Authentication xmlns:auth="http://example.com/auth">
<auth:Token>12345</auth:Token>
</auth:Authentication>
</soap:Header>
<soap:Body>
<getUserRequest xmlns="http://example.com/user">
<userId>1</userId>
</getUserRequest>
</soap:Body>
</soap:Envelope>
Порядок работы SOAP
Как работает SOAP?
- Клиент отправляет SOAP-запрос на сервер через HTTP POST.
- Сервер обрабатывает запрос и формирует SOAP-ответ.
- Ответ отправляется обратно клиенту.
WSDL
WSDL (Web Services Description Language) — это язык, используемый для описания веб-сервисов, доступных через SOAP. WSDL предоставляет формальное описание того, какие операции поддерживает сервис, какие данные используются в запросах и ответах, где находится сервис (URL) и какой протокол используется для взаимодействия.

WSDL-документ состоит из нескольких ключевых элементов:
- Types определяет типы данных, используемые в сервисе (например, строки, числа, объекты). Часто использует XML Schema (XSD).
- Message описывает входные и выходные данные для операций.
- PortType определяет набор операций, которые поддерживает сервис.
- Binding описывает протокол (например, SOAP) и формат данных для каждой операции.
- Service указывает URL, где находится сервис.

Как работает взаимодействие SOAP+WSDL?
- Клиент получает WSDL, загружая документ с сервера, чтобы узнать, какие операции доступны и как их вызывать.
- На основе WSDL генерируется код для клиента.
- Клиент вызывает метод, например, getUser, передавая параметры в виде XML.
- Сервер получает SOAP-запрос, выполняет операцию и формирует SOAP-ответ.
- Клиент получает SOAP-ответ и обрабатывает его.
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Интеграция - это когда две программы умеют разговаривать друг с другом и делать общее дело. Выбор модели взаимодействия определяет архитектурные свойства системы — отзывчивость, устойчивость к сбоям, сложность отладки и масштабируемость. Интеграционные потоки часто визуализируются в виде диаграмм последовательностей (sequence diagrams) или BPMN-схем. В промышленных платформах (например, BPMSoft, ELMA365, Apache NiFi) такие потоки… Что такое интеграционная авторизация, API-ключи и как с этим работать. В распределённых системах границы стираются. Saga-паттерн, например, моделирует долгую транзакцию через цепочку локальных транзакций и компенсирующих действий. Каждый шаг Saga — это отдельная… В корпоративной среде RPC лег в основу таких технологий, как — CORBA (Common Object Request Broker Architecture) — платформенно-независимый стандарт от OMG, DCOM (Distributed Component Object Model)… Веб-сервис - это программа, которая живёт на сервере и отвечает на запросы других программ через интернет. Мы её не видим (нет никакой кнопки или картинки), но наше приложение с ней разговаривает. Любая информационная система, будь то база данных, веб-сервис, операционная система или программный модуль, существует не в изоляции. Её предназначение — реагировать на внешние и внутренние стимулы,… REST — это стиль, а не строгий протокол, может быть реализован на любом языке программирования, легко масштабируется, хорошо документируется. Пути могут содержать — параметры пути - /users/123, параметры строки запроса (или просто параметры запроса) - ?sort=datelimit=10 Мы уже изучали асинхронность, поэтому можем уже понять, что асинхронная коммуникация — это способ взаимодействия, при котором отправитель не ждёт немедленного ответа от получателя. Это особенно важно… Реактивные взаимодействия фокусируются на обмене событиями в режиме реального времени. Системы реагируют на события по мере их возникновения, обеспечивая непрерывный поток данных.Интеграция
Типы взаимодействия между системами
Интеграционные потоки данных
Авторизация в интеграционных сценариях
Управление сессиями в распределённых системах
История развития интеграционных технологий
Веб-сервисы
Модель запрос-ответ в сетевом взаимодействии
API - интерфейсы прикладного программирования
HTTP как основа веб-интеграций
Асинхронная коммуникация между сервисами
Реактивные системы и потоки данных