На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

1
Ожидается:
24 Декабря 2024

Интеграция прикладных систем на основе баз знаний

Статья опубликована в выпуске журнала № 3 за 2005 год.
Аннотация:
Abstract:
Автор: Евгенев Г.Б. () -
Ключевое слово:
Ключевое слово:
Количество просмотров: 12435
Версия для печати
Выпуск в формате PDF (0.95Мб)

Размер шрифта:       Шрифт:

Любой программный комплекс можно представить как триаду PC = , где PC – программный комплекс; F – функциональные компоненты, осуществляющие обработку данных; D – базы данных; C – управляющий программный комплекс. Графически такая декомпозиция представлена на рисунке 1.

Для проведения функционального анализа прикладных областей и разработки функциональных моделей имеется международный стандарт IDEF0. На рисунке 1 функциональная схема интегрированного комплекса представлена в нотации этого стандарта. В этом комплексе функциональными компонентами F являются исполняемые модули прикладных систем в совокупности со служебными модулями, необходимыми для обеспечения совместной работы объединяемых систем.

Подпись: Рис. 1. Компоненты программных комплексовДля построения концептуальных моделей данных в системе международных стандартов имеется стандарт IDEF1X. Нотация этого стандарта (рис. 1) использована для представления схемы данных интегрированного комплекса. Все интегрируемые системы должны выбирать необходимые для своей работы исходные данные из баз данных D и помещать в них результаты.

Одним из наилучших формализмов моделирования управляющих комплексов являются сети Петри. С их помощью могут быть промоделированы многие системы, в особенности системы с независимыми компонентами, как, например, программное обеспечение. В этой связи в качестве средства для моделирования управляющего программного комплекса C целесообразно использовать сети Петри (см. рис.1).

Для создания управляющих программных комплексов интегрированных прикладных систем непрограммирующими пользователями должны быть использованы средства экспертного программирования [1]. С использованием этих средств необходимо разработать методику описания управляющих комплексов в форме сетей Петри.

Простое представление системы сетью Петри основано на двух основополагающих понятиях: событиях и условиях [2]. События – это действия, имеющие место в системе. Возникновением событий управляет состояние системы, которое может быть описано множеством условий. Условия – это предикат, или логическое описание состояния системы. Условие может принимать либо значение «истина», либо значение «ложь».

Так как события являются действиями, то они могут происходить при выполнении соответствующих условий. Эти условия называют пред- условиями события. Возникающие действия могут изменить состояние системы и привести к выполнению других условий – постусловий.

Подпись: Рис. 3. ОдновременностьВ таблице описаны события и их пред- и постусловия, соответствующие сети Петри, представленной на рисунке 2.

Таблица

События

Предусловия

Постусловия

1

2

3

нет

а

б

а

б

нет

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

В теории сетей Петри вводятся понятия примитивных и непримитивных событий [2]. Примитивные события изображаются планками, а непримитивные – прямоугольниками. Определение этих двух классов событий имеет двоякое содержание: временное и структурное. Согласно первому подходу примитивным является мгновенное событие, а непримитивным – событие, длительность которого отлична от нуля.

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

Выполнение сети Петри, моделирующее поведение системы, рассматривается как последовательность дискретных событий. Порядок появления событий является одним из возможных, допускаемых основной структурой сети. Это может привести к недетерминированности в выполнении сети Петри. Если в какой-то момент времени разрешено более одного перехода, любой из нескольких возможных может стать «следующим» запускаемым. Это необходимо учитывать при разработке модели.

Подпись: Рис. 2. Простая сеть ПетриИмеется два варианта отображения недетерминированности запусков переходов в моделировании параллельной системы. Один из них представлен на рисунке 3. В этой ситуации два разрешенных перехода не влияют друг на друга, и любой из них может быть запущен первым. Это называется одновременностью [2].

Подпись: Рис.4. КонфликтДругая ситуация изображена на рисунке 4. Здесь два разрешенных перехода находятся в конфликте [2]. В итоге может быть запущен только один из них, так как при запуске будет удалена разрешающая фишка из общего входа. Конфликты в правильно построенной сети интегрированной системы недопустимы.

Вырожденным случаем параллельной системы обработки данных является система с одним процессом. Отдельный процесс описывается программой. Программа представляет два различных аспекта процесса: вычисление и управление. Вычисление связано с арифметическими и логическими операциями, вводом и выводом данных и т.п. Управление же связано не с вычислениями, а только с порядком их выполнения.

Сети Петри удачно представляют струк- туру управления программ. Они предназначе- ны для моделирования упорядочения событий и потока информации, а не для выполнения вы- числений.

Стандартный способ представления структуры управления программ – это блок-схемы, которые представляют поток управления в программе. Блок-схемы предназначаются не для указания конкретных вычислений, а для определения структуры программ.

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

При переводе блок-схемы в сеть Петри узлы блок-схемы заменяют переходами, а дуги блок-схемы – позициями. Каждая дуга блок-схемы соответствует точно одной позиции сети Петри. Узлы блок-схемы представляются по-разному, в зависимости от типа узла: вычисления или принятия решения (рис. 5).

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

Подпись: а)	б)Рис. 8. Блок-схема (а) и эквивалентная ей сеть Петри (б)На рисунке 6 представлен модуль знаний, соответствующий вычислительному переходу сети Петри (рис. 5а). Предусловием запуска вычислительного блока является наличие фишки во входной позиции, что представлено как равенство ai=1. Вычислительный блок запускается системной командой (>r.exe) с указанием имени исполняемого файла и пути к нему (при необходимости). После окончания его работы производится изменение состояния позиций: из входной позиции фишка удаляется (ai=0), а в выходную помещается (ak=1).

На рисунке 7 приведены модули знаний, соответствующие блоку принятия решения (рис. 5б).

Подпись: Модуль: M2Разработчик: Евгенев Г.Б.Наименование: Принятие решения при положительной величине cНаименование	Имя	ОграничениеПозиция aiВеличина c	aic	1[0,)Позиция aiПозиция aj	aiaj	01Модуль: M3Разработчик: Евгенев Г. Б.Наименование: Принятие решения при отрицательной величине cНаименование	Имя	ОграничениеПозиция aiВеличина c	aic	1(,0)Позиция aiПозиция aj	aiak	01Рис. 7. Модули знаний, соответствующие узлу приня-тия решенияПодпись: Модуль: M1Разработчик: Евгенев Г.Б.Наименование: Выполнение вычисления rНаименование	Имя	ОграничениеПозиция ai	ai	1Вычисление rПозиция aiПозиция aj	raiaj	> r.exe01Рис. 6. Модуль знаний, соответствующий вычислительному переходу сети ПетриПодпись: а)б)Рис. 5. Преобразование узлов блок-схемы в компонен-ты сети Петри: а) преобразование вычислительного узла, б) преобразование узла принятия решенияВ соответствии с числом переходов сети Петри на рисунке 5б используются два модуля знаний: один для значения «истина» (T), а другой для значения «ложь» (F). Для определенности в этих модулях знаний истинным является положительное значение величины c.

При использовании экспертного программирования особый случай представляют сети Петри с обратными связями. Такие сети необходимо разбивать на подсети, в каждой из которых имеется не более одной обратной связи.

На рисунке 8 представлена блок-схема и эквивалентная ей сеть Петри, построенная с помощью описанных выше правил. В них имеется обратная связь от узла e к узлу принятия решения b. Из сети Петри пунктирной рамкой выделена подсеть, охваченная обратной связью. В результате сеть преобразована в линейную с одним непримитивным переходом, изображенным на рисунке 9а в виде прямоугольника. Этот прямоугольник представляет подсеть, представленную на рисунке 9б с обратной связью.

Приведенные ниже модули знаний содержат описание линейной сети и ее подсети (рис. 9).

Посредством модуля знаний M0 производится установка исходного состояния позиций. Фишка помещается в начальную позицию, а остальные пусты. Такая маркировка позволяет запустить процесс.

Модуль M1 производит выполнение перехода a, удаляет фишку из позиции p1 и помещает ее в позицию p2.

Модуль: M0

Разработчик: Евгенев Г.Б.

Наименование: Установка начальных значений позиций

Наименование

Имя

Ограничение

     

Позиция p1

Позиция p2

Позиция p3

Позиция p4

p1

p2

p3

p4

1

0

0

0

Модуль: M1

Разработчик: Евгенев Г.Б.

Наименование: Выполнение вычисления a

Наименование

Имя

Ограничение

Позиция p1

p1

1

Вычисление a

Позиция p1

Позиция p2

a

p1

p2

> a.exe

0

1

Такая маркировка сети позволяет запустить непримитивный переход bl1. В отличие от переходов a и f, представляющих собой исполняемые модули интегрируемых систем, непримитивный переход, представляющий подсеть, генерируется с помощью средств экспертного программирования в виде метода. Этот метод компонуется из приведенных ниже модулей знаний с идентификаторами Bl.

