Использование jade (Java Agent Development environment) для разработки компьютерных систем поддержки дистанционного обучения агентного типа

Educational Technology & Society 8(3) 2005 ISSN 1436-4522

Использование JADE (Java Agent Development Environment) для разработки компьютерных систем поддержки дистанционного обучения агентного типа

Глибовец Н.Н.

Университет “Киево-Могилянская академия”, glib@ukma.kiev.ua

Аннотация

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

Ключевые слова

Дистанционное обучение, агентные технологии, JADE

Вступление

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

Растущие требования к повышению интерактивности в автоматизированных системах поддержки учебного процесса приводят к тому, что на первое место выходят такие характеристики как информативность и коммуникативность. Административная часть таких систем также не может оставаться статичным дополнением к базам данных. Для нее тоже необходимы персонифицированные интеллектуальные интерфейсы, электронный обмен данными, сценарии исполнения рутинных дел, интеллектуальная поддержка принятия решений, а также новые эффективные процедуры поиска, создания отчетов и анализа тенденций развития учебного заведения. В последнее время такие компьютерные системы начали называть системами поддержки дистанционного обучения [Бизнес образование, 2002; Глибовець М.М., 2000].

Дистанционное обучение прошло стремительный путь развития. В восьмидесятые годы оно перешло в асинхронный режим обучения с использованием компьютера (computer-aided learning, computer-mediated learning), начали развиваться новейшие формы обучения, такие как электронное обучение (e-learning) и непрерывное обучение (life-long learning) [Глибовець М.М., 2000; Дмитренко П.В., Пасичник Ю.А., 1999; URL 1]. На данном этапе, традиционным стало использование интерактивных веб-сайтов. Разработку мультимедийных систем и баз данных, соединенных гиперлинками, доступных через универсальные веб-браузеры, принято считать основой асинхронного дистанционного обучения. Современные информационные сетевые технологии дают возможность не просто перевести учебный процесс в цифровой режим, или заменить учебную аудиторию, преподавателя и учебник компьютером - они позволяют изменить философию учебного процесса, создать новую образовательную культуру [Фурда А.Б., Катерняк И.Б., 2000]. Дистанционное обучение перешло от традиционной системы передачи знаний, построенной вокруг преподавателя, к виртуальной учебной среде и учебному сообществу, ориентированных на студента.

В последние годы сделан еще один шаг к улучшению систем компьютерной поддержки дистанционного обучения (КСПДО) - реализовано множество моделей

дистанционного обучения с учетом новейших тенденций создания распределенных систем и использования агентных технологий [Фурда А.Б., Катерняк И.Б., 2000; Глибовец Н.Н., 2002]. Последние придают этим системам признаки онтологических систем и переводят пользователей этих систем из ранга пассивного получателя знаний в активных участников процесса обучения. Этот уровень достигается за счет использования таких нестандартных свойств агентов, как: реактивность - агенты реагируют на изменения среды в реальном времени (обычная их деятельность описывается таким образом “WHEN event № condition THEN action”); проактивность

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

Понятно, что дальнейший прогресс компьютерных систем поддержки дистанционного обучения состоит в оптимизации сетевой структуры логического взаимодействия субъектов и объектов образовательного процесса, что отображает гибкую по логическим связям и информационному наполнению образовательную среду [URL 2].

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

1. Классификация агентных систем

Отличительной особенностью современных мультиагентных систем является переход от локализованного к распределенному типу. Общепринятого определения «агента» еще не существует, а наиболее признанным является определение агента как программной системы, которая имеет следующие особенности [Тарасов В.Б., 1998; Глибовец Н.Н., 2002]: автономность, взаимодействие, мобильность,

реактивность, активность, индивидуальность видения «мира», коммуникабельность и кооперативность, интеллектуальность поведения. Каждый агент - это процесс, который владеет достаточной частью знаний про объект и возможностью обмениваться этими знаниями с другими агентами. С точки зрения объектноориентированного подхода агент можно рассматривать как комплекс функций в совокупности с интерфейсом, который способен посылать ответы и получать вопросы. Также можно определить агента как компьютерную программу, которая исполняется асинхронно в соответствии с поведением, заложенным в нее конкретной личностью или организацией. На сегодня существует два основных типа агентов: стационарные и мобильные [Тарасов В.Б., 1998; Гороховский С.С., 1998].

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

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

