16.1. Архитектура, ориентированная на типовые конфигурации
16.1. Архитектура, ориентированная на типовые конфигурации
16.1.1. Основные понятия
Под системами, ориентированными на типовые конфигурации (образцы), мы будем понимать программные системы специальной архитектуры. Для некоторых конкретных типов задач такая архитектура дает преимущества по сравнению с традиционным способом организации. Среди задач, которые естественным образом вписываются в этот вид архитектуры, находятся многие приложения искусственного интеллекта, в том числе экспертные системы. Основное различие между традиционными системами и системами, ориентированными на образцы, заключается в механизме запуска программных модулей. Традиционная архитектура предполагает, что модули системы обращаются друг к другу в соответствии с фиксированной, заранее заданной и явным образом сформулированной схемой. Каждый программный модуль сам принимает решение о том, какой из других модулей следует запустить в данный момент, причем в нем содержится явное обращение к этим модулям. Соответствующая временная структура передач управления от одних модулей к другим оказывается последовательной и детерминированной.
В противоположность этому организация, ориентированная на образцы, не предполагает прямого обращения из одних модулей к другим. Модули запускаются конфигурациями, возникающими в их "информационной среде". Такие программные модули называют модулями, управляемыми типовыми конфигурациями (или образцами). Программа, управляемая образцами, представляет из себя набор модулей. Каждый модуль определяется
(1) образцом, соответствующим предварительному условию запуска, и
(2) тем действием, которое следует выполнить, если информационная среда согласуется с заданным образцом.
Запуск модулей на выполнение происходит при появлении тех или иных конфигураций в информационной среде системы. Такую информационную среду обычно называют базой данных. Наглядное представление о системе рассматриваемого типа дает рис. 16.1.
Рис. 16.1. Система, управляемая типовыми конфигурациями (образцами)
Следует сделать несколько важных замечаний относительно рис. 16.1. Совокупность модулей не имеет иерархической структуры. Отсутствуют явные указания на то, какие модули могут обращаться к каким-либо другим модулям. Модули связаны скорее с базой данных, чем непосредственно друг с другом. В принципе такая структура допускает параллельное выполнение сразу нескольких модулей, поскольку текущее состояние базы данных может прийти в соответствие сразу с несколькими предварительными условиями, а следовательно, в принципе могут запуститься несколько модулей одновременно. В связи с этим, подобную организацию можно рассматривать как естественную модель параллельных вычислений, имея в виду, что каждый модуль физически реализован на отдельном процессоре.
Архитектура, ориентированная на образцы, обладает рядом достоинств. Одно из ее главных преимуществ состоит в том, что, разрабатывая подобную систему, мы не должны тщательно продумывать и заранее определять все связи между модулями. Следовательно, каждый модуль может быть разработан и реализован относительно автономно. Это придает системе высокую степень модульности, проявляющуюся, например, в том, что удаление из системы какого-либо модуля не обязательно приводит к фатальным последствиям. После удаления модуля система во многих случаях сохранит свою способность к решению задач, измениться может только способ их решения. Аналогичное соображение верно и в случае добавления новых модулей или изменения уже существующих. Заметим, что при введении подобных модификаций в традиционные системы потребовалось бы, как минимум, пересмотреть связи между модулями.
Высокая степень модульности особенно желательна в системах со сложными базами знаний, поскольку очень трудно предсказать заранее все возможные взаимодействия между отдельными фрагментами знаний. Архитектура, ориентированная на образцы, обеспечивает простое решение этой проблемы: каждый фрагмент знаний, представленный в виде "если-то"-правила, можно считать отдельным модулем, запускаемым своим собственным образцом.
Перейдем теперь к более детальной проработке нашей базовой схемы для систем, ориентированных на образцы, и рассмотрим вопросы реализации. Как следует из рис. 16.1, параллельная реализация была бы для нашей системы наиболее естественным решением. Тем не менее предположим, что нам предстоит реализовать ее на традиционном последовательном процессоре. Тогда если в базе знаний окажется сразу несколько "пусковых" конфигураций, относящихся к нескольким модулям, то возникнет конфликтная ситуация: нам придется принять решение о том, какой из этих потенциально активных модулей будет запущен в действительности. Совокупность всех потенциально активных модулей назовем конфликтным множеством. Очевидно, что реализация схемы рис. 16.1 на последовательном процессоре потребует введения в систему дополнительного, управляющего модуля. Задача управляющего модуля — выбрать и активизировать один из модулей конфликтного множества и тем самым разрешить конфликт. Одно из возможных простых правил разрешения конфликта может основываться, например, на предварительном упорядочивании множества модулей системы.
Основной цикл работы системы, ориентированной на образцы, состоит, таким образом, из трех шагов:
(1) Сопоставление с образцами: найти в базе данных все конфигурации, сопоставимые с пусковыми образцами программных модулей. Результат — конфликтное множество.
(2) Разрешение конфликта: выбрать один из модулей, входящих в конфликтное множество.
(3) Выполнение: запустить модуль, выбранный на предыдущем шаге.
Этот принцип реализации показан в виде схемы на рис. 16.2.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Процессоро-ориентированная архитектура
Процессоро-ориентированная архитектура Подавляющее большинство используемых ныне компьютерных архитектур основаны на традиционном подходе, открывающем программисту аппаратный интерфейс. Такие архитектуры называются процессоро-ориентированными (processor-centric) потому,
12.3. Проверка конфигурации
12.3. Проверка конфигурации Мы рассмотрели достаточно много правил конфигурирования системы, и помнить все невозможно. Настройка системы достаточно сложный процесс, во время которого очень легко ошибиться. Но т.к. есть определенные правила конфигурирования, т.е. и
5.8.3. Файл конфигурации
5.8.3. Файл конфигурации По умолчанию используется файл конфигурации /etc/syslog.conf. Кроме этого вы можете указать другой файл конфигурации с помощью опции –f. Давайте рассмотрим установки демона на примере обычного файла конфигурации (см. листинг 5.4).Листинг
Типовые проекции
Типовые проекции Использование типовых проекций значительно упрощает просмотр трехмерных объектов. Направление проецирования можно выбрать с помощью команд группы меню Views (Виды) на вкладке View (Отображение) ленты. Программа предлагает выбрать шесть типовых проекций и
4.5.3. Функции, которые создают новые конфигурации из существующих 4.5.3.1. Функции геометрии, которые производят новые конфигурации
4.5.3. Функции, которые создают новые конфигурации из существующих 4.5.3.1. Функции геометрии, которые производят новые конфигурации Раздел "4.5.2. Функции Geometry" обсуждает несколько функций, которые создают новые конфигурации из
2.1.2 Типовые конфигурации
2.1.2 Типовые конфигурации В основе систем, разработанных на основе СУБД Informix, лежит принцип архитектуры "клиент-сервер". Клиент - это пользовательская прикладная программа, обеспечивающая взаимодействие (интерфейс) базы данных с пользователем. Всю работу, связанную с
Пример A-22. Объектно ориентированная база данных
Пример A-22. Объектно ориентированная база данных #!/bin/bash# obj-oriented.sh: Объектно ориентрованный подход к программированию в сценариях.# Автор: Stephane Chazelas.person.new() # Очень похоже на объявление класса в C++.{ local obj_name=$1 name=$2 firstname=$3 birthdate=$4 eval "$obj_name.set_name() { eval "$obj_name.get_name() {
Типовые проекции
Типовые проекции Использование типовых проекций значительно упрощает просмотр трехмерных объектов. Направление проецирования можно выбрать с помощью команд в меню View ? 3D Views (Вид ? Трехмерные виды). Программа предлагает выбрать шесть типовых проекций и четыре
Компания, ориентированная на клиента
Компания, ориентированная на клиента Сеть Интернет стала одним из факторов, вызвавших смещение акцента с производства на клиента — потребитель стал во главу угла. Потенциал выживания и успеха ориентированных на потребителя компаний легко проследить на примере бума
Типовые переменные
Типовые переменные Ряд авторов, среди которых Ким Брюс (Kim Bruce), Дэвид Шенг (David Shang) и Тони Саймонс (Tony Simons), предложили решение на основе типовых переменных (type variables), значениями которых являются типы. Их идея проста:[x]. взамен ковариантных переопределений разрешить
Использовать типовые архитектурные схемы
Использовать типовые архитектурные схемы Добейтесь, чтобы существовала безопасная архитектура для подключения внешних клиентов к вашей сети (экстранет). Архитектура должна охватывать все проблемы. В ней необходимо определить тип устанавливаемого брандмауэра,
1.9. ТИПОВЫЕ ОШИБКИ ОБУЧАЕМЫХ ПРИ СОСТАВЛЕНИИ ТЕХНИЧЕСКОГО ЗАДАНИЯ
1.9. ТИПОВЫЕ ОШИБКИ ОБУЧАЕМЫХ ПРИ СОСТАВЛЕНИИ ТЕХНИЧЕСКОГО ЗАДАНИЯ В приложении 2 приведен пример выполнения учебного технического задания. В примере опущены: лист утверждения, титульный лист и приложения.Главным, что отличает одно ТЗ от другого, является- смысл
Типовые сценарии использования PKI
Типовые сценарии использования PKI В лекциях 3, 4 и 5 обсуждалась архитектура, которую можно назвать полнофункциональной PKI (см. табл. 17.2). Были определены компоненты, функции и сервисы инфраструктуры, которая в некотором смысле является совершенной, потому что теоретически