Место BPMN и BPM-движков в ИТ-проектах
Если вы делали много ИТ-проектов, а про BPMN слышали лишь краем уха, то эта статья для вас. В этой статье рассказываю, как BPMN и BPM-движки могут облегчить вашу жизнь.
О BPMN и BPM-движках
BPMN — это нотация, набор значков и правил их применения. В отличии от UML, FlowChart, IDEF и прочих наборов значков, символы BPMN всегда однозначны и не допускают трактовки «или». Каждый значок означает одно и тоже на любой схеме, рисовал ли её студент 1 курса или ИТ-архитектор из банка.
Строгая семантика BPMN позволяет однозначно превращать значки в программный код. Получается визуальное программирование.
Часто BPMN используют, как средство описания бизнес-процессов. В этом применении строгость нотации для программирования теряет свой смысл, а авторы схем могут вытворять всякую ерунду (ведь компилятор не будет проверять верность составления схемы).
BPM-движок — это приложение, которое превратит картинку BPMN в код.
Основные прелести BPMN и BPM-движков
BPMN простая и удобная нотация. В базовом виде её понимает 100% человек. Это упрощает коммуникации при разработке софта, процедур для сотрудников или бизнес-процессов на предприятии.
Нотация обладает выразительной палитрой (больше 400 знаков и правил их использования), которая позволяет нарисовать вообще любые процессы.
Есть ваш софт имеет подходящие сценарии использования, то BPM-движки сильно экономят время и нервы при разработке:
- обучить правильно рисовать схемы быстрее, чем научить человека программировать;
- менять схемы быстрее, чем переписывать код;
- некоторые значки, типа компенсации, с наскока даже непонятно как реализовать в терминах классов, методов, вызовов и таблиц в базе данных;
- BPMN, как часть BPM-движка, позволяет очень мощно обрабатывать таймеры, исключения, падения.
- Как правильно движки поддерживают версионирование, т.е. если транзакция зашла в одну версию, то в ней и завершится.
Когда надо использовать BPMN и BPM-движки
1. Длительные бизнес-транзакции
Для получения какого-то бизнес-результата отработали несколько человек и информационных систем, запрос полежал в ожидании, какая-то система не ответила, ответ пришлось обработать вручную и т.д.
Хорошие примеры:
- подготовка коммерческого предложения;
- оплата счёта;
- согласование доступа в информационные системы.
Плохие примеры:
- калькуляция стоимости билета;
- генерация документа по шаблону;
- конвертация данных из одного формата в другой.
2. Разработка в ультрараспределённой среде
У вас 45 разных информационных систем и их нужно собрать во что-то одно, создающее конечную ценность для бизнеса.
Еще BPMN поможет визуально понимать, как в точности работает тот или иной бизнес-процесс, отображая все очереди, хуки, хранилища и прочее. Это позволит быстрее понимать где вносить изменения, когда они появятся.
3. Микросервисная архитектура
BPM-движок выступит «надмозгом» над единичными операциями, сохранит контекст процесса, пока какой-то из сервисов лежит, и поможет реализовать многосервисные тразакции вида «Всё или ничего» (saga interaction pattern).
Примерно так этот паттерн выглядит в движке Camunda
В итоге
Занимаетесь чем-то похожим, а может и свой workflow-движок пишите? Заканчивайте и берите готовый — сэкономите тысячи часов разработки.
Комментарии