Рисунок 1. Пример иерархического конечного автомата.
Итак, заданные автоматы M=(I, O, S,
Заданы подмножество
В рамках определения иерархического конечного автомата, который реализует комплексную систему документооборота, рассмотрим реализуемость и допустимость возможных моделей документооборота. Рассмотрим возможные поведения ДКА, которые будут допустимы на автомате M1. Кроме того, рассмотрим реализации сочетаний поведенческих единиц КА, которые будут реализуемы с помощью ИКА.
При заданном автомате
При заданных автоматах
3.4.1. Свойства ИКА
Рассмотрим применение НДКА для реализации ИКА. Пусть при данном
1)
2)
3)
В каждом из вычислений
Пусть K будет позитивным целым, таким, что
Пусть
Значит, мы можем определить ИКА документооборота пятеркой
3.4.2. Архитектура ИКА
В работе [10] показано, что рекурсивные алгоритмы могут быть построены из иерархических модулей, которые вызывают сами себя и рекурсивно передают входные и выходные данные. На рисунке 2 показана рекурсивная функция gcd. Локальные состояния x1 и x2 определяют соответствующую ветвь алгоритма. Микрооперации y1 и y2 осуществляют обработку данных и рекурсивную передачу данных между модулями алгоритма. Рекурсия организуется путем многократного вызова одного модуля, в нашем случае модуля Z.
Рис. 2. Рекурсивная функция gcd
Архитектура иерархического конечного автомата, который может рекурсивно обрабатывать конечные автоматы, приведена на рис. 3.
Рис. 3. Архитектура ИКА.
Иерархический КА, который приведен на рис. 3, имеет два технологических стека. Один стек автомата, который обозначен FSM_stack, предназначен для обработки состояний. Второй стек, обозначенный M_stack, предназначен для обработки модулей, представляющих собой автоматы моделирования поведенческих единиц.
Взаимодействие стеков обеспечивается синхронизационным модулем. Синхронизационный модуль отвечает за вызов новых модулей, передачу входных состояний активизированному модулю и получение выходных состояний из модуля, который заканчивает работу.
Состояние внутри ИКА соответствует состояниям a0…a4 на рис. 1. Поскольку каждый конкретный модуль имеет уникальный идентификатор, то обозначения одних и тех же состояний могут использоваться в различных модулях. На рис. 2 показано, как ИКА исполняет алгоритм, приведенный на рис. 1.
Все неиерархические вызовы производятся путем смены кода модуля в верхнем состоянии регистра FSM_Stack. На рис. 2 такой пример обозначен знаком «*». Все иерархические вызовы изменяют состояния обоих стеков. При этом M_Stack сохраняет код нового модуля, а FSM_Stack устанавливается в начальное состояние инициализируемого модуля. Такой пример на рисунке 2 обозначен символом «#».
Иерархический вызов активирует операцию «pop» без изменения стеков, на рисунке это обозначено «&». В результате завершения работы модуля ИКА перейдет в состояние, последующее за состоянием, на котором был произведен вызов модуля. Указатель стеков stack_ptr является общим для обоих стеков. Работа ИКА прекращается при достижении позиции «End» и состоянии указателя stack_ptr =0.
Таким образом, работают описанные выше автоматы, составляющие автоматную часть формальной модели композитного документооборота.
5. Выводы
Представление модели документооборота в виде ИКА позволяет применить к задачам документооборота апробированный аппарат. В результате сложные процессы документооборота могут быть формально представлены в виде единого автомата, которые в свою очередь оперирует автоматами, а каждый из них моделирует единицу поведения системы. Каждый из автоматов моделирует поведение участника, обрабатывающего изменения состояний документов.