Chapitre i : La plate forme multi agents JADE
3. onEnd () qui finalise l'exécution de l'objet
Behaviour avant qu'il ne soit retiré de la liste des comportements de
l'agent;
Il y a deux méthodes qui sont héritées pour
gérer la file de comportements d'agents :
addBehaviour(Behaviour) et removeBehaviour(Behaviour).
Les comportements d'un agent JADE sont stockés dans une
File (FIFO) avec remise :
1. Prendre un comportement.
2. exécuter la méthode action () : non
interrompue (pas Thread) « atomique » donc il est alors
nécessaire de prendre certaines précautions lors de
l'implémentation de cette méthode, à savoir éviter
des boucles infinies ou des opérations trop longues. La façon la
plus classique de programmer un comportement consiste à le
décrire comme une machine à états finis. L'état
courant de l'agent étant conservé dans des variables locales.
3. Tester done : si la méthode done() retourne true donc
retirer le comportement de la file sinon remet à la fin du file.
La plate-forme JADE fournit sous forme de classes un ensemble
de comportements ainsi que des sous-comportements prêt à l'emploi.
Elle peut les exécuter selon un schéma
prédéfini.
Figure 1.6 : le graphe d'héritage de la classe
Behaviour [Loï02]
1. Les Behaviours simples : La plate-forme JADE
offre trois types de Behaviours simple:
1.1.One-shotBehaviour : Un
one-shotBehaviour est une instance de la classe
jade.core.behaviours.OneShotBehaviour.
Il a la particularité d'exécuter sa tâche
une et une seule fois puis il se termine. La classe
OneShotBehaviour implémente
la méthode done()et elle retourne toujours
true.
Chapitre i : La plate forme multi agents JADE
1.2.CyclicBehaviour : Un cyclic
Behaviour est une instance de la classe
jade.core.behaviours.CyclicBehaviour. Il a la particularité
d'exécute sa tâche d'une manière répétitive.
La classe CyclicBehaviour implémente la méthode
done()qui retourne toujours false.
1.3.GenericBehaviour : Un Generic
Behaviour est une instance de la classe
jade.core.behaviours.Behaviour. Le Generic Behaviour vient entre
le OneshotBehaviour et le Cyclic Behaviour de faite qu'il
n'implémente pas la méthode done() et laisse son
implémentation au programmeur, donc il peut planifier la terminaison de
son Behaviour selon ces besoin.
2. Les Behaviours planifiés : Pour
planifier une tâche d'un agent JADE, il existe deux types de Behaviours
:
2.1.WakerBehaviour (timeouts) : Le
WakerBehaviour est implémenté de façon à
exécuter la méthode onWake() après une
période passée comme argument au constructeur. Cette
période est exprimée en millisecondes. Le Behaviour prend fin
juste après avoir exécuté la méthode
onWake().
2.2.TickerBehaviour (timeouts
répétés): Le TickerBehaviour est
implémenté pour qu'il exécute sa tâche
périodiquement par la méthode onTick(). La durée
de la période est passée comme argument au constructeur.
3. Les Behaviours composés : Les
Behaviours (simples et planifiés) ne peuvent pas répondre d'une
manière efficace à tous les besoin d'un développeur d'un
système multi-agents. Pour cela JADE offre un ensemble de Behaviours
composés pour présenter des tâches complexes. La classe
mère de toutes les autres complexes est la classe
jade.core.behaviours.CompositeBehaviour. noter que l'ordre
d'exécution des Behaviours est à la charge des deux
méthodes scheduleFirst()et scheduleNext()que les
classes héritant de la classe CompositeBehaviour doivent
implémenter. Le programmeur n'est pas dans l'obligation d'utiliser
directement la classe CompositeBehaviour car il on dispose de trois
classes filles. 3.1.SequentielBehaviour : Dans le
SequentielBehaviour: Le Behaviour commence
par exécuter le premier sous-Behaviour et lorsque termine
son exécution (sa
méthode done() retourne true), il passe
au prochain Behaviour, et ainsi de suite.
Cependant, Les sous-Behaviours sont ajoutés au
sequentielBehaviour par la
méthode addSubBehaviour() et l'ordre de l'ajout
détermine l'ordre d'exécution.
Generation des diagrammes AlliviL d partir de programmes
JADE
|