• Aucun résultat trouvé

Arborescence des composants logiciels

3.5 Couche N°3 : Le SMA (Moteur de R&D)

3.5.2 Arborescence des composants logiciels

3.5.2.1 Vue global depuis la racine applicative ${SMA_ROOT}

Arborescence Contenu des répertoires

→ → → → → → → → → → → → → →

Racine applicative ${SMA_ROOT} Répertoire spécifique IDE Eclipse

Classes Java compilées dans des packages sous org.cg33.sma.* Fichiers globaux de configuration du moteur, des ACs et des logs Fichiers de messages fichier_xx.properties avec xx code pays (fr, en…) Librairies Java utilisées dont jade.jar

Fichiers de log générés: SMALog.log et SMAErrorLog.log

Racine des plugins comportementaux des ACs selon 2 typologies Racine des effecteurs mis en œuvre par les agents

Racine des capteurs utilisés par les agents

Scripts de démarrage, arrêt, etc. du moteur, par système d’exploitation Programmes de simulation

Fichiers source java du moteur dans des packages sous org.cg33.sma.* Sauvegardes des fichiers XML du modèle comportemental

115

3.5.2.2 Focus sur le répertoire « ${SMA_ROOT}/classes »

Il contient toutes les classes Java compilées, packagées et visibles dans le tableau 6.

Arborescence Contenu des répertoires

→ → → → → → →

Racine des classes Java compilées

Racine du package du moteur

Classes génériques d’agent : compétence, WebRequester, etc.

Classes d’interfaçage DAO avec la base de données. Pour l’illustration, la table agent, se décline à travers les quatre fichiers

dao/AgentDAO.class, exception/Agent_agentException.class, impl/Agent_agentDAOImpl.class et vo/Agent.class. factory contient

des classes globales (DAOFactory*.class) Classe générique SensorEffectorInterface.class

Librairies spécifiques au moteur : SMAAgent, SMADaoInterface, etc. Programmes de démarrage et d’arrêt global du moteur :

StartupAgents.class et StopAgents.class

Tableau 6 : Structure arborescente du répertoire « classes »

Il est important de noter ici que :

Les classes dans core ont bien été conçues et implémentées de manière générique. Cela signifie qu’il n’y a pas autant d’implémentation différente que d’AC mais bien une généricité dans l’implémentation, par typologie d’agent. Pour être tout à fait transparent, core contient les éléments décrits dans le tableau 7.

Fichier compilé Java Commentaire

On voit bien ici que l’on ne dispose que d’une seule et unique classe Java compilée par typologie d’agent logiciel dans notre moteur.

Les classes dont le nom est de la forme xxxx$yyyy.class sont des classes embarquées dans les fichiers xxxx.class. C’est le cas de BroadcastAgent$RequestPerformer.class et

WebRequesterAgent$TreatSignals.class

116

3.5.2.3 Focus sur le répertoire « ${SMA_ROOT}/conf »

Ce répertoire contient tous les fichiers de configuration globaux, c’est-à-dire en dehors de ceux spécifiquement dédiés à chaque plugin capteur ou effecteur.

Fichiers de configuration Commentaire

On voit bien ici que l’on ne dispose que d’un seul et unique fichier de configuration par typologie d’agent. En parallèle du modèle comportemental implémenté en XML, c’est dans ces fichiers que peuvent être paramétrés les déclenchements de certains effecteurs.

Fichiers de configuration globaux hors agents dans le SMA. On y trouve par exemple la configuration des accès à la base de données (DatabaseServer.properties) ou du serveur de mail (MailServer.properties). Le paramétrage global du moteur s’effectue dans le fichier

sma.properties.

Fichiers de configuration des logs Tableau 8 : Structure arborescente du répertoire « conf »

117

3.5.2.4 Focus sur le répertoire « ${SMA_ROOT}/script »

Ce répertoire contient toutes les fichiers de configuration globaux, c’est-à-dire en dehors de ceux spécifiquement dédiés aux plugins capteurs et effecteurs (voir plus loin).

Scripts Commentaire

Sous Unix ou Linux

Fichiers de paramétrage de l’environnement (config.sh), de lancement (startAll.sh) et d’arrêt (stopAll.sh) du moteur de R&D.

Sous Windows

Fichiers de paramétrage de l’environnement (config.bat), de lancement (startAll.bat) et d’arrêt (stopAll.bat) du moteur de R&D.

Tableau 9 : Structure arborescente du répertoire « script »

3.5.2.5 Focus sur le répertoire « ${SMA_ROOT}/src »

Ce répertoire contient toutes les classes Java sources. Selon leur typologie, elles sont réparties dans des packages visibles dans le tableau 10.

Arborescence Contenu des répertoires

→ → → → → → →

Racine des classes Java compilées

Racine du package du moteur

Classes génériques d’agent : compétence, WebRequester, etc. Classes d’interfaçage DAO avec la base de données

Classe générique SensorEffectorInterface.java

Librairies spécifiques au moteur : SMAAgent, SMADaoInterface, etc. Programmes de démarrage et d’arrêt global du moteur :

StartupAgents.java et StopAgents.java

118

Rappel :

Comme nous l’avons déjà décrit au paragraphe « 3.5.2.2 Focus sur le répertoire

${SMA_ROOT}/classes », les classes dans core ont bien été conçues et implémentées de

manière générique. Cela signifie qu’il n’y a pas autant d’implémentation différente que d’AC mais bien une généricité dans l’implémentation, par typologie d’agent. Pour être tout à fait transparent, cette fois en tant que fichiers source, core contient les éléments décrits dans le tableau 11.

Fichier compilé Java Commentaire

On voit bien ici que l’on ne dispose que d’une seule et unique classe Java par typologie d’agent logiciel dans notre moteur.

119

3.5.2.6 Focus sur le répertoire « ${SMA_ROOT}/plugins »

En référence du schéma présenté figure 1 (Modèle multi-agent générique), tout agent agit, induit des comportements, via la mise en œuvre de capteurs et d’effecteurs. Nous avons procédé par analogie dans notre implémentation et décliné chacun de ces éléments sous la forme de plugins comportementaux dans le répertoire ${SMA_ROOT}/plugins du moteur de R&D. Le tableau 12 fournit la liste de ceux disponibles dans la version actuelle de nos développements.

Arborescence Contenu des répertoires

→ → → → → → → → → → → → → → → → → → →

Racine des plugins comportementaux

Racine des effecteurs des Agents

Effecteur de création de lien avec un autre AC Effecteur de recherche de liens avec d’autres AC Effecteur de recherche d’acteur(s) pour un AC Effecteur de recherche d’objectifs

Effecteur de candidature à un projet pour un AC Effecteur de recherche des ACs pour un agent objectif Effecteur générique (squelette pour programmation) Effecteur d’arrêt global du SMA

Effecteur de croissance d’âge pour un AC

Effecteur de génération nouvelle règle comportementale Effecteur de simulation

Racine des capteurs des Agents

Capteur de condition remplie en base de données Capteur de déclenchement de recherche de liens Capteur générique (squelette pour programmation) Capteur de déclenchement de croissance d’âge d’AC Capteur d’analyse globale des règles comportementales Tableau 12 : Structure arborescente du répertoire « plugins »

Tout plugin comportemental peut alors être codé, au sens informatique, selon un framework de développement normalisé que nous décrivons en détail au paragraphe suivant.

120