Машина состояний

Версия 3.7 от Alexandr Fokin на 2024/06/12 15:26

 

 Конечный набор состояний переходов между ними.
Отличие от понятия ПроцессыСама по себе модель машины состояний не затрагивает следующие темы.
  • Постоянное (persistance) сохранение контекста и статуса экземпляра.
  • Движок обработки процессов (хранение, выполнение, распределение нагрузки).
  
 Система обработки бизнес процессов на основе машины состояний.
Основные понятия:
Ключ процесса
Уникальной идентификатор экземпляра процесса.
Обычно служит для чтения/записи persist данных контекста.
Инициатор
Событие, служащее источником запуска одной сессии обработки.
Обычно ему соответсвует набор параметров, которые необходимо для запуска сессии обработки (как минимум это ключ процесса для работы с контекстом).
Примеры инициаторов: нажатие кнопки на UI, обращение к web api, получение сообщения из брокера.
Сессия обработки
Понятие, обозначающее один запуск машины состояния с контретным набором параметров.
При этом в рамках одной сессии могут быть пройдены не все шаги обработки,
в следствии длительности и многоэтапности процесса, или же в следсвии возникновения ошибки на одном из шагов.

Контекст
Класс содержащий данные о текущем экземпляре процесса, в том числе содержит информацию о статусе обработки (инфомация о шаге).
Можно выделить 2 компонента: persist и runtime.

Persist - группа данных, хранящихся в постоянном хранилище, с использованием ключа процесса.
Эти данные сохраняются между сессиями обработки. Также их можно просматривать и изменять(не во время сессии обработки) напрямую в хранилище.
Обычно при старте сессии обработки они загружаеются из хранилища, а при ее окончании сохраняются.

Runtime - данные, которые вычисляюся либо при старте сессии обработки, либо в рамках шагов обработки.
Эти данные не сохраняются между сессиями обработки.
Для каждого шага должно гарантироваться, что необходимые для его работы Runtime данные были предварительно загружены или вычислены.

Шаг (состояние)
На вход принимает контекст.
В зависимости от состояния контекста может произвести некоторое действие, может менять контекст.
Принимает решение о том, в какое следующее состояние необходимо перейти (какой шаг будет следующим).
 
 TODO: подумать над пересмотром структуры материалов темы в связи с вынесением темы процесса в отдельный раздел (Процессы).

Внутренние ссылки:

Дочерние страницы:
Обратные ссылки:

 

Теги:
Создал(а) Alexandr Fokin 2021/09/13 18:23