В настоящее время у нас есть приложение, основанное на разработанном нами механизме рабочего процесса с DSL на основе YAML. Мы планируем перенести его части на Java.
Я обнаружил ряд java-решений, таких как Intalio, JBPM, Drools Expert, Drools Flow и т. Д. Они, похоже, нацелены на предприятия, где бизнес-аналитик создает рабочие процессы с помощью графического редактора и отправляет их механизму рабочих процессов. Похоже, они ориентированы на простоту использования для нетехнических людей, а не для разработчиков, ориентированных на взаимодействие с людьми.
Рабочие процессы имеют тенденцию выглядеть.
Discover-a-file -\
-> join -> process-file -> move-file -> register-file
Discover-some-metadata -/
Если какой-либо шаг не удался, нам нужно повторить его X раз. Нам также необходимо иметь возможность останавливать систему, перезапускать ее и продолжать с того места, где она была (долговечна).
Некоторые из наших рабочих процессов могут быть определены набором целей, которые нам нужно достичь, поэтому обратная цепочка правил Джесса звучит интересно, но это не открытый исходный код.
Возможно, нам нужен механизм конечного автомата или просто служебная шина предприятия, и мы делаем все как очереди JMS.
Есть ли хороший движок рабочего процесса с открытым исходным кодом, основанный на стандартах, но также ориентированный на разработчиков? Мы не хотим использовать графический конструктор рабочих процессов или писать много XML, и в идеале он должен быть на Java или не зависящий от языка (делает вызовы REST / Soap для внешних служб).
Спасибо Том