Научная статья на тему 'Разработка инструментальной системы для создания мультиагентных приложений в сети Интернет'

Разработка инструментальной системы для создания мультиагентных приложений в сети Интернет Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
208
72
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Батищев С. В., Лахин О. И., Минаков И. А., Ржевский Г. А., Скобелев П. О.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Батищев С. В., Лахин О. И., Минаков И. А., Ржевский Г. А., Скобелев П. О.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DESIGN AND IMPLEMENTATION OF THE SOFTWARE PACKAGE FOR DEVELOPMENT OF MULTIAGENT INTERNET APPLICATIONS1MEC "Knowledge Genesis", Samara and Samara Branch Physics Institute named for P.N. Lebedev of Russian Academy of Sciences

This article dwells upon design and implementation of the software package for multiagent applications development. The main features of the system are described in comparison with similar systems. The structure, architecture and implementation are analyzed. Possible applications and prospects of development are proposed.

Текст научной работы на тему «Разработка инструментальной системы для создания мультиагентных приложений в сети Интернет»

УДК 621.372, 681.142

РАЗРАБОТКА ИНСТРУМЕНТАЛЬНОЙ СИСТЕМЫ ДЛЯ СОЗДАНИЯ МУЛЬТИАГЕНТНЫХ ПРИЛОЖЕНИЙ В СЕТИ ИНТЕРНЕТ

© 2001 С.В. Батищев1, О.И. Лахин1, И.А. Минаков2 Г.А. Ржевский2, П.О. Скобелев1

1 НПК "Генезис Знаний", г. Самара и Самарский филиал Физического института им. П.Н. Лебедева РАН 2 Маджента Корпорейшн, г. Лондон, Англия

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

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

- Организация развитых online сервисов для пользователей (например, электронные магазины, форумы, системы дистанционного обучения, библиотеки, биржа труда, служба новостей).

- Прозрачная интеграция сервисов. Например, "получить все статьи в библиотеке по тематике форума", "заказать описанный в статье оптический элемент", "найти эксперта по установке заказанного оборудования").

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

- Обеспечение различных механизмов доступа и организации информации (стандартный браузер, e-mail, мобильные устройства).

- Максимально короткий цикл разработки.

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

Для описания систем такого класса весь-

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

- Способность динамически планировать поведение на основе формализованного описания предметной области и стратегий поведения. Такое представление принято называть онтологией. В рамках теории искусственного интеллекта выработан целый ряд подходов, в той или иной степени удобных для описания онтологии (фреймы, правила вывода, семантические сети, сценарии).

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

- Способность взаимодействовать с "внешним миром". В случае агентов портала эта способность может выражаться в доступе к внешней базе данных, обработке запроса удаленного пользователя, формировании и отправке HTML (Hyper Text Markup Language) страницы (сообщения по e-mail, SMS сообщения или WAP-страницы для мобильных устройств) и т.д.

В рамках наших исследований разработано и реализовано мультиагентное ядро и набор визуальных инструментов для быстрой и эффективной разработки сложных инфор-

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

Обзор архитектуры мультиагент-ного ядра

С точки зрения архитектуры, можно выделить 2 основных типа мультиагентных систем, поддерживающих работу в Internet:

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

- Системы с серверными агентами. В этом случае агенты исполняются на сервере, осуществляя взаимодействие с удаленными пользователями по стандартным протоколам Internet. При этом значительно легче решаются проблемы переносимости (клиенту достаточно иметь стандартный browser) и безопасности (исполнение осуществляется только на сервере и легко контролируется). Помимо этого, такие системы легче интегрировать с существующими решениями, такими как, системы управления базами данных (СУБД), серверы приложений, web серверы. Кроме того серверные системы могут использовать как стандартные языки (Java, C++) для описания поведения агентов, так и предлагать собственные решения (языки сценариев, правила вывода и т.п.).

Из описанных соображений в нашей системе предпочтение отдано второму подходу (более подробно проблемы выбора архитектуры изложены в [1]). При этом, ядро технически реализовано как Windows NT Service (Windows 2000 Service), имеет стандартный интерфейс для связи с web сервером Microsoft Internet Information Server (IIS), связи с СУБД по протоколу ODBC (Open Database Connectivity) и систему интерфейсов COM

(Component Object Model) для связи с другими приложениями.

Средства описания онтологий

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

В мультиагентном ядре онтология агентов описывается как семантическая сеть. На базовом уровне определено несколько фундаментальных концептов, связанные с описанием семантических сетей: "объект", "сценарий", "предусловие", "отношение", "событие", "действие" и некоторые другие. Расширения ядра (внешние модули) имеют возможность посредством стандарта COM и любого языка программирования (поддерживающего эту технологию) дополнить (специализировать) функции этих концептов. Можно выделить два основных направления расширения функций ядра:

- Создание универсальных объектов для описания мультиагентных систем. Самым важным примером такого модуля является подсистема обмена сообщениями, которая вводит объекты "сообщение", "почтовый ящик", "протокол переговоров", позволяя тем самым различным агентам взаимодействовать друг с другом посредством переговоров. Кроме того, фундаментальные концепты ядра спроектированы таким образом, что дополнительные модули ядра могут относительно легко расширить их функциональность. Например, одно из стандартных расширений мультиагентного ядра вводит набор понятий для описания агентов на высоком уровне, например, "класс", "экземпляр класса", "атрибут", "наследование классов", "действие над экземпляром класса" и т.д. Таким образом можно вводить различные базовые системы понятий, сравнивая их эффективность, полноту, избыточность, удобство конструирования предметной области и т.д.

- Создание инструментальных объектов, специфичных для определенного типа

приложений или операционной системы. Типичными примерами являются объекты для доступа к СУБД (запрос, таблица), для формирования страниц ИТМЬ (шаблон, ИЯЬ) и т.д.

Основные функции и компоненты мультиагентного ядра

Принятые архитектурные решения и средства описания онтологий, определяют следующий набор базовых, неотъемлемых сервисов мультиагентного ядра:

• подсистема загрузки и компиляции описания онтологий;

• подсистема диспетчера параллельного исполнения сценариев;

• подсистема взаимодействия с внешними модулями;

• вспомогательные сервисы (средства конфигурации, средства протоколирования).

Подсистема загрузки и компиляции описаний онтологий содержит два подмодуля:

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

- Компиляция сценариев. Этот модуль выполняет перевод языка сценариев в форму байт-кода, оптимальную для быстрой работы на этапе исполнения. Сам процедурный язык сценариев основан на синтаксисе С++.

Главная задача системы параллельного исполнения сценариев - выполнять диспетчеризацию активных сценариев, т.е. хранение и переключение контекстов сценариев для псевдопараллельного исполнения. Кроме этого система отслеживает условия запуска, приостановки ("заморозки"), продолжения и завершения исполнения сценариев. Авторы внешних модулей ядра могут легко управлять процессами псевдопараллельного исполнения (например, приостановить вызывающий сценарий на время исполнения запроса к СУБД).

Подсистема взаимодействия с внешними модулями осуществляет двунаправленное взаимодействие ядра с внешними модулями (вызов функций/методов, реакция на события, предоставление стандартных функций для внешних модулей). Разработана также специальная библиотека для компиляторов C++, которая определяет набор базовых классов, шаблонов и макроопределений для эффективного описания внешних компонентов.

Как уже было отмечено ранее, реализован также ряд стандартных внешних модулей ядра:

• подсистема переговоров;

• подсистема доступа к СУБД;

• подсистема формирования HTML страниц (для сервера web и включения в e-mail);

• подсистема расширенного описания онтологий.

Средства визуальной разработки и отладки

Итак, онтологии для мультиагентного ядра описываются на специализированном языке. Для упрощения построения онтологий нами разработана система поддержки визуальной разработки ("визуальный конструктор"). Отметим основные функции этой системы:

• визуальное построение семантической сети (как направленного графа), добавление, редактирование и удаление вершин и отношений, привязка сценариев;

• прозрачная интеграция построенных семантических сетей в виде файлов проекта ("проектный подход");

• проверка построенных онтологий на синтаксическую корректность (в будущем планируется ввести возможность предварительного семантического анализа, например, на непротиворечивость);

• поддержка отладки сценариев (установка точек прерывания, пошаговой отладки);

