Простое управление рабочим процессом с Java EE - PullRequest
1 голос
/ 17 ноября 2008

У меня есть приложение, которое позволяет различным пользователям обновлять некоторые данные, которые затем публикуются на веб-сайте. Приложение использует JPA как постоянный слой. Теперь я хочу добавить немного управления рабочим процессом в этот сценарий, чтобы, когда пользователи с младшими ролями обновляли данные, они не публиковались напрямую, а ожидали, что старший пользователь придет и одобрит обновление. Пока обновление не утверждено, исходные данные должны оставаться видимыми.

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

Вопрос в том, что является хорошим примером для создания такого сценария?

Часть, с которой у меня возникают проблемы, - это как представить измененные данные, не дублируя каждую имеющуюся у меня сущность. А как насчет множественных изменений в данных до утверждения?

Я рассмотрел шаблон command , поскольку он допускает тип отмены. Мне интересно, имел ли кто-нибудь опыт с подобным сценарием и есть ли какие-либо советы, чтобы предложить?

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

Спасибо

1 Ответ

1 голос
/ 28 июня 2009

Да, я абсолютно уверен, что в этом сценарии вы запускаете разные бизнес процессы. Использование таких инструментов, как JBPM или drools-flow (на которые вы должны взглянуть) не только точно выражает вашу проблему, но и позволяет вам визуально подходить к потоку вашего приложения через дизайнеров, которых они предоставляют. Вы можете использовать то, что заставляет ваше приложение работать напрямую, как документацию.

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