lect05 - JADE
Download
Report
Transcript lect05 - JADE
5. Агентная
платформа JADE
Курс «Мультиагентные интеллектуальные системы»
Иванов А.М.*, [email protected]
Некоторые права защищены.
* МГТУ им. Н.Э.Баумана, каф. ИУ-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
Вопросы есть?