На данный момент имеем большое разнообразие специального программного инструментария разработки агентных систем [Гороховский С.С., 1998; Терри Кватрани, 2001; URL 3]. Среди них можно выделить JADE (Java Agent Development Environment).

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

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

В серверной среде может исполняться не только исходный агент, но и его копия. Агенты способны самостоятельно создавать свои копии, рассылая их по разнообразным серверам для исполнения работы.

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

По окончании работы в контексте агент может переслать себя в другой контекст или по исходящему адресу отправителя. Кроме того, агенту можно приказать оставаться в одном и том же контексте столько, сколько пожелает пользователь. Агенты способны также выключаться («умирать») сами или по команде сервера, который переносит их после этого из контекста в место, предназначенное для хранения. После включения агент автоматически переносится в контекст, где он работал в последний раз. Уничтожение агента прекращает его исполнение и исключает его из текущего контекста.

Стоит отметить, что сейчас не существует языка программирования или инструментальной системы разработки, которая бы полностью отвечала нуждам построения агентов. Такая система должна была бы отвечать таким требованиям: обеспечение перенесения кода на разнообразные платформы, доступность на многих платформах, поддержка сетевого взаимодействия, многопоточная обработка и другие [Тарасов В.Б., 1998].

Чаще всего в агентных технологиях используются: универсальные языки программирования (Java); языки, “ориентированные на знания”, такие, как языки представления знаний (KIF); языки переговоров и обмена знаниями (KQML, AgentSpeak, April), языки спецификаций агентов; специализированные языки программирования агентов (TeleScript); языки сценариев и scripting languages (Tcl/Tk); символьные языки и языки логического программирования (Oz).

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

Способность планировать свои действия делит агентов на регулирующие и планирующие [Смирнов А.В., Шереметов Л.Б., 1998]. Если умение планировать не предусмотрено (регулирующий тип), то агент будет постоянно переоценивать ситуацию и возобновлять свое воздействие на окружающую среду. Планирующий агент имеет возможность запланировать несколько действий на разные промежутки времени. При этом агент имеет возможность моделировать развитие ситуации, что дает возможность более адекватно реагировать на текущие ситуации. При этом агент должен принимать во внимание не только свои действия и реакцию на них, но и сохранять модели объектов и агентов окружающей среды для предусматривания их возможных действий и реакций.

Система, в которой несколько агентов могут общаться один с другим, осуществлять обмен текущей информацией, взаимодействовать между собой, называется мультиагентной (МАС). Это направление распределенного искусственного интеллекта рассматривает решения одной задачи несколькими интеллектуальными системами [Тарасов В.Б., 1998]. При этом задача разбивается на несколько подзадач, которые распределяются между агентами. Другой сферой применения МАС является обеспечение взаимодействия между агентами, когда один

агент может осуществить запрос к другому агенту на передачу определенных данных или исполнение определенных действий. Также в МАС есть возможность передавать знания.

Мультиагентные системы делятся на кооперативные, конкурирующие и смешанные. Агенты в кооперативных системах являются частями единой системы и решают подзадачи одной общей задачи. Понятно, что при этом агент не может работать вне системы и исполнять самостоятельные задачи. Конкурирующие агенты являются самостоятельными системами, хотя для достижения определенных целей они могут объединять свои усилия, воспринимать цели и команды от других агентов, но при этом поддержка связи с другими агентами не является обязательной. Под смешанными агентными системами подразумеваются конкурирующие агенты, способные к кооперации, подсистемы которых также реализуются по агентной технологии [Городецкий В.И., 1996]. Кроме общения с другими агентами должна быть реализована возможность общения с пользователем.

2. Архитектура агентных систем

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

Операционна система

Рис І. Агентная система.

Агентная система однозначно идентифицируется именем и адресом. На одной машине могут размещаться несколько агентных систем. Схема агентной системы отображена на рис.1.

Тип агентной системы описывает совокупность параметров агента. Например, если типом агентной системы являются "атлети", то это означает, что агентная система создана компанией IBM, поддерживает язык Java как язык реализации

агентов, и использует Java Object Serialization для превращения агентов в последовательную форму.

Все общение между агентными системами осуществляется через коммуникационную инфраструктуру (КИ). Администратор сетевого региона определяет службы коммуникации для внутрирегиональных и межрегиональных взаимодействий. Рисунок 2 демонстрирует связи между агентными системами.

Операционная

система

Агентная

система

Коммуникационная

инфраструктура

