Модели появляются в результате совместной работы многих специалистов, что подразумевает интенсивный обмен мнениями, обсуждение моделей, рецензирование и достижение консенсуса об окончательной версии. Типичный пример – взаимодействие компаний-партнеров, которые ищут пути интеграции бизнес-процессов. В данной ситуации на помощь специалистам придут модели бизнес-процессов, формализующие основные операции компаний в виде последовательностей событий и действий. Наиболее распространенные языки моделирования бизнес-процессов представляют процесс как ориентированный граф. Такие модели помогают быстро ознакомиться с текущими бизнес-процессами партнера и облегчают их последующую интеграцию. Препятствием на этом пути становится отсутствие доступной инфраструктуры для совместного моделирования. Какими чертами должна обладать система графического моделирования, реализующая принципы Web 2.0, и какие преимущества она дает пользователям? Попробуем ответить на эти вопросы на примере относящейся к категории Open Source платформы графического моделирования Oryx, разрабатываемой в Потсдамском университете (Германия).

Задача проекта Oryx – моделирование бизнес-процессов в соответствии с BPMN (Business Process Modeling Notation), но система поддерживает моделирование и в других графических нотациях (например, Event-driven Process Chains или XForms). Oryx распространяется по лицензии MIT.

Сценарии

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

Создание и редактирование моделей в различных нотациях является основополагающей функциональностью системы графического моделирования. Сегодня существует большое количество графических языков моделирования, каждый из которых определяет свой собственный набор элементов и допустимых отношений между ними. Языки эволюционируют, утрачивая одни элементы, изменяя графическое представление других и приобретая новые. Ярким примером может служить нотация BPMN, изменившая представление целого ряда элементов и добавившая новые при переходе от версии 1.0 к 1.1. Пожалуй, наибольшим изменениям подверглись события – была введена их новая классификация (события обработки и генерации), изменено графическое обозначение составных событий и добавлен новый тип событий (события-сигналы). Нередко пользователь нуждается в расширении языка для своих нужд: от простого добавления новых атрибутов элемента до создания собственных элементов языка. Поэтому среда моделирования должна предоставлять механизм добавления новых языков моделирования и расширения существующих.

Возможность проводить анализ моделей позволяет решать прикладные задачи различного уровня сложности. Простейший анализ выявляет наличие синтаксических ошибок или отступление от общепринятых конвенций моделирования. Например, если BPMN-модель содержит поток управления, соединяющий два действия из разных пулов, то проверка синтаксиса должна сообщить об этом. Более сложные проверки позволяют выявить семантические ошибки в модели. В случае с BPMN примером такого анализа является проверка модели на «бездефектность» (soundness): отсутствие тупиков и недостатков синхронизации.

Преобразование моделей из одной нотации в другую имеет множество применений. Для проверки BPMN-модели на бездефектность требуется построить соответствующую сеть Петри. В других случаях пользователи хотят получить из существующей модели более низкоуровневую модель или даже исполняемый код. Так, модели BPMN могут быть преобразованы в код Business Process Execution Language (BPEL).

Обмен моделями с другими программными системами является частным случаем проблемы преобразования моделей. Иными словами, среда моделирования должна обеспечивать переносимость моделей, что может быть достигнуто за счет импорта/экспорта моделей в распространенные форматы обмена, например XMI для UML или XPDL для BPMN.

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

Реализация среды моделирования в виде Web-приложения открывает пользователям новые возможности, в числе которых: нулевая инсталляция (для работы достаточно стандартного браузера), простота обмена моделями (каждая модель может быть адресована URL), а с архитектурной точки зрения применение стиля REST (REpresentational State Transfer), используемого в WWW, позволяет элегантно решать перечисленные задачи.

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

Пример среды моделирования

Моделирование в многопользовательской системе Oryx осуществляется в стандартном браузере Mozilla Firefox. Для аутентификации пользователей применяется стандарт OpenID, поддерживаемый компаниями Google, IBM, Microsoft и Yandex. На рис. 1 показан пример графического интерфейса. Моделирование в Oryx производится путем перемещения элементов из панели с шаблонами на холст. Быстрый доступ к именам и значениям атрибутов элементов модели осуществляется посредством панели.

