1.2 Описание инструментария для создания программных агентов - Средства для создания программных агентов

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

    1. языки и программные средства реализации агентов; 2. языки коммуникации агентов; 3. языки описания поведения агентов и законов среды; 4. языки представления и управления знаниями; 5. языки формализации и спецификации агентов и мультиагентных систем (МАС).

К средствам взаимодействия агентов относятся языки коммуникации агентов (FIPA ACL, KQML). Язык коммуникации агентов обеспечивает обмен знаниями и информацией между агентами. FIPA ACL в отличии от таких средств как RPC, RMI, CORBA, обеспечивающих обмен информацией между приложениями, имеет более сложную семантику и обладает следующими преимуществами:

    - FIPA ACL управляет суждениями, правилами, действиями, а не семантически не связанными объектами; - сообщения FIPA ACL описывает ожидаемое состояние, а не процедуру или метод.

Однако ACL не охватывают полный спектр объектов, которыми могли бы обмениваться агенты, например планы, цели, опыт, стратегии. На техническом уровне, при использовании ACL, агенты транспортируют сообщения по сети, используя протоколы низшего уровня, например SMTP, TCP/IP, POP3, или HTTP.

Язык взаимодействия агентов (ACL) должен позволять передавать информацию любого вида между различными агентами. Имеются два подхода к проектированию языков взаимодействия агентов:

    1. Процедурный, включает обмен процедурными директивами/командами. Это может быть реализовано используя такие языки программирования как Java или Tcl. 2. Декларативный, где связь основана на декларативных инструкциях, типа определений, предположений, знаний, и т. п.

Из-за ограничений на процедурные подходы (например, такие сценарии трудно координировать, объединить), декларативные языки были предпочтены для создания языков взаимодействия агентов. Одни из наиболее популярных декларативных языков - KQML со своими диалектами и FIPA ACL.

В контексте практического построения агентов и МАС главную роль играют инструментальные средства программирования и коммуникации агентов. Языки коммуникации (ACL, KQML) и координации агентов (AgenTalk) обеспечивают согласованное взаимодействие агентов -- циркуляцию информации, передачу запросов услуг, реализуют механизмы переговоров, поддерживают сотрудничество между агентами, направленное на достижение общей цели и, как следствие, формирование коллективов агентов. Эти языки можно рассматривать как многоуровневые структуры, включающие уровень представления знаний, уровень переговоров или координации, уровень стратегий коммуникации, и т. п. Так язык KQML (Knowledge Query and Manipulation Language), служащий для поддержки взаимодействия агентов в распределенных приложениях, опирается на специальный протокол переноса знаний SKTP (Simple Knowledge Transfer Protocol). В свою очередь, язык ACL (Agent Communication Language), претендующий на роль стандарта для коммуникации агентов, состоит из трех частей-- словаря, "внутреннего языка" KIF (Knowledge Interchange Format) и "внешнего языка" KQML. Сообщение, передаваемое на языке ACL, может трактоваться как KQML-выражение, "аргументами" которого выступают предложения в формате KIF, построенные из элементов словаря ACL [Genesereth and Ketchpel, 1994].

Программные средства, применяемые для реализации агентов, делятся на три основных класса:

    1. языки программирования; 2. библиотеки разработки агентов; 3. среды разработки агентов.

При программировании агентов чаще всего применяются языки объектно-ориентированного программирования (Си++, Java), реже используются символьные языки и языки логического программирования (LISP, Oz).

Среди существующих библиотек агентов можно выделить Intelligent Agent Library -- коммерческий продукт фирмы Bits й Pixels, систему Кайса, разработанную фирмой Fujitsu и Agentx -- сеть высокоэффективных библиотек распределенных вычислений в программной среде Java, предложенную фирмой International Knowledge Systems. Библиотека интеллектуальных агентов Intelligent Agent Library представляет собой набор средств, предназначенных для обеспечения коммуникации агентов и построения их групп. Она основана на языке KQML и содержит иллюстративные примеры агентов, функционирующих в Web-приложениях. Эта библиотека поддерживает разработку мобильных агентов.

Одной из самых известных и уже зарекомендовавших себя интегрированных сред для разработки интеллектуальных программных агентов является AgentBuilder фирмы Reticular Systems, Inc. Это средство состоит из двух основных компонентов: инструментария (Toolkit) и исполнительной системы. Инструментарий вкпючает:

    1. средства управления процессом разработки программного обеспечения, основанного на агентах; 2. средства анализа области функционирования агента; 3. средства проектирования и разработки сетей из взаимодействующих агентов; 4. средства моделирования поведения отдельных агентов; 5. средства отладки и тестирования программных агентов.

Исполнительная система содержит машину агента (agent engine), формирующую среду для реализации программных агентов. Агенты, разработанные с помощью среды AgentBuilder, взаимодействуют на языке KQM L, в основе которого лежат примитивные действия -- перформативы.

Назначение инструментального средства (ИС) AgentBuilder состоит в том, чтобы предоставить разработчику программного обеспечения, основанного на агентах, интегрированную среду, которая позволяет быстро и легко создавать интеллектуальных агентов и сложные программы на их основе. Агенты, созданные с помощью AgentBuilder, могут быть реализованы на любой виртуальной Java-машине.

В таблице 1 приведены примеры средств для разработки агентов.

Таблица 1. Примеры средств разработки агентов

Название языка (средства разработки)

Краткая характеристика / назначение

AgenTalk

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

АgentTool

Агентная структура на базе Java. Использование GUI для конструирования системы

FIPA-OS

Реализация элементов, содержавшихся в FIPA-специ - фикации по взаимодействию агентов. Java-реализа - ция архитектуры для разработки агентов

Echelon

Средство для разработки агентов в сети LonWorks

JAFMAS

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

Remembrance Agents

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

Ummon

Средство для создания самообучающегося агента. Содержит методы ИИ для достижения "человеческо - го" общения

Virtual Secretary Project (ViSe)

Создание модели пользователя на основе интеллек - туальных агентов для выполнения секретарских задач (технология Tcl/TclX/Tix/Tk)

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

Таблица 2

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

Параметр

Наименование инструментальных средств

JAFMAS

Agen Talk

Agent Tcl

Telescript

Swarm

Echelon

Язык разработки

Java

Lisp

Tcl

Telescript

Objective C

Silicon chip

Поддержка ОС

Все

UNIX

UNIX

UNIX

UNIX

Echlon chip

Реализация агента

Программная

Программная

Программная

Программная

Программная

Аппаратная

Объектно-ориентированное про - граммирование

+

-

-

+

+

+

Наличие у агента своего плана действий

+

-

+

+

+

+

Коммуникационный протокол

TCP/IP и UDP/IP

TCP/IP

TCP/IP

TCP/IP

TCP/IP

TCP/IP

Мобильность агентов

+

-

-

-

-

-

Анализ табл. 3 и 4 показал, что средства для разработки агентов можно условно разделить на две группы: средства, построенные на базе языка Java, и средства, построенные на базе других языков. Средства первой группы предназначены для разработки сетевых приложений на базе мобильных агентов, взаимодействующих через протокол TCP/IP.

Похожие статьи




1.2 Описание инструментария для создания программных агентов - Средства для создания программных агентов

Предыдущая | Следующая