Исходный код вики Машина состояний

Версия 3.1 от Alexandr Fokin на 2021/09/13 19:03

Скрыть последних авторов
Alexandr Fokin 2.1 1
2 Система обработки бизнес процессов на основе машины состоний.
3
4
5 Основные понятия:
6
7 **Ключ процесса**
8 Уникальной идентефикатор экземпляра процесса.
9 Обычно служит для чтения/записи persist данных контекста.
10
11
12 **Инициатор**
Alexandr Fokin 3.1 13 Событие, служащее источником запуска одной сессии обработки.
Alexandr Fokin 2.1 14 Обычно ему соответсвует набор параметров, которые необходимо для запуска сессии обработки (как минимум это ключ процесса для работы с контекстом).
15 Примеры инициаторов: нажатие кнопки на UI, обращенеи к web api, получение сообщения из брокера.
16
17
18 **Сессия обработки**
19 Понятие, обозначающее один запуск машины состояния с контретным набором параметров.
20 При этом в рамках одной сессии могут быть пройдены не все шаги обработки,
21 в следствии длительности и многоэтапности процесса, или же в следсвии возникновения ошибки на одном из шагов.
22
23
24 **Контекст**
25 Класс содержащий данные о текущем экземпляре процесса, в том числе содержит информацию о статусе обработки (инфомация о шаге).
26 Можно выделить 2 компонента: persist и runtime.
27
28 Persist - группа данных, хранящихся в постоянном хранилище, с использованием ключа процесса.
Alexandr Fokin 3.1 29 Эти данные сохраняются между сессиями обработки. Также их можно просматривать и изменять(не во время сессии обработки) напрямую в хранилище.
Alexandr Fokin 2.1 30 Обычно при старте сессии обработки они загружаеются из хранилища, а при ее окончании сохраняются.
31
Alexandr Fokin 3.1 32 Runtime - данные, которые вычисляюся либо при старте сессии обработки, либо в рамках шагов обработки.
Alexandr Fokin 2.1 33 Эти данные не сохраняются между сессиями обработки.
Alexandr Fokin 3.1 34 Для каждого шага должно гарантироваться, что необходимые для его работы Runtime данные были предварительно загружены или вычислены.
Alexandr Fokin 2.1 35
36
37 **Шаг (состояние)**
38 На вход принимает контекст.
39 В зависимости от состояния контекста может произвести некоторое действие, может менять контекст.
Alexandr Fokin 3.1 40 Принимает решение о том, в какое следующее состояние необходимо перейти (какой шаг будет следующим).
Alexandr Fokin 2.1 41
42
43
44
45