Платформа разработки мультиагентных систем JADE включает в себя динамическую среду, где могут «жить» JADE агенты; библиотеку классов, которую программисты могут использовать для разработки собственных агентов; набор графических инструментов, позволяющих управлять активностью запущенных агентов.
Включает в себя:
• среду выполнения агентов. Агенты регистрируются и работают под управлением среды;
• библиотеку классов, которые используются для разработки агентных систем;
• набор графических утилит для администрирования и наблюдения за жизнедеятельностью активных агентов.
Программная среда JADE подключается к любому проекту на языке Java.
JADE предоставляет программисту – разработчику агентных систем следующий набор средств [9]:
· FIPA-compliant Agent Platform – агентную платформу, основанную на стандарте FIPA и включающую обязательные типы системных агентов, которые автоматически активируются при запуске платформы.
· Distributed Agent Platform – распределенную агентную платформу, которая может использовать несколько компьютеров (узлов), причем на каждом узле запускается только одна Java Virtual Machine. Агенты исполняются как Java-потоки. Для доставки сообщений между агентами, в зависимости от их местонахождения, используется соответствующий транспортный механизм – Multiple Domains support – множество основанных на FIPA-спецификациях специализированных агентов, которые могут объединяться в федерацию, реализуя таким образом мультидоменную агентную среду.
· Multithreaded execution environment with two-level scheduling. Каждый JADE-агент имеет собственный поток управления, но он также способен работать в многопотоковом режиме. Java Virtual Machinе проводит планирование задач, исполняемых агентами или одним из них.
· Object-оriented programming environment. Большинство концепций, свойственных FIPA-спецификации, представляются Java-классами, формирующими интерфейс пользователя.
· Library of interaction protocols. Использование стандартных интерактивных протоколов fipa-request и fipa-contract-net. Для того чтобы создать агента, который мог бы действовать согласно таким протоколам, разработчикам прикладных программ нужно только имплементировать специфические доменные действия, в то время как вся независимая от прикладной программы протокольная логика будет осуществляться системой JADE.
· Administration GUI. Простые операции управления платформой могут исполняться через графический интерфейс, отображающий активных агентов и контейнеры агентов. Используя GUI, администраторы платформы могут создавать, уничтожать, прерывать и возобновлять действия агентов, создавать иерархии доменов и мультиагентные федерации.
Платформа JADE написана на языке программирования Java с использованием Java RMI, Java CORBA IDL, Java Serialization и Java Reflection API. Она упрощает разработку мультиагентных систем благодаря использованию FIPA-спецификаций и инструментов (tools), которые поддерживают фазы исправления ошибок (debugging) и развертывания (deployment) системы. Эта агентная платформа может распространяться среди компьютеров с разными операционными системами, и ее можно конфигурировать через удаленный GUI-интерфейс. Процесс конфигурирования этой платформы достаточно гибкий. Единственным требованием такой системы является установка на компьютере Java Run Time требуемой версии.
Платформа JADE является распределенной и представляет собой набор контейнеров (Рис. 2.2).
Рис. 2.2. Платформа JADE.
Контейнером называется динамическая среда исполнения мультиагентных приложений, в которой находятся агенты. Каждый контейнер может содержать несколько агентов. Набор активных контейнеров называется платформой. Один из контейнеров всегда является главным (Main container), все остальные контейнеры связываются с ним и регистрируются в момент запуска. Поэтому первым контейнером при старте платформы должен быть главный, а все остальные контейнеры должны быть «обыкновенными» контейнерами и должны заранее «знать», как найти главный контейнер, на котором они будут регистрироваться, т.е. должны иметь данные о хосте и порте. Другой главный контейнер, запущенный где-либо в сети, представляет
собой другую платформу, на которой могут зарегистрироваться новые обычные контейнеры. Рисунок 2.2 иллюстрирует эту концепцию на основе примера, показывающего две JADE-платформы, состоящие из трех и одного контейнера соответственно. JADE-агенты определяются с уникальными именами. При условии, что они знают имена других агентов, они могут общаться, независимо от их фактического местонахождения: в общем контейнере (агенты А2 и А3), в разных контейнерах на одной платформе (агенты А1 и А2), или вообще на разных платформах (А4 и А5). Пользователю не обязательно знать, как работает динамическая среда JADE, но необходимо запускать ее перед началом выполнения своих агентов.
Агенты AMS и DF
Кроме возможности приема регистраций от других контейнеров, главный контейнер отличается от обычного контейнера тем, что содержит два специальных агента, автоматически запускаемых одновременно с контейнером:
· AMS (Agent Management System – система управления агентами) обеспечивает службу управления агентами, которая позволяет создавать и удалять агентов, а также содержит в себе пространство имен агентов. Имя агента является уникальным и имеет следующий формат: <nickname>@<platform-name>. Зная имена друг друга, агенты могут обмениваться сообщениями как внутри контейнера и платформы, так и между различными платформами.
· DF (Directory Facilitator – менеджер директорий) представляет собой службу «желтых страниц» (yellow pages), где агенты могут публиковать информацию о предоставляемых ими сервисах. С помощью DF агент может находить агентов, предоставляющих необходимые ему сервисы, и вступать с ними в переговоры. Внутри одной платформы может существовать несколько DF, предоставляющих информацию о различных группах сервисов или о сервисах различных групп агентов. Использование DF описано далее в разделе Сервис «желтых страниц».