УДК 004.021
Попов И.В. 1, Ижовкин И.Н. 2, Данекина А.А 1
1 Сибирский Государственный Университет Телекоммуникаций и Информатики
2 Новосибирский Государственный Университет
Реализация непосредственной интерпретации произвольных диаграмм бизнес-процессов
Разработка систем управления потоками работ (workflow engines) является одной из важнейших задач в сфере информационной поддержки бизнеса.
Поток работ является формализованным бизнес-процессом, в ходе которого пользователи (сотрудники организаций) выполняют определенные действия в соответствии с отведенными им ролями. [1] За прошедшее время было предпринято множество попыток формализовать описание бизнес-процессов, а именно были разработаны такие стандарты как: Business Process Modeling Notation (BPMN) [2], Web Services Business Process Execution Language (WS-BPEL или сокращенно BPEL) [2, 3], XML Process Definition Language (XPDL) [2] и другие. Некоторые из этих попыток оказались весьма успешными, особенно BPEL.
Однако, несмотря на предпринятые попытки, все еще не существует общепризнанного стандарта для описания бизнес-процессов и их исполнения. Основным препятствием для выработки единого стандарта такого рода являются неясности в семантике параллельных потоков (нитей, threads) при исполнении бизнес-процессов. В частности, BPMN точно не определяет интерпретацию элемента, используемого для слияния и порождения параллельных нитей – Parallel Gateway. [4] Проблема в том, что в отсутствие ограничений на структуру, довольно просто описать противоречивый процесс – процесс, содержащий одну или несколько «мертвых» или «живых» блокировок. Некоторые противоречивые процессы можно обнаружить при анализе, но это часто требует неприемлемых затрат вычислительных ресурсов, экспоненциально растущих с возрастанием сложности диаграммы бизнес-процесса.
Существующие системы моделирования бизнес процессов пытаются так или иначе не допустить появление противоречивых диаграмм. Многие системы, основанные на популярном языке описания бизнес-процессов BPEL [3], сильно ограничивают использование параллелизма – допускаются только процессы с блочной структурой параллельных потоков (все нити, выходящие из одного ветвления, должны заканчиваться в одном и том же слиянии).
В данной работе описывается реализация семантики, впервые предложенной Д.В. Иртеговым [1], которая позволяет интерпретировать произвольный бизнес-процесс, описанный с помощью BPMN. Этот подход не решает проблему противоречивых процессов, но позволяет обнаруживать такие процессы в ходе отладки и затем вносить в них исправления «на ходу». В данном докладе не ставится цели описать упомянутую выше семантику. Скажем лишь то, что она вводит понятие идентификатора нити, который присваивается каждому выходу элементов типа Start Event и Gateway. По этому идентификатору исполняющая система и будет определять, какие из запущенных потоков следует ждать в точках слияния.
Описываемый проект реализован в виде плагина (plug-in) к популярной платформе XWiki Enterprise и написан на языке Java. [5] Пользовательский интерфейс системы формируется документами XWiki, с использованием сценариев на языке Velocity от The Apache Software Foundation.
Рис 1. Общая схема проекта.
На рис. 1 представлена общая структурная и функциональная схема проекта. BPMN диаграмма, экспортированная в XPDL файл (обычно средствами редактора диаграмм), загружается в систему и анализируется. На этом этапе и происходит обработка диаграммы в соответствии с предложенной семантикой. После обработки информация о диаграмме заносится в базу данных.
При движении по диаграмме подшивки разделяются в точках ветвления (порождающий Parallel Gateway, Inclusive и Exclusive Gateway) и объединяются в точках слияния (слияющий Parallel Gateway). Алгоритм слияния может быть задан пользователем с помощью сценария
Java Script? (используется встраиваемый интерпретатор Rhino от
Mozilla.org?). Состояние бизнес-процесса на каждом шаге отображается графически в виде диаграммы процесса с выделенными на ней активными элементами.
Управление продвижением процесса по диаграмме осуществляется с учетом ролей. За каждую активность на диаграмме отвечает пользователь, обладающий определенной ролью, информация о которой извлекается из XPDL файла.
Для каждого пользователя имеется возможность вывести список всех заданий, требующих его внимания на данный момент. Пользователь может произвести действие, связанное с конкретным заданием, соответствующим образом отредактировав рабочий документ. На данный момент структура рабочих документов не контролируется и может быть произвольной. После выполнения задания пользователь информирует об этом систему, отправляя подшивку дальше по диаграмме. При этом права на редактирование рабочих документов выставляются только для пользователей, чья роль соответствует текущей активности, в которой участвует подшивка.
Таким образом, на данный момент мы имеем легкую в развертке (требуется лишь работающая система XWiki) и доступную для пользователя систему управления потоками работ, позволяющую запустить на исполнение бизнес-процесс произвольной сложности.
СПИСОК ЛИТЕРАТУРЫ
1. Иртегов Д.В. Система моделирования параллельных процессов,
предназначенная для описания потоков работ // Проблемы вычислительной
математики, математического моделирования и информатики: Сб. науч. тр.
– М.: МЗ Пресс, 2006. – С. 2
32–254.
2. Havey M. Essential Business Process Modeling. –
O' Reilly? Media, Inc., 2005.
3. Juric Matjaz B. Business Process Execution Language for Web Services. – Packt Publishing, 2006.
4. Dijkman R., Dumas M., Ouyang C. Formal Semantics and Automated Analysis of BPMN Process Models. – Queensland University of Technology, 2007.
5. Hunter J. Java Servlet Programming. –
O' Reilly?, 1998.