lect05 - JADE

advertisement
5. Агентная
платформа JADE
Курс «Мультиагентные интеллектуальные системы»
Иванов А.М.*, aivanoff@nm.ru
Некоторые права защищены.
* МГТУ им. Н.Э.Баумана, каф. ИУ-3, 2007
Место лекции в общем курсе







Введение
Теория агента
Теория многоагентных систем
Агентные платформы
Стандарты
Методологии разработки
Перспективы
Содержание



Агентная платформа
Существующие агентные платформы
JADE – агентная пратформа
Что такое агентная
платформа?


АП – middleware, позволяющее реализовывать
агентные системы
Возможности АП:








управление жизненным циклом агентов
каталог агентов (поиск по характеристикам)
развертывание МАС
коммуникации и языки общения
поддержка представлений знаний
поддержка архитектур агентов и МАС
поддержка методологий разработки МАС
инструментарий разработки и тестирования
Содержание



Агентная платформа
Существующие агентные платформы
JADE – агентная пратформа
Агентные платформы*
Название
Лицензия
Стандарты
Поддержка
моб. у-в
Tд1/Tд2**
Поддержка разраб.
Реализация/
Особенности
JADE
LGPL
FIPA2
KQML
JME до
MIDP1.0
7,5 / 68,8
Есть
Java;.NET/
plug-ins
A-globe
LGPL
Частично FIPA
Нет
2,8 / 13,9
Есть
Java
IBM ABLE
Commeval
Планир
уется
FIPA
Нет
???
Есть
Java
JaCK
Comm
FIPA
JME
21,7 / 17,6
Есть
Java/ среда
разработки
AgentBuilder
Comm
KQML
Нет
???
Есть
Java/методология и
среда разработки
FIPA-OS
LGPL
FIPA1
Нет
607,1 / 96,2
нет с
2001г.
Java
ZEUS
LGPL
FIPA1
Нет
224,8 /
107,6
нет с
2001г.
Java/ среда
разработки
* источник?
** Tд1/Tд2 – время доставки сообщения в мс между агентами на одном хосте / на двух хостах
Содержание



Агентная платформа
Существующие агентные платформы
JADE – агентная пратформа
Характеристики JADE










соответствие последним спецификациям FIPA 2.0
открытость кода, LGPL
мультиплатформенность , Java
поддержка беспроводных мобильных устройств вплоть до
JME MIDP1.0 (сотовые телефоны)
наличие собственных и сторонних библиотек расширения
протоколов взаимодействия агентов (RDF, XML и т.д.)
архитектуры агентов (JadeX — BDI архитектура, SCATE —
машина состояний)
управления агентами (geNETicA — реализация
генетических алгоритмов)
управления самой платформой
документированность
Характеристики JADE 2






Это middleware для построения МАС
Пользователи: разработчики агентов и МАС
Сервисы
 life-cycle, white-page, yellow-page, message transport,
message encoding
Инструменты разработчика
 remote monitoring agent, dummy agent, sniffer agent,
introspector agent
Поддержка масштабируеости
 from debugging to deployment
 from small scale to large scale
Соответствует стандартам FIPA
Диаграмма размещения JADE
Онтология* JADE
Архитектура JADE
White page
service
Yellow page
service
Agent Communication Channel
Intra-Container
Message Transport
(Java events)
Inter-Containers
Message Transport
(Java RMI)
Агент 3
Directory
Facilitator
Агент 2
Agent
Management
System
Агент 1
Архитектура главного
контейнера JADE
cache of agent
addresses
Inter-Platforms
Message Transport
(IIOP, HTTP, …)
Note: The internal architecture of a JADE container is similar, but it does not contain the AMS, and the DF.
Сервис передачи сообщений
(MTS)



Управляет очередью приватных ACL сообщений агента
Конкретная реализация выбирается исходя из ситуации
 Минимизация стоимости передачи сообщения
 Оверхед зависит от положения получателя и состояния
кэша
Распределенный канал связи



Главный контейнер не является узким местом из-за
распределенного кэша
Протоколы передачи сообщений (MTP) могут быть
активированы/деактивированы во время исполнения на любом
контейнере через GUI
 IIOP на основе реализации ORB от Sun
 IIOP на основе реализации ORBacus
 HTTP MTP
Несколько способов кодирования ACL
 String-based, XML-based, bit-efficient
Архитектура агента JADE
Язык
взаимодействий
агентов ACL
Цикл
Поведение1
Агент В
Поведение2
ПоведениеN
Реактивное поведение
Онтология
Протокол
Профиль
Свойства
Факты
Правила
Модели
Представление знаний при общении
Агент А
«Мозги» агента (знания и их обработка)
Поведение n
Менеджер управления
Жизненным циклом
Поведение 2
…
Планировщик
поведений
Приватная
очередь ACL
сообщений
polling-based
blocking-based
timeout-based
pattern matching
access mode
Поведение 1
Архитектура агента
Активные поведения
агента (напр. намерения
или задачи)
beliefs
capabilities
Библиотека
взаимодействий
и поведений
агентов
application
dependent agent
resources
JADE включает библиотеку протоколов взаимодействия агентов и набор
поведений, которые можно расширять для создания агентов с нужными
возможностями
Модель исполнения агента

Агент автономен

он полностью контролирует свой поток исполнения


сам решает когда и какое сообщение прочесть


механизм передачи сообщений заполняет приватную очередь, но не
вызывает никакой код агента
Многопоточность в агенте


может быть одновременно вовлечен в несколько одновременных
переговоров
может выполнять несколько параллельных задач



имеет свой экземпляр менеджера управления жизненным циклом
многопоточность Java и/или
поведения JADE (JADE Behaviours) с кооперативной диспетчеризацией
Модель реализации в коде


Агент JADE реализуется в виде Java-класса, который должен
наследовать класс Agent из пакета jade.core
Задачи агента реализуются в классах, наследующих от различных
подклассов класса Behaviour из пакета jade.core.behaviours
Поведения агента JADE
Комуникационная модель

Агент передает/получает Java-объекты типа ACLMessages внутри протоколов
взаимодействий

JADE скрывает кодирование сообщений (encoding/parsing)
 Уровень Envelope (конверта)


Уровень Agent Communication Language




FIPA-Agent Management; JADE Agent Management
API to register user-defined content languages
Можно расширять на любом уровне



FIPA SL-0 + API to register user-defined content languages
support for Base64-encoded direct Java object serialization
Уровень Ontology (онтологии)


String-based, XML-based, bit-efficient
Уровень Content Language (языка содержимого сообщения)


String-based, XML-based
Все уровни предоставляют APIs для регстрации новых кодеков
Расширение на уровнях CL и Ontology
JADE предоставляет библиотеку универсальных протоколов
 Разработчику нужно только определить методы-обработчики
 Разработчик может компоновать задачи агента как состояния конечного автомата
Мобильность агентов

JADE поддерживает внутриплатформенную модбильность и
клонирование агентов





Платформа может быть распределена между несколькими хостами
 Каждый хост – контейнер агентов
Агенты могут мигрировать между хостами
Агенты могут клонироваться в контейнерах
Самостоятельно
 doMove(Location) / doClone(Location, String)
 before/afterMove() before/afterClone()
По запросу платформы (через AMS)
 Fipa-request interaction protocol
 jade.domain.MobilityOntology определяет понятия и действия,
необходимые для поддержки мобильности и клонирования
агентов
Инструментарий

RMA (Remote Monitoring Agent)




DF GUI



Отправка, получение, сохранение сообщений ACLMessages
Sniffer Agent


Просмотр сервиса желтых страниц
Создание объединений (federations) DF и просмотр удаленных DF
DummyAgent


Просмотр сервиса белых страниц (в т.ч. на удаленных платформах)
Управление жизненным циклом агента (удаленное создание,
миграция, …)
Активация/деактивация транспортных протоколов MTP в
контейнерах
Прослушивание, отладка, сохранение в файл мультиагентных
разговоров
Introspector Agent

Отладка агента: очередь отправленных/принятых сообщений,
очередь поведений агента, …
Начать так просто!!!

Если у вас не установлена Java (JDK)







Заходите на http://jade.tilab.com/download.php





Зайдите на http://java.sun.com/javase/downloads/index.jsp
Нажмите скачать JDK 6 Update 3 (или более поздний)
Выберите Accept
Нажмите на ссылке Windows Offline Installation, Multi-language
Сохраните файл
После окончания загрузки установите JDK
Регистрируетесь
Скачиваете jadeAll.zip (8,5Мб)
Распаковываете
Заходите в \doc\
Читаете «JADE TUTORIAL. JADE PROGRAMMING FOR BEGINNERS»


коротко о запуске платформы
разбор одного из примеров

Примеры в \src\examples\
Пробуете технологию на зуб 

Для втянувшихся (основная документация разработчика)



JADE ADMINISTRATOR’S GUIDE – подробно о том, как запустить платформу (основной
контейнер, другие контейнеры)
JADE PROGRAMMER’S GUIDE – подробно о разработке агентов
Ресурсы по JADE

http://jade.tilab.com – сообщество разработчиков

F.L. Bellifemine, G. Caire, and D. Greenwood, Developing
Multi-Agent Systems with JADE. Wiley, 2007.

книга для начинающих по практическому использованию
JADE
Вопросы есть?
Download