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




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