Подтвердить что ты не робот

Для чего подходит WS-Addressing?

Я только начинаю работу с веб-сервисами SOAP и наткнулся на WS-Addressing.

Я прочитал страницу Википедии, но мне трудно понять, что такое точка WS-Addressing.

Согласно Wikipedia и различным источникам в Интернете, WS-Addressing позволяет помещать "адресную информацию" или "информацию маршрутизации" в заголовок запроса SOAP.

Почему это полезно? Если я отправлю запрос через HTTP (или даже через SMTP или UDP), то адрес, который я отправляю, является адресом сервера, который будет обрабатывать мой запрос, и сервер может просто ответить одним и тем же каналом. Итак, зачем нужна информация о маршрутизации/маршрутизации?

Мне будет особенно интересен какой-то реальный (более или менее) пример, в котором полезно использовать WS-Addressing.

4b9b3361

Ответ 1

Я нашел WS-Addressing особенно полезным в ситуациях, когда ответ SOAP не может быть немедленно отправлен. Либо ресурсы для формирования ответа не доступны сразу, либо сам результат требует много времени.

Это может произойти, например, когда ваш бизнес-процесс включает в себя "человеческий облик" (такие процессы, как WS-HumanTask). Вы можете использовать веб-службы перед своим бизнесом, но иногда бизнес требует времени. Это может быть подписка, которая должна быть проверена вручную, что-то должно быть одобрено, что угодно, но для этого требуется несколько дней. Собираетесь ли вы постоянно открывать соединение? Вы собираетесь делать ничего, кроме ожидания ответа? Нет! Это неэффективно.

Вам нужен процесс уведомления. Клиент делает запросы, но не ждет ответа. Вместо этого он указывает серверу, куда отправить ответ, используя адрес "ответ на". После получения ответа сервер подключается к этому адресу и отправляет ответ.

И voila... асинхронные взаимодействия между веб-службами, развязывание жизненного цикла процесса связи со времени жизни HTTP-соединения. Очень полезно...

Но подождите... HTTP-соединение? Почему мне это нужно? Что делать, если я хочу, чтобы ответ был отправлен обратно на другой тип протокола? (который SOAP обеспечивает, так как он не привязан к какому-либо протоколу).

При нормальном потоке запросов/ответов ответ приходит на том же канале, что и запрос, "дайте ему соединение, которое вам известно... Так например, у вас есть HTTP-соединение... это означает, что HTTP и HTTP выходят.

Но с WS-Addressing вы не привязаны к этому. Вы можете потребовать ответ на другой тип канала. Например, запрос поступает на HTTP, но вы можете поручить серверу отправить ответ обратно через SMTP, например.

Таким образом, WS-Addressing определяет стандартные способы для маршрутизации сообщения по нескольким транспортным средствам. На странице wiki говорится:

вместо того, чтобы полагаться на транспорт на сетевом уровне для передачи информации маршрутизации, сообщение, использующее WS-Addressing, может содержать свои собственные метаданные отправки в стандартизованном заголовке SOAP.

и что касается вашего наблюдения:

и сервер может просто ответить одним и тем же каналом

... то, что работает для некоторых, может не работать для других, а для других - WS-Addressing: D.