Simuler l’exécution des agents

1 - Objectif

Comme toutes réalisations logicielles, la conception d’agents ambiants nécessite de réaliser des tests pour s’assurer du bon fonctionnent des comportements des agents. Afin de ne pas mettre en péril l’équipement réel, la plateforme SKUAD permet de faire fonctionner les agents avec des dispositifs virtuels comme nous l’avons fait dans le guide illustratif précédent (Quick-Start/Des agents ambiants). Cette possibilité n’est cependant pas suffisante dans la mesure ou certain comportement nécessite de longue période de temps pour s’exprimer complètement. Aussi, pour réaliser des tests plus poussés il faut pouvoir virtuellement accélérer le temps. C’est précisément ce que font les plateforme de simulation agent. Et cette modalité d’exécution est aussi possible avec la plateforme SKUAD.

Dans ce guide nous allons illustrer cette aptitude, et nous verrons dans de prochains guides que les simulations SKUAD peuvent aller bien au-delà du simple objectif de tester le comportement d’agents destinées à être déployés en environnement réel.

 

2 - Pré-requis

Pour réaliser ces manipulations vous avez juste besoin d’un ordinateur fonctionnant sur n’importe quel système d’exploitation (Linux, Windows ou Mac). Les programmes que nous allons exécuter sont écris en Java. Aussi, si Java n’est pas installé sur votre système vous allez devoir le mettre en place en suivant les directives de la section 3 ci-dessous.

Notez qu’ici nous avons juste besoin du JRE (l’environnement d’exécution Java, voir détail dans la section 3), mais néanmoins nous vous conseillons d’installer la distribution JDK (l’environnement de développement Java) car celle-ci deviendra vite indispensable si vous décidez d’aller un peu plus loin avec SKUAD.

 

3 - Mise en place du JDK
 

4 - Téléchargement de la librairie SKUAD

Maintenant que Java est en place, vous devez télécharger la dernière version de la librairie SKUAD en suivant ce lien : Téléchargement. Comme indiqué sur cette page de téléchargement, vous devrez décompresser l’archive .zip que vous aurez récupéré. Aussi, faites cette décompression dans un dossier que vous allez nommer skuad, c’est ce dossier qu’on appellera le dossier SKUAD. Si vous observez son contenu vous constaterez que le dossier SKUAD contient 3 éléments :

  • readme.txt : un fichier d’information minimaliste sur la version et l’utilisation de SKUAD.
  • lib : un sous-dossier qui contient le fichier de la librairie SKUAD.
  • start.class : le programme de lancement.
 

5 - L'agent HelloAgent

L’agent que nous allons expérimenter ici se nomme HelloAgent. C’est un agent simple qui se limite à produire un message de log (soit un texte affiché dans la console) à intervalle régulier. Plus précisément : cet agent va afficher le message « Hello Agent ! » une fois par jour.

Vous comprenez bien qu’il est difficile de vérifier rapidement si le comportement de cet agent fonctionne correctement. Il faudrait lancer son exécution et l’observer durant plusieurs jours… ce n’est pas très pratique.

C’est la que la simulation vient apporter une solution pertinente : la possibilité de soumettre l’agent à une horloge virtuelle. Une horloge qui va faire écouler le temps bien plus rapidement que dans la réalité.

Le programme HelloSim réalise justement ce mode d’exécution sur un agent HelloAgent. Pour le tester ouvrez une console, placez-vous dans votre dossier SKUAD, et tapez la commande suivante :

  > java   start   HelloSim  

Le programme HelloSim va se lancer. Vous allez voir une petite fenêtre apparaître:

Il s’agit de la fenêtre de pilotage de la simulation. Elle vous permet contrôler l’horloge virtuelle à l’aide des boutons play/pause/stop et reset.

La simulation est calibrée pour une plage de 5 jours. En cliquant sur le bouton play vous pouvez lancer son exécution. Vous verrez alors dans le panneau central les messages produits par l’agent. Chaque affichage est horodaté sur les valeurs de l’horloge virtuelle. Ce qui vous permettra de constater que le comportement de l’agent est conforme à ce qui est attendu. Vous verrez également dans cette fenêtre des logs « Coucou Pulsable ! ». Ils sont produits par un objets secondaires une fois toutes les 3h.

Le point fort de SKUAD dans ce contexte est que, contrairement aux plateformes de simulation agent classique, ici aucun code au niveau de l’agent n’est spécifique à cette modalité d’exécution simulée. L’écriture du code de l’agent HelloAgent est entièrement indépendante du fait qu’il sera en définitive exécuté dans une simulation ou dans un contexte temps réel. Tant est si bien qu’il peut être exécuté indifféremment dans chacun de ces modes. L’idée étant que dans une méthodologie de conception rigoureuse : une fois que les essais et les ajustements nécessaires ont été réalisés en modalité simulé, on peut déployer les mêmes agents dans l’environnement ambiant.