• поддержка библиотеки стандартных объектов на основе списка активных модулей расширения ядра;

• поддержка библиотеки стандартных агентов.

На рисунке представлен пользовательский интерфейс конструктора.

Рис. Пользовательский интерфейс конструктора

Для поддержки отладки создана локальная версия ядра, которая способна запускаться отдельно от ’№еЬ-сервера (или взаимодействовать с ним, если он доступен).

Интересно отметить, что сам визуальный инструмент построен на специализированной версии мультиагентного ядра, т.е. отдельные компоненты инструмента (вершины графа, объекты библиотеки) являются агентами. Это позволяет, например, легко описать особенности визуального редактирования для сложных объектов (таких как "шаблон НТМЬ страницы", который обычно требует интерактивного импорта структуры шаблона из внешнего файла-описания). А также делает инструмент более гибким, гарантируя возможность поддержки будущих библиотек и подсистем.

Приложения на базе мультиагентного ядра и стандартные библиотеки агентов

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

ной системы в Internet. Примером такой библиотеки является набор агентов для осуществления диалога с пользователями Internet портала.

В рамках этой системы каждому ресурсу информационного пространства портала ставится в соответствие агент, например, "агент статьи", "агент формы-анкеты", "агент новости", "агент форума". Такие агенты ресурсов могут вступать в переговоры с агентами пользователя и агентами дизайна.

Задача агентов пользователей - выявлять предпочтения конкретного пользователя и представлять их в переговорах с агентами ресурсов. В результате таких переговоров происходит:

• корректировка формы представления информации ("Если вы заинтересовались этой темой, то мы можем выводить такие новости в первую очередь / присылать извещения по e-mail");

• предложение дополнительной информации по теме ("Сейчас в форуме идет обсуждение изложенных в статье идей");

• формирование вопросов к пользователю для непрерывного уточнения знаний о нем ("Вы попросили присылать новости, но не сообщили e-mail при регистрации").

Ожидается, что информационные сис-

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

Совместно с системой управления диалогом разработаны и реализованы ряд других мультиагентных библиотек:

• система для дистанционного обучения;

• система для поддержки приложений электронной коммерции.

В качестве примера практического использования таких систем можно привести портал "OPTIC CITY" для интеграции знаний по оптике и лазерной физике (см., например, [2]). Также большой эффект может дать применение этих библиотек в системах для электронной коммерции для корпоративных сайтов.

Заключение

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

стем ("мультиагентное ядро"). На основе муль-тиагентного ядра разработан ряд практически важных приложений и стандартных библиотек агентов.

1 Все права на мультиагентное ядро и систему визуального проектирования принадлежат компании MagentA, pic. Разработка ряда приложений (портал OPTIC CITY) осуществляется совместно СФ ФИАН и НПК "Генезис Знаний".

СПИСОК ЛИТЕРАТУРЫ

1. Батищев C.B., Скобелев П.О. Проблемы реализации мультиагентных систем дистанционного обучения в сети Интернет II Материалы Международной научно-практической конференции "Развитие новых технологий в системе образования РФ". Самара. 2GGG.

2. Batishchev S.V., BoernerP., Cristoff J., Doue J., Grosse V., SkobelevP.O. The development of multiagent internet portal for E-commerce "Optic city" II Труды 2-ой международной конференции "Проблемы управления и моделирования в сложных системах". Самара. 2GGG.

DESIGN AND IMPLEMENTATION OF THE SOFTWARE PACKAGE FOR DEVELOPMENT OF MULTIAGENT INTERNET APPLICATIONS

© 2001 S.V. Batishchev O.I. Lakhin1, I.A. Minakov2 G.A. Rzevski2, P.O. Skobelev1

1 MEC "Knowledge Genesis", Samara and Samara Branch Physics Institute named for P.N. Lebedev of Russian Academy of Sciences,

2 MagentA Corporation, plc, England, London

This article dwells upon design and implementation of the software package for multiagent applications development. The main features of the system are described in comparison with similar systems. The structure, architecture and implementation are analyzed. Possible applications and prospects of development are proposed.

i Надоели баннеры? Вы всегда можете отключить рекламу.