Рабочий процесс двигателя BPMN, Drools и т. Д. Или ESB? - PullRequest
2 голосов
/ 05 февраля 2011

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

Спасибо, Том

Ответы [ 5 ]

2 голосов
/ 05 февраля 2012

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

2 голосов
/ 05 февраля 2011

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

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

1 голос
/ 23 августа 2017

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

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

1 голос
/ 07 февраля 2011

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

0 голосов
/ 13 февраля 2018

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

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

Создан на основе следующих основных компонентов:

  • SpiffWorkflow: Мощный механизм рабочего процесса с поддержкой BPMN 2.0.
  • Tornado: Tornado - это веб-инфраструктура Python и асинхронная сетевая библиотека.
  • Pyoko: Django esque ORM для магазина Riak KV.RabbitMQ: быстрый, сверхострый сервер AMQP, написанный на легендарном языке Эрланга.
...