Модели в Oryx описываются в формате RDF (Resource Description Framework) и хранятся на сервере в виде XHTML-документов. Модель несет в себе как структурную информацию (описание элементов и отношений между ними), так и информацию о графическом представлении (описание правил отображения элементов). Каждой модели соответствует уникальный URL, позволяющий получить к ней доступ по протоколу HTTP. Сторонние приложения также получают доступ к моделям посредством HTTP.

Редактор Oryx представляет собой набор сценариев Javascript, который является частью XHTML-документа, содержащего модель. При загрузке документа браузер интерпретирует код редактора Oryx, который, в свою очередь, строит модель. Такое решение дает ряд преимуществ. Так как каждая модель адресуется посредством URL, обмен моделями сводится к простому обмену ссылками. Более того, редактор процессов может отобразить модель, расположенную по любому адресу в сети; однако текущая реализация предполагает взаимодействие со специальным сервером.

Ядро редактора Oryx предоставляет единый интерфейс для работы с такими элементами моделей, как ребра и узлы. Интерфейс описывает методы для создания, чтения и редактирования элементов модели. Помимо этого, ядро предоставляет инфраструктуру для управления наборами шаблонов и плагинами. Общая архитектура Oryx показана на рис. 2.

Концепция набора шаблонов входит в ядро Oryx и позволяет определять графические языки моделирования. Набор шаблонов задает элементы языка, их атрибуты, а также отношения между элементами и ограничения на эти отношения. В качестве примера ограничения можно привести запрет на входящий поток управления для начальных событий в BPMN-диаграмме. Наряду с этим набор шаблонов определяет графическое представление каждого элемента – именно наборы шаблонов, устанавливая правила языка, превращают Oryx из обычного графического редактора в инструмент моделирования. Благодаря механизму набора шаблонов Oryx полностью поддерживает BPMN 1.0, BPMN 1.2 и Event-driven Process Chains (EPC). Кроме того, поддерживаются такие нотации, как EPC, сети Петри и WF-сети.

Расширяемость Oryx не ограничивается добавлением поддержки новых языков моделирования – механизм плагинов позволяет организовать базовую функциональность приложения и внедрять новую. К примеру, такие функции, как выделение элементов модели, их копирование и вставка, реализованы как отдельные плагины. Плагины могут создаваться для какого-то конкретного языка, например для преобразования графических моделей BPMN в исполняемые модели BPEL. Другие плагины позволяют осуществлять проверку свойств моделей (например, бездефектность модели BPMN) или осуществлять трансформации (например, BPMN в XPDL или BPMN в сеть Петри).

Особый интерес представляет построение сети Петри для BPMN-модели, так как в данном случае модель обретает семантику выполнения. Благодаря этой функциональности Oryx дает возможность пользователю пункт за пунктом выполнять смоделированный процесс. Следующим шагом в направлении исполняемых моделей может быть привязка отдельных действий процесса к сервисам в Web и создание коллажей (mashup) на основе моделей процессов.

Посредством плагинов возможно расширение как общей функциональности Oryx, так и функциональности, специфичной для конкретных языков моделирования. Использование концепций наборов шаблонов и механизма плагинов позволяет рассматривать Oryx как каркас приложений для разработки BPM-решений.

***

Oryx позиционируется как открытая платформа для BPM-сообществ, что открывает исследователям и практикам простор для проверки своих идей и реализации задач путем создания необходимых модулей расширения (plug-in). Зачастую исследователи не имеют возможности ознакомиться с моделями реальных бизнес-процессов – компании обычно неохотно публикуют такую информацию, вследствие чего очень небольшое количество моделей находится в открытом доступе. Oryx предоставляет репозиторий моделей бизнес-процессов, в котором каждый пользователь может опубликовать свою модель. Со временем этот репозиторий может превратиться в ценный ресурс для BPM-сообщества.

Сергей Смирнов, Геро Декер, Хаген Овердик, Матиас Веске (sergey.smirnov, gerodecker, hagenoverdick, mathiasweske@hpi.uni-potsdam.de) –сотрудники Института Хассо Платтнера, Потсдамский университет (Германия).


BPMN – нотация моделирования бизнес-процессов

Рис. 1. Графический интерфейс Oryx при моделировании бизнес-процесса в BPMN 1.2

Рис. 2. Архитектура Oryx