Upload
ryadh-benammar
View
289
Download
0
Embed Size (px)
Citation preview
Introduction la Platform JADECliquez pour modifier le style des Java Agent DEvelopment sous-titres du masque Framework
5/8/12
Une plateforme SMA ???? Une
infrastructure de logiciels utilise comme environnement pour la cration, le dploiement et l'excution d'un ensemble d'agents. un environnement pour crer et tester
Elle fournit :
des agents;
collection de services offerts aux
dveloppeurs (bibliothque); 5/8/12
La plateforme JADE plate-forme multi-agents cr par le laboratoire
TILAB: Collaboration de Telecom Italia, Motorola, Whitestein Technologies AG, Profactor GmbH, and France Telecom R&D.Free et Open Source. 100 % Java; Une Interface graphique et outils de dbogage; conformes aux normes FIPA (Foundation
Intelligent Physical Agents ): un standard IEEE.
for
5/8/12
Architecture JADE (1/3)Software
Agent
Agent Management System (AMS)
Agent Plate-Form (AP)
Directory Facilitator (DF)
Message Transport system (MTS)
Message Transport system (MTS)
Agent Plate-Form (AP)
5/8/12
Architecture JADE (2/3)L'Agent Platform (AP) constitue
l'infrastructure physique sur laquelle se dploient les agents (Container). contient 1 ou plusieurs Containers : 1 seul maincontainer. AMS Agent Management System supervise
Chaque main-container comporte:
l'enregistrement des agents, leur authentification, leur accs et l'utilisation du systme (pages blanches).
DF Director Facilitor fournit un service de
pages jaunes la plate-forme (enregistrement, 5/8/12 d enregistrement des services, recherche, ).
Architecture JADE (3/3)Agent Managem ent White System page service Director y Facilitat Yellow or page service local cache of agent Inter-Platforms addresses Message Transport (IIOP)5/8/12
Agent Communication Channel Intra-Container InterMessage Containers Transport Message (Java events) Transport (Java RMI)
JADE PlatformContainer Agen t Agen t Container Agen t Agen tMessag e
JADE PlatformContainer Agen t Agen t
Agen t
JADE PlatformContainer Agen t Agen t Agen t
5/8/12
Les AgentsChaque agent doit s'enregistrer un AMS pour
avoir un AID. Il n'y a qu'un AMS par plate-forme.L'Agent Identifier (AID) est un identifiant prcis
d'un agent. On lui donne plusieurs paramtres tels que l'adresse de transport, l'adresse de service de rsolution de nom, Un exemple est : (Home Agent Platform)
5/8/12
Quelques commandesLancement de la Platformjava -cp lib\jade.jar jade.Boot guijava -cp lib\jade.jar jade.Boot -gui -platform-id MyPlatform
Lancement dun containerjava -cp lib\jade.jar;classes jade.Boot -container -host localhost -port 1099
Lancement dun Agent:Compilation: javac cp F:\jade\lib\jade.jar PingAgent.java
Lancementjava -cp lib\jade.jar;chemin des classes jade.Boot 5/8/12 -gui agents AgentName:AgentClass
PratiqueExcuter lexemple de BOOK TRADING:
dans le rpertoir src\examples\bookTrading
5/8/12
La programmation des Agents
5/8/12
Structure de base dun agentUn Agent JADE hrite de la classe
jade.core.Agent.
Il doit implmenter la mthode setup().public class firstAgent extends Agent { protected void setup() { // message daccueil System.out.println(je suis votre premier agent, mon nom est: +getAID().getName()); } }
crire votre premier Agent et lancer le 5/8/12
en utilisant la plateforme : crer un projet
Structure de base dun agentLa mthode setup() est utilis gnralement
pour initialiser lagent (ex: enregistrement des services offerts). mthode: doDelete().
Pour arrter lagent il faut faire appel la Tester cette mthode sur votre agent. Si la mthode void takeDown() est
implment elle est xcut juste avant que lagent termine. oprations de fin comme la suppression des 5/8/12 services offerts.
La mthode takeDown() est utilis pour des
Le passage dargumentLes arguments peuvent tre passs un
agent par la mthode getArguments():Exemple de code :Object[] args = getArguments(); if (args != null) { for (int i = 0; i < args.length; i++) { System.out.println("l'argument n: " + i + " est: " + (String) args[i]); } }
Tester le code prcdant dans votre
agent.
5/8/12
Enregistrement dun service
5/8/12
Enregistrement dun servicePour enregistrer un service ,un agent doit
fournir la description de ce service .Une instance de la classe DFAgentDescription
peut contenir la description dun ou plusieurs services fournis par un agent. class ServiceDescription.
Un service est dcrit par une instance de la Un service est enregistr en utilisant la
mthode register() de la class DFService, cette dernire permet de communiquer avec lagent DF de la Platform.5/8/12
Enregistrement dun serviceExemple de code:
try { // initialisation de la description DFAgentDescription dfd = new DFAgentDescription(); dfd.setName(getAID()); /* service 1*/ ServiceDescription sd1 = new ServiceDescription(); sd1.setType("calcul"); sd1.setName("calculus service"); 5/8/12
Enregistrement dun serviceTester le code prcdent dans votre
agent et voir en utilisant lagent sniffer les communication entre votre agent et lagent DF.
5/8/12
La recherche dun serviceLes mmes tapes que lenregistrement : un
agent doit fournir la description du service quil cherche .Une instance de la classe
DFAgentDescription: le modle de la recherche .Un service est dcrit par une instance de la
class ServiceDescription.Un service est cherch en utilisant la
mthode search () de la class DFService, cette dernire permet de communiquer avec lagent DF de la Platform. 5/8/12
La recherche dun serviceExemple de code:try { // la cration du modle de recherche DFAgentDescription template = new DFAgentDescription(); // la description du service cherch ServiceDescription sd = new ServiceDescription(); sd.setType("calcul"); template.addServices(sd); // la recherche du service DFAgentDescription[] list = DFService.search(this, template); // affichage des agents dcouverts AID [] agents= new AID[list.length];5/8/12
La recherche dun serviceCrer un autre agent qui fait la
recherche des services fournis par le premier Agent. utilisant lagent sniffer les diffrentes communications.
Lancer les deux agents et voir en
5/8/12
Les comptences dun agent (comportement ou Behaviour)
5/8/12
Behaviou Abstract simple not composable no interruptio n Simple Behaviouracti on( do ) ne ()
Abstr act cl as s
Abstract composes children; interrupt able CompositeBeha viour preAction() postAction()
OneShotBehav iour
CyclicBehav iour
bodyAction() addBehavi our() removeBehavi our()
don e= t r u e don e= fa ls e
SequentialBeha viour bodyAction()
ParallelBehav iour bodyAction()
FSMBehavi our bodyAction()
5/8/12
Finite State Mach ine
5/8/12
Autres Types de behaviourWakerBehaviour: Le WakerBehaviour est
implment de faon excuter la mthode handleElapsedTimeout() aprs une priode passe comme argument au constructeur. excute sa tche priodiquement par la mthode onTick().
Le TickerBehaviour : est implment pour qu'il
L ajout dun behaviour ce fait travers la Exemple: this.addBrhavior(newclassDeBehavior()):
mthode addBehaviour de la class Agent. cette mthode ajout le behavior de5/8/12
Implmentation dun exempleOn va implment deux types dagent:
AgentClcul & agentClient.Agent client Demande de calculs Rsultats de calculs Agent de calculs
5/8/12
Travail faireCrer un agent qui fournis le service de
calcul.(enregistrement).Crer un agent client qui veut faire des
calculs ( Procdure de recherche.
On va utiliser un: Behaviour de type CyclicBehaviour pour
lagent de calcul. lagent client.
Behaviour de type Behaviour pour
5/8/12
Le lancement des Agents a partir dune application Java.
5/8/12
Agents a partir dune application JavaLa package Jade fournit des classes pour
permettre de lancer des agents partir dune application Java:Une instance de lenvironnement dexcution
tape 1: prparation
(jade.core.Runtime)
Runtime rt = Runtime.instance();
un profile contient des informations tels que
(host name, port number, ...)Profile p = new ProfileImpl();
tape 1: lancement de la Plateforme5/8/12 La cration et lancement dun container :
Agents a partir dune application Javatape 3: lancement des agentsUn contrleur dagent:AgentController agent1 = ac.createNewAgent("AgentName", "AgentClass", new Object[0]); //new Object[0]: reprsente les paramtres quon veut passer lagent.
Lancement de lagent :agent1.start();
Exemple : lancement du RMA.AgentController RMAagent = ac.createNewAgent("rma", "jade.tools.rma.rma", new Object[0]); RMAagent.start(); 5/8/12