Прежде всего вы должны искать двигатель, поддерживающий BPMN. BPMN - это стандарт управления рабочими процессами и процессами, который поддерживается многими проектами.
Во-вторых, вы должны подумать о требованиях к двигателю.
Когда вы ищете BPMN Engine, есть два разных подхода:
Ориентированный на задачу
Эти двигатели (например, JBoss BPM - jbpm ) предназначены для обработки входных данных по четко определенной модели процесса. Каждая задача в модели дает контроль над фрагментом кода - стандартной или индивидуальной реализацией. Процесс заканчивается, когда токен процесса достигает конца модели процесса (End-Event). Этот вид обработки занимает миллисекунды. Движок можно использовать для пакетных заданий или обработки данных со сложным потоком, ориентированным на процесс.
Event-Driven
Человеко-ориентированные механизмы рабочего процесса управляются событиями (например, Imixs-Workflow ). Это своего рода конечный автомат, но обычно он предлагает гораздо больше функциональных возможностей. Вы можете запустить новый экземпляр процесса, назначив своему бизнес-объекту начальную задачу (определенную событием запуска). Чем механизм рабочего процесса позволяет вам запускать события, назначенные каждой задаче, определенной в вашей модели. Каждое событие (Intermediate CatchEvent) запускает механизм рабочего процесса для передачи запущенного экземпляра процесса в следующую задачу (состояние). Пока не сработает новое событие, процессный экземпляр «ждет» в текущей задаче (состоянии). Процесс утверждения является типичным примером для такого рода ориентированного на человека рабочего процесса.
Список двигателей можно найти здесь .