Теория многоагентных систем породила новую и перспективную концепцию организации сложных программ, действующих в динамических и открытых средах и охватывающих такие сферы применения, как электронная коммерция и другие системы с распределенным искусственным интеллектом. Существует множество технологий и инструментальных средств различного качества для автоматизации создания агентно-ориентированных приложений. Данная работа посвящена рассмотрению основных возможностей одной из первых успешных инструментальных сред Tryllian Agent Development Kit [1].
Компания Tryllian разработала собственную технологию построения прикладных программ с применением мобильных агентов. На основе этой технологии создана инструментальная среда Agent Development Kit (ADK), позволяющая разработчикам писать собственные агентно-ориентированные прикладные программы.
На рис. 1 представлены архитектура и основные концепции мира агентов в представлении Tryllian. Среда ADK объединяет два важных компонента: Agent Foundation Classes (AFC) и Agent Runtime Environment (ARE). Компонент AFC инкапсулирует всю базовую функциональность компонента ARE, достаточную для разработки агентов в подавляющем числе случаев. Для работы среды ADK требуется Java Runtime Environment 1.3+.
Компонент AFC предоставляет инструменты, библиотеки, интерфейсы, классы, API и примеры для создания агентно-ориентированных приложений на языке Java. Используя классы AFC можно создавать новых агентов, описывать задачи агентов, создавать сообщения для взаимодействия агентов, новые языки общения агентов.
Под окружением понимается среда существования системных и разрабатываемых агентов, функционирующая на основе виртуальной Java-машины. Агентно-ориетнированное приложение обычно состоит из нескольких окружений.
Средства компонента ARE обеспечивают общение, мобильность, безопасность, устойчивость агентов, возможность сохранения и восстановления своего состояния и результатов работы. В большинстве случаев взаимодействие с системными агентами организовано посредством предопределенных в компоненте AFC задач для агентов.
Среда ADK предоставляет агентам возможность взаимодействовать друг с другом посредством обмена сообщениями по протоколам FIPA, JXTA, HTTP с использованием JMS и разрабатываемых языков общения, основанных на FIPA Agent Communication Language – международном стандарте взаимодействия агентов. Структура сообщений определяется стандартами FIPA (Federation of Intelligent Physical Agents) [2]. Мобильность представляет собой способность агентов перемещаться между окружениями и платформами для выполнения задач, перенося с собой свой код и состояние. Под безопасностью понимается сертификация агента, т.е. наделение его определенным набором прав, ограничивающим его действия в окружении. Устойчивость агентов подразумевает с помощью средств компонента ARE возможность сохранения в базе данных состояния агента перед закрытием окружения и его восстановления из базы данных при последующем запуске окружения. Среда ADK поддерживает работу с такими СУБД, как Oracle, MS-SQL, MySQL, DB2 и другие.
Агент представляет собой автономный программный код, способный переносить информацию и перемещаться по сети, выполняя поставленные ему задачи. Агент не может существовать без своего окружения. Агенты создаются при запуске приложения или по инициативе другого агента, живут и умирают.
Кроме того, агент обладает поведением, которое определяет его действия и знания. Поведение реализовано в виде набора взаимосвязанных задач, которые разработчик ставит перед агентом. Простые агенты могут наследовать базовые действия. Более сложные агенты могут использовать продукционные знания, а кроме того иметь способность обучаться новому поведению на основе накопленного опыта. Основные фазы поведения агента представлены на рис. 2.
В течение фазы восприятия агент собирает информацию о внешней среде, получая внешние или внутренние сообщения. Сообщения внешнего мира поступают от системных или других агентов окружения и вызывают реагирующее поведение агента. Внутренние сообщения инициируются периодически, вызывая проактивное (произвольное) поведение агента. В течение фазы анализа агент обрабатывает накопленную информацию посредством выполнения задач, зависящих от полученных сообщений. В фазе действия агент корректирует свое поведение, посылая сообщения другим агентам или перемещаясь в другое окружение.
Модель задач определяет способ выполнения задач агента планировщиком задач. Модель задач основывается на следующих предположениях: задачи должны выполняться по возможности независимо друг от друга (асинхронная обработка), быстро обрабатывать сообщения, успех или ошибка выполнения задачи должны фиксироваться и использоваться как условие выполнения других задач. Задача определяет реакцию на сообщение в зависимости от своего состояния (задача началась, активна, завершилась). Среда ADK поддерживает механизмы как параллельного выполнения задач, так и выполнения в определенной последовательности.
Агентно-ориентированное приложение в среде ADK требует создания агентов (написания кода агентов на языке Java), описания их поведения (указания задач), определения окружения и способа взаимодействия агентов. Среда ADK предоставляет удобные инструменты для создания всех файлов проекта и управления приложением.
Литература:© Зудикова Юлия Владимировна, ДонНТУ, 2010