Основная цель BPMN — создание стандартной нотации понятной всем бизнес пользователям. Бизнес пользователи включают в себя бизнес аналитиков, создающих и улучшающих процессы, технических разработчиков, ответственных за реализацию процессов и менеджеров, следящих за процессами и управляющих ими. Следовательно, BPMN призвана служить связующим звеном между фазой дизайна бизнес процесса и фазой его реализации.
В настоящий момент существует несколько конкурирующих стандартов для моделирования бизнес процессов. Распространение BPMN поможет унифицировать способы представления базовых концепций бизнес процессов (например, открытые и частные бизнес процессы, хореографии), а также более сложные концепции (например, обработка исключительных ситуаций, компенсация транзакций).
BPMN поддерживает лишь набор концепций, необходимых для моделирования бизнес процессов. Моделирование иных аспектов, помимо бизнес процессов, находится вне зоны внимания BPMN. Например, моделирование следующих аспектов не описывается в BPMN:
Модель данных
Организационная структура
Несмотря на то, что BPMN позволяет моделировать потоки данных и потоки сообщений, а также ассоциировать данные с действиями, она не является схемой информационных потоков.
Элементы
Моделирование в BPMN осуществляется посредством диаграмм с небольшим числом графических элементов. Это помогает пользователям быстро понимать логику процесса. Выделяют четыре основные категории элементов:
Объекты потока управления: события, действия и логические операторы
Соединяющие объекты: поток управления, поток сообщений и ассоциации
Роли: пулы и дорожки
Артефакты: данные, группы и текстовые аннотации.
Элементы этих четырёх категорий позволяют строить простейшие диаграммы бизнес процессов (ДБП). Для повышения выразительности модели спецификация разрешает создавать новые типы объектов потока управления и артефактов.
Объекты потока управления
Объекты потока управления разделяются на три основных типа: события (events), действия (activities) и логические операторы (gateways).
Рис. 6. Типы событий в BPMN 1.1
События изображаются окружностью и означают какое-либо происшествие в мире. События инициируют действия или являются их результатами. Согласно расположению в процессе события могут быть классифицированы на начальные (start), промежуточные (intermediate) и завершающие (end). Начиная с BPMN 1.1 различают события обработки и генерации. Ниже представлена категоризация событий по типам.
Простые события (plain events) это нетипизированные события, использующиеся, чаще всего, для того, чтобы показать начало или окончание процесса.
События-сообщения (message events) показывают получение и отправку сообщений в ходе выполнения процесса.
События-таймеры (timer events) моделируют события, регулярно происходящие во времени. Также позволяют моделировать моменты времени, периоды и таймауты.
События-ошибки (error events) позволяют смоделировать генерацию и обработку ошибок в процессе. Ошибки могут иметь различные типы.
События-отмены (cancel events) инициируют или реагируют на отмену транзакции.
События-компенсации (compensation events) инициируют компенсацию или выполняют действия по компенсации.
События-условия (conditional events) позволяют интегрировать бизнес правила в процесс.
События-сигналы (signal events) рассылают и принимают сигналы между несколькими процессами. Один сигнал может обрабатываться несколькими получателями. Таким образом, события-сигналы позволяют реализовать широковещательную рассылку сообщений.
Составные события (multiple events) моделирует генерацию и моделирование одного события из множества.
События-ссылки (link events) используются как межстраничные соединения. Пара соответствующих ссылок эквивалентна потоку управления.
События-остановы (terminate events) приводят к немедленному завершению всего бизнес процесса (во всей диаграмме).
Рис. 7. Типы действий в BPMN 1.1
Действия изображаются прямоугольниками со скругленными углами. Среди действий различают задания и подпроцессы. Графическое изображение свёрнутого подпроцесса снабжено знаком плюс у нижней границы прямоугольника.
Задание (task) это единица работы, элементарное действие в процессе.
Множественные экземпляры (multiple instances) действия показывают, что одно действие выполняется многократно, по одному разу для каждого объекта. Например, для каждого объекта в заказе клиента выполняется один экземпляр действия. Экземпляры действия могут выполняться параллельно или последовательно.
Циклическое действие (loop activity) выполняется, пока условие цикла верно. Условие цикла может проверяться до или после выполнения действия.
Свёрнутый подпроцесс (collapsed subprocess) является сложным действием и содержит внутри себя правильную ДБП.
Развёрнутый подпроцесс (expanded subprocess) также является составным действием, но скрывает детали реализации процесса.
Ad-hoc подпроцесс (ad-hoc subprocess) содержит задания. Задания выполняются до тех пор, пока не выполнено условие завершения подпроцесса.
Рис. 8 Типы логических операторов в BPMN 1.1
Логические операторы изображаются ромбами и представляют точки принятия решений в процессе. С помощью логических операторов организуется ветвление и синхронизация потоков управления в модели процесса.
Оператор исключающего ИЛИ управляемый данными (data-based exclusive gateway) Если оператор используется для ветвления, то поток управления направляется лишь по одной исходящей ветви. Если оператор используется для синхронизации, то он ожидает завершения выполнения одной входящей ветви и активирует выходной поток.
Оператор исключающего ИЛИ управляемый событиями (event-based exclusive gateway) направляет поток управления лишь по той исходящей ветви, на которой первой произошло событие. После оператора данного типа могут следовать только события или действия-обработчики сообщений.
Оператор И (parallel gateway), использующийся для ветвления, разделяет один поток управления на несколько параллельных. При этом все исходящие ветви активируются одновременно. Если оператор используется для синхронизации, то он ожидает завершения выполнения всех входящих ветвей и лишь затем активирует выходной поток.
Оператор включающего ИЛИ (inclusive gateway) активирует одну или более исходящих ветвей, в случае, когда осуществляется ветвление. Если оператор используется для синхронизации, то он ожидает завершения выполнения одной входящей ветви и активирует выходной поток.