Пробные занятия. Бесплатно!
Приглашаем всех желающих посетить бесплатные пробные занятия по курсам МВА и профессиональной подготовки. Занятия проходят в реальных группах, никаких постановочных занятий. Ознакомиться с расписанием пробных занятий, выбрать заинтересовавшее и зарегистрироваться на него можно здесь


Механизмы обработки ошибок при менеджменте бизнес-процессов с помощью BPM-системы ActiveVOS



Димитров В.П.
кафедра "Управление качеством", ДГТУ
заведующий кафедрой
Ростов-на-Дону

Жмайлов Б.Б.
кафедра "Управление качеством", ДГТУ
докторант
Ростов-на-Дону

Кочнев С.В.
кафедра "Управление качеством", ДГТУ
инженер
Ростов-на-Дону


Введение

С обработкой исключительных ситуаций сталкиваются разработчики программных систем, систем управления базами данных (СУБД) и бизнес-процессов. Особенности данных областей определяют механизмы их обработки [1, 2]. Так, например, в области СУБД основным требованием является обеспечение согласованности данных. Это достигается с помощью механизмов журнализации и транзакций. Зачастую в целях повышения производительности игнорируется причина, повлекшая к появлению исключения. В области программирования стремятся по возможности точно ее определить и, в зависимости от нее, разрабатывают собственные обработчики, создавая, таким образом, устойчивые программы, толерантные к ошибкам. Для систем менеджмента бизнес-процессов существуют свои особенности. Поэтому целью данной статьи является обзор способов и описание особенностей обработки исключительных ситуаций с помощью системы управления бизнес-процессами (BPM-система) ActiveVOS.

Характеристика предметной области

К особенностям бизнес-процессов относится следующее:

  1. бизнес-процесс может выполняться в течении длительного периода времени, который фактически не ограничен – месяц, год и т.д.;
  2. не всегда, динамически, в ходе выполнения бизнес-процесса, можно получить причину исключения;
  3. за один рабочий цикл (неделимую операцию-транзакцию) может осуществляться вызов нескольких методов Web-сервисов различных систем;
  4. бизнес-процесс может оперировать большими объемами данных, потеря которых нежелательна.

В BPM-системе ActiveVOS существует несколько механизмов для обработки исключительных ситуаций, что позволяет делать бизнес-процессы гибкими и устойчивыми при возникновении проблем при их выполнении.

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

Логика работы механизма компенсаций представлена на Рисунке 1. Компонент обработчика событий "OnEvent" получает сообщение об отмене заказа и передает его обработчику ошибок "CatchAll", который применяет механизм компенсации на ранее выполненные участки процесса, связанные с ним. Обработчик компенсации "Compensation" завершает откат работы сервиса "InvokeOrderInventory", вызывая метод "CancelOrderInventory" и отправку уведомления об отмене "ReplayCancelOrder". Все действия возвращаются в первоначальное состояние только в тех местах процесса, к которым был применен механизм компенсации.

Рисунок 1. Логика работы механизма компенсаций: 1 – обработчик событий; 2 – обработчик ошибок; 3 – область, для которой определен механизм компенсации

Как видно из Рисунка 1, обработка компенсаций связана с определенной областью "ScopeOneA". Эту область можно рассматривать как логическую единицу работы с заданным набором действий бизнес-процесса, которым требуется "откат" в первоначальное состояние и повторное выполнение, в то время как другие части процесса могут продолжать работать в обычном режиме.

В отличие от обработки компенсаций, обработчик ошибок незамедлительно срабатывает при возникновении исключительной ситуации. Обработчик исключений в BPEL-процессе останавливает выполнение той его области, с которой он связан, отменяя при этом все действия, которые были выполнены до ее появления.

К причинам возникновения исключительной ситуации можно отнести следующие:
• Операция веб-сервиса не может быть успешно завершена и возвращает ошибку;
• Внутренняя ошибка, которая произошла в самом процессе. Для ее идентификации можно использовать список стандартных BPEL ошибок;
• Действие <throw> или <rethrow> выдало ошибку.

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

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

  • "catch", ко