
Презентацию к лабораторной работе Вы можете скачать здесь.
Познакомится с мультиагентной платформой JADE, установить платформу на рабочий компьютер, освоить протокол передачи данных между агентами на платформе, запуск главного контейнера платформы и нового агента, на примере агентов "PingAgent" - запрос-ответ.
Перед началом работы необходимо запустить среду разработки Eclipse IDE, загрузить и установить JDK и JADE. Запустить платформу можно двумя способами: из командной строки или в среде разработки. Как и в предыдущих лабораторных работах мы будем использовать среду разработки Eclipse IDE. Для запуска из командной строке необходимо обратится к инструкции на официальном сайте платформы JADE по ссылке: http://jade.tilab.com/doc/index.html.
Для начала знакомства с JADE необходимо установить JDK и запустить Eclipse IDE (см. лаб. работу 1). В Eclipse IDE создать рабочую папку и открыть новый Java проект. Далее, открыть новый файл java, в который будем записывать программный код агента.
Перед тем как создавать агента нам потребуется установить платформу JADE. Скачать архив с платформой можно с официального сайта JADE по ссылке: http://jade.tilab.com/. Но необходимо будет зарегистрироваться и получить подтверждение регистрации по электронной почте. Скачайте последнюю версию платформы. Распакуйте архив и откройте его. Архив содержит 3 папки:
Создайте отдельную папку, например, с названием Jade, и скопируйте содержимое всех трех папок из архива в новую папку (для упрощения адреса лучше всего новую папку создать в корне диска).
В результате мы получаем готовую платформу. Проверьте расположение таких файлов как:
Перед запуском платформы и дальнейшей работы с ней хотелось бы обозначить следующие моменты в архитектуре системы. Основными элементами мультиагентной системы являются Агенты. Мультиагентная платформа состоит из контейнеров, в которых "живут" Агенты. Контейнер может не содержать ни одного агента или содержать сколько угодно агентов. Каждый контейнер обладает своим сетевым адресом и именем. Есть особый контейнер – главный контейнер – без него платформа не работает. Главный контейнер имеет несколько особенностей. Перечислим их:
Для запуска платформы необходимо запустить Eclipse IDE, создать новую рабочую среду и в ней открыть новый Java проект (рис. 6.10).
(рис 6.10) Новый Java проект в Eclipse IDE
Далее переходим в окно создания проекта, задаем имя и нажимаем Next. В следующем окне необходимо подключить к нашему проекту библиотеки Jade (рис. 6.11)
(рис 6.11) Библиотеки Jade в проекте
Для подключения библиотек необходимо нажать Add External JARs и указать путь к библиотекам. Они находятся в папке \lib, куда были скопированы все файлы архивов платформы Jade. После этого, нажимаем Finish.
(рис 6.12) Новый класс
Теперь к проекту подключены библиотеки JADE. Создаем нового Агента из примера "PingAgent". Для этого необходимо создать новый класс в папке \src (рис. 6.12).
Теперь вводим информацию, создаем новый класс в папку Project/src в пакете sprintintel с именем PingAgent. Также на этом этапе необходимо записать в поле "Superclass" следующую информацию: java.lang.Agent и нажать Finish.
Сейчас у нас есть новый Агент и подключены необходимые библиотеки. Необходимо задать программный код Агента. Для этого открываем PingAgent.java из папки examples\PingAgent, которая находится в директории, в которую распакованы архивы Jade. Копируем все содержимое примера в нашего агента. Посмотрим на код нашего агента, в нем есть ошибки, которые необходимо исправить (рис. 6.13).
(рис 6.13) Ошибка в коде Агента
Эта ошибка вполне понятна. Необходимо исправить имя пакета, который мы используем. В нашем случае – это sprintintel. Далее необходимо обязательно сохранить изменения в файле Агента.
Для того чтобы запустить Агента и мультиагентную платформу переходим меню Run Configuration. В нем добавляем новую конфигурацию запуска Java-приложения. На рис. 6.14 и рис. 6.15 показаны параметры главного класса (MainClass) – jade.Boot и видно название настоящего проекта. В поле Program Argument вкладки Arguments вводим значении "–gui". Таким образом, мы определили, что нам необходимо запустить платформу и главный контейнер, который уже содержит дополнительный класс нашего агента PingAgent.
(рис 6.14) Конфигурация запуска, вкладка Arguments
(рис 6.15) Конфигурация запуска. Вкладка Main
Нажимаем на кнопку Run и запускаем нашу платформу. Платформа запущена, и мы видим пользовательский интерфейс, в котором запущена платформа и два базовых агента AMS и DF. Чтобы добавить в главный контейнер нашего Агента "Ping", необходимо войти во вкладку Action и добавить класс нашего Агента (рис. 6.17).
(рис 6.16) Пользовательский интерфейс платформы Jade
(рис 6.17) Class Агента Ping Agent в пакете sprintintel
Наш агент теперь находится в главном контейнере. В чем же суть Агента в примере PingAgent? Основная задача этого агента – это отправлять ответ в виде слова "Ping" при запросе в виде слова "Pong". В коде эта часть выглядит так:
public void action() {
ACLMessage msg = myAgent.receive();
if(msg != null){
ACLMessage reply = msg.createReply();
if(msg.getPerformative()== ACLMessage.REQUEST){
String content = msg.getContent();
if ((content != null)
(content.indexOf("ping") != -1)){
myLogger.log(Logger.INFO, "Agent
"+getLocalName()+" - Received PING Request
from "+msg.getSender().getLocalName());
reply.setPerformative(ACLMessage.INFORM);
reply.setContent("pong");
}
}
}
}
При запуске агента в главном контейнере он обращается в "желтые страницы" – агент DF, который записывает у себя адрес этого агента. Все запросы осуществляются через DF агента. Таким образом, в систему могут входить и выходить новые агенты и быть "на связи".
Теперь проверим работу нашего Агента и отправим ему запрос с помощью DummyAgent – готовый агент с пользовательским интерфейсом, посредством которого возможно отправлять сообщения на другие агенты и получать от них ответы. Для запуска DummyAgent необходимо нажать кнопку StartDummyAgent в ряду кнопок быстрого доступа пользовательского интерфейса платформы. В самом Агенте необходимо составить запрос в правильной форме, как это показано на рис.6.18
(рис 6.18) DummyAgent, запрос на Ping агента
(рис 6.19) Ответ на запрос DummyAgent
После правильного заполнения запроса необходимо нажать на кнопку: отправить сообщение. DummyAgent позволяет отправляет запрос с одного точного адреса агента на точный адрес другого агента даже если они находится в различных контейнерах. Но эти агенты должны быть прописаны в одной мультиагентной системе (т.е. известны DF агентам). Справа, нажав на значок очки, в белом поле пользовательского интерфейса DummyAgent, можно увидеть, пришел ли ответ и какого он содержания (рис.6.19).
Для того, чтобы проще было отслеживать отправку сообщений, можно запустить еще одного агента Sniffer, в котором отражаются стрелочками отправленные сообщения между агентами (рис.6.20).
(рис 6.20) Агент Sniffer
В этой главе были описаны основные принципы разработки мультиагентных систем и разобран пример работы с платформой JADE.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.