
- •Агентная платформа jade
- •1. Описание агентной платформы jade
- •1.1. Архитектурная модель
- •1.2. Функциональная модель
- •2. Архитектура и реализация платформы jade
- •2.1. Структуры компонент-соединитель
- •2.1.1. Агент
- •2.1.2. Поведения
- •2.1.3. Платформа
- •2.1.4. Сервис обмена сообщениями
- •2.1.5. Анализ атрибутов качества
- •2.1.5.1. Производительность
- •2.1.5.2. Масштабируемость
- •2.1.5.3. Готовность
- •2.2.2. Сервис обмена сообщениями
- •2.2.2.1. Модифицируемость
- •2.3.1.1. Безопасность
- •3. Установка и настройка
- •3.1. Требования к окружению
- •3.2. Eclipse интегрированная среда разработки
- •3.2.1. Установка
- •3.2.2. Настройка приложения
- •3.2.3. Добавление кода
- •3.2.4. Запуск и отладка кода
- •3.3. Установка и настройка jade
- •1.1. Файл CalcModel.Java
- •1.1. Файл CalcPanel.Java
- •1.1. Файл Calculator.Java
- •2.1.Листинг: Файл PingAgent.Java
- •2.2. Листинг: Файл PongAgent.Java
2.1.2. Поведения
Для отработки реакции на события агент имеет поведения. Агент может отрабатывать несколько поведений одновременно. Обработка поведений происходит не по приоритетам (как java потоки), а совместно. Очередность исполнения отдельных простых поведений не гарантируется, для этого нужно использовать поведения специальных типов или синхронизацию.
Поведениям не выделяются отдельные потоки, так как при большом количестве поведений происходит постоянное переключение между ними, а переключение между потоками происходит относительно долго (вызов поведения как метода происходит в среднем в 100 раз быстрее, чем переключение потоков).
Рис. 2.2. Отработка поведений
2.1.3. Платформа
Внутри платформы существует набор системных агентов, которые обеспечивают сервисы необходимые для взаимодействия агентов:
AMS (Agent Management System)– данный агент управляет всей платформой. Этот агент необходим для взаимодействия агентов платформы, он обеспечивает доступ агентов к сервису белых страниц платформы и управляет их жизненным циклом. AMS обеспечивает различные операции платформы, такие как: создание и удаление агентов, удаление контейнеров, завершение работы платформы. Каждому агенту необходимо зарегистрироваться в AMS, для получения персонального идентификатора AID. Запуск агента AMS происходит внутри главного контейнера платформы, но может существовать в любом контейнере. Агент, совершающий действия связанные с функционированием платформы, должен вначале запросить подтверждение у агента AMS.
DF (Directory Facilitator) – агент обеспечивает регистрацию сервисов и поиск агента по сервису в желтых страницах. Агенты платформы могут подписываться у DF-агента на получение информации о регистрации необходимого сервиса.
Рис. 2.3. Сервис желтых страниц
Рис. 2.4. Отношения между основными архитектурными элементами
На рисунке выше показаны основные архитектурные элементы платформы JADE. Платформа JADE состоит из системы контейнеров, распределенных в сети.
Обычно на каждом хосте находится по одному контейнеру (но для отладочных целей их может быть несколько). Агенты существуют внутри контейнеров, где обеспечиваются описанные выше системные сервисы. В системе может быть только один главный контейнер, который представляет собой точку начальной загрузки платформы. Главный контейнер создается первым, все созданные позже контейнеры должны быть зарегистрированы в главном контейнере.
Главный контейнер содержит таблицу контейнеров (CT-container table) – в данной таблице хранятся ссылки на объекты и транспортные адреса всех контейнеров, входящих в состав платформы.
Внутри каждого контейнера содержится:
GADT (global agent descriptor table)– это регистр агентов платформы, в котором хранятся их текущий статус и местоположение.
LADT (local agent descriptor table)– тоже самое что и GADT, но для агентов контейнера.
2.1.4. Сервис обмена сообщениями
Сервис обмена сообщениями одна из основополагающих частей архитектуры платформы JADE. Сервис основан на асинхронной передаче сообщений. Каждый агент имеет свой «почтовый ящик» - очередь входящих сообщений, куда помещаются все направленные агенту сообщения. В тот момент, когда сообщение помещается в очередь входящих сообщений, агент оповещается об этом.
Рис. 2.5. Диаграмма асинхронного обмена сообщениями
В связи с тем, что агенты, обменивающиеся сообщениями, могут находиться как в одном, так и в разных контейнерах JADE использует два типа протокола: MTP (message transport protocol)иIMTP (internal message transport protocol).
В том случае если агенты находятся в разных контейнерах, используется RMI (Java Remote Method Invocation).
В случае межплатформенного сценария взаимодействие осуществляется по ACC (Agent Communication Channel). Контейнеры могут быть запущены с различными типами MTP, при этом ACC должен обеспечивать взаимодействие между ними.
В JADE доступны различные типы протоколов MTP, такие как:
CORBA IIOP MTP, основанный на стандартномSun ORB;
CORBA IIOP MTP, основанный наORBACUS и HTTP.
Рис. 2.6. Компоненты сервиса обмены сообщениями