Мережа

Операционная

система

Агентная

система

Коммуникационная

инфраструктура

Рис. 2. Связи между агентными системами.

Коммуникационная инфраструктура обеспечивает транспортные службы связи (например RPC), службу имен и службу безопасности для агентных систем.

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

Когда клиент спрашивает место расположения агента, то как ответ он получает адрес места, где исполняется агент.

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

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

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

Регион полностью связывает агентные системы, которые находятся внутри его границ, и позволяет осуществлять обмен информацией между ними с помощью модели сетевого соединения point-to-point. Каждый регион содержит один или несколько узлов доступа, с помощью которых регионы соединяются в некоторую форму сети. Архитектура регионов отображена на рис.3.

Сеть

другого

региона

Рис. 3. Регионы.

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

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

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

Регион

Агентная

система

КИ

Регион

Агентная

система

КИ

Рис. 4. Связь между регионами.

3. Агенты в системах дистанционного обучения

Все вышеперечисленные особенности МАС делают понятной уместность их использования в системах дистанционного обучения [Глибовец Н.Н., 2002]. Тут же отмечается, что агент (компьютерный посредник) должен на равных правах с человеком принимать участие как в постановке задачи так и в выборе алгоритма ее решения и его реализации в зафиксированном мире (онтологии). В случае рассмотрения компьютерной системы поддержки дистанционного обучения (КСПДО) такой средой видится специализированная программная оболочка, которая обеспечивает интерфейс между учеником (слушателем), учителем и администратором. Персональные помощники, в идеале, должны быть в каждой выделенной группе.

Остановимся на одной из простейших схем применения агентов в КСПДО. Пусть мы имеем три агента: “слушатель” который взаимодействует с

“преподавателем” используя возможности “администратора”. При этом функциональность каждого агента такая же как и в реальном процессе обучения. Например, одним из сценариев такого взаимодействия может быть: “слушатель” сдает тест проверки знаний и отправляет “преподавателю” для проверки; “преподаватель” проверяет тест и передает результаты тестирования “администратору”.

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

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

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

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

Итак, перспективными отраслями использования мобильных агентов в КСПДО видятся: навигация и просмотр, получение информации из хранилищ, сортировка и классификация, фильтрация; напоминание, программирование, диспетчеризация (scheduling), поддержка советами; тренинги, ориентация в предмете, предоставление помощи, поиск новой информации; противник в играх, партнер в играх. Естественным является тут и использование базовой метафоры: интуиция агента.

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

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

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

Согласно общего признания, базовым стандартом к разработке КСПДО в последнее время стала система IDEAL (The intelligent distributed environment for active learning ) [Yi Shang, Hongchi Shi, and Su-Shing Chen, 2001].

4. Система IDEAL

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

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

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

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

В групповом обучении, инструкторы и студенты систематически работают вместе, исполняя общие задания. Существуют три основных аспекта в онлайновом обучении в группе: в зависимости от установленных коммуникационных каналов (один-одному, один-многим, и многие к многим); от того, как найти других людей, которые имеют схожие интересы; как сделать наглядным и понятным контекст. Обучение в группе, предложенное системою IDEAL состоит из набора персональных частей и агентов курса. Персональная часть состоит из пользователя и его собственных агентов. Каждый из персональных агентов пользователя может получить профиль пользователя и помочь ему в сборе, обмене и просмотре информации. Агент курса предоставляет информацию, знания или контекст во взаимодействии группы и действует как посредник между студентами. Они могут собирать пользовательские профили и создавать, продуцировать информацию про учебную группу.

Моделирование студента является одним из наиболее важных мест в КСПДО. Существует большое количество подходов к созданию, генерированию моделей студента. Большинство из них очень сложны и требуют значительных затрат (сети Байеса, теория наглядности Демпстера-Шафера). В системе IDEAL, моделирование студента выводится из показателей продуктивности, используя сеть Байеса. Мера того, насколько хорошо изучены определенные навыки, представлена как вероятность распределения по уровням, таким как начинающий (novice и beginning), средний (intermediate), высокий (advanced) и эксперт. Основываясь на этой модели, вероятностное распределение уровней знаний, заданных показателей продуктивности может быть задано линейной временной оценкой. Опираясь на теорию Байеса и на допущение, что показатели продуктивности независимы, выведем такие условные вероятности уровней знаний.

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

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