Модуль M3 завершает описание линейной сети Петри, изображенной на рисунке 9а.

Подпись: а)	б)Рис. 9. Линейная сеть Петри (а) и ее подсеть с обратной связью (б)Модуль: M2

Разработчик: Евгенев Г.Б.

Наименование: Выполнение вычисления bl1

Наименование

Имя

Ограничение

Позиция p2

p2

1

Вычисление bl1

Позиция p2

Позиция p3

bl1

p2

p3

Метод bl1

0

1

Модуль: M3

Разработчик: Евгенев Г.Б.

Наименование: Выполнение вычисления f

Наименование

Имя

Ограничение

Позиция p3

p3

1

Вычисление f

Позиция p3

Позиция p4

f

p3

p4

> f.exe

0

1

Описание подсети (рис. 9б) также начинается с модуля Bl0, обеспечивающего исходную маркировку.

Модуль: Bl0

Разработчик: Евгенев Г.Б.

Наименование: Установка начальных значений позиций

Наименование

Имя

Ограничение

     

Позиция p5

Позиция p6

Позиция p7

Позиция p8

Позиция p9

p5

p6

p7

p8

p9

1

0

0

0

0

Далее следуют два модуля Bl1 и Bl2, описывающих узел принятия решения b. Для определенности в этом и остальных случаях в качестве истинного значения предиката приняты положительные величины соответствующих переменных.

Модуль: Bl1

Разработчик: Евгенев Г.Б.

Наименование: Принятие решения при положительной величине b

Наименование

Имя

Ограничение

Позиция p5

Величина b

p5

b

1

[0,)

Позиция p5

Позиция p6

p5

p6

0

1

Модуль: Bl2

Разработчик: Евгенев Г.Б.

Наименование: Принятие решения при отрицательной величине b

Наименование

Имя

Ограничение

Позиция p5

Величина b

p5

b

1

(,0)

Позиция p5

Позиция p9

p5

p9

0

1

Модули Bl3 и Bl4, аналогичным образом описывают узел принятия решения c.

Модуль: Bl3

Разработчик: Евгенев Г.Б.

Наименование: Принятие решения при положительной величине c

Наименование

Имя

Ограничение

Позиция p6

Величина c

p6

c

1

[0,)

Позиция p6

Позиция p7

p6

p7

0

1

Модуль: Bl4

Разработчик: Евгенев Г.Б.

Наименование: Принятие решения при отрицательной величине c

Наименование

Имя

Ограничение

Позиция p6

Величина c

p6

c

1

(,0)

Позиция p6

Позиция p8

p6

p8

0

1

Выполнение вычислений в переходах d и e задается модулями Bl5 и Bl6.

Модуль: Bl5

Разработчик: Евгенев Г.Б.

Наименование: Выполнение вычисления d

Наименование

Имя

Ограничение

Позиция p7

p7

1

Вычисление d

Позиция p7

Позиция p8

d

p7

p8

> d.exe

0

1

Модуль: Bl6

Разработчик: Евгенев Г.Б.

Наименование: Выполнение вычисления e

Наименование

Имя

Ограничение

Позиция p8

p8

1

Вычисление e

Позиция p8

Позиция p5

e

p8

p5

> e.exe

0

1

Последний модуль Bl7 предназначен для организации циклической работы подсети, обусловленной обратной связью. Цикл организуется при появлении выделенной переменной FinCalc, которая прекращает выполнение программы, когда принимает значение 1. В данном случае цикл прекращается, когда фишка попадает в позицию p9.

Модуль: Bl7

Разработчик: Евгенев Г.Б.

Наименование: Окончание цикла

Наименование

Имя

Ограничение

Позиция p9

p9

1

Признак конца цикла

FinCalc

1

Таким образом, разработана методика, позволяющая непрограммирующим пользователям создавать интегрированные прикладные системы, включающие в себя сложные подсистемы.

Список литературы

1.   Евгенев Г.Б. Системология инженерных знаний: Учеб. пособие для вузов – М.: Изд-во МГТУ им. Н.Э. Баумана, 2001. - 520с.

2.   Питерсон Дж. Теория сетей Петри и моделирование систем. / Пер. с англ. – М.: Мир, 1984. - 264с.

 


Постоянный адрес статьи:
http://swsys.ru/index.php?id=523&page=article
Версия для печати
Выпуск в формате PDF (0.95Мб)
Статья опубликована в выпуске журнала № 3 за 2005 год.

Возможно, Вас заинтересуют следующие статьи схожих тематик: