WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Planification multi-agents pour la composition dynamique

( Télécharger le fichier original )
par Brakni Ilhem
Université de Tébessa -algerie - Ingénieur d'état en informatique 2010
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

VI.3. Implémentation de l'agent médiateur

public class Agent_Mediateur extends Agent{ ArrayList<String> Idents_AS;

public class Structure_entree_sortie{

String type_reponse;

ArrayList<String> objet_reponse;

} else {

}

public void setup() {

addBehaviour(new CyclicBehaviour(this){

public void action(){

ACLMessage msg_recu=receive();

// l'agent client agit selon le destinataire du massage reçu if(msg_recu.getSender().equals("Agent_Administrateur")) {

// récuperer les identificateurs des agents service // depuis le message envoyé par l'agent dministrateur ArrayList<String> liste=(ArrayList<String>)

msg_recu.getContentObject(); ListIterator<String> iter = liste.listIterator(); while(iter.hasNext())

{

Idents_AS.add(iter.next());

}

if(msg_recu.getSender().equals("Agent_Client"))) {

if(// le performatif du msg_recu== Cancel) {

// Diffusion du message "Annuler" aux // agents service

ACLMessage msg = new

ACLMessage(ACLMessage.CANCEL); ListIterator<String> iter=

Idents_AS.listIterator(); while(iter.hasNext())

{

msg.addReceiver(new AID(iter.next(),AID.ISLOCALNAME));

}

send(msg) ;

Cet agent est implémenté par la classe « Agent_Mediateur » qui hérite la classe jade.core.Agent. Ces différents actions sont regroupées au niveau de la methode setup(). Il exploite dans cette methode la fonction « Traiter_reponses_AS() » présentée ci-avant pour l'élaboration d'un plan solution au problème de l'utilisateur.

else

{

// Appliquer l'algorithme de planification

}

}

else // Message venant de l'un des agents service {

// Recuperer les réponses des agents service // dans le vecteur "Reponses_AS" Vector<Structure_entree_sortie> Reponses_AS=

(Vector<Structure_entree_sortie>)

msg_recu.getContentObject();

// Appeler la fonction "Traiter_reponses_AS" Vector<Structure_entree_sortie> retour_fonction=Traiter_reponses_AS

(Reponses_AS);

}

}

}

VI.4. Implémentation de l'agent service

public class Agent_Service extends Agent{

public class Structure_entree_sortie{

String type_reponse;

ArrayList<String> objet_reponse;

}

public void setup() {

// récuperer description OWL-S du service représenté

// appeler Traducteur OWL-S vers operateurs STRIPS

addBehaviour(new CyclicBehaviour(this){

public void action(){

// Recevoir message de l'agent médiateur ACLMessage msg_recu=receive();

if(// le performatif du message est CANCEL) {

// Arreter traitement en cours

Cet agent est implémenté par la classe « Agent_Service » qui hérite la classe jade.core.Agent.

else

{

// Appliquer algorithme de recherche de // solution

// Renvoyer résultats trouvées à l'agent // médiateur

// (solution_trouvée, solution_non_trouvée ou // bien nouveau_sousbut)

}

}

VII. Interfaces du système

Afin de mieux exploiter notre système, nous avons l'enrichir par un une interface graphique facilitant l'utilisation de ses différentes fonctionnalités.

Premièrement, le lancement du système mène à afficher son interface d'accueil suivante, permettant à un utilisateur de se connecter comme un client ou un administrateur.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Je ne pense pas qu'un écrivain puisse avoir de profondes assises s'il n'a pas ressenti avec amertume les injustices de la société ou il vit"   Thomas Lanier dit Tennessie Williams