В системе IDEAL используется эффективное электронное средство для представления, обработки и отображения учебных материалов. В его основе лежит использование активных документов XML (eXtеnsible Markup Language) для организации и передачи материалов курса. Материалы курса разбиваются на маленькие компоненты, которые соответствуют lecturelet касательно предмета изучения. lecturelet являются "умными" документами XML, а именно документами XML, которые включают не только состав, а также код Java. Lecturelet могут динамично собираться, чтобы отвечать темам курса в зависимости от индивидуального прогресса студента. Этот подход становится возможным благодаря правильному комбинированию использования четырех технологий: XML, фреймы, агенты и хранилище данных.

Разработчики IDEAL экспериментировали с несколькими распределенными объектно-ориентированными средами для создания мультиагентных систем, включая такие известные, как Java Remotе Mеthod Invocation (RMI), JATLite , JavaSpace. Они подчеркивают, что Java teсhnologies, Java RMI предлагает промежуточный сетевой уровень, который позволяет JAVA объектам, которые распределены на распределенных сайтах эффективно общаться, используя обычные методы запросов. Это надежно, имеет высокую продуктивность и работает на многих вычислительных платформах. JATLite позволяет пользователям быстро создавать программных агентов, которые эффективно общаются через Internet и поддерживают мобильных агентов. Он предоставляет разнообразные функциональные возможности агентам, включая регистрацию на Agent Message Router (AMR), используя имя и пароль, подключение/отключение к/от Internet, асинхронную посылку/получение сообщений и передачу файлов по FTP. Проблема с текущей реализацией такова, что программное обеспечение не очень стабильное и иногда полностью зависает. JavaSpace поддерживает эффективное распределение общения и обмен данными и предоставляет простой, выразительный и мощный инструмент, который облегчает традиционное бремя построения распределенного программного обеспечения. JavaSpace —очень новая, медленная система, которая еще не до конца разработана.

6. Использование JADE

JADE полностью написана на языке программирования Java с использованием таких продвинутых возможностей как Java RMI, Java CORBA IDL, Java Serialization и Java Reflection API.

Она упрощает разработку мультиагентных систем благодаря использованию FIPA-спецификаций и с помощью ряда инструментов (tools), которые поддерживают фазы исправления ошибок (debugging) и развертывания (deployment) системы. Эта агентная платформа может распространяться среди компьютеров с разными операционными системами, и ее можно конфигурировать через удаленный GUI-интерфейс. Процесс конфигурирования этой платформы достаточно гибкий: ее можно изменить даже во время исполнения программ, для этого необходимо просто переместить агентов с одной машины на другую. Единственным требованию этой системы является установка на машине Java Run Time 1.2. Коммуникационная архитектура предлагает гибкий и эффективный процесс обмена сообщения, где JADE создает очередь и управляет потоком ACL-сообщений, которые являются приватными для каждого агента. Агенты способны обращаться к очереди с помощью комбинации нескольких режимов своей работы: блокирование, голосование, перерыв в работе и сопоставление с эталоном (что касается методов поиска).

На данный момент в системе используется Java RMI, event-notification, и IIOP, но легко можно добавить и другие протоколы. Также предусмотрена возможность интеграции SMTP, HTTP и WAP. Большинство коммуникационных протоколов, которые уже определены международным сообществом разработчиков агентных сред, доступны и могут иллюстрироваться на конкретных примерах после определения поведения системы и ее основных состояний. SL и онтология управления агентами также имплементированы вместе с поддержкой определенных пользователем контентных языков, а также онтологии, которые могут быть имплементированы и зарегистрированы агентами и использованы системой. С целью существенного расширения работоспособности JADE, предусмотрена возможность интеграции с JESS и Java-оболочкой CLIPS.

JADE используется рядом компаний и академических групп. Среди них можно выделить такие известные: BT, CNET, NHK, Imperial College, IRST, KPN, University of Helsinky, INRIA, ATOS и много других.

6.1. Инструментарий JADE

JADE предлагает графический интерфейс платформы администрирования с использованием RMA агента. Этот агент показывает состояние агентной платформы

(Agent Platform) и предлагает разнообразные инструменты администрирования, исправление ошибок и тестирование приложений, базирующихся на JADE.

RMA - это объект Java, экземпляр класса jade.tools.rma.rma, который можно запустить: из командной строки, как обычного агента в этой системе (например, командой java jade.BootmyConsole:jade.tools.rma.rma); или через gui-интерфейс ( java jade.Boot -gui). На одной платформе можно запустить много RMA-агентов. Каждый экземпляр такого агента будет иметь свое локальное имя, в отличие от агента-контейнера.

