• Aucun résultat trouvé

Dynamique du syst`eme du point de vue de l’environnement

filtre, lequel sera ensuite utilis´e pour transmettre le message.

Un agent souhaitant ´ecouter certains messages doit ajouter un filtre d´ecrivant ces messages. L’ensemble des messages transitant dans l’environnement est ensuite pris en compte par ce filtre. Dans l’exemple cit´e digitale, l’agent a2, qui n’est pas situ´e dans le lieu l1 mais souhaite tout de mˆeme recevoir les messages destin´es aux agents situ´es dans ce lieu d´epose un filtre fecoute correspondant `a ce besoin. Ce filtre d´efinit un test sur la propri´et´e “lieu” des messages, qui doit ˆetre ´egale `a l1, et d´esigne par son identifiant l’agent a2 pour recevoir ces messages.

De la mˆeme fa¸con que pour les descriptions, les agents peuvent ajouter, modifier et retirer leurs filtres dynamiquement. Si un filtre est utilis´e par d’autres agents que celui qui l’a pos´e, le retrait du filtre a un impact sur ces agents. Par exemple, l’agent a3 peut envoyer un message aux agent situ´es dans le lieu l1 grˆace au filtre fgroupe, mais si a1 retire le filtre fgroupe, l’agent a3 devra d´eposer un nouveau filtre avant de pouvoir envoyer son message. Pour cela, l’agent peut consulter quels sont les filtres stock´es dans l’environnement. Nous exposons en section 3.3.2 comment ce probl`eme est ´egalement en partie r´esolu au niveau de l’environnement.

3.3

Dynamique du syst`eme du point de vue de l’environnement

Dans la section pr´ec´edente, nous avons vu de quelles fa¸con les agents peuvent interagir avec l’environnement. Dans cette section, nous d´ecrivons comment les actions des agents sont g´er´ees par l’environnement, ainsi que le fonctionnement de notre mod`ele d’environnement lui-mˆeme.

3.3.1 La gestion des inscriptions des agents par l’environnement

L’environnement g`ere les entr´ees et sorties des agents, en lien avec leurs descriptions. Lors- qu’un agent entre dans l’environnement, il est inscrit en tant qu’utilisateur de l’environnement, et sa description est ajout´ee. Dans l’exemple, les agents a1, a2, a3 et a4 sont inscrits dans l’environnement.

Nous avons vu que les agents peuvent ajouter et modifier des descriptions. Lorsqu’un agent sort de l’environnement, l’environnement le d´esinscrit, et retire l’ensemble des descriptions qu’il a ajout´e. L’environnement, s’il perd la communication avec l’agent, d´esinscrit automatiquement cet agent au bout d’un certain laps de temps.

3.3.2 Le stockage des informations sur l’´etat du syst`eme et des filtres dans l’environnement

L’environnement stocke l’ensemble des descriptions donn´ees par les agents. Il g`ere ´egalement l’acc`es `a ces descriptions : un agent ne peut modifier ou retirer que les descriptions qu’il a lui- mˆeme ajout´ees. Ce choix vise `a empˆecher des agents malveillants de manipuler des descriptions d’entit´es que les autres agents ont ajout´ees.

Un cas particulier est l’enregistrement des messages. Ceux-ci ne sont pas des descriptions, ils sont donc stock´es `a part. Par exemple, le message m1 est enregistr´e pour le temps o`u le message doit rester dans l’environnement, tandis que la description du message m1 est stock´ee avec les autres descriptions d’entit´es. Dans notre environnement, la description d’un message est automatiquement g´en´er´ee `a partir du message lui-mˆeme.

Concernant les filtres, ils peuvent ˆetre ajout´es, modifi´es et retir´es dynamiquement par leur initiateur. De mˆeme que pour les descriptions, l’environnement stocke l’ensemble des filtres. Dans le sc´enario de l’exemple, l’environnement stocke les filtres fgroupe et fecoute, ajout´es res- pectivement par a1 et a2.

Lorsqu’un agent sort de l’environnement, ses filtres sont retir´es. Nous avons fait ce choix pour ´eviter la pr´esence de filtres obsol`etes dans l’environnement g´en`erant des coˆuts de traitement inutiles. Cependant, un probl`eme peut se poser dans le cas o`u plusieurs agents utilisent un mˆeme filtre pour transmettre leurs messages, mais o`u l’agent qui a d´epos´e le filtre disparaˆıt. Dans l’exemple, fgroupe est un filtre qui peut ˆetre utilis´e par tous les agents pour envoyer leurs messages.

Dans cette th`ese, le probl`eme des filtres communs `a plusieurs agents est partiellement g´er´e par l’introduction de filtres “de l’environnement”, que nous d´etaillons dans le chapitre 5.1.1. Le principe est de consid´erer qu’un certain nombre de filtres n’appartiennent pas `a des agents, mais `a l’environnement lui-mˆeme, parce qu’ils concernent non pas les besoins particuliers d’un agent, mais les besoins d’un ensemble d’agents. Dans ce cas, les filtres ne risquent pas de disparaˆıtre du fait d’un agent. Dans l’exemple, le filtre fgroupe peut ˆetre consid´er´e comme appartenant `a l’environnement.

Dans les cas o`u ces filtres sont effectivement ajout´es par un agent, nous consid´erons que les autres agents connaissent ces filtres et les remplacent en cas de disparition de l’agent. En effet, les agents peuvent `a tout moment consulter les filtres pr´esents dans l’environnement.

3.3.3 La transmission des messages par l’environnement

Le processus de transmission de messages est g´er´e par l’environnement grˆace `a l’ensemble des filtres. L’environnement contient un algorithme d’appariement qui utilise l’ensemble des descriptions du syst`eme pour trouver les entit´es qui v´erifient les conditions des filtres. Lors de l’envoi d’un message, sa description est ajout´ee dans l’environnement. Tous les filtres concernant le message sont alors d´eclench´es, ceux de l’´emetteur comme ceux des autres agents.

Dans notre exemple de cit´e digitale, nous avons vu que le filtre fgroupe transmet les messages ayant une propri´et´e “lieu” `a tous les agents ayant cette mˆeme localisation, et que le filtre fecoute transmet `a l’agent a2 les messages envoy´es aux agents localis´es dans le lieu l1. Lors de l’ajout du message m1 dans l’environnement, le filtre fgroupe de l’agent ´emetteur a1 d´eclenche la trans- mission du message `a l’agent a4. Le filtre fecoute (initi´e par l’agent a2) d´eclenche la transmission de ce mˆeme message `a a2.

3.4. Exemple de mod´elisation : la cit´e digitale