Место BPMN и BPM-движков в ИТ-проектах

Если вы делали много ИТ-проектов, а про BPMN слышали лишь краем уха, то эта статья для вас. В этой статье рассказываю, как BPMN и BPM-движки могут облегчить вашу жизнь.

О BPMN и BPM-движках

BPMN — это нотация, набор значков и правил их применения. В отличии от UML, FlowChart, IDEF и прочих наборов значков, символы BPMN всегда однозначны и не допускают трактовки «или». Каждый значок означает одно и тоже на любой схеме, рисовал ли её студент 1 курса или ИТ-архитектор из банка.

Строгая семантика BPMN позволяет однозначно превращать значки в программный код. Получается визуальное программирование.

Часто BPMN используют, как средство описания бизнес-процессов. В этом применении строгость нотации для программирования теряет свой смысл, а авторы схем могут вытворять всякую ерунду (ведь компилятор не будет проверять верность составления схемы).

Из BPMN получаются вот такие схемы

BPM-движок — это приложение, которое превратит картинку BPMN в код.

Основные прелести BPMN и BPM-движков

BPMN простая и удобная нотация. В базовом виде её понимает 100% человек. Это упрощает коммуникации при разработке софта, процедур для сотрудников или бизнес-процессов на предприятии.

Это самые простые значки BPMN

Нотация обладает выразительной палитрой (больше 400 знаков и правил их использования), которая позволяет нарисовать вообще любые процессы.

А это все возможные события, которые предусмотрены BPMN.

Есть ваш софт имеет подходящие сценарии использования, то BPM-движки сильно экономят время и нервы при разработке:

  • обучить правильно рисовать схемы быстрее, чем научить человека программировать;
  • менять схемы быстрее, чем переписывать код;
  • некоторые значки, типа компенсации, с наскока даже непонятно как реализовать в терминах классов, методов, вызовов и таблиц в базе данных;
  • BPMN, как часть BPM-движка, позволяет очень мощно обрабатывать таймеры, исключения, падения.

У меня голова начинает болеть, когда думаю, как долго и дорого похожую логику можно писать на Java. А потом её менять.

  • Как правильно движки поддерживают версионирование, т.е. если транзакция зашла в одну версию, то в ней и завершится.

Когда надо использовать BPMN и BPM-движки

1. Длительные бизнес-транзакции

Для получения какого-то бизнес-результата отработали несколько человек и информационных систем, запрос полежал в ожидании, какая-то система не ответила, ответ пришлось обработать вручную и т.д.
Хорошие примеры:

  • подготовка коммерческого предложения;
  • оплата счёта;
  • согласование доступа в информационные системы.

Плохие примеры:

  • калькуляция стоимости билета;
  • генерация документа по шаблону;
  • конвертация данных из одного формата в другой.

2. Разработка в ультрараспределённой среде

У вас 45 разных информационных систем и их нужно собрать во что-то одно, создающее конечную ценность для бизнеса.

Еще BPMN поможет визуально понимать, как в точности работает тот или иной бизнес-процесс, отображая все очереди, хуки, хранилища и прочее. Это позволит быстрее понимать где вносить изменения, когда они появятся.

3. Микросервисная архитектура

BPM-движок выступит «надмозгом» над единичными операциями, сохранит контекст процесса, пока какой-то из сервисов лежит, и поможет реализовать многосервисные тразакции вида «Всё или ничего» (saga interaction pattern).

Примерно так этот паттерн выглядит в движке Camunda

В итоге

Занимаетесь чем-то похожим, а может и свой workflow-движок пишите? Заканчивайте и берите готовый — сэкономите тысячи часов разработки.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Комментарии

Вам так же понравится

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: