Изменения документа Машина состояний
Редактировал(а) Alexandr Fokin 2024/06/12 15:52
<
отредактировано Alexandr Fokin
на 2024/06/12 15:52
на 2024/06/12 15:52
отредактировано Alexandr Fokin
на 2022/06/18 13:40
на 2022/06/18 13:40
Изменить комментарий:
Update document after refactoring.
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
-
Объекты (0 изменено, 1 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,34 +2,45 @@ 1 - 2 2 3 -|(% style="width:183px" %) |(% style="width:1302px" %)Конечный набор состояний переходов между ними. 4 -|(% style="width:183px" %)Отличие от понятия [[Процесс>>doc:Архитектура и модели.Модели.Процесс.WebHome]]|(% style="width:1302px" %)Сама по себе модель машины состояний не затрагивает следующие темы.((( 5 -* Постоянное (persistance) сохранение контекста и статуса экземпляра. 6 -* Движок обработки процессов (хранение, выполнение, распределение нагрузки, обработка ошибок). 7 -))) 8 -|(% style="width:183px" %) |(% style="width:1302px" %) 2 +Система обработки бизнес процессов на основе машины состоний. 9 9 10 ----- 11 11 12 - ==== Внутренниессылки:====5 +Основные понятия: 13 13 14 -====== Дочерние страницы: ====== 7 +**Ключ процесса** 8 +Уникальной идентефикатор экземпляра процесса. 9 +Обычно служит для чтения/записи persist данных контекста. 15 15 16 -{{children/}} 17 17 18 -====== Обратные ссылки: ====== 12 +**Инициатор** 13 +Событие, служащее источником запуска одной сессии обработки. 14 +Обычно ему соответсвует набор параметров, которые необходимо для запуска сессии обработки (как минимум это ключ процесса для работы с контекстом). 15 +Примеры инициаторов: нажатие кнопки на UI, обращенеи к web api, получение сообщения из брокера. 19 19 20 -{{velocity}} 21 -#set ($links = $doc.getBacklinks()) 22 -#if ($links.size() > 0) 23 - #foreach ($docname in $links) 24 - #set ($rdoc = $xwiki.getDocument($docname).getTranslatedDocument()) 25 - * [[$escapetool.xml($rdoc.fullName)]] 26 - #end 27 -#else 28 - No back links for this page! 29 -#end 30 -{{/velocity}} 31 31 32 ----- 18 +**Сессия обработки** 19 +Понятие, обозначающее один запуск машины состояния с контретным набором параметров. 20 +При этом в рамках одной сессии могут быть пройдены не все шаги обработки, 21 +в следствии длительности и многоэтапности процесса, или же в следсвии возникновения ошибки на одном из шагов. 33 33 34 - 23 + 24 +**Контекст** 25 +Класс содержащий данные о текущем экземпляре процесса, в том числе содержит информацию о статусе обработки (инфомация о шаге). 26 +Можно выделить 2 компонента: persist и runtime. 27 + 28 +Persist - группа данных, хранящихся в постоянном хранилище, с использованием ключа процесса. 29 +Эти данные сохраняются между сессиями обработки. Также их можно просматривать и изменять(не во время сессии обработки) напрямую в хранилище. 30 +Обычно при старте сессии обработки они загружаеются из хранилища, а при ее окончании сохраняются. 31 + 32 +Runtime - данные, которые вычисляюся либо при старте сессии обработки, либо в рамках шагов обработки. 33 +Эти данные не сохраняются между сессиями обработки. 34 +Для каждого шага должно гарантироваться, что необходимые для его работы Runtime данные были предварительно загружены или вычислены. 35 + 36 + 37 +**Шаг (состояние)** 38 +На вход принимает контекст. 39 +В зависимости от состояния контекста может произвести некоторое действие, может менять контекст. 40 +Принимает решение о том, в какое следующее состояние необходимо перейти (какой шаг будет следующим). 41 + 42 + 43 + 44 + 45 +
- XWiki.XWikiComments[0]
-
- Автор
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.cccc1808 - Комментарий
-
... ... @@ -1,0 +1,1 @@ 1 +Идея: хранить в контексте не идентефикатор текущего шага, а а список идентефикаторов не пройденных шагов. - Дата
-
... ... @@ -1,0 +1,1 @@ 1 +2021-09-13 18:24:10.777