- PVSM.RU - https://www.pvsm.ru -
Итак, в первой части [1] было рассмотрено, какие бывают бизнес-процессы по степени их устойчивости к изменениям, технические концепции для реализации конкретного типа БП, а также пример логики добавления/удаления таска из адаптивной модели БП.
В этой части статьи собираюсь подробней описать, чем же adaptive BPM (aBPM) отличаются от normative BPM (nBPM) и от Adaptive Case Management (ACM), затем представить архитектуру получившейся aBPM системы.
На рисунке 1 хорошо виден переход от явно структурированных БП (nBPM) к неявно структурированным БП, проще говоря к ACM.
Нельзя сказать, что nBPM — это прошлый век, а за ACM — будущее автоматизации процесс менеджмента.
Для одних БП в одном контексте более применим один подход, а для других БП в другом контексте применим другой подход моделирования.
Примером может служить самый изъезженный БП "заявка на отпуск". Есть возможность реализовать этот процесс с помощью ACM, или же с помощью обычного TreeSet.
Это можно сравнить с забиванием гвоздя в доску. Годится взять молоток и забить гвоздь, а возможно взять и установку для забивания строительных свай, потом произвести расчёты по силе, амплитуде, углу удара и этой установкой забить гвоздь. Результат тот же — гвоздь забит, но насколько было сложное решение (включая проектировку и изготовление такой установки для свай) для решения простой задачи. А для забивания свай молоток совсем не подходит.
Важно понимать, какой инструмент и в каком контексте применять к задачам.
nBPM — хорошо подходит к чётко структурированным и коротким по длительности исполнения БП в пределах одного предприятия, например тот же БП "заявка на отпуск".
ACM — хорошо решают задачи с неявно структурированными БП, например в медицине и в страховании, когда каждая инстанция процесса может быть индивидуально смоделирована согласно возникшей ситуации.
aBPM — на мой взгляд, нечто среднее, компромисс между чёткой структурой nBPM и сложным ACM. Хорошо применим в случаях непредвиденных изменений модели БП длинных по времени исполнения экземпляров процессов.
Типичный пример из финансовой отрасли "погашение кредита" (длительность исполнения БП до 30 лет) — в момент старта модель БП находится в актуальном состоянии и все запускаемые экземпляры процесса одинаковые. Однако в течении 30 лет возникают новые требования к модели процесса (например, изменения в законодательстве), и необходимые изменения применяются уже к запущенным экземплярам процесса "на лету", то есть без прерывания выполнения данного экземпляра. Все новые экземпляры процесса уже содержат в себе эти изменения, происходит так называемая эволюция БП.
По воле случая я наиболее часто имел дело с aBPM, о которой и пойдёт дальнейшее повествование.
Архитектура aBPM представляет собой "надстройку" над любым обычным BPM Engine.
Архитектура не зависит от производителя, что дает ещё одну возможность управления миграциями БП с одного BPM Engine на другой (например, как произошло с JBoss BPM, когда Red Hat отказался от поддержки и дальнейшей разработки этого BPM "движка").
BPM-Adapter — инкапсулирует функционал общения с каждым типом BPM Engine; в данном примере будет взят только один тип BPM Engine — это open souce Camunda BPM [2] (fork от Activiti BPM [3]), но в принципе возможны любые комбинации.
PCS — является ядром системы, которое и управляет всеми процессами в BPM Engine. Например, при вызове функции запуска экземпляра процесса, PCS берёт на себя управление версиями моделей БП и решает, какую версию на каком BPM Engine запускать.
В следующей части расскажу о моделировании aBPM прцессов.
Забегая наперёд, хочется отметить основную идею моделирования aBPM:
Модель aBPM состоит из двух подтипов процессов:
— предметные бизнес-процессы
— технические бизнес-процессы
Предметные бизнес-процессы собираются из технических БП, из которых в свою очередь строится модель бизнес логики данного БП. В предметных БП разрешено только частичное использование элементов стандарта BPMN 2.0.
Технические бизнес-процессы вмещают полный функционал стандарта BPMN 2.0.
Спасибо за внимание, добавляйте в закладки и до следующей части статьи!
Автор: asushko
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/222085
Ссылки в тексте:
[1] первой части: https://habrahabr.ru/post/316926/
[2] Camunda BPM : https://camunda.com/
[3] Activiti BPM: http://activiti.org/
[4] Источник: https://habrahabr.ru/post/317820/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.