Sunteți pe pagina 1din 18

JADE

Java Agent Development Framework


Ungureanu Bogdan

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)

Sursele in intregime in Java

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

O librarie de clase Java care ofera:


 

O colectie de utilitare grafice




Arhitectura
PLATFORMA o multime de containere active

CONTAINER o instanta care se executa a mediului JADE

Containerul principal al platformei, toate containerele se inregistreaza la acesta cand pornesc

JADE respecta standardul FIPA


 

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


Fiecare agent se executa ca un singur Thread Java.

Primul container pornit este containerul principal


Contine un index cu toate celelalte containere => agentii se pot descoperi si pot interactiona unul cu celalalt indiferent de locatia acestora in platforma.

Modelul platformei FIPA

Componentele platformei


Agent Management System (AMS)


Autoritatea principala a platformei


Are control asupra accesului si folosirii resurselor existente in cadrul 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


Directory Facilitator (DF)


Agentul care furnizeaza un serviciu de tip yellow pages pentru o platforma.


Publica serviciile pe care le pot furniza agentii care s-au inregistrat la DF, pentru a se facilita cooperarea.

Message Transport System


Se mai numeste si Agent Communication Channel (ACC), Componenta software ce controleaza schimbul de mesaje in interiorul platformei cat si spre/de la o alta platforma

Crearea unui agent in JADE




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.

Identificarea agentilor - AID


  

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() ); } }

Rularea unui agent




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

Pornit din mediul de rulare JADE:


java classpath <JADE-jars> jade.Boot elodia:HelloWorldAgent

Ciclul de viata al unui agent




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).

The agent execution model

Comunicarea agentilor

Sniffer

S-ar putea să vă placă și