Рис.5. GUI-интерфейс RMA-агента.

На рис.5 показан GUI-интерфейс RMA-агента. Dummy Agent - это

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

На рис.6 показан интерфейс этого агента.

Рис.6. Интерфейс агенту Dummy Agent.

JADE (Java Agent Development Framework) - это программная разработка, ее целью является создание и распространение мультиагентных систем и их приложений, отвечающих стандартам FIPA для интеллектуальных агентов. Агент

Sniffer (вынюхивающий что-либо) - это Java-приложение, созданное для слежения за сообщениями, обмен которыми происходит в среде JADE. Sniffer полностью интегрирован в JADE и оказался достаточно полезным в процессе исправления ошибок в поведении агентов. Когда пользователь решает выследить агента или группу агентов с помощью Sniffer-агента, то каждое сообщение, как поступающее агенту/группе агентов, так и исходящее от этого агента/группы, перехватывается и отображается в GUI-интерфейсе агента Sniffer. Пользователь может посмотреть каждое сообщение и сохранять их на диск как текстовый файл. На рис.7. показан интерфейс агента Sniffer.

IH^Insert Start Parameters

Agent Name sniffer_name

Class Name jade.tGGls.sniffer.Sniffer

Container Front-End

OK Cancel

l

Рис.7. Интерфейс агента Sniffer.

SocketProxyAgent - это JADE-агент, предназначенный для установки коммуникаций с удаленными клиентами. Агент позволяет поддерживать 50 параллельных подключений. Каждое входящее сообщение парсится, проверяется его адресат по листингу агентных имен, и передается агенту в пункт назначения.

JADE предлагает графический интерфейс агента-фасилитатора DF (Directory Facilitator) agent. Он позволяет сотрудничать с другими DF-агентами и контролировать (регистрировать, модифицировать, искать агентов по их характеристикам) всю сеть объединения DF-агентов. Этот тип агентов предлагает сервис “yellow pаges” другим агентам. Они могут зарегистрировать свои услуги с помощью DF-агента или “попросить” его найти поддержку у других DF-агентов. Последние могут объединяться и создавать федерации агентов-фасилитаторов. Рис.8 показывает интерфейс таких агентов.

Рис.8. Интерфейс агента-фасилитатора.

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

6.2. Возможности JADE

Для достижения этой цели JADE предлагает програмисту-разработчику агентных систем следующие возможности:

- FIPA -compliant Agent Platform - агентная платформа, основанная на FIPA и включающая обязательные типы системных агентов: AMS, ACC и DF. Эти три типа агентов автоматически активируются при запуске платформы.

- Distributed Agent Platform - распределенная агентная платформа, которая может использовать несколько хостов, при чем на каждом узле запускается только одна Java Virtual Machine. Агенты имплементируются как Java-потоки. В зависимости от местонахождения агента, посылающего сообщение, и того, кто его получает, для доставки сообщений используется соответствующий транспортный механизм.

- Multiple Domains support - ряд основанных на FIPA DF-агентов могут объединится в федерацию, таким образом имплементируя мультидоменную агентную среду.

- Multithreaded execution environment with two-level scheduling. Каждый JADE-агент имеет собственный поток управления, но он также способен работать в многопотоковом режиме. Java Virtual Machi^ проводит планирование задач, исполняемых агентами или одним из них.

- Object-oriented programming environment. Большинство концепций, свойственных FIPA-спецификации, представляются Java-классами, формирующими интерфейс пользователя.

- Library of interaction protocols. Используются стандартные интерактивные протоколы fipa-request и fipa-contract-net. Для того, чтобы создать агента, который мог бы действовать согласно таким протоколам, разработчикам прикладных программ нужно только имплементировать специфические доменные действия, в то время как вся независимая от прикладной программы протокольная логика будет осуществляться системой JADE.

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

6.3. Прототип реализации агентной системы КСПДО

Пусть с помощью UML была разработана модель КСПДО агентного типа, диаграмма архитектуры которой показана на рисунке 9, где:

Рис.9. Модель КСПДО агентного типа.

- Student - компьютер студента, который использует мобильный агент для обучения;

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

- Internet - группа устройств, предоставляющих доступ к глобальной сети Интернет;

- Mobile Agent Server - сервер мобильных агентов;

- Lockal Network - устройства локальной сети, обеспечивающие связь серверов;

- DataBase Server - сервер БД (например, MS SQL Server 2000, Oracle9i, DB/2 Sybase), который содержит информацию о предметах, студентах и т. п.;

- File Server - файловый сервер, хранит все материалы и контрольные работы.

О

♦activateO

♦gelNameQ

♦getStaleO

ЧіІІО

*starlO

*suspendQ

jade.wrapper.AgentC

ontroller

Server. SeiverMA ^: Server ControllerMA ^: Server DBOperation ^: Server FSOperation

♦OoWorkForMAO ♦AnalyseAndSavelnfoO ^OoOperationOKO *RetumResultSearchQ ^OoWork F orMo bi leAgenlQ

_____________Server. DBOperalion______________

^OBEveni: javax mail eveni.ConneclionEvenl S^Conneciion; javax.jms.Connection

♦S aval nfoAb out Si ud entO

^SavaControllWorkO

^SavelnfoO

♦OBOperalionO

jade, domain FIPAAgeniManagemeni SearchQn

•gelDescriplionO

*getDf

*selDfQ

Seiver. ControllerMA

Seiver.DispetcherWA

*ListeningMA() ♦MAOperalionOKQ

t ,

Server DispetcheiMA

<%Юиеие Hashtable

Iff

jade.wrapper.AgentContainer

♦acceplNewAgeniO *getName

♦getStateQ ♦killQ *resumeQ

MAgeni SludyMA

♦operationOkO ♦UsteningMAQ ♦SendMAO ♦TeslingO ♦Con|rolIWoH<0 ♦ViewCourseQ ♦GetResultSeaichQ ♦ViewSearchQ

jade, wrapper Agent

^activateO

*tf(JneO

♦deleieO'-.

♦gelNameO

♦geiSiaieO

♦killO

^moveO

^starlO

*suspendQ

♦validateProxyO

MAgent MessageMA %MessageString : String.

♦NewTaskO

*GetMs3sageQ

MAgent SearchMA

^SearchString : String

♦SearchOnServerO

^SearchOnSearchSyslemf)

♦ViewResullOfSearchO

MAgeni.MailMA

♦CheckMailO VlertO ♦AnalizePostO ♦SecurePostQ ♦SendPoslO ♦opnameO

-V—

jade, content. OntoACL Message

♦OntoACLMessageO

*OnloACLMessage0

♦addReceiverO

♦addReplyToQ

♦setSenderO

*wapQ_______________

Рис.10. Deployment Diagram. Диаграмма физической структуры системы.

- Server.ServerMA - класс, использующий атрибуты классов Server.DBOperation, Server.FSOperation, Server.ControllerMA и использует их для своей работы;

- Server.DBOperation- класс, реализующий операции работы с базой данных и содержит такие методы как SaveInfoAboutStudent(), SaveControlWork(), SaveInfo() и объединяется с операцией агрегации с классом Server.ServerMA. Класс содержит атрибуты, определяющие статус соединения агентов с сервером мобильных агентов;

- Server.ControllerMA - класс, реализующий управление очередью, которую обслуживает Server.DispetcherMA;

- Server.DispetcherMA - класс, который планирует приоритет в очереди агентов MAgent. StudyMA, MAgent.MessageMA, MAgent.MailMA, MAgent.SearchMA. Отметим, что самый высокий приоритет имеет агент, который передает сообщения MAgent.MessageMA; потом идет MAgent.StudyMA, реализующий обучение студента, его тестирование и общается как со студентом, так и с преподавателем; следующим по приоритету идет MAgent.SearchMA, выполняющий поиск материалов на сервере дистанционного обучения или в Интернет;

- jade.wrapper.Agent - абстрактный класс, связанный операцией наследования с классами мобильных агентов. Он относится к стандартной библиотеке классов JADE. Содержит множество методов, ответственных за операции с агентами;

