• Aucun résultat trouvé

4.2 La communication entre l’agent et les systèmes technologiques

4.1.3 La gestion de l’environnement de l’agent

L’information possédée par l’agent sur son environnement concerne les autres agents du système mais aussi un ensemble de variables communes aux différents agents sur lesquelles reposent les mécanismes de déclenchement automatique des fonctionnalités de l’agent. La gestion de cet ensemble de données nécessite des mécanismes de gestion de l’ajout et de retrait d’un agent au sein du système, mais aussi le maintien de la cohérence des variables d’environnement au sein du système. Par la suite, les structures de données, les protocoles d’interactions, les messages et les comportements JADE correspondant à ces mécanismes seront présentés.

4.1.3.1 Les structures de données de représentation de l’environnement de

l’agent

La structure de donnée associée aux mécanismes de gestion de l’environnement peut être décomposée en deux parties. Les classes de représentation de l’information constituent l’environnement de l’agent et les classes fournissent les mécanismes de manipulation et les interfaces avec les comportements de l’agent JADE.

Les informations caractérisant l’environnement de l’agent sont modélisées par une structure de données centrée autour de la classe Environnement. Celle-ci contient des attributs et des méthodes permettant de représenter, d’accéder et de modifier les valeurs des informations concernant les variables communes à l’ensemble du système et sur les différents agents qui le compose. Un mécanisme reposant sur le pattern

- 118 -

Gestionnaire de la communication Agent / Systèmes d’information

Communication Agent / Base de données Communication Agent / Serveur HTTP Communication Agent / code de calcul Communication Agent / Agent JADE Comportements Comportements

Structure de données spécifiques

Agent JADE

Base de données

Observer/Observable présente une interface permettant de déclencher des actions lors de la modification d’une des données (cf. Figure 4.10).

Figure 4.10 La structure de données de définition de l’environnement de l’agent. Cette hiérarchie de classe permet de représenter l’information concernant le contexte d’exécution de l’agent et les compétences des autre agents du système.

Les fonctionnalités utilisées par les différents comportements des agents sont gérées par la classe GestionnaireDEnvironnement. Celle-ci est reliée à la structure de données caractérisant l’environnement de l’agent et possède des méthodes correspondant aux différentes actions utilisées par les protocoles de gestion de l’environnement (Figure 4.11).

Figure 4.11 La structure de données gestionnaire d’environnement. Cette classe fournit les méthodes qui permettent l’interaction entre un comportement JADE et les informations qui caractérisent l’environnement de l’agent d’intermédiation.

Ces structures de données permettent de représenter les informations caractérisant l’environnement de l’agent. Il s’agit désormais de définir les protocoles régissant l’utilisation de ces structures de données.

4.1.3.2 Les protocoles de gestion de l’environnement de l’agent

La gestion de l’environnement de l’agent implique la définition de protocoles d’ajout et du retrait d’un agent au sein du système et de la modification d’une variable par l’un des agents.

Le protocole d’ajout d’un agent est déclenché lorsqu’un nouvel agent est rajouté au système. Pour cela, il adresse un message d’ajout à l’agent servant d’entrée au système. Le protocole se décompose en trois étapes :

1. Enregistrement du nouvel agent

2. Envoi au nouvel d’agent des informations concernant l’ensemble des agents et des variables d’environnement du système

3. Envoi à chaque agent du système des informations concernant le nouvel agent Traitements nom description caractéristiques Variable nom valeur Agents nom Environnement addVariable( ) addAgent( ) modifieVariable( ) modifieAgent( ) retireAgent( ) retireVariable( ) ObservateurDEnvironnement <<abstract>> changement( ) GestionnaireDEnvironnement Environnement majEnvironnement( ) reponseTestAgent( ) DemandeAjoutAgent( ) AjoutAgent( ) DemandeRetraitAgent( ) RetraitAgent( )

Chapitre 4

Le protocole de retrait d’un agent est déclenché lorsqu’un agent adresse un message de demande de retrait ou bien si le processus de surveillance de la réactivité des agents détecte un agent qui ne répond plus. Ce protocole se décompose en deux étapes :

1. Retrait des informations concernant l’agent à retirer

2. Envoi à chaque agent du système de l’identité de l’agent à supprimer

La mise en œuvre de ces protocoles avec l’architecture d’agent développée s’effectue par la programmation de messages et de comportements utilisant les mécanismes fournis par la plate-forme JADE.

4.1.3.3 Les messages de gestion de l’environnement

La mise en œuvre des protocoles de gestion de l’environnement conduit à la définition de messages qui vont être échangés entre les différents agents du système. Un message est constitué d’informations qui vont être utilisées par l’agent pour effectuer les traitements associés.

Le protocole de gestion d’ajout d’un agent dans le système repose sur trois messages :

DemandeEnregistrement (nom de l’agent, services proposés, variables

d’environnement). Ce message est envoyé par un agent pour être ajouté au système. Il reçoit en réponse une confirmation de son enregistrement.

InformationsSysteme (liste des agents et de leurs services, liste des variables

d’environnement). Ce message est envoyé par l’agent de gestion de l’inscription des agents pour informer le nouvel agent des informations caractérisant le système. Un accusé de réception est attendu à l’émission de ce message.

InformationNouvelAgent (nom de l’agent, services proposés, variables

d’environnement). Ce message est envoyé à chaque agent du système par l’agent de gestion de l’inscription des agents pour les informer de la présence d’un nouvel agent dans le système. Aucune réponse n’est attendue pour ce message.

Le protocole de gestion du retrait d’un agent du système repose sur deux messages :

DemandeRetraitAgent() est envoyé au moment où un agent veut être retiré du

système. Il envoie ce message à l’agent qui à la charge du fonctionnement du système.

RetraitAgent(nom de l’agent) est envoyé par l’agent de gestion du système à

l’ensemble des agents pour qu’ils retirent l’agent de leur base de connaissances. La gestion de l’environnement repose sur le message MiseAJourEnvironnement

(variable). Ce message est envoyé lorsqu’une variable de l’environnement a été

modifiée par l’exécution d’un service ou par un événement survenant dans le système. La réception de ces messages par un agent JADE doit déclencher un comportement contenant les opérations nécessaires à la réalisation du protocole correspondant.

4.1.3.4 Les comportements de gestion de l’environnement

La gestion de l’ajout d’un nouvel agent dans le système repose sur trois comportements :

Le comportement EnregistrementAgent contient les différentes actions à réaliser lors d’une demande d’un agent à intégrer le système. Celui-ci est déclenché lors de la réception du message DemandeEnregistrement. Il met à jour la base de connaissances de l’agent avec les informations sur le nouvel agent (savoir faire et variables d’environnement) puis il adresse au nouvel agent un message

InformationSystème contenant l’ensemble des informations caractérisant le système

et à l’ensemble des agents un message InformationNouvelAgent pour qu’ils mettent à jour leur base de connaissances.

Le comportement EnregistreNouvelAgent correspond aux différentes actions déclenchées lors de la réception du message InformationNouvelAgent, C’est-à-dire la mise à jour de la base de connaissances (agents et environnements) avec les informations sur le nouvel agent du système.

Le comportement EnregistreInfoSysteme est déclenché lors de la réception du message InformationSystème et permet le remplissage de la base de connaissances de l’agent avec l’ensemble des informations caractérisant le système (agents et environnement).

La gestion de la dynamique de l’environnement est effectuée par le comportement

ChangementEnvironnement qui est déclenché lors de la réception d’un

MiseAJourEnvironnement. Ce comportement interagit avec le gestionnaire de

l’environnement pour mettre à jour la structure de données de l’environnement. La gestion du retrait de l’agent repose sur deux comportements :

Le comportement DemandeRetrait est déclenché lors de la réception d’un message DemandeRetrait ou bien si un agent ne répond pas au processus de surveillance du fonctionnement du système. Ce comportement gère les interactions de suppression des informations de l’agent à retirer avec l’ensemble des agents du système.

Le comportement RetireAgent est déclenché lors de la réception d’un message

RetraitAgent. Celui-ci met à jour les connaissances de l’agent en supprimant les

informations caractérisant l’agent à retirer.

La programmation des structures de données, des messages et des comportements permet de mettre en œuvre les mécanismes de gestion de l’environnement de l’agent. Par la suite, un exemple permettant de comprendre le fonctionnement de ces traitements est présenté.

4.1.3.5 Illustration du fonctionnement des mécanismes de gestion des agents

Pour illustrer le fonctionnement des processus de gestion des agents, un ensemble d’exemples est présenté. Ceux-ci permettent d’aborder la succession des différentes actions de gestion des agents. Ces exemples reposent sur un système constitué de trois agents (A1, A2, A3), chaque agent possède des traitements (T1et T2 pour A1, T3 et T4 pour A2 et T5, T6 et T7 pour A3) . L’agent A1 est de plus responsable de la gestion du

Chapitre 4

système. L’environnement du système est composé des variables V1 et V2 gérées par l’agent A1, V3 gérée par l’agent A2 et V4 gérée par l’agent A3.

Pour illustrer le fonctionnement du système, les échanges de messages entre les différents agents et le comportement déclenché à la réception d’un message par une adaptation des diagrammes de séquences UML sont dans un premier temps présentés. En effet, la représentation d’un appel de méthode est utilisée pour symboliser l’envoi d’un message, le nom de la méthode étant remplacé par le message transmis et le déclenchement interne de méthode pour représenter le déclenchement d’un comportement. Dans un second temps, les interactions entre les différentes structures de données à l’aide des schémas UML sont décrites.

Le premier scénario vise à illustrer les mécanismes d’ajout d’un agent dans le système. Les schémas suivants illustrent les interactions entre les agents et les conséquences sur le fonctionnement interne de chaque agent. Il débute dès que l’agent A3 sollicite l’agent A1 pour être enregistré : celui-ci procède à l’enregistrement et transmet l’information aux autres agents du système puis adresse l’ensemble des information caractérisant le système à l’agent A3 (cf. figure 4.12).

Figure 4.12 Interactions d’ajout d’un agent. Ce scénario illustre les échanges de messages entre les agents du système d’intermédiation lorsqu’un nouvel agent est ajouté. Il s’agit essentiellement de messages de transmission des fonctionnalités de chaque agent.

Les comportements impliqués dans le fonctionnement entraînent des interactions avec les structures de données de gestion de l’environnement. Le comportement

EnregistrementAgent agit sur l’environnement de l’agent en ajoutant les nouvelles

informations par l’intermédiaire du GestionnaireDEnvironnement puis génère les messages à destination des autres agents (cf. figure 4.13).

- 122 - A1 A2 A3 DemandeEnregistrement(A3,(T5,T6,T7),V4) EnregistrementAgent EnregistreNouvelAgent(A3,(T5,T6,T7),V4) EnregistreNouvelAgent InformationSystème((A1,A2),(T1,T2,T3,T4),(V1,V2,V3)) EnregistreInfoSysteme

Figure 4.13 Diagramme de séquence du comportement EnregistreAgent. Ce scénario correspond aux échanges de messages entre les objets de la structure de données de gestion de l’environnement de l’agent qui visent à enregistrer les informations caractérisant le nouvel agent du système.

Les comportements EnregistrementNouvelAgent et EnregistreInfoSystème reposent sur les mêmes mécanismes d’interactions avec les classes GestionnaireDEnvironnement et

Environnement.

Le processus de retrait d’un agent, utilisé dans le comportement

VerificationFontionnement, si un agent ne répond pas au terme du délai de réponse et

par le comportement RetireAgent consiste à retirer des informations manipulées par l’agent, celles correspondant à l’agent, à son savoir-faire et à ses variables d’environnement (cf. figure 4.14).

Figure 4.14 Processus de retrait d’un agent. Ce scénario illustre les interactions entre les objets de la structure de données de gestion de l’environnement de l’agent dans le but de supprimer les informations relatives à l’agent qui est retiré du système.

Les fonctionnalités de gestion des interactions entre l’agent et son environnement présentées dans cette section offrent le support nécessaire à la réalisation des mécanismes de gestion des services, correspondant aux traitements du système d’intermédiation.