La librairie MECA

Cette librairie, écrite en JAVA, permet d’implémenter un agent selon l’architecture MECA. Pour cela, il suffit d’instancier la classe principale de cette librairie (la classe MECA) afin d’obtenir un gestionnaire (appelé moteur MECA) dont les méthodes vont servir à spécifier chacune des unités de code qui compose l’agent. Ces unités possèdes :

  • un type, renseignant sur la nature de l’unité. Quatre types sont possibles : actuator, sensor, behavior, et regulator.
  • un identifiant, qui est une chaîne de caractère unique permettant d’identifié l’unité de façon exclusive.

L’ensemble des unités définies pour un agent sont regroupées dans une abstraction appelé corps, ou body. Ce corps représente ainsi, au niveau du code, l’entité agent géré globalement par le moteur MECA.

Le moteur MECA expose deux types de fonctionnalité :

  1. La caractérisation du corps de l’entité : 4 fonctions permettent d’enregistrer respectivement les 4 types d’unités de code possibles qui entrent en jeux dans la gestion de l’entité. Ces fonctions permettent ainsi de définir le corps de l’entité de façon incrémentale en formalisant chacune de ses 4 dimensions : action, perception, comportement et régulation.
  2. Le traitement de l’évolution de l’entité : une fonction de lancement (start()) permet de démarrer le processus de gestion. Ce processus va émettre les pulsations d’activation des différents comportements et réaliser le traitement des interactions produites par ces derniers sur les autres unités de code. Et chaque flux d’action sur les actuateurs sera préalablement filtré par les différents régulateurs existantes avant d’être réellement appliqué sur les actuateurs (modèle influence/réaction).

Les unités de code n’agissent pas directement les unes sur les autres, toutes leurs interactions passent par le moteur MECA. Pour cela, au moment de son enregistrement, l’unité de code obtient un descripteur BodyHandle qui lui est spécifique (c’est d’ailleurs ce descripteur qui lui permet de consulter son identifiant et son type). Ce descripteur constitue en quelque sorte le portail d’interaction de l’unité de code sur le corps de l’entité. Ce descripteur porte les différentes méthodes permettant de déclencher les divers interactions possibles : la sollicitation d’un capteur, la demande d’action sur un actuateur, l’activation d’un comportement et l’envoie d’une requête sur un régulateur.

Le fait qu’un descripteur BodyHandle est propre à une unité de code permet au moteur d’identifier en permanence l’unité à l’origine de l’interaction, ce qui lui permet de transmettre cette information à l’unité cible quand il applique l’interaction sur cette dernière.

Cette identification de confiance permet aussi aux règulateurs de prendre en compte, dans leur processus de filtrage, l’identité de l’unité à l’origine de la demande d’action sur un actuateur. Cette prise en compte peut alors servir à autoriser ou non l’action, ou encore à gérer finement les priorités en cas d’action simultanés sur le même actuateur.

Téléchargement

Cette archive contient :

  • La librairie MECA au format jar.
  • La sous-librairie Utility utilisée dans l’implémentation de la librairie MECA, et donc nécessaire à son utilisation.
  • La documentation des API de ces deux librairies au format javadoc.

 

Documentation

La document de cette librairie peut être consultée en ligne (format javadoc) en suivant ce lien : L’API de la librairie MECA