Введение
Событие (process event) – элемент бизнес-процесса, обозначающий нечто, что происходит в ходе процесса и влияет на его ход. В отличие от задачи (которая выполняется) или шлюза (который принимает решение), событие представляет внешний или внутренний факт: получение сообщения, истечение таймера, возникновение ошибки, выполнение условия.
В нотации BPMN 2.0 события являются одним из трёх базовых типов элементов потока (наряду с задачами и шлюзами). Они изображаются кругами с различными пиктограммами внутри, обозначающими тип события. Правильное использование событий критически важно для корректного описания поведения процесса.
История и контекст
Концепция событий в процессном моделировании присутствует с первых нотаций. В EPC (Event-driven Process Chain), нотации SAP/ARIS, события являются ключевыми элементами: цепочка «событие-функция-событие» – базовый строительный блок EPC. В BPMN события получили значительно более богатую типологию и семантику начиная с версии 1.0 (2004) и особенно в BPMN 2.0 (2011), где были введены прерывающие и непрерывающие граничные события.
Аналогичная концепция событий используется в событийной архитектуре (EDA) и сложной обработке событий (Complex Event Processing, CEP) – хотя там «событие» имеет несколько иное техническое значение.
Как это работает
BPMN 2.0 классифицирует события по двум осям:
По позиции в процессе:
- Стартовое событие (Start Event) – инициирует процесс или подпроцесс. Изображается тонким кругом. Примеры: получение заявки, наступление срока, ручной запуск.
- Промежуточное событие (Intermediate Event) – происходит в ходе процесса. Изображается двойным кругом. Может стоять в потоке или быть прикреплено к границе задачи/подпроцесса.
- Конечное событие (End Event) – завершает процесс или ветку. Изображается жирным кругом. Примеры: успешное завершение, ошибка, отмена.
По типу триггера: «пустое» (нет специфического триггера), сообщение (Message), таймер (Timer), ошибка (Error), сигнал (Signal), условие (Condition/Conditional), компенсация (Compensation), эскалация (Escalation), завершение (Terminate).
Где применяется
- Описание процессов в BPMN – каждый процесс должен начинаться со стартового и заканчиваться конечным событием.
- Обработка исключений – граничные события на задачах перехватывают ошибки и таймауты.
- Интеграционные сценарии – события-сообщения описывают получение данных от внешних систем.
- Оркестрация в BPM-системах – события-таймеры запускают эскалации при нарушении SLA.
Преимущества и ограничения
Преимущества: богатая семантика событий в BPMN позволяет точно описать поведение процесса в нештатных ситуациях (ошибки, таймауты, сигналы). Исполняемые события в BPMS автоматически управляют маршрутизацией.
Ограничения: обилие типов событий в BPMN 2.0 (более 60 комбинаций) делает нотацию сложной для начинающих. Неверное использование типов событий создаёт некорректные модели, которые невозможно исполнить движком.
Связь с другими понятиями
Шлюз (BPMN) – управляет ветвлением потока на основе данных, событие – реагирует на внешние факты. Задача (BPMN) – выполняемая работа, которую событие может запустить или прервать. Подпроцесс может иметь граничные события. Нотация – общий язык, частью которого являются события. Событийная архитектура использует аналогичную концепцию на уровне ИТ-систем.