2011-02-04 1 views
2

В настоящее время у нас есть приложение, основанное на встроенном механизме рабочего процесса с DSL на основе YAML. Мы стремимся переместить часть его на Java.Рабочий процесс BPMN, Drools и т. Д. Или ESB?

Я обнаружил ряд Java-решений, таких как Intalio, JBPM, Drools Expert, Drools Flow и т. Д. Они, похоже, нацелены на предприятия, где бизнес-аналитик создает рабочие процессы с помощью графического редактора и отправляет их в механизм рабочего процесса , Они, похоже, ориентированы на простоту использования для нетехнических людей, а не для разработчиков, сосредоточенных на человеческом взаимодействии.

Рабочие процессы имеют тенденцию выглядеть.

Discover-a-file  -\ 
         -> join -> process-file -> move-file -> register-file 
Discover-some-metadata -/ 

Если какой-либо шаг не удался, нам нужно повторить его X раз. Мы также должны иметь возможность остановить систему и перезапустить ее и продолжить ее с того места, где она была (долговечна).

Некоторые из наших рабочих процессов могут быть определены набором целей, которые нам нужно достичь, так что цепочка Jess's backward кажется интересной, но она не является открытым исходным кодом.

Возможно, что мы являемся машиной конечного состояния или просто служебной шиной предприятия и делаем все как очереди JMS.

Есть ли хороший механизм рабочего процесса с открытым исходным кодом, основанный на стандартах, но также ориентированный на разработчиков. Мы не особенно хотим использовать графический дизайнер рабочего процесса или писать столбцы XML, и в идеале он должен быть в Java или языке агностик (делает REST/Soap-вызовы внешним сервисам).

Спасибо, Том

+0

http://java-source.net/open-source/workflow-engines - Я не буду публиковать это как ответ, так как у меня нет опыта с ними. – TrueWill

ответ

2

Оба Activiti и Bonita являются открытыми и стандарт на основе (BPMN2). См. Например, blog post.

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

+0

Спасибо за ссылки, я проверю Бониту и Маршрут. Я уже загрузил и попробовал Activiti, и хотя он говорит, что он предназначен для разработчиков, я не мог найти никакой документации о том, как создать служебную задачу или как подключить рабочий процесс к веб-сервису. Казалось, он очень ориентирован на рабочий процесс человеческих задач. – Tom

+0

+1 для записи в блоге – orangepips

1

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

2

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

0

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

В то время как он действительно поставляется с comfortable graphical workflow designer, он также поставляется с fluent API to build workflows programmatically. Camunda написан на Java, но также может быть вызван с других языков через его REST API, и он может make REST/Soap calls to external services.

0

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

Zengine, GPL3 BPMN основанный на рабочих условиях рамочный механизм с Tornado, Rabbit AMQP, расширенные разрешения, расширяемые строительные леса и многое другое.

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^