Механизм рабочего процесса BPMN, Drools и т. Д. Или ESB?

В настоящее время у нас есть приложение, основанное на разработанном нами механизме рабочего процесса с 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 для внешних служб).

Спасибо Том


person Tom    schedule 04.02.2011    source источник
comment
java-source.net/open-source/workflow-engines - я выиграл не публиковать это как ответ, так как у меня нет опыта работы с ними.   -  person TrueWill    schedule 05.02.2011


Ответы (5)


И Activiti, и Bonita имеют открытый исходный код и основаны на стандартах (BPMN2). См., Например, эту запись в блоге.

Ruote не основан на стандартах, но кажется близким к вашему подходу DSL и работает на JVM благодаря JRuby.

person jmettraux    schedule 05.02.2011
comment
Спасибо за ссылки, проверю Бониту и Рут. Я уже скачал и попробовал Activiti, и хотя там написано, что он предназначен для разработчиков, я не смог найти никакой документации о том, как создать служебную задачу или как подключить рабочий процесс к веб-службе. Казалось, что это очень похоже на рабочий процесс, выполняемый человеком. - person Tom; 06.02.2011

Intaloi, движок BPM с открытым исходным кодом, он предлагает конструктор поддержки BPMN и механизм BPEL. он написан на Java.

person Mukhtar    schedule 05.02.2012

jBPM 5 (с открытым исходным кодом, ASL, BPMN2) только что выпущен, и это лучшее из Drools Flow и jBPM 4 Он легкий, но он также может глубоко интегрироваться с механизмом правил Drools для принятия решений.

person Geoffrey De Smet    schedule 07.02.2011

Camunda BPM - это удобный для разработчиков механизм рабочего процесса с открытым исходным кодом, основанный на открытых стандартах BPMN. 2.0, DMN 1.1 и CMMN 1.1.

Хотя он поставляется с удобным графическим конструктором рабочих процессов, он также поставляется с свободный API для программного создания рабочих процессов. Camunda написана на Java, но ее также можно вызывать из других языков через его REST API, и он может выполнять вызовы REST / Soap к внешним службам.

person Falko Menge    schedule 23.08.2017

Для всех, кто ищет решение корпоративного уровня на базе Python.

Zengine - это среда на основе рабочего процесса GPL3 BPMN с Tornado, Rabbit AMQP, расширенными разрешениями, расширяемыми функциями каркаса и т. д. .

Построен на основе следующих основных компонентов;

  • SpiffWorkflow: мощный движок рабочего процесса с поддержкой BPMN 2.0.
  • Tornado: Tornado - это веб-фреймворк Python и асинхронная сетевая библиотека.
  • Пёко: Джанго в стиле ORM для магазина Riak KV. RabbitMQ: быстрый, сверхчеткий сервер AMQP, написанный на легендарном языке Erlang.
person Kunthar    schedule 13.02.2018