6
Architecture logicielle de HYDAYA
PourimplémenterlesystèmeHEDAYA,ondoitchoisirunlangagedeprogrammation,unoutild'implémentationdesagentsetdecommunicationentreagents(lacommunicationentreagentsestdétailléedanslasection3.23.2)etdesoutilsdereprésentationdesmodèlesutilisés.irunlangagedeprogrammation,unoutild'implémentationdesagentsetdecommunicationentreagents(lacommunicationentreagentsestdétailléedanslasection)etdesoutilsdereprésentationdesmodèlesutilisés.
6.1
Choix de langage de programmation 6.1 Choix de langage de
programmation
Java fournit la portabilité de code sur plusieurs
plateformes ; un programme Java s'exécute dans un environnement virtuel
standardisé dénommé JVM (Java Virtual Machine)
indépendant de toute plateforme telle que MacOS, Windows, Linux,
Solaris, etc. Le compilateur Java permet de convertir un code source à
une liste d'instructions proche au langage machine appelées pseudo-code,
le JVM contient un interpréteur Java chargé d'exécuter le
pseudo-code sur n'importe quel plateforme. Java fournit la portabilité
de code sur plusieurs plateformes ; un programme Java s'exécute dans un
environnement virtuel standardisé dénommé JVM (Java
Virtual Machine) indépendant de toute plateforme telle que MacOS,
Windows, Linux, Solaris, etc. Le compilateur Java permet de convertir un code
source à une liste d'instructions proche au langage machine
appelées pseudo-code, le JVM contient un interpréteur Java
chargé d'exécuter le pseudo-code sur n'importe quel plateforme.
Java organise la mémoire ; il dispose d'un excellent
mécanisme de la récupération automatique de la
mémoire (garbage collector), qui constitue une fonction du
système d'exécution du langage, restitue spontanément les
zones de mémoire qui ne sont plus utilisés. Java organise la
mémoire ; il dispose d'un excellent mécanisme de la
récupération automatique de la mémoire (garbage
collector), qui constitue une fonction du système d'exécution du
langage, restitue spontanément les zones de mémoire qui ne sont
plus utilisés.
Java est un langage orienté objet, largement
accepté comme standard dans la programmation Internet (applet, servelt,
etc.). Java est un langage orienté objet, largement accepté comme
standard dans la programmation Internet (applet, servelt, etc.).
Beaucoup de technologies reliées aux agents sont
étroitement associées à Java ; comme, par exemple, JADE et
JATLite décrits dans la section suivante. Beaucoup de technologies
reliées aux agents sont étroitement associées à
Java ; comme, par exemple, JADE et JATLite décrits dans la section
suivante.
A.I
AMA
Apprenant
Achieve
6.2
Choix de plateforme agent
Pour mettre en oeuvre l'implémentation multi-agents de
notre système, dans un premier temps, nous avons envisagé les
possibilités offertes par des plateformes multi-agents existantes et
gratuites développées aux universités comme : JATLite
(Java Agent Template, Lite) [Jeon et al 00] est une collection de packages Java
conçus pour fournir un mécanisme de communication et
d'interaction aux programmes distribués à travers l'Internet.
JADE (Java Agent DEvelopment Framework) [Bellifemine et al. 99] est une
plateforme Multi-agents développée en Java par CSELT (Groupe de
recherche de Gruppo Telecom, Italie) qui a comme but la construction des
systèmes Multi-agents et la réalisation d'applications conformes
à la norme FIPA.
Ces plateformes sont très puissantes et
génériques ; mais elles sont relativement trop complexes et
offrent trop de fonctionnalités par rapport à une application
comme la notre.
6.3
Architecture logicielle et outils de développement
Les agents de système HEDAYA sont
implémentés en utilisant le langage de programmation Java. Chaque
agent est défini par son nom, qui indique au module de communication ()
le nom de la machine (ou l'adresse IP) et le port de socket serveur
L'agent d'interface est implémenté en utilisant
le servlet java. Un servlet est un programme java qui s'exécute dans un
serveur Web, et qui peut interagir avec n'importe quel client et peut
accéder le serveur par le biais de requêtes et de réponses,
le serveur Web transmit les requêtes aux servlet et les réponses
aux clients. L'interaction avec l'apprenant (le navigateur Web) se fait par les
requêtes HTTP, par l'intermédiaire du serveur Web ; avec les
autres agents par KQML en utilisant les sockets.
Les bases de données contenant les modèles des
différents apprenants et les attributs des documents multimédias
(méta données de documents multimédias) sont
gérés par le SGBD Interbase, dont l'agent peut connecter la base
de données par le JDBC (Java DataBase Connectivity).
Les documents multimédias sont des documents HTML dans
le Web, ses adresses sont stockées dans la base de documents
multimédias, l'agent d'interface génère la page par
l'agencement des documents et la création des liens (la structure de la
page est définie par l'agent pédagogique d'adaptation, les
adresses des documents sont spécifiées par l'agent de filtrage).
Le modèle du domaine et le modèle des
activités pédagogiques sont exprimés en XML (eXtensible
Markup Language). XML est un langage de balises comme le HTML mais il est
extensible, évolutif. Nous avons choisi XML par ce qu'il ne met aucune
restriction sur le format d'information représentée. Aussi, il
existe plusieurs outils permettant la manipulation des documents XML par un
programme Java.
Dans notre système, on a utilisé BorlandXML pour
la génération des classes Java pour la liaison avec le document
XML à partir de DTD (Document Type Definition). Un DTD est l'ensemble
des règles et des propriétés que le document XML doit les
suivre. Ces règles définissent généralement le nom
et le contenu de chaque balise et le contexte dans lequel elles doivent
exister. La liaison de données permet d'accéder à des
données et de les manipuler, Il consiste de lier des objets Java
à un document XML par une structure de marshalling, qui effectue un
dé-marshalling (lecture) et un marshalling (écriture) de
données. La liaison de données est implémentée en
générant des classes Java pour représenter les contraintes
contenues dans DTD. Vous pouvez ensuite utiliser ces classes pour créer
et lire des documents XML conformes au DTD, ainsi que valider des documents XML
par rapport au DTD.
La figure suivante présente l'architecture logicielle
de système HEDAYA
|