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