This topic applies only to the IBM Business Process Manager Advanced configuration.

Асинхронный вызов

Если компонент службы вызывается асинхронно, клиент службы и поставщик службы выполняются в разных нитях. При асинхронном вызове вызывающий компонент в IBM® Process Server не блокируется на время обработки запроса поставщиком. Среда выполнения SCA немедленно возвращает управление клиенту, позволяя ему продолжить обработку.

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

Существует два способа отложенного сбора ответов клиентом.
  • Асинхронный с отложенным ответом, при котором клиент вызывает операцию поставщика служб, а затем продолжает работу. Впоследствии клиент вызывает поставщика служб для получения ответа.
  • Асинхронный с обратным вызовом, при котором клиент вызывает операцию поставщика служб и указывает обработчик обратного вызова. Когда появляется ответ, среда выполнения SCA возвращает ответ клиенту путем вызова этого обработчика обратного вызова.

Асинхронный вызов SCA с отложенным ответом

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

При использовании асинхронного вызова с отложенным ответом ресурсы нити среды выполнения SCA сохраняются до момента появления ответа от поставщика службы. Если для обработки запроса поставщику служб требуются часы или дни, то следует использовать асинхронный стиль вызова с обратным вызовом. Асинхронный вызов SCA с отложенным ответом показан на Рис. 1.
Рис. 1. Асинхронный вызов SCA с отложенным ответом

Асинхронный вызов SCA с отложенным ответом показывает, каким образом продолжается работа клиента.

Пример сценария

Для веб-сайта по сравнению автомобильных страховок предпочтительно использовать асинхронный стиль вызова с отложенным ответом. Клиент запрашивает поиск страховок автомобиля у двух поставщиков страхования автомобилей. Ответы не зависят друг от друга. После возврата ответов поставщиками страхования автомобилей клиент может выбрать самый дешевый вариант. Рис. 2 показывает, каким образом клиент может вызвать поставщиков служб A и B.
Рис. 2. Сайт сравнения автомобильных страховок с использованием асинхронного вызова с отложенным ответом

Асинхронный вызов SCA с отложенным ответом показывает, каким образом работа клиента продолжается. Клиент может отправить несколько вызовов нескольким поставщикам служб.

Клиент создает запрос к поставщику служб A и вызывает среду выполнения SCA. Среда выполнения SCA немедленно возвращает управление клиенту, позволяя ему продолжить обработку. Затем клиент может создать второй запрос к поставщику служб B.

Затем клиент вызывает среду выполнения SCA для сбора ответов. Они обрабатываются, и в результате пользователю возвращается окончательный ответ.

асинхронный вызов SCA с обратным вызовом.

При использовании данного стиля вызова вызывающий компонент (клиент) указывает обработчик, который будет использоваться для получения и обработки ответа. После отправки запроса клиентом нить, отправившая запрос, продолжает работу. Ресурсы среды выполнения SCA, связанные с этой нитью, освобождаются. При появлении ответа от поставщика служб используется новая нить среды выполнения SCA для вызова обработчика обратного вызова, который выполнит обработку, требуемую для клиента.

Этот стиль вызова используется для длительных процессов или служб, которым требуется несколько часов или дней для возврата ответа. Асинхронный вызов SCA с обратным вызовом показан на Рис. 3.
Рис. 3. Асинхронный вызов SCA с обратным вызовом

Асинхронный вызов SCA с обратным вызовом показывает, каким образом работа клиента продолжается.

Пример сценария

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

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