JAX-WS Асинхронные клиентские методы для вызова веб-сервисов - PullRequest
5 голосов
/ 01 апреля 2012

Я изучаю веб-сервисы на основе SOAP с помощью JAX-WS, и мне очень сложно понять ту часть, которая касается клиентов. Если бы кто-то мог помочь мне объяснить некоторые темы, я был бы очень признателен. Я использую книгу по SOA, а также Google, но я действительно запутался, поэтому я думаю, что здесь я могу получить более точный ответ, сосредоточенный на том, что мне нужно.

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

Асинхронные клиенты позволяют нам общаться в асинхронном режиме, используя 2 модели программирования: 1 - обратный вызов и 2 - опрос

  • Сомнение 1: Может кто-нибудь, пожалуйста, объясните мне простым способом, каковы различия, плюсы и минусы 2 моделей (обратный вызов и объединение в пул)

Говоря об асинхронной связи, я также понимаю, что у производителя (веб-службы) должен быть способ найти потребителя (клиента) после завершения обработки. Вот почему мы обращаемся к нему.

  • Сомнение 2: Не могли бы вы кратко объяснить, как работает адресация? А также, как адресация связана с методами обратного вызова и опроса?

Еще одна вещь. Диспетчерский API меня также сильно смущает. Потому что они продолжают говорить о динамических клиентах.

  • Сомнение 3: Как API Dispatch связан с асинхронной связью, если они все время говорят о динамических клиентах?
  • Сомнение 4: 2 режима использования API рассылки (MESSAGE и PAYLOAD), для чего они используются и как они связаны с моделью асинхронной связи JAXWS?

1 Ответ

2 голосов
/ 01 апреля 2012
  1. Может кто-нибудь, пожалуйста, объясните мне простым способом, каковы различия, плюсы и минусы 2 моделей (обратный вызов и объединение)

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

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

2. Не могли бы вы вкратце объяснить, как работает адресация? А также, как адресация связана с методами обратного вызова и опроса?

Адресация позволяет веб-сервису понимать информацию, которая ранее была передана только системам обмена сообщениями и поставщикам транспортных услуг. Рассмотрим этот вариант использования. Первоначально используемый транспорт был бы HTTP как для отправки запроса, так и для ответа. И тогда вы могли бы захотеть изменить часть этого транспорта, скажем, при отправке ответа обратно, только по протоколу SMTP. В случае, если вы использовали адресацию ws, вся информация, относящаяся к транспортировке и адресации, была бы частью самой мыльной оболочки, которая позволила бы вашему веб-сервису динамически изменить транспорт для отправки ответа.

Адресация веб-сервисов также может использоваться для обратного вызова с сервера на клиент. Служба сообщает тип порта для обратного вызова, требуемого ей в WSDL. клиент реализует этот тип порта и затем информирует службу о конечной точке обратного вызова, используя адресацию WS.

Проще говоря, WS-адресация добавляет дополнительные теги в мыльный envolope, который включает в себя информацию, которая будет присутствовать только в транспортных заголовках, например, из адреса, адреса, имени действия и т. Д.

3. Как API диспетчеризации связан с асинхронной связью, если они все время говорят о динамических клиентах?

Future<?> response = dispatch.invokeAsync(T, AsyncHandler);

invokeAsync - это метод опроса. Ответ немедленно возвращается пользователю и может быть опрошен для завершения. Тем временем клиентская программа может выполнять другую работу. Javax.xml.ws.Response реализует интерфейс java.util.concurrent.Future, включенный в J2SE 5.0. Объект Response возвращает фактический ответ через метод get, который блокирует, если ответ не готов к возвращению.

4.Два режима использования API отправки (MESSAGE и PAYLOAD), для чего они используются и как они связаны с моделью асинхронной связи JAXWS?
Режимы обмена сообщениями напрямую не связаны с асинхронной связью. Режимы обмена сообщениями определяют объем информации, отправляемой в запросе веб-службы. РЕЖИМ СООБЩЕНИЯ можно использовать только при использовании привязки SOAP.

...