IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation par agent Java Discussion :

Les communications des agents JADE [Tutoriel]


Sujet :

Programmation par agent Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé

    Avatar de Djug
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    2 980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 980
    Par défaut
    Le message d’erreur est très clair :
    GRAVE: Destination nadjeh-PC:1099/JADE does not exist or does not support mobility
    Comme vous avez dit que vous arriviez à faire le ping entre les machines, donc je suppose que la 2e machine n’utilise pas l’addon correctement (lancement de la plateforme avec la prise en charge de JIPMS).
    Si vous fermez la fenêtre, cela veut dire que vous avez tout bonnement arrêté Jade avant de le lancer une nouvelle fois sans la prise en charge du module de la mobilité.
    Vous pouvez lancer des agents sans passer par Eclipse, via la ligne de commande ou vian le GUI de JADE. Comme je l’ai déjà expliqué ici:
    http://www.developpez.net/forums/d79...e/#post5022111
    Sinon, le temps (limite) défini pour la migration est largement suffisant (à moins que vos agents doivent visiter plusieurs machines en transportant avec eux plusieurs Kb de données).
    En tout cas, il est possible d’augmenter ce temps, on modifiant et on recompilant le code source de jade.

  2. #2
    Membre actif
    Femme Profil pro
    53544943
    Inscrit en
    Décembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : 53544943
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 11
    Par défaut jad is closing down now
    salut à tous , je travaille avec la plateforme et lorsque je lance un agent j' rencontrais cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    janv. 05, 2014 2:15:24 PM jade.core.Runtime beginContainer
    Infos: ----------------------------------
        This is JADE 4.2.0 - revision 6574 of 2012/06/20 15:38:00
        downloaded in Open Source, under LGPL restrictions,
        at <a href="http://jade.tilab.com/" target="_blank">http://jade.tilab.com/</a>
    ----------------------------------------
    Retrieving CommandDispatcher for platform null
    janv. 05, 2014 2:15:27 PM jade.imtp.leap.LEAPIMTPManager initialize
    Infos: Listening for intra-platform commands on address:
    - jicp://192.168.1.5:1099
     
    janv. 05, 2014 2:15:29 PM jade.core.BaseService init
    Infos: Service jade.core.management.AgentManagement initialized
    janv. 05, 2014 2:15:29 PM jade.core.BaseService init
    Infos: Service jade.core.messaging.Messaging initialized
    janv. 05, 2014 2:15:29 PM jade.core.BaseService init
    Infos: Service jade.core.resource.ResourceManagement initialized
    janv. 05, 2014 2:15:29 PM jade.core.BaseService init
    Infos: Service jade.core.mobility.AgentMobility initialized
    janv. 05, 2014 2:15:29 PM jade.core.BaseService init
    Infos: Service jade.core.event.Notification initialized
    janv. 05, 2014 2:15:29 PM jade.core.AgentContainerImpl joinPlatform
    Grave: Some problem occurred while joining agent platform.
    jade.core.ServiceException: Error while booting mandatory service jade.core.messaging.Messaging [nested java.lang.NoClassDefFoundError: jade/util/BasicProperties]
    	at jade.core.AgentContainerImpl.bootAllServices(AgentContainerImpl.java:472)
    	at jade.core.AgentContainerImpl.startNode(AgentContainerImpl.java:408)
    	at jade.core.AgentContainerImpl.joinPlatform(AgentContainerImpl.java:492)
    	at jade.core.Runtime.createMainContainer(Runtime.java:166)
    	at jade.Boot.main(Boot.java:89)
    Nested Exception:
    java.lang.NoClassDefFoundError: jade/util/BasicProperties
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Unknown Source)
    	at jade.core.messaging.MessagingService$CommandTargetSink.installMTP(MessagingService.java:1116)
    	at jade.core.messaging.MessagingService$CommandTargetSink.handleInstallMTP(MessagingService.java:1028)
    	at jade.core.messaging.MessagingService$CommandTargetSink.consume(MessagingService.java:969)
    	at jade.core.CommandProcessor$SinksFilter.accept(CommandProcessor.java:253)
    	at jade.core.Filter.filter(Filter.java:89)
    	at jade.core.Filter.filter(Filter.java:90)
    	at jade.core.Filter.filter(Filter.java:90)
    	at jade.core.CommandProcessor.processIncoming(CommandProcessor.java:229)
    	at jade.core.BaseNode.serveVerticalCommand(BaseNode.java:163)
    	at jade.core.BaseNode.serveHorizontalCommand(BaseNode.java:111)
    	at jade.imtp.leap.NodeLEAP.accept(NodeLEAP.java:60)
    	at jade.core.messaging.MessagingProxy.installMTP(MessagingProxy.java:151)
    	at jade.core.messaging.MessagingService.boot(MessagingService.java:322)
    	at jade.core.AgentContainerImpl.bootAllServices(AgentContainerImpl.java:468)
    	at jade.core.AgentContainerImpl.startNode(AgentContainerImpl.java:408)
    	at jade.core.AgentContainerImpl.joinPlatform(AgentContainerImpl.java:492)
    	at jade.core.Runtime.createMainContainer(Runtime.java:166)
    	at jade.Boot.main(Boot.java:89)
    Caused by: java.lang.ClassNotFoundException: jade.util.BasicProperties
    	at java.net.URLClassLoader$1.run(Unknown Source)
    	at java.net.URLClassLoader$1.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	... 20 more
    janv. 05, 2014 2:15:29 PM jade.core.messaging.MessageManager shutdown
    Infos: MessageManager shutting down ...
    janv. 05, 2014 2:15:29 PM jade.core.Runtime$1 run
    Infos: JADE is closing down now.
    qu'est ce que je dois faire pour régler cette erreur? merci d'avance

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Par défaut
    Je veux essayer l'exemple de deux agents AgentA et AgentB avec Netbeans pourriez vous m'aider!!!

  4. #4
    Membre habitué
    Inscrit en
    Décembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 14
    Par défaut
    Citation Envoyé par Djug Voir le message
    Bonjour,

    voici un article sur Les communications des agents JADE

    http://djug.developpez.com/java/jade/communication/


    vos remarques sont les bienvenues.
    bonjour
    merci pour les tutoriels de création d'agent et de comportement j'ai bien exécuté le code.pour la communication l'agent A est bien lance et il est en attente de l'agent B.je n'arrive pas a lancer l'agent B.
    merci de m'aider

  5. #5
    Membre habitué
    Inscrit en
    Décembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 14
    Par défaut
    bonjour
    comment sont géré les conditions dans jade
    es qu'il propose une base de règle ou base de fait
    merci

  6. #6
    Expert confirmé

    Avatar de Djug
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    2 980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 980
    Par défaut
    .je n'arrive pas a lancer l'agent B.
    tu le lance à partie de la ligne de commande , ou directement à partir du GUI du JADE ,mais il faut que les classe de ton agents sont dans un dossier dont le chemin fait partie de la variable d'environnement classpath,
    en d'autre terme, si les classe de l'agent sont dans le dossier c:\AgentLand il faut ajouter se chemin à la variable d'environnement classpath


    j'ai pas compris ta 2e question

  7. #7
    Membre habitué
    Inscrit en
    Décembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 14
    Par défaut
    Citation Envoyé par Djug Voir le message
    tu le lance à partie de la ligne de commande , ou directement à partir du GUI du JADE ,mais il faut que les classe de ton agents sont dans un dossier dont le chemin fait partie de la variable d'environnement classpath,
    en d'autre terme, si les classe de l'agent sont dans le dossier c:\AgentLand il faut ajouter se chemin à la variable d'environnement classpath
    bonjour
    es qu'il faut que les deux agents A et B soient dans le même dossier pour qu'ils puissent envoyer et recevoir des messages
    parce que l'agent A est bien lance et il est en attente de l'agent B. mon problème est comment lance deux agent agents au même temps
    merci
    Citation Envoyé par Djug Voir le message
    j'ai pas compris ta 2e question
    je veux dire les connaissances d'un agent comment sont présenté es que sous forme de règle de production
    exemple si agent X fournit une offre avec un prix minimale alors agent Y accepte cet offre
    merci

  8. #8
    Expert confirmé

    Avatar de Djug
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    2 980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 980
    Par défaut
    les deux agents ne doivent pas forcement être sur le même dossier,

    comme je te l'ai déja dis, tu peux lancer une centaines d'agents en parallèle ou bien par la ligne de commande :

    java jade.Boot -container nomAgent:ClassAgnet
    ou directement à partir du GUI du JADE



    PS: il se peux que la commande ci dessus soit erronée, j'ai pas travaillé avec JADE depuis plus d'une année, et je l'ai pas actuellement sur ma machine

  9. #9
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Par défaut Agent JADE & MySql
    Citation Envoyé par Djug Voir le message
    Bonjour,

    voici un article sur Les communications des agents JADE

    http://djug.developpez.com/java/jade/communication/


    vos remarques sont les bienvenues.
    Bonjour ,
    j'ai réussi à faire la mobilité inter container ;
    et j'ai créer une class qui permet de faire la connexion à la BDD MySql et du récupéré les donnes;
    Mais lorsque j'ai essayé de faire que mon agent mobile récupérer ces donnes j'ai trouve une erreur même la mobilité ne marche pas(pas de trace) !!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
     import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import jade.core.AID;
    import jade.core.Agent;
    import jade.core.behaviours.*;
    import jade.core.ContainerID;
    import java.sql.*;
    import javax.swing.table.DefaultTableModel;
    import com.mysql.jdbc.Driver;
    import com.mysql.jdbc.RowData;
    public class AgentProj extends Agent{
    	 Connection connection;
    	Record[][] dc = new Record [3][4]; // donnes recupere 
    	 String prod;
         public void setup(){
            addBehaviour(new B());
     
                            }
         private class B extends SimpleBehaviour{
     
        	 private boolean _done;
        	 private int step=0;
     
     
                public void action(){
                	System.out.println("My name is "+ getLocalName());
                	System.out.println(" I'm in Main container ");
            		Object[] args = getArguments();
            		if (args != null){
            			for (int i = 0; i < args.length; i++) {
            			   System.out.println(" I'm try to buy "+(String)args[i]);
            			   prod=(String)args[i];
            	    }	
            		}else{
            			System.out.println("No arguments");
            		}
             //************************************Migration 1*************************************
     
                 switch(step){
     
                         case 0:
                              System.out.println("\n Moving1 ...");
                              // on déclare la variable qui va contenir le nom du Container 
                             String containerName = "Container-1";
                             ContainerID destination = new ContainerID();
                             // on déclare la variable qui represente la destination
                              destination.setName(containerName);
                             // et on fait la migration
                             myAgent.doMove(destination);
                             System.out.println("Hello, I'm in container-1 ");
                             try
                             {
                                 Class.forName("com.mysql.jdbc.Driver");
                                 System.out.println("com.mysql.jdbc.Driver found");
                                 connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/agent","root","root");
                                 System.out.println("Connexion Ok");
                                 Statement instruction = connection.createStatement();
                         		 ResultSet resultat = instruction.executeQuery("SELECT * FROM tab1 where nom_prod LIKE'"+prod+"'");
                         		  while(resultat.next()){
                         			  if (resultat!= null){
                         				  System.out.println(resultat.getString("prix_prod")); 
     
                         			  }
                         		  }
                             }
                             catch(Exception cnfe)
                             {
                                 System.out.println("Error:"+cnfe.getMessage());
                             }
    				         step++;
                            break;
              //***************************** Migration 2***********************************************              
                        case 1:
                             System.out.println("\n Moving2 ...");
                          // on déclare la variable qui va contenir le nom du Container 
                             String containerName2 = "Container-2";
                             ContainerID destination2 = new ContainerID();
                             // on déclare la variable qui represente la destination
                             destination2.setName(containerName2);
                             // et on fait la migration
                             myAgent.doMove(destination2);
                             System.out.println("Hello I'm in container-2 ");
                             try
                             {
                                 Class.forName("com.mysql.jdbc.Driver");
                                 System.out.println("com.mysql.jdbc.Driver found");
                                 connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/agent2","root","root");
                                 System.out.println("Connexion Ok");
                                 Statement instruction = connection.createStatement();
                         		 ResultSet resultat2 = instruction.executeQuery("SELECT * FROM tab2 where nom_prod LIKE'"+prod+"'");
                         		  while(resultat2.next()){
                         			  if (resultat2!= null){
                         				  System.out.println(resultat2.getString("prix_prod")); 
     
                         			  }
                         		  }
                             }
                             catch(Exception cnfe)
                             {
                                 System.out.println("Error:"+cnfe.getMessage());
                             }
                             step++;
                             break;
              //******************************** Retour à Main container *******************************          
                        case 2:
     
                            System.out.println("\n\nMoving3 ...");
                			String containerName3 = "Main-Container";
                            ContainerID destination3 = new ContainerID();
                            // on déclare la variable qui represente la destination
                            destination3.setName(containerName3);
                            System.out.println("je vais retourner ...");
                            // et on fait la migration
                            myAgent.doMove(destination3);
                            System.out.println(" Les donnes recuperer :");
                            step++;
                            break;
     
            //********************************** Finich************************************************           
     
                      case 3:
                      _done=true;
                      System.out.println(" I'm finiche My work :The agent has terminated its itinirary");
     
                              }//end switch
       }//end action
                public boolean done()
                {
                	return _done;
                }
     
     
    } // end setup
    } // end AgentProj
    j'ai trouve ce erreur :
    17 avr. 2011 23:01:28 jade.core.mobility.AgentMobilityService$CommandSourceSink handleInformMoved
    GRAVE: Error in agent serialization. Abort transfer. java.io.NotSerializableException: java.lang.Object
    quelqu'un peux m'aider ou bien corrige mon idée ,merci à vos réponses

  10. #10
    Expert confirmé

    Avatar de Djug
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    2 980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 980
    Par défaut
    quelqu'un peux m'aider ou bien corrige mon idée
    corriger une idée ?? je crois que ce n'ai pas du tout facile, mais si tu nous indique la partie qui te pose problème, on peut peut être t'aider

  11. #11
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Par défaut
    Citation Envoyé par Djug Voir le message
    corriger une idée ?? je crois que ce n'ai pas du tout facile, mais si tu nous indique la partie qui te pose problème, on peut peut être t'aider
    salut , Je vais essayer de réécrire ma question de manière plus,
    je veux que mon agent mobile récupérer les donnes du conteneurs visité ?
    est ce que mon code réponde à cet besoin ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
     
     import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import jade.core.AID;
    import jade.core.Agent;
    import jade.core.behaviours.*;
    import jade.core.ContainerID;
    import java.sql.*;
    import javax.swing.table.DefaultTableModel;
    import com.mysql.jdbc.Driver;
    import com.mysql.jdbc.RowData;
    public class AgentProj extends Agent{
    	 Connection connection;
    	Record[][] dc = new Record [3][4]; // donnes recupere 
    	 String prod;
         public void setup(){
            addBehaviour(new B());
     
                            }
         private class B extends SimpleBehaviour{
     
        	 private boolean _done;
        	 private int step=0;
     
     
                public void action(){
                	System.out.println("My name is "+ getLocalName());
                	System.out.println(" I'm in Main container ");
            		Object[] args = getArguments();
            		if (args != null){
            			for (int i = 0; i < args.length; i++) {
            			   System.out.println(" I'm try to buy "+(String)args[i]);
            			   prod=(String)args[i];
            	    }	
            		}else{
            			System.out.println("No arguments");
            		}
             //************************************Migration 1*************************************
     
                 switch(step){
     
                         case 0:
                              System.out.println("\n Moving1 ...");
                              // on déclare la variable qui va contenir le nom du Container 
                             String containerName = "Container-1";
                             ContainerID destination = new ContainerID();
                             // on déclare la variable qui represente la destination
                              destination.setName(containerName);
                             // et on fait la migration
                             myAgent.doMove(destination);
                             System.out.println("Hello, I'm in container-1 ");
                             try
                             {
                                 Class.forName("com.mysql.jdbc.Driver");
                                 System.out.println("com.mysql.jdbc.Driver found");
                                 connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/agent","root","root");
                                 System.out.println("Connexion Ok");
                                 Statement instruction = connection.createStatement();
                         		 ResultSet resultat = instruction.executeQuery("SELECT * FROM tab1 where nom_prod LIKE'"+prod+"'");
                         		  while(resultat.next()){
                         			  if (resultat!= null){
                         				  System.out.println(resultat.getString("prix_prod")); 
     
                         			  }
                         		  }
                             }
                             catch(Exception cnfe)
                             {
                                 System.out.println("Error:"+cnfe.getMessage());
                             }
    				         step++;
                            break;
              //***************************** Migration 2***********************************************              
                        case 1:
                             System.out.println("\n Moving2 ...");
                          // on déclare la variable qui va contenir le nom du Container 
                             String containerName2 = "Container-2";
                             ContainerID destination2 = new ContainerID();
                             // on déclare la variable qui represente la destination
                             destination2.setName(containerName2);
                             // et on fait la migration
                             myAgent.doMove(destination2);
                             System.out.println("Hello I'm in container-2 ");
                             try
                             {
                                 Class.forName("com.mysql.jdbc.Driver");
                                 System.out.println("com.mysql.jdbc.Driver found");
                                 connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/agent2","root","root");
                                 System.out.println("Connexion Ok");
                                 Statement instruction = connection.createStatement();
                         		 ResultSet resultat2 = instruction.executeQuery("SELECT * FROM tab2 where nom_prod LIKE'"+prod+"'");
                         		  while(resultat2.next()){
                         			  if (resultat2!= null){
                         				  System.out.println(resultat2.getString("prix_prod")); 
     
                         			  }
                         		  }
                             }
                             catch(Exception cnfe)
                             {
                                 System.out.println("Error:"+cnfe.getMessage());
                             }
                             step++;
                             break;
              //******************************** Retour à Main container *******************************          
                        case 2:
     
                            System.out.println("\n\nMoving3 ...");
                			String containerName3 = "Main-Container";
                            ContainerID destination3 = new ContainerID();
                            // on déclare la variable qui represente la destination
                            destination3.setName(containerName3);
                            System.out.println("je vais retourner ...");
                            // et on fait la migration
                            myAgent.doMove(destination3);
                            System.out.println(" Les donnes recuperer :");
                            step++;
                            break;
     
            //********************************** Finich************************************************           
     
                      case 3:
                      _done=true;
                      System.out.println(" I'm finiche My work :The agent has terminated its itinirary");
     
                              }//end switch
       }//end action
                public boolean done()
                {
                	return _done;
                }
     
     
    } // end setup
    } // end AgentProj
    si oui pour quoi me donne ce erreur ? en plus j'ai remarqué que mon agent n'est pas migré du main container !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    17 avr. 2011 23:01:28 jade.core.mobility.AgentMobilityService$CommandSourceSink handleInformMoved
    GRAVE: Error in agent serialization. Abort transfer. java.io.NotSerializableException: java.lang.Object

  12. #12
    Expert confirmé

    Avatar de Djug
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    2 980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 980
    Par défaut
    je me souviens que je travaillais avec Jade, que celui la retourne toujours des erreurs qu'on essaye d'enchainer des tâches dans lesquelles l’agent doit migrer d'un endroit à un autre via des switch Case

    la solution pour ce problème est l'utilisation des SequentielBehaviour ou des FSMBehaviour


    et voici un tutoriel sur Les Behaviours dans JADE

  13. #13
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Par défaut
    Citation Envoyé par Djug Voir le message
    je me souviens que je travaillais avec Jade, que celui la retourne toujours des erreurs qu'on essaye d'enchainer des tâches dans lesquelles l’agent doit migrer d'un endroit à un autre via des switch Case

    la solution pour ce problème est l'utilisation des SequentielBehaviour ou des FSMBehaviour


    et voici un tutoriel sur Les Behaviours dans JADE
    Alors j'ai essayé avec les deux en fin la mobilité ça marche bien avec le Séquentiel Behaviour ,Mais lorsque j'ai ajoute le code qui fait la connexion à la BDD j'ai tombé dans la même problème ,Donc ou ce trouve le pb !!?
    (est ce que quand je programmé avec les agents mobiles les instruction du récupéré les donnes sont déférente ?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
     Le code :
     import jade.core.Agent;
    import jade.core.ContainerID;
    import jade.core.behaviours.OneShotBehaviour;
    import jade.core.behaviours.SequentialBehaviour;
    import jade.core.behaviours.WakerBehaviour;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import jade.core.AID;
    import jade.core.Agent;
    import jade.core.behaviours.*;
    import jade.core.ContainerID;
    import java.sql.*;
    import javax.swing.table.DefaultTableModel;
    import com.mysql.jdbc.Driver;
    import com.mysql.jdbc.RowData;
     
    public class Seq extends Agent {
    	 String  prix_prod;
    	 Connection connection;
    	protected void setup(){
    		//*************************** Main container**********************************
    		SequentialBehaviour comportementSequentiel = new SequentialBehaviour();
     
    		comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
    			@Override
    			public void action() {
    				//System.out.println("le premier sous-comportement");
    				System.out.println(" Hello World My name is :"+ getLocalName());
    	        	System.out.println(" I'm in Main container ");
    	    		Object[] args = getArguments();
    	    		if (args != null){
    	    			for (int i = 0; i < args.length; i++) {
    	    			   System.out.println(" I'm try to buy "+(String)args[i]);
     
    	    			   prix_prod=(String)args[i];
    	    	    }	
    	    		}else{
    	    			System.out.println("No arguments");}
     
     
    			}
    		});
    		//****************************Migration à Container_1*******************************
    		comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
    			@Override
    			public void action() {
    				System.out.println("\n Moving1 ...");
                    // on déclare la variable qui va contenir le nom du Container 
                   String containerName = "Container-1";
                   ContainerID destination = new ContainerID();
                   // on déclare la variable qui represente la destination
                    destination.setName(containerName);
                   // et on fait la migration
                   myAgent.doMove(destination);
                   System.out.println("Hello, I'm in container-1 ");
                   try
                   {
                       Class.forName("com.mysql.jdbc.Driver");
                       System.out.println("com.mysql.jdbc.Driver found");
                       connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/agent","root","root");
                       System.out.println("Connexion Ok");
                       Statement instruction = connection.createStatement();
               		 ResultSet resultat = instruction.executeQuery("SELECT * FROM tab1 where nom_prod LIKE'"+prix_prod+"'");
               		  while(resultat.next()){
               			  if (resultat!= null){
               				  System.out.println(resultat.getString("prix_prod")); 
     
               			  }
               		  }
                   }
                   catch(Exception cnfe)
                   {
                       System.out.println("Error:"+cnfe.getMessage());
                   }
     
     
    			}
    		});
    		//*****************************Migration à Container_2********************************
             comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
    			@Override
    			public void action() {
    				System.out.println("\n Moving2 ...");
                    // on déclare la variable qui va contenir le nom du Container 
                       String containerName2 = "Container-2";
                       ContainerID destination2 = new ContainerID();
                       // on déclare la variable qui represente la destination
                       destination2.setName(containerName2);
                       // et on fait la migration
                       myAgent.doMove(destination2);
                       System.out.println("Hello I'm in container-2 ");
     
    				// connexion à BDD2............
     
    			}
    		});
     
    		//****************************Retour à Main Container **********************************
    		comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
    			@Override
    			public void action() {
    				//System.out.println("le derniers sous-comportement");
     
    				 System.out.println("\n Moving3 ...");
         			String containerName3 = "Main-Container";
                     ContainerID destination3 = new ContainerID();
                     // on déclare la variable qui represente la destination
                     destination3.setName(containerName3);
                     System.out.println("je vais retourner à main container  ...");
                     // et on fait la migration
                     myAgent.doMove(destination3);
                     // recupere les donnes .................
    				//myAgent.doDelete();
    			}
    		});
    		addBehaviour(comportementSequentiel);
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     résultat d'exécution :
    Hello World My name is :Agent1
     I'm in Main container 
     I'm try to buy JADE
     
     Moving1 ...
    Hello, I'm in container-1 
    com.mysql.jdbc.Driver found
    Connexion Ok
     
     Moving2 ...
    Hello I'm in container-2 
     
     Moving3 ...
    je vais retourner à main container  ...
    19 avr. 2011 15:01:46 jade.core.mobility.AgentMobilityService$CommandSourceSink handleInformMoved
    GRAVE: Error in agent serialization. Abort transfer. java.io.NotSerializableException: com.mysql.jdbc.DatabaseMetaData
    19 avr. 2011 15:01:46 jade.core.mobility.AgentMobilityService$CommandSourceSink handleInformMoved
    GRAVE: Error in agent serialization. Abort transfer. java.io.NotSerializableException: com.mysql.jdbc.DatabaseMetaData

  14. #14
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Par défaut
    Citation Envoyé par Djug Voir le message
    Bonjour,

    voici un article sur Les communications des agents JADE

    http://djug.developpez.com/java/jade/communication/


    vos remarques sont les bienvenues.
    Salut, je veux échanger la clé publique entre deux agents qui sont situe dans deux conteneurs déférent, j'ai utilisé les ACL msgs mais j'ai trouvé que le résultat n'est pas correspondent (c'est pas la même qui j'ai le envoyé) , Sachant il est fonctionne bien quand mes agents sont situé dans la même conteneur??? ? ou le pb svp
    mtp ?

  15. #15
    Expert confirmé

    Avatar de Djug
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    2 980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 980
    Par défaut
    Citation Envoyé par manare Voir le message
    Salut, je veux échanger la clé publique entre deux agents qui sont situe dans deux conteneurs déférent, j'ai utilisé les ACL msgs mais j'ai trouvé que le résultat n'est pas correspondent (c'est pas la même qui j'ai le envoyé) , Sachant il est fonctionne bien quand mes agents sont situé dans la même conteneur??? ? ou le pb svp
    mtp ?
    comment tu envoie la clé, et comment tu la récupère ? montres moi le code

  16. #16
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     AgentVendeur
    -----------
    comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
    	@Override
    	public void action() {
     
    		System.out.println("Att Agent Mobile  ");
    		 ACLMessage msg2Recu =null ;
    		 while (msg2Recu == null){
    		 msg2Recu= receive() ;
    		}
    		 System.out.println("message recu de Agent Mobile = "+ msg2Recu.getContent());
     
     
     
    	//if (){}
     
    		 ACLMessage msg3 = new ACLMessage(ACLMessage.INFORM);
    	     msg3.addReceiver(new AID("AgentService", AID.ISLOCALNAME));
    	     msg3.setContent("public key");
    	     send(msg3);
    	     System.out.println("L'agent Vendeur  vas interoger l'agent Service et demande la clé pub "+msg3.getContent());  
     
    	     comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
    	    	 @Override
    	    	 public void action() {
    	    		 ACLMessage msg4 = new ACLMessage(ACLMessage.INFORM);
     
    	             while (msg4 == null){
    	            	 msg4 = receive() ;
    	   	}
    	             System.out.println("Agent Vendeur : message recu de Agent Service  = "+ msg4.getByteSequenceContent());   
     
     
    	    	 }
    	    	 });
     
     
     
    	}
    	});
     
     
     
    	addBehaviour(comportementSequentiel);
     
    }
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    AgentService
    ------------
    -------------------
    public class AgentService  extends Agent{
    	private byte[] Pubkey=null;
    	 ACLMessage msg1Recu =null ;
     
     
    	protected void setup(){
     
    		 try {
    			 System.out.println(getLocalName()+" STARTED");
    		// Création de desciprion de l'agent [Agent Service]
    		DFAgentDescription dfd = new DFAgentDescription();
    		dfd.setName(getAID());
    		// Enregistrement de la description de l'agent dans DF (Directory Facilitator)
    		DFService.register(this, dfd);
    		System.out.println(getLocalName()+" REGISTERED WITH THE DF");
    		} catch (FIPAException e) {
    		e.printStackTrace();
    		}
    	     SequentialBehaviour comportementSequentiel = new SequentialBehaviour();
    	     comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
    	    	 @Override
    	    	 public void action() {
    	    		 System.out.println("Att Agent Lanceur  ");
     
    	    		 while (msg1Recu == null){
    	    		 msg1Recu= receive() ;
    	    		}
     
    	    		 Pubkey = msg1Recu.getByteSequenceContent();
     
    	    		System.out.println("message recu de Agent Lanceur et registre sous pubkey= "+ Pubkey);
     
     
     
    				}
    	    	 }); 
    //-------------------------------------------------------------------------------------------------------
    	     comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
    	    		@Override
    	    		public void action() {
    	    			//--att msg de AV
    	    			ACLMessage msg3Recu = receive(MessageTemplate.MatchPerformative(ACLMessage.INFORM));
    	    			while (msg3Recu == null){
    	    				msg3Recu= receive() ;
    	    				}
    	    			System.out.println("le msg recu de  AV = "+msg3Recu.getContent());
     
     
    	    			ACLMessage reply = msg3Recu.createReply();
    	    			reply.setByteSequenceContent(msg1Recu.getByteSequenceContent());
     
    	    			System.out.println("message envoyé à la Agent Vendeur = "+ reply.getByteSequenceContent());
     
    	    		  /*  ACLMessage reply = receive(MessageTemplate.MatchPerformative(ACLMessage.INFORM));
    	    			reply.addReceiver(msg3Recu.getSender());
    	    			reply.setByteSequenceContent(msg1Recu.getByteSequenceContent() );  
    	    			send(reply);
    	    			System.out.println("message envoyé à la Agent Vendeur = "+ reply.getByteSequenceContent());*/
     
     
     
     
    	    		} 
     
     
    	    		});
     
     
     
     
    	     addBehaviour(comportementSequentiel);
     
    	}
    }
    sachant que j'ai lancé l'AgentService avant lAgentVendeur

  17. #17
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Par défaut
    Citation Envoyé par Djug Voir le message
    comment tu envoie la clé, et comment tu la récupère ? montres moi le code
    je simplifier (je veux envoyé la clé de AgentLanceur >AgentService)
    j'ai lancé AgentService @ Container_1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
    	    	 @Override
    	    	 public void action() {
    	    		 System.out.println("Att Agent Lanceur  ");
     
    	    		 while (msg1Recu == null){
    	    		 msg1Recu= receive() ;
    	    		}
     
    	    		 Pubkey = msg1Recu.getByteSequenceContent();
     
    	    		System.out.println("message recu de Agent Lanceur et registre sous pubkey= "+ Pubkey);
     
     
     
    				}
    	    	 });
    puis j'ai lancé AgentLanceur @ main_container
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     ACLMessage msg1 = new ACLMessage(ACLMessage.INFORM);
    		     msg1.addReceiver(new AID("AgentService", AID.ISLOCALNAME));
    		     try {
    				msg1.setContentObject( publicKey );
     
    			} catch (IOException e1) {
    				// TODO Auto-generated catch block
    				e1.printStackTrace();
    			}System.out.println("L'agent Lanceur vas envoyé la clé pub @ Agent Service"+msg1.getByteSequenceContent());
     
    		     send(msg1);
    Mais quand j'ai exécuté : la clé AgentService != la clé AgentLanceur

  18. #18
    Expert confirmé

    Avatar de Djug
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    2 980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 980
    Par défaut
    je ne peux pas testé ton code pour le moment,

    peux tu me montrer un exemple d’échange de clé (la clé envoyée et celle reçue) ?

  19. #19
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Par défaut
    Citation Envoyé par Djug Voir le message
    je ne peux pas testé ton code pour le moment,

    peux tu me montrer un exemple d’échange de clé (la clé envoyée et celle reçue) ?
    j'ai généré la paire de clé puis j'ai le met dans var
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Rsa rsa = new Rsa();
    		    rsa.generateKeyPair();
    		    byte[] publicKey = rsa.getPublicKeyInBytes();
    puis j'ai envoyé la clé @ AgentService : msg1.setContentObject( publicKey );
    portant, il est marche bieeen dans le cas ou mes agent sont dans la même conteneur !!!!!
    il y une autre configuration ou quoi!

  20. #20
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 15
    Par défaut demande d'aide avec mon code communication agent
    Citation Envoyé par Djug Voir le message
    Bonjour,

    voici un article sur Les communications des agents JADE

    http://djug.developpez.com/java/jade/communication/


    vos remarques sont les bienvenues.


    Bonjour.

    Quelqu'un peut-il m'aider avec mon programme ? J'ai essayé plusieurs fois d'exécuter le code pour la communication avec jade et ça marche qu'une fois et après je ne peux pas l’exécuter. Ma demande est juste de me dire si mon code pour l'agentA et AgentB (qui envoient un message bonjour entre eux) est correct.

    merci d'avoir lu mon message.

    le code est le suivant pour agentA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    import jade.core.AID;
    import jade.core.Agent;
    import jade.core.behaviours.FSMBehaviour;
    import jade.core.behaviours.OneShotBehaviour;
    import jade.lang.acl.ACLMessage;
     
    public class AgentA extends Agent {
     
    protected void setup(){
     
      System.out.println("---------------------------------------");
      System.out.println("----------------agent A----------------");
      System.out.println("---------------------------------------");
     
      FSMBehaviour agentA_beh= new FSMBehaviour();
     
      agentA_beh.registerFirstState(new attendreAgentB(), "attendreAgentB");
      agentA_beh.registerState(new bonjour(), "bonjour");
      agentA_beh.registerLastState(new fin(), "fin");
     
      agentA_beh.registerDefaultTransition("attendreAgentB", "bonjour");
      agentA_beh.registerTransition("bonjour", "attendreAgentB",0);
      agentA_beh.registerTransition("bonjour", "fin", 1);
     
      addBehaviour(agentA_beh);  
    }
     
    private class attendreAgentB extends OneShotBehaviour{
     
      @Override
      public void action() {
     
      System.out.println("en attente de l agent B");
      block();
      }
    }
    /*****************************************************************/
    private class bonjour extends OneShotBehaviour{
     
      int valeurRetour = 0;
      @Override
      public void action() {
     
      ACLMessage messageRecu = receive();
      if (messageRecu.getContent().equalsIgnoreCase("pret") ) valeurRetour=0;
      else  valeurRetour=1;
     
     
      System.out.println(" bonjour agent A ");
      ACLMessage message = new ACLMessage(ACLMessage.INFORM);
      message.addReceiver(messageRecu.getSender());
     
      send(message);
      }      
     
      public int onEnd(){
      return valeurRetour;   
      }  
    }
    /*****************************************************************/
    private class fin extends OneShotBehaviour{
     
      @Override
      public void action() {
      System.out.println("arret de l'agent");
      myAgent.doDelete();  
      }  
    }
    }

    et pour AgentB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    import java.security.acl.Acl;
    import jade.core.AID;
    import jade.core.Agent;
    import jade.core.behaviours.FSMBehaviour;
    import jade.core.behaviours.OneShotBehaviour;
    import jade.lang.acl.ACLMessage;
     
    public class AgentB extends Agent {
     
     
      boolean stop = false;
      protected void setup(){
        System.out.println("----------------agent B----------------");
        FSMBehaviour agentB_beh= new FSMBehaviour();
     
        agentB_beh.registerFirstState(new attendrebonjour(), "attendrebonjour");
        agentB_beh.registerState(new afficher(), "afficher");
        agentB_beh.registerState(new fin(), "fin");
     
        agentB_beh.registerTransition("attendrebonjour", "afficher",0);
        agentB_beh.registerTransition("attendrebonjour", "fin",1);
        agentB_beh.registerDefaultTransition("afficher", "attendrebonjour");
     
        addBehaviour(agentB_beh);
      }
      private class attendrebonjour extends OneShotBehaviour{
     
        int valeurRetour = 0;
     
        public void action() {
        ACLMessage message = new ACLMessage(ACLMessage.INFORM);
        message.addReceiver(new AID("AgentA", AID.ISLOCALNAME));  
     
          if(!stop){
            message.setContent("pret");
            send(message);
            valeurRetour=0;
            block();
          }else{
            message.setContent("arret");
            send(message);
            valeurRetour=1;  
          }    
        }
      public int onEnd(){
        return valeurRetour;
      }  
      }
      /**********************************************************************/
      private class afficher extends OneShotBehaviour{  
        @Override
        public void action() {
          ACLMessage messageRecu = receive();
          somme+= Integer.parseInt(messageRecu.getContent());
          System.out.println("message recu= "+ messageRecu.getContent());
          stop = true;
        }  
      }
      /**********************************************************************/
      private class fin extends OneShotBehaviour{
        @Override
        public void action() {
          System.out.println("fin de l'agent");
          myAgent.doDelete();
        }  
      }
    }


    merci encore une fois

Discussions similaires

  1. Communication entre des agents jade
    Par Nouur dans le forum Programmation par agent
    Réponses: 0
    Dernier message: 29/04/2014, 00h39
  2. Communication entre des agents jade
    Par Nouur dans le forum Programmation par agent
    Réponses: 0
    Dernier message: 29/04/2014, 00h36
  3. Pour les fanas des Agents
    Par carla-la-belle dans le forum Windows 7
    Réponses: 2
    Dernier message: 12/11/2009, 14h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo