Многоверсионный конечный автоматJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Многоверсионный конечный автомат

Сообщение Anonymous »

Предположим, что у меня есть текущий конечный автомат для запросов на покупку со следующим потоком (упрощен для целей обсуждения).
  • Поток запроса версии 1.0 (Текущий)

    Событие SUBMIT инициирует рабочий процесс для данного запроса на покупку, и состояние будет «ОТПРАВЛЕНО».
  • APPROVE приводит к тому, что запрос «УТВЕРЖДЕНО» менеджером. Все утвержденные запросы будут позже обработаны отделом закупок (вне сферы действия State Machine)
[*]Поток запросов версия 1.1 (действительно для запросов, отправленных с определенной даты)
  • Событие SUBMIT инициирует рабочий процесс для данного запроса, и состояние будет «ОТПРАВЛЕНО». (то же, что и выше)
  • Событие MANAGER_APPROVE приводит к тому, что менеджер присваивает запросу статус «MANAGER_APPROVED».
  • Если стоимость запроса на покупку составляет до 1000 долларов США /- тогда он может быть обработан напрямую отделом закупок.
  • VP_APPROVE требуется для запросов, превышающих 1000 долларов США/-. После одобрения вице-президентом состояние будет «VP_APPROVED». Только после этого отдел закупок сможет приступить к дальнейшей обработке (вне пределов государственного аппарата)

Внесение изменений не является проблемой. Но задача состоит в том, чтобы гарантировать, что транзакции, отправленные после пороговой даты, должны соответствовать версии потока 1.1. Запросы, отправленные до пороговой даты, по-прежнему действительны и должны соответствовать версии потока 1.0. Оба могут быть активны до тех пор, пока не будут закрыты все старые транзакции. Возможно ли это? Как связать версионные конечные автоматы с транзакциями? Существуют ли какие-либо примеры реализации такого характера?

Подробнее здесь: https://stackoverflow.com/questions/793 ... te-machine
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»