Новости

НОУ ІНТУЇТ | лекція | Знайомство з JADE

  1. Мета лабораторної роботи
  2. Інструкція по виконанню лабораторної роботи
  3. Виконання роботи
  4. Завдання для самостійної роботи

Анотація: Знайомство з мультиагентной платформою JADE, установка платформи на робочий комп'ютер, освоєння протоколу передачі даних між агентами на платформі, запуск головного контейнера платформи і нового агента, на прикладі агентів "PingAgent" - запит-відповідь.

Мета лабораторної роботи

Анотація: Знайомство з мультиагентной платформою JADE, установка платформи на робочий комп'ютер, освоєння протоколу передачі даних між агентами на платформі, запуск головного контейнера платформи і нового агента, на прикладі агентів PingAgent - запит-відповідь

Презентацію до лабораторної роботи Ви можете завантажити тут .

Познайомиться з мультиагентной платформою 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-bin-4.X - папка з виконуваними файлами;
  • JADE-bin-4.X - папка з виконуваними файлами;
  • JADE-example-4.X - папка з прикладами.

Створіть окрему папку, наприклад, з назвою Jade, і скопіювати вміст всіх трьох папок з архіву в нову папку (для спрощення адреси найкраще нову папку створити в корені диска).

В результаті ми отримуємо готову платформу. Перевірте розташування таких файлів як:

  • build.xml - знаходиться в корені папки Jade (створеної нами);
  • jade.jar - знаходиться в папці lib /;
  • папки вихідних файлів examples / і jade / - знаходяться в src /.

Перед запуском платформи і подальшої роботи з нею хотілося б визначити такі моменти в архітектурі системи. Основними елементами мультиагентной системи є Агенти. Мультиагентна платформа складається з контейнерів, в яких "живуть" Агенти. Контейнер може не містити жодного агента або містити скільки завгодно агентів. Кожен контейнер має свій мережевим адресою та іменем. Є особливий контейнер - головний контейнер - без нього платформа не працює. Головний контейнер має кілька особливостей. Перерахуємо їх:

  • він повинен бути створений першим;
  • він повинен включати в себе двох спеціальних агентів:
    • AMS (agent management system) - агент, який управляє іншими агентами; він здатний створювати і зупиняти агентів;
    • DF (directory facilitation) - по суті представляє з себе жовті сторінки, в якому записуються адреси, імена та можливості агентів в системі.

Виконання роботи

Для запуску платформи необхідно запустити 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

Завдання для самостійної роботи

  1. Створити ще одного агента Ping1 і відправити запит двом агентам одночасно
  2. Змінити текст повідомлення запиту і відповіді.
  3. Створити Container1 (не головний) і створити в ньому агента.
  4. Запустити агентів в прикладі папки src / examples / bookTrading.

висновки

У цьому розділі були описані основні принципи розробки мультиагентних систем і розібраний приклад роботи з платформою JADE.

У чому ж суть Агента в прикладі PingAgent?

Уважаемые партнеры, если Вас заинтересовала наша продукция, мы готовы с Вами сотрудничать. Вам необходимо заполнить эту форму и отправить нам. Наши менеджеры в оперативном режиме обработают Вашу заявку, свяжутся с Вами и ответят на все интересующее Вас вопросы.

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: