BPM мульти-аренда
Существует требование к механизму BPM, который поддерживает многопользовательский режим. Мы хотим создать глобальный процесс, который нельзя изменить, но подпроцессы в глобальных процессах могут быть настроены для разных арендаторов по-разному.
Не могли бы вы указать, какой из коммерческих / открытых инструментов BPM поддерживает этот тип поведения.
3 ответа
Взгляните на Камунду (https://camunda.com/). Он изначально поддерживает мультитенантность.
Механизм рабочего процесса с открытым исходным кодом Imixs-Workflow поддерживает этот вид моделирования рабочего процесса. Imixs-Workflow основан на BPMN 2.0 и поддерживает работу с разными бизнес-моделями в одном экземпляре процесса.
Бизнес-логика не ограничивается одной моделью рабочего процесса. Можно запускать новые экземпляры процесса в другой модели рабочего процесса. Это называется подпроцессом, который запускается основным процессом, но выполняется в независимом экземпляре процесса со своей собственной моделью рабочего процесса:
В этом примере процесс "Продажи" обеспечивает управление данными о клиентах. Если были представлены данные о новом клиенте, модель проверяет, доступно ли предложение. Если да, запускается новый подпроцесс "Заказ". Этот процесс выполняется в полностью независимой модели рабочего процесса. Но машина рабочего процесса знает об отношениях "родитель-потомок", которые позволяют подпроцессу взаимодействовать с родительским процессом. Например, событие отправки процесса "Заказ" может отправлять бизнес-данные обратно в процесс "Продажи".
Создание подпроцесса привязано к событию "отправить заказ" с определением результата:
<item name="subprocess_create">
<modelversion>1.0.0</modelversion>
<task>100</task>
<event>10</event>
<items>namTeam</items>
</item>
С помощью этого определения также можно обмениваться данными между обоими экземплярами процесса.
В этом примере два определения модели объединены в один файл BPMN. Но вы также можете разделить модели рабочего процесса в разных файлах BPMN, которые идентифицируются там "версия модели".
В сочетании с концепцией безопасности вы также можете детально ограничить доступ к экземпляру процесса вашего подпроцесса.
Посмотрите на рабочий процесс Uber Cadence. Он имеет поддержку мультитенантности из коробки. Внутри Uber на одном экземпляре движка работает более 100 различных проектов.
И это с открытым исходным кодом под лицензией MIT.
Этот ответ дает больше контекста.