
- •Курсова робота
- •«Агентно орієнтоване програмування»
- •1. Агентно-орієнтоване програмування
- •2. Аоп як можлива еволюція ооп
- •Причини виникнення
- •Постановка завдання
- •Реалізації
- •3. Зв'язок аоп і ооп
- •4. Деякі поняття
- •4.1. Види середовищ:
- •4.2. Структура агента
- •4.3. Загальні Приклади використання
- •4.5. Приклад
- •5. Агентно орієнтовані системи на підприємствах
- •5.1. Програмний агент
- •5.2. Інтерфейсні агенти
- •5.3. Internet-агенти
- •6. Агентна платформа відповідно до специфікації fipa
- •7.1. Модель агента в MadKit Структура агента в MadKit наведена на мал. 5.
- •Агент в MadKit складається з 4 обов'язкових розділів:
- •7.2. Взаємодія агентів в MadKit
- •7.3. Приклад агентно моделі процесу поширення вірусу:
- •Переваги засобів для розробки аоп:
4.2. Структура агента
Структурно агента можна зобразити наступним чином:
Агент
|
|-> Ресурси
|
|-> Об'єкти
|
|-> Функції
|
|-> Дані
4.3. Загальні Приклади використання
Типовим прикладом агентно орієнтованого підходу можна назвати спеціальні програми, що імітують дії гравців в комп'ютерних іграх. Поширена назва для таких програм - боти. Однак, використання ботів не обмежується застосуванням в комп'ютерних іграх. Їх можна зустріти як елемент програми в чатах і форумах, що виконують роль «співрозмовника» і підтримуючих «дискусії». Однак деякі боти виконують не тільки роль імітаторів в процесі спілкування або гри, вони використовуються для редагування текстової інформації (у тому числі і в Вікіпедії), для налагодження мережевих з'єднань, модерування ресурсів і т. п.
4.4. JADE
Дуже просто створити агента в JADE, визначивши метод його ініціалізації:
import jade.core.Agent;
public class BookBuyerAgent extends Agent {
protected void setup () {
// Printout a welcome message
System.out.println ("Hello! Buyer-agent" + getAID (). GetName () + "is ready.");
}
}
Фактична робота, яку агент повинен робити, як правило, здійснюється в рамках «поведінки агента». Поведінка представляє собою завдання, яку агент може виконувати.
Агент може виконувати одночасно кілька моделей поведінки. Однак важливо зауважити, що розклад кількох моделей поведінки в агента має не упереджувальний характер, а кооперативний. Це означає, що коли поведінка виповнюється за розкладом, його метод action () викликається і працює до тих пір, поки не завершиться. Тому саме програміст визначає, коли агент переключається від виконання даного поведінки до виконання наступного.
З урахуванням наведеного механізму планування важливо підкреслити, що поведінка, подібна представленій нижче, перешкоджає виконанню будь-якої іншої поведінки, бо його action() метод ніколи не завершується.
public class OverbearingBehaviour extends Behaviour {
public void action () {
while (true) {
// Do something
}
}
public boolean done () {
return true;
}
}
4.5. Приклад
Типовим прикладом агентно орієнтованого підходу можна назвати спеціальні програми, що імітують дії гравців в комп'ютерних іграх. Поширена назва для таких програм - боти. Однак, використання ботів не обмежується застосуванням у комп'ютерних іграх. Їх можна зустріти як елемент програми в чатах і форумах, що виконують роль "співрозмовника" і підтримуючих "дискусії". Однак деякі боти виконують не тільки роль імітаторів в процесі спілкування або гри, вони використовуються для редагування текстової інформації (в тому числі і у Вікіпедії), для налагодження мережевих з'єднань, модерування ресурсів і т. п.
Розглянемо предметну область «Торгівля книгами», на якій будуть проілюстровані кроки, необхідні для створення агентно-орієнтованих додатків з JADE.
Кожен купує агент отримує назву книги, яку він повинен придбати в якості аргументу командного рядка і періодично запитує всіх відомих йому продавців-агентів, щоб зробити запит про покупку. Як тільки пропозиція отримано, агент-покупець підтверджує його і відправляє замовлення. Якщо більше ніж один агент-продавець надає цю книгу, покупець вибирає найкращу пропозицію (найкращу ціну). Купивши необхідну книгу, агент-покупець завершує роботу. Кожен агент-продавець має мінімальний інтерфейс, за допомогою якого користувач може додавати нові назви (і їх ціну) в локальний каталог книг, виставлених на продаж. Агенти-продавці знаходяться в стані очікування запитів від агентів-покупців. Коли вони отримують запит на книгу, вони перевіряють, чи є дана книга в їх каталозі. Якщо так, то вони відповідають пропозицією з ціною. Інакше відмовляють. Коли вони отримують замовлення на покупку, вони обробляють його і видаляють запитану книгу зі свого каталогу.