- jade. wrapper.AgentController - интерфейс, определяющий те методы, которые позволено контролировать JADE-агенту. Он содержит в себе такие методы: activate() - активирует агента, который по каким-то причинам прекратил свою работу; getName() - получает имя платформы агента; getState() - получает состояние агента; Ш[() - уничтожает агента; start() - запускает агента; suspend() - прерывает работу агента на некоторое время;

- jade.wrapper.AgentContainer - этот класс является proxy классом, который позволяет обращаться к контейнеру JADE-агента. acceptNewAgent() - метод, позволяющий добавлять агента в контейнер; getState() - возвращает экземпляр состояния платформы; resume() -активирует агентную платформу.

- jade. content. OntoACLMessage - обеспечивает работу с ACL-сообщениями, которые проходят согласно спецификации FIPA 2000 "FIPA ACL Message Structure Specification".

- jade.domain.FIPAAgentManagement.SearchOn - этот класс обеспечивает операцию поиска. Он позволяет также DF-агенту (фасилитатору) делать запрос другому агенту-фасилитатору на поиск информации.

Диаграмма взаимодействия классов агента обучения (Sequence Diagram) при поиске данных на сервере или в глобальной сети Интернет показана на рисунке 11.

Рис.11. Диаграмма взаимодействия классов агента обучения.

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

Агенту обучения поступило задание найти информацию на сервере. Он взывает метод класса агента поиска MAgent.SearchMA - SearchOnServer. Контролер агентов вызывает метод диспетчера PutMA(), который определяет приоритет и ставит агента в очередь. Server.ControllerMA вызывает метод сервера DoWorkForMA(), исполняется поиск и посылается сообщение, если операция завершилась успешно -MAOperationOK(). Диспетчер удаляет агента из очереди. Контролер вызывает метод сервера - вернуть результаты поиска ReturnResultSearch(), которые передаются агенту обучения вместе с сообщением об успешном завершении операции. Процесс поиска в сети Интернет аналогичный, с той разницей, что для него не используются данные с сервера мобильных агентов.

Рассмотрим рисунок 12 описания Sequence Diagram.

Рис 12.Диаграмма взаимодействия классов Агента обучения с контролером, диспетчером и сервером агентов.

Класс StudyMA вызывает функцию ListeningMA() и посылает агента. Класс ControllerMA вызывает функцию ListeningMA(), получает агента и вызывает метод класса диспетчера агентов DispetcherMA, который ставит приоритет данного агента в очереди. Контролер анализирует запрос агента и вызывает метод класса ServerMA -DoWorkForMA(). ServerMA анализирует и хранит информацию, полученную от агента, и вызывает метод класса FSOperation - сохранения документа, полученного от агента SaveDocument(). Класс FSOperation посылает серверу сообщение, что операция прошла успешно. Соответствующая информация сохраняется в базе данных и класс DBOperation передает сообщение серверу DoOperationOK(). Контролер получает сообщения от сервера агентов об успешной операции и вызывает метод класса диспетчера для удаления агента из очереди DelMA(). ControllerMA вызывает функцию класса MessageMA, для получения нового задания. MessageMA посылает сообщение агенту, что операция успешна и можно делать другое задание, которое поступит.

Диаграмма взаимодействия классов Агента сообщений, Агента обучения, МаП-агента и Агента поиска показана на рисунке 13.

Рис.13. Диаграмма взаимодействия классов Агента сообщений, Агента обучения, МаП-агента и Агента поиска почты.

От Агента сообщений MAgent.MessageMA поступает запрос на проверку электронного взаимодействия. Класс MAgent.MailMA реализует метод CheckMail() и посылает сообщение о результатах его работы addReplyTo() агенту сообщений.

Класс MAgent.MessageMA вызывает метод сервера SearchOnServer(). Агент поиска MAgent.SearchMA просматривает результаты поиска ViewResultOfSearch(), и делает анализ поступившей информации. Агент сообщений получает сообщения про результаты поиска GetMessage().

Класс MAgent.MessageMA вызывает метод агента обучения MAgent.MessageMA, который осуществляет, например, проверку контрольной работы ControllWork(). Агент обучения осуществляет проверку и дает рекомендацию пересмотреть курсы, в упражнениях к которым были допущены ошибки ViewCourse(). Так же осуществляется процесс тестирования. Также можно просто послать сообщения с запросом пересмотреть любой курс, который вас интересует.

В процессе взаимодействия эти агенты используют также стандартные методы агентной архитектуры JADE, а именно, методы класса jade.content.OntoACLMessage Диаграмма обмена сообщениями между агентами поиска, обучения, сообщений, mail показана на рисунке 14.

Рис 14. Диаграмма обмена сообщениями между агентами поиска, обучения,

сообщений, mail.

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

На рисунке 16. показана компонентная диаграмма, которая отображает все пакеты классов данной системы.

Рис.16. Компонентная диаграмма.

В системе, кроме стандартных пакетов агентной архитектуры JADE, разработаны такие пакеты:

- пакет Server, в состав которого при данной реализации вошли классы:

Server. ControllerMA, Server.DispetcherMA, Server.FSOperation,

Server.DBOperation, Server.ServerMA;

- пакет MAgent, в состав которого вошли такие классы как:

MAgent.StudyMA, MAgent.MessageMA, MAgent.MailMA,

MAgent.SearchMA.

Сгенерированный код системы показал все задуманные возможности и был готов к применению.

Выводы

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

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

Модель построена с учетом основных характерных черт ДО - гибкость, модульность, параллельность, охват, технологичность.

Получены такие новые научные результаты: исследована система

дистанционного обучения как мультиагентная система; разработана модель дистанционного обучение на базе агентной архитектуры JADE (Java Agent Development Framework); построена модель дистанционного обучения в среде проектирования Rational Rose Professional Edition на языке UML (Unified Modeling Language); сгенерирован каркас программного кода системы ДО на языке программирования Java.

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

Литература

[Бизнес образование, 2GG2] Бизнес образование и технологии электронного дистанционного обучения // Глобальна университетська система. №1 - 2002 р., Київ

- с.5-12.

[Глибовець М.М., 2GGG] Глибовець М.М. Один из подходов к организации дистанционного обучения // Проблемы программирования. №1-2, 2000г., Киев. -С.б72-б77.

[Дмитренко П.В., Пасичник Ю.А., 1999] Дмитренко П.В., Пасичник Ю.А. //Дистанцийна освіта. - К.: НПУ, 1999, - 25 с.

[Фурда А.Б., Катерняк И.Б., 2GGG] Фурда А.Б., Катерняк И.Б. Модели и принципы организации учебной среды, ориентированной на использование технологий электронного дистанционного обучения // Глобальна университетська система. №3 -2000 р., Київ - с.5-24.

[Глибовец Н.Н., 2GG2] Глибовец Н.Н. Использование агентных технологий в системах дистанционного образования.// Управляющие системы и машины, 2002, №б, с.б9-7б.

[Тарасов В.Б., 1998] Тарасов В.Б. Агенты, многоагентные системы, виртуальные сообщества: стратегическое направление в инфориметьке и искусственном

интеллекте. Новости искусственного интеллекта. 1998, №3. с.5-54.

[Гороховский С.С., 1998] Гороховский С.С., Агентные технологии: попытка критического обзора. Наукови записки. Том 18. Частина ИИ. Комп’ютерни науки. Стор. 391-395 1998.

[Терри Кватрани, 2GG1] Терри Кватрани, Rational Rose 2000 и UML. Визуальное моделирование/Visual Modeling with Rational Rose 2000 and UML- М.:ДМК, 2001, C.12 - 24.

[Тарасов В.Б., 1998] Тарасов В.Б. Искусственная жизнь и нечеткие искусственные многоагентные системы - основные теоретические подходы к построению интеллектуальных организаций. Известия АН. Теория и системы управления, 1998, №5. С.12-23.

[Смирнов А.В., Шереметов Л.Б., 1998] Смирнов А.В., Шереметов Л.Б., Многоагентная технология проектирования сложных систем. // Автоиметьзация проектирования, №№ 3 - 1998, 1 - 199.

[Тарасов В.Б., 1998] Тарасов В.Б. Эволюционная семиотика и нечеткие

многоагентные системы -основные теоретические подходы к построению интеллектуальных организаций //Информационные технологии и вычислительные системы .-1998.- №1.-С.54-б8.

[Городецкий В.И., 1996] Городецкий В.И. Многоагентные системы: современное состояние исследований и перспективы развития // Сб. докл. V национальной конференции «Искусственный интеллект - 9б», т.1. Казань, 199б. сс. 3б-45.

[Yi Shang, Hongchi Shi, and Su-Shing Chen, 2GG1] Yi Shang, Hongchi Shi, and Su-Shing Chen An Intelligent Distributed Environment for Active Learning. Departament of Computer Engineering and Computer Science University of Missouri-Columbia. Report, 2001, http ://www10.org/cdrom/papers/207/node8.html.

[URL 1] Дистанционное образование http://www.informika.ru.

[URL 2] National Distance education centre (France) www.cned.fr

[URL 3] Документация JADE (Java Agent Development Environment) http://jade.cselt.it