Documente Academic
Documente Profesional
Documente Cultură
Jade
Jade
Introducere
Un framework software (middleware) pentru dezvoltarea de sisteme multi-agent Bazat pe standardele FIPA pentru agenti inteligenti
FIPA Foundation for Intelligent Physical Agents (http://www.fipa.org)
Introducere
JADE cuprinde:
Un mediu de rulare pentru agenti
Respecta standardele FIPA pentru platforme de agenti Module cu functionalitati predefinite si Interfete abstracte pentru sarcini care depind de aplicatie. Faciliteaza administrarea si monitorizarea agentilor
Arhitectura
PLATFORMA o multime de containere active
Platforma pe care ruleaza agentii poate fi distribuita pe mai multe masini Fiecare masina are rolul unui container pentru agenti
Furnizeaza un mediu de rulare complet pentru executia agentilor Da posibilitatea ca mai multi agenti sa fie executati in paralel
Componentele platformei
Retine informatii despre ceilalti agenti Pe o platforma poate exista doar un singur AMS AMS-ul contine un director cu identificatori pentru fiecare agent (AID-uri) si starile fiecarui agent.
Orice agent trebuie sa se inregistreze la un AMS pentru a obtine un AID valid (unic).
Componentele platformei
Publica serviciile pe care le pot furniza agentii care s-au inregistrat la DF, pentru a se facilita cooperarea.
este la fel de simplu precum extinderea clasei jade.core.Agent o clasa de baza pentru definirea agentilor de catre utilizator; Clasa jade.core.Agent cuprinde:
Toate facilitatile necesare pentru interactiuni de baza cu platforma (inregistrare, configurare, ), Un set de metode de baza ce pot fi folosite pentru implementarea comportamentului unui agent (e.g. trimitere/primire de mesaje, folosirea protocoalelor de interactiune de baza,).
Fiecare functionalitate/serviciu furnizat de un agent ar trebui implementat ca unul sau mai multe comportamente ce se executa concomitent.
Fiecare agent are un ID unic AID AID este o instanta a clasei jade.core.AID Un obiect AID:
Un nume unic global al unui agent de forma: <nume-agent>@<nume-platforma> Un numar de adrese
Adresele platformei unde se executa agentul Folosite doar atunci cand agentul doreste sa comunice cu un alt agent de pe o platforma diferita.
Un agent HelloWorld
import jade.core.Agent; public class HelloWorldAgent extends Agent { protected void setup() { System.out.println(Hello World!); System.out.println(My name is + getAID().getName() ); } }
Agentii nu pot fi rulati direct; ei au nevoie de un mediu care sa ofere anumite servicii mediul de rulare JADE Pentru rularea unui agent acesta trebuie:
compilat:
javac classpath <JADE-jars> HelloWorldAgent.java
Un agent JADE poate fi intr-una din starile din figura, dupa cum este specificat in standardul FIPA
Notiunea de comportament
Agentii ruleaza independent si in paralel cu alti agenti. Cea mai directa abordare este de a rula fiecare agent intr-un thread Java asa cum se face si in JADE. Totusi mai exista nevoia unui paralelism suplimentar deoarece un agent poate avea mai multe sarcini. O solutie posibila este folosirea de thread-uri aditionale pentru a rula in paralel fiecare activitate a agentului;
S-a dovedit ineficienta, mai multe informatii se gasesc in Ghidul Programatorului JADE.
Notiunea de comportament
Pentru un suport eficient al activitatilor paralele in cadrul unui agent, JADE a introdus conceptul de comportament. Un comportament este la baza o entitate ce trateaza evenimente (Event Handler). Un eveniment este o schimbare relevanta a starii
ex.: Receptionarea unui mesaj sau a unei intreruperi de tip Timer (dupa trecerea unui anumit timp).
Comunicarea agentilor
Sniffer