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 Вопросы есть?