Домашняя страница
Обучение
Для абитуриентов
 
 
Для студентов
 
 
IT-English
Центры обучения
О нас
Статьи
Windows Workflow Foundation – State Machine (Mealy)

Цель статьи – при помощи WWF, представить концепцию Конечного Автомата, который является простейшей фундаментальной моделью большого числа разнообразных приложений. Эти приложения – от языковых процессоров до систем управления реального времени и протоколов связи – покрывают значительную долю систем, разработкой, реализацией и анализом которых занимается информатика и кибернетика.

Бизнес процесс – это в большинстве случаев автоматная модель системы (программный комплекс) – произвольное задание, выполняемое последовательно или параллельно двумя или более участниками рабочей группы с целью достижения общей цели. Workflow - это полная или частичная автоматизация бизнес процесса, при которой документы, информация или задания передаются от одного участника Бизнес Процесса к другому для выполнения действий согласно набору руководящих правил. Это координация людей, информации, объектов и событий для произведения последовательности операций и достижения статуса, который приводит к достижению установленных целей. В данной статье не будет рассматриваться построение Бизнес Процесса. Более интересна фундаментальная часть - лежащая в основе моделирования систем, в том числе и Бизнес Процессов, - Теория Автоматов или (Theory of Finite-State Machine).

Для программной реализации КА использованы программные средства и технологии - MSVS 2008 v9, WWF. Язык C#.

Итак, рассмотрим простейший тип конечноавтоматного преобразователя информации: Автомат Мили. Определим конечный автомат формально. Есть и другие определения, но мы остановимся на этом.


ОПРЕДЕЛЕНИЕ. Конечным автоматом Мили называется шестерка объектов:
    A = <S,X,Y,s0,δ,λ>, где:
    S - конечное непустое множество (состояний);
    X - конечное непустое множество входных сигналов (входной алфавит)
    Y - конечное непустое множество выходных сигналов (выходной алфавит)
    s0∈S - начальное состояние
    δ∶S×X→S - функция переходов
    λ∶S×X→Y - функция выходов

Задавать автомат удобно графом, в котором вершины соответствуют состояниям, а ребро из состояния s в состояние q, помеченное x/y, проводится тогда, когда автомат из состояния s под воздействием входного сигнала x переходит в состояние q с выходной реакцией y.


ПРИМЕР:

Зададим КА, который имеет:
четыре состояния, S = {s0, s1, s2, s3}
два входных сигнала X = {x0, x1}, где: x0 = 0, x1 = 1.
шесть выходных сигналов Y = {y0, y1, y2, y3, y4, y5} где: y0 = 1, y1 = 2, y2 = 3, y3 = 4, y4 = 5, y5 = 6.
Теперь представим автомат в виде графа:

Кроме графического представления для автомата можно использовать и табличное, задавая функции переходов и выходов в виде таблиц.
Данный автомат может быть представлен следующими таблицами.

Таблица 1. Определяет функцию переходов δ так: δ(s0, 0) = s1; δ(s2, 1) = s0; ...


Таблица 2. Определяет функцию выходов λ так: λ(s0, 0) = y2; λ(s2, 1) = y3; ...



РЕАЛИЗАЦИЯ КА Мили
Программную реализацию можно выполнить на любом языке разными способами. В данном случае будет использоваться C# и WWF – как инструменты упрощающие реализацию программных КА.

На рисунке 1 представлена блок-схема программы, реализующей поведение автомата.



Нетрудно увидеть, что топология блок-схемы программы повторяет топологию графа переходов конечного автомата.

С каждым состоянием связана операция, выполняющая функцию ожидания очередного события прихода нового входного сигнала и чтение его в стандартный буфер – int x; , а также последующий анализ того, какой это сигнал.



В зависимости от того, какой сигнал пришел на вход, выполняется та или иная функция y0 – y5 и происходит переход к новому состоянию. Построив программу подобную этой и добавив активные устройства, реализующие отдельные входные и выходные операции, можно управление каким либо процессом поручить компьютеру. Построение такой программы при помощи WWF занимает считанные минуты, что не может не делать данную технологию привлекательной.

Автор: Александр Шевчук