Java agent development environment

Пример Разработки многоагантной системы на основе JADE (Java Agent Development Environment)

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, и ПОР, но легко можно добавить и другие протоколы. Также предусмотрена возможность интеграции SMTP, HTTP и WAP. Большинство коммуникационных протоколов, которые уже определены международным сообществом разработчиков агентных сред, доступны и могут иллюстрироваться на конкретных примерах после определения поведения системы и ее основных состояний. SL и онтология управления агентами также имплементированы вместе с поддержкой определенных пользователем контентных языков, а также онтологии, которые могут быть имплементированы и зарегистрированы агентами и использованы системой. С целью существенного расширения работоспособности JADE, предусмотрена возможность интеграции с JESS и Java-оболочкой CLIPS.

Читайте также:  Importing scanner class in java

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

Инструментарий 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-агентов. Каждый экземпляр такого агента будет иметь свое локальное имя, в отличие от агента-контейнера. На Рис. 72 показан GUI-интерфейс RMA-агента.

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

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

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

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

Интерфейс агента Dummy Agent

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

Интерфейс агента Sniffer

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

SocketProxyAgent — это JADE-агент, предназначенный для установки коммуникаций с удаленными клиентами. Агент позволяет поддерживать 50 параллельных подключений. Каждое входящее сообщение парсится, проверяется его адресат по листингу, агентных имен, и передается агенту в пункт назначения. JADE предлагает графический интерфейс агента-фасилитатора DF (Directory 7 Facilitator) agent. Он позволяет сотрудничать с другими DF-агентами и контролировать (регистрировать, модифицировать, искать агентов по их характеристикам) всю сеть объединения DF-агентов. Этот тип агентов предлагает сервис «yellow pages’» другим агентам. Они могут зарегистрировать свои услуги с помощью DF-агента или «попросить” его найти поддержку 7 у других DF-агентов. Последние могут объединяться и создавать федерации агентов-фасилитаторов. Рис. 75 показывает интерфейс таких агентов.

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

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

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

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

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

  • • FIPA-compliant Agent Platform — агентная платформа, основанная на FIPA и включающая обязательные типы системных агентов: AMS, АСС и DF. Эти три типа агентов автоматически активируются при залуске платформы.
  • • Distributed Agent Platform — распределенная агентная платформа, которая может использовать несколько хостов, при чем на каждом узле запускается только одна Java Virtual Machine. Агенты имплементируются как Java-потоки. В зависимости от местонахождения агента, посылающего сообщение, и того, кто его получает, для доставки сообщений используется соответствующий транспортный механизм.
  • • Multiple Domains support — ряд основанных на FIPA DF-агентов могут объединится в федерацию, таким образом имплементируя мультидоменную агентную среду.
  • • Multithreaded execution environment with two-level scheduling. Каждый J ADE-агент имеет собственный поток управления, но он также способен работать в многопотоковом режиме. Java Virtual Machine проводит планирование задач, исполняемых агентами или одним из них.
  • • Object-oriented programming environment. Большинство концепций, свойственных FIPA-спецификации, представляются Java-классами, формирующими интерфейс пользователя.
  • • Library of interaction protocols. Используются стандартные интерактивные протоколы fipa-request и fipa-contract-net. Для того, чтобы создать агента, который мог бы действовать согласно таким протоколам, разработчикам прикладных программ нужно только имплементировать специфические доменные действия, в то время как вся независимая от прикладной программы протокольная логика будет осуществляться системой JADE.
  • • Administration GUI. Простые операции управления платформой могут исполняться через графический интерфейс, отображающий активных агентов и контейнеры агентов. Используя GUI, администраторы платформы могут создавать, уничтожать, прерывать и возобновлять действия агентов, создавать иерархии доменов и мультиагентные федерации DF (фасилитаторов).

ПРОТОТИП РЕАЛИЗАЦИИ АГЕНТНОЙ СИСТЕМЫ

Пусть с помощью UML была разработана модель системы агентного типа, диаграмма архитектуры которой показана на Рис. 76. где:

Модель системы агентного типа

Рис. 76. Модель системы агентного типа

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

  • • Professor — компьютер профессора, который использует сервер дистанционного обучения (мобильного агента) для проверки и предоставления новых заданий;
  • • Internet — группа устройств, предоставляющих доступ к глобальной сети Интернет;
  • • Mobile Agent Server — сервер мобильных агентов;
  • • Lockal Network — устройства локальной сети, обеспечивающие связь серверов;
  • • DataBase Server — сервер БД (например. MS SQL Server 2000, Oracle9i. DB/2 Sybase), который содержит информацию о предметах, студентах и т.п.;
  • • File Server — файловый сервер, хранит все материалы и контрольные работы.

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

SearchOnSearchSysjtem()

SearchOnSearchSysttfn() ‘ I :

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

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

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

Рассмотрим Рис. 78 описания Sequence Diagram.

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

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

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

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

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

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

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

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

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

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

Диаграмма обмена сообщениями между 7 агентами поиска, обучения, сообщений, mail показана на

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

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

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

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

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

Источник

Оцените статью