-процесс для сервиса WebSeller

BPEL-процесс для сервиса WebSeller соответствует тому, который приведен на диаграмме активности.

Разработанный процесс можно разделить на три части:

1. Инициализация

2. Процедура проверки кредитоспособности

3. Управление состоянием заказа

Рассмотрим подробнее каждый из них.

Инициализация

На этом этапе процесс инициализирует значения всех переменных, которые ему понадобятся для дальнейшей работы, в них входит и подсчет общей стоимости и составление списка продуктов корзины покупателя, для дальнейшей их передачи сервису проверки кредитоспособности, а также на этом этапе документ заказа сохраняется в БД. Все эти действия не зависят друг от друга, поэтому могут выполняться параллельно, располагаясь в активности Flow.

Рисунок 4 Инициализация бизнес-процесса

Процедура проверки кредитоспособности

Процедура проверки кредитоспособности запускается в случае, если общая сумма заказа, посчитанная на предыдущем этапе, превышает определенное пороговое значение (в данном примере, 10000).

Вызов внешней службы проверки кредитоспособности (ApproveLoan)Вызов внешней службы проверки кредитоспособности (ApproveLoan)

Рисунок 5 Вызов внешней службы проверки кредитоспособности (ApproveLoan)

Прежде чем осуществить вызов службы ApproveLoan, процесс изменяет статус документа заказа в БД. В случае если служба ApproveLoan вернет отрицательный ответ, то есть в кредите отказано, будет выброшено исключение orderProcessingFault с соответствующим сообщением об ошибке. Это исключение будет обработано на уровне всего процесса. См. раздел «Обработка ошибок» ниже.

В случае если в процессе проверки будет выброшено исключение loanProcessFault, то оно ловится тут же и выбрасывается новое исключение типа orderProcessingFault с соответствующим сообщением об ошибке.

Управление состоянием заказа

После выполнения первых двух этапов, в случае если не было исключительных ситуаций, процесс перейдет в состояние ожидание: статус документа в БД измениться на OrderState.WAITING и процесс будет ожидать наступления одного из трех событий:

1. Подтверждения заказа

2. Отмены заказа

3. Таймаута

4.

Состояние ожидания бизнес-процессаСостояние ожидания бизнес-процесса

Рисунок 6 Состояние ожидания бизнес-процесса

В случае если клиент подтвердил заказ (путем вызова метода WebSeller.confirmOrder(orderID)), этот заказ удаляется из БД и процесс завершает свою работу. Во всех остальных случаях процесс завершится исключительной ситуацией типа orderProcessingFault с соответствующим наступившему событию кодом ошибки.

 
< Пред   СОДЕРЖАНИЕ   Скачать   След >