Usecase для Workflow Engine - PullRequest
       2

Usecase для Workflow Engine

2 голосов
/ 10 июня 2010

У нас есть проблема, при которой таблица базы данных должна обновляться в статусе для конкретного объекта.В настоящее время это весь Java-код с множеством условий и обновлением статуса.Я думал о том, как использовать движок Workflow, поскольку в будущем может быть несколько потоков.Является ли излишним использование Workflow Engine здесь ... где вы проводите линию?

Ответы [ 4 ]

3 голосов
/ 10 июня 2010

Это зависит от сложности вашего варианта использования.

В простом случае использования у нас есть столбец базы данных, обновленный несколькими потребителями для каждого этапа жизненного цикла Заказа.Это делается с помощью веб-службы, обращающейся в базу данных.Простой жизненный цикл идет от ПРИЗНАНО> ПРИНЯТО / ОТКЛОНЕН> ВЫПОЛНЕНО> ЗАКРЫТО.Все они находятся в одной таблице в одном столбце.Это выполняется в классах Java без рабочего процесса.

Механизм рабочего процесса подходит для более сложного варианта использования, который включает действия с несколькими поставщиками данных, например: база данных или Content Mgmt или Document Mgmt или поисковая система, несколько параллельных процессов, разветвление, основанное на успехе / неудаче предыдущего шага, отправка электронного письма на определенном этапе, оповещение об ошибке в автономном режиме.

Вы можете посмотреть на Apache ODE , чтобы реализовать это.

2 голосов
/ 10 июня 2010

У нас есть проблема, при которой таблица базы данных должна обновляться в статусе для конкретного объекта. В настоящее время это весь Java-код с множеством условий if и обновлением статуса.

Звучит как нечто пунктуальное, нет необходимости организовывать действия среди участников рабочего процесса.

Может быть, двигатель правил лучше подходит для этого. Слюни может быть хорошим кандидатом. Когда X, то Y.

1 голос
/ 10 июня 2010

Если вы используете Spring, это хорошая статья о том, как реализовать ваше требование

http://www.javaworld.com/javaworld/jw-04-2005/jw-0411-spring.html

0 голосов
/ 10 июня 2010

Я думаю, вы должны рассмотреть движок рабочего процесса.Рабочий процесс должен быть отделен от логики приложения.

Причины:

  1. Ведение: легче модифицировать, добавлять новые потоки и еще проще заменить другим механизмом рабочего процесса.
  2. Управление бизнес-процессами: рабочие процессы в основном программныепредставления BPM.Так что обычно он разрабатывается дизайнерами (не техническими людьми).Так что не стоит писать код внутри приложения.Вместо этого следует использовать такие BPM-продукты, как ALBPM или JPBM, которые поддерживают графические схемы рабочих процессов.
  3. Мониторинг бизнес-потоков. За ними часто следят руководители высшего уровня, и они используются для принятия стратегических решений.для интеллектуального анализа данных / отчетов / статистики.

ALBPM (сейчас Oracle BPM): коммерческий инструмент от Oracle, подходящий для крупномасштабных проектов.

Моя рекомендация JBPM .Инструмент с открытым исходным кодом от JBOSS.В отличие от ALBPM, который требует отдельной БД и сервера приложений, он может быть упакован вместе с вашим приложением и запущен как другой модуль в вашем приложении.Я думаю, что подходит для вашего проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...