5. Агентная платформа JADE Курс «Мультиагентные интеллектуальные системы» Иванов А.М.*, Некоторые права защищены. * МГТУ им. Н.Э.Баумана, каф. ИУ-3, 2007
Место лекции в общем курсе Введение Теория агента Теория многоагентных систем Агентные платформы Стандарты Методологии разработки Перспективы
Содержание Агентная платформа Существующие агентные платформы JADE – агентная пратформа
Что такое агентная платформа? АП – middleware, позволяющее реализовывать агентные системы Возможности АП: управление жизненным циклом агентов каталог агентов (поиск по характеристикам) развертывание МАС коммуникации и языки общения поддержка представлений знаний поддержка архитектур агентов и МАС поддержка методологий разработки МАС инструментарий разработки и тестирования
Содержание Агентная платформа Существующие агентные платформы JADE – агентная пратформа
Агентные платформы* НазваниеЛицен- зия Стан- дарты Поддержка моб. у-в Tд1/Tд2**Поддерж- ка разраб. Реализация/ Особенности JADELGPLFIPA2 KQML JME до MIDP1.0 7,5 / 68,8ЕстьJava;.NET/ plug-ins A-globeLGPLЧастич- но FIPA Нет2,8 / 13,9ЕстьJava IBM ABLEComm- eval Планир уется FIPA Нет???ЕстьJava JaCKCommFIPAJME21,7 / 17,6ЕстьJava/ среда разработки AgentBuilderCommKQMLНет???ЕстьJava/методология и среда разработки FIPA-OSLGPLFIPA1Нет607,1 / 96,2нет с 2001г. Java ZEUSLGPLFIPA1Нет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
Архитектура главного контейнера JADE Intra-Container Message Transport (Java events) White page service Agent Management System Yellow page service Directory Facilitator Agent Communication Channel Inter-Containers Message Transport (Java RMI) Inter-Platforms Message Transport (IIOP, HTTP, …) cache of agent addresses Агент 1Агент 2Агент 3 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 Агент В «Мозги» агента (знания и их обработка) Реактивное поведение Представление знаний при общении
Архитектура агента Приватная очередь ACL сообщений pattern matching timeout-based blocking-based polling-based Планировщик поведений Менеджер управления Жизненным циклом access mode application dependent agent resources beliefs capabilities Поведение 1Поведение 2 Поведение n … Активные поведения агента (напр. намерения или задачи) Библиотека взаимодействий и поведений агентов JADE включает библиотеку протоколов взаимодействия агентов и набор поведений, которые можно расширять для создания агентов с нужными возможностями
Модель исполнения агента Агент автономен он полностью контролирует свой поток исполнения имеет свой экземпляр менеджера управления жизненным циклом сам решает когда и какое сообщение прочесть механизм передачи сообщений заполняет приватную очередь, но не вызывает никакой код агента Многопоточность в агенте может быть одновременно вовлечен в несколько одновременных переговоров может выполнять несколько параллельных задач многопоточность Java и/или поведения JADE (JADE Behaviours) с кооперативной диспетчеризацией Модель реализации в коде Агент JADE реализуется в виде Java-класса, который должен наследовать класс Agent из пакета jade.core Задачи агента реализуются в классах, наследующих от различных подклассов класса Behaviour из пакета jade.core.behaviours
Поведения агента JADE
Комуникационная модель Агент передает/получает Java-объекты типа ACLMessages внутри протоколов взаимодействий JADE скрывает кодирование сообщений (encoding/parsing) Уровень Envelope (конверта) String-based, XML-based Уровень Agent Communication Language String-based, XML-based, bit-efficient Уровень Content Language (языка содержимого сообщения) FIPA SL-0 + API to register user-defined content languages support for Base64-encoded direct Java object serialization Уровень Ontology (онтологии) FIPA-Agent Management; JADE Agent Management API to register user-defined content languages Можно расширять на любом уровне Все уровни предоставляют 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) Просмотр сервиса белых страниц (в т.ч. на удаленных платформах) Управление жизненным циклом агента (удаленное создание, миграция, …) Активация/деактивация транспортных протоколов MTP в контейнерах DF GUI Просмотр сервиса желтых страниц Создание объединений (federations) DF и просмотр удаленных DF DummyAgent Отправка, получение, сохранение сообщений ACLMessages Sniffer Agent Прослушивание, отладка, сохранение в файл мультиагентных разговоров Introspector Agent Отладка агента: очередь отправленных/принятых сообщений, очередь поведений агента, …
Начать так просто!!! Если у вас не установлена Java (JDK) Зайдите на Нажмите скачать 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 ADMINISTRATORS GUIDE – подробно о том, как запустить платформу (основной контейнер, другие контейнеры) JADE PROGRAMMERS GUIDE – подробно о разработке агентов
Ресурсы по JADE – сообщество разработчиков F.L. Bellifemine, G. Caire, and D. Greenwood, Developing Multi-Agent Systems with JADE. Wiley, книга для начинающих по практическому использованию JADE
Вопросы есть?