Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПО_теория / ТРПО / JADE(пособие).doc
Скачиваний:
201
Добавлен:
11.04.2015
Размер:
2.45 Mб
Скачать

1.2. Функциональная модель

С функциональной точки зрения программный инструмент JADE предоставляет базовые службы, необходимые для распределенных приложений типа «точка-точка» в стационарных и мобильных средах. Он позволяет каждому агенту динамически обнаруживать других агентов и обмениваться с ними сообщениями в соответствии с парадигмой систем «точка-точка». С точки зрения приложения каждый агент идентифицируется уникальным именем и предоставляет набор служб. Он может регистрировать и модифицировать свои службы и/или искать агентов, предоставляющих данные службы. Также агент способен контролировать свой жизненный цикл и, в частности, общаться с другими агентами.

Агенты общаются путем обмена асинхронными сообщениями, модель коммуникаций почти повсеместно применима для распределенных и слабосвязанных коммуникаций, т.е. коммуникаций между гетерогенными сущностями, который ничего не знают друг о друге. Для осуществления коммуникации агент только посылает сообщение получателю. Идентификатором служит имя агента (нет необходимости указывать ссылку на объект-получатель) и, как следствие, нет временной зависимости между общающимися агентами. Не требуется, чтобы отправитель и получатель были запущены в одно и тоже время. Получатель даже может не существовать (или еще не существовать) или может быть не известен явно отправителю. Отправитель может определить свойство отправителя (например, «все заинтересованные в футболе агенты»), чтобы указать конечный адрес.

Несмотря на такой тип коммуникаций, при коммуникациях сохраняется безопасность передачи сообщений. Для приложений, которым требуются безопасные каналы, платформа JADE предоставляет надлежащие механизмы для аутентификации и проверки прав, назначенных агентам. Следовательно, когда требуется, приложение может проверить истинность идентификатора отправителя сообщения и предотвратить выполнение недозволенных действий (например, агенту разрешено получать сообщения от агента-босса, но запрещено посылать ему сообщения). Все сообщения, которыми обмениваются агенты, передаются внутри обертки, которая включает только необходимую транспортному уровню информацию. Что позволяет, помимо всего прочего, шифровать содержимое сообщения отдельно от его обертки.

Структура сообщения задается при помощи языка ACL, определенного спецификациями FIPA, и включает такие поля, как переменные, определяющие контекст, получателя сообщения и время, в течение которого будет ожидаться ответ, нацеленные на поддержку сложных взаимодействий и множественные параллельные беседы. Для того, чтобы поддерживать реализацию сложных коммуникаций в дальнейшем, программное обеспечение JADE предоставляет набор каркасов типичных паттернов взаимодействий для выполнения определенных задач, таких как ведение переговоров, аукционы и делегирование задач. Используя эти скелетоны (реализованные как абстрактные классы Java), программисты смогут избежать таких проблем, как задачи синхронизации, таймауты, условия ошибок, и, в общем, всех тех аспектов, которые тесно не связаны с логикой приложения. Для того чтобы облегчить реализацию механизмов создания и обработки содержимого сообщений, агентная платформа JADE предоставляет поддержку для автоматического прямого и обратного конвертирования в формат, подходящий для обмена контентом, включая XML и RDF, и формат, подходящий для управления контентом (например, объекты Java). Эта поддержка встроена в некоторые инструменты создания антологий, например, Protégé, позволяя программистам создавать онтологию графически. Платформа JADE является непрозрачной относительно базового движка системы вывода в случае, если требуются результаты вывода для специфичного приложения, она позволяет программистам переиспользовать предпочтительную систему вывода. Она была интегрирована с модулями JESS и Prolog.

Для того чтобы увеличить масштабируемость или удовлетворить ограничения сред с ограниченными ресурсами, ПО JADE предоставляет возможность выполнения множественных параллельных задач в одном потоке Java. Несколько элементарных задач, таких как коммуникации, могут быть соединены для формирования более сложных задач, представленных как конечные автоматы.

В средах J2SE и Personal Java программа JADE поддерживает мобильность кода и мобильность состояния. То есть агент может остановить работу на хосте и мигрировать на другой удаленный хост (нет необходимости копировать код или устанавливать агента на этом хосте заранее), а затем возобновить исполнение с того места, где он был остановлен. Эта функциональность позволяет, к примеру, распределение вычислительной нагрузки в режиме исполнения путем перемещения агентов на менее загруженные машины без какого-либо воздействия на приложение.

Платформа также содержит службу имен (которая проверяет, что каждый агент имеет уникальное имя) и службу «желтых страниц», которая может быть распределена по нескольким хостам. Можно создать графы федерации, чтобы определить организованные области агентных служб. Другая очень важная функция заключается в доступности богатого набора графических инструментов, поддерживающих и стадию отладки, и стадию управления/наблюдения жизненного цикла приложения. Посредством этих инструментов стало возможно удаленно управлять агентами (даже в том случае, когда они уже развернуты и запущены): могут быть сымитированы переговоры агентов, можно просматривать сообщения, которыми обмениваются агенты, можно заниматься мониторингом задач, контролировать жизненный цикл агента.

Описанные куски функциональности и, в частности, возможность удаленной активации (и с помощью удаленного кода, и с помощью консоли) даже через мобильные терминалы, задачи, коммуникации и новые узлы, делает платформу JADE весьма подходящей для разработки и исполнения распределенных, интеллектуальных, проактивных приложений типа p2p.

Таблица № 1.1

Основные характеристики агентной платформы JADE

Название

JADE – Java Agent Development Framework

Разработчик

TILAB

Сайт

http://jade.tilab.com/

Язык

Java: J2EE, J2SE, J2ME CLDC/MIDP1.0 platforms

Технические/функциональные характеристики

  • Распределенные, многосторонние приложения с коммуникациями «peer-to-peer»;

  • Соответствие стандарту FIPA;

  • Управление жизненным циклом агента;

  • Службы «белые страниц» и «желтых страниц» с возможностью создания графов федераций в онлайн режиме;

  • Графические инструменты, поддерживающие стадии отладки, управления, мониторинга;

  • Поддержка миграции агентного кода и запущенного состояния;

  • Поддержка сложных протоколов взаимодействия (например, contract-net);

  • Поддержка создания и управления контентом сообщений, в т.ч. в формате XML и RDF;

  • Поддержка интеграции со страницами JSP;

  • Поддержка безопасности на уровне приложения (на данный момент – только для платформы J2SE);

  • Возможность выбора транспортных протоколов в режиме исполнения;

  • Доступные транспортные протоколы: JAVA-RMI, JICP(используется по-умолчанию), HTTP и IIOP.

Сетевое окружение

Проведены испытания на базе Bluetooth, GPRS, W-LAN, Internet.

Терминалы

Все терминалы, поддерживающие среду Java MIDP 1.0, или Personal Java, или J2SE.

Соседние файлы в папке ТРПО