• Aucun résultat trouvé

Chapitre VI : Etude de Cas et Implémentation

VI.2. Outils et plateformes utilisés

Le prototype a été développé sous le système d’exploitation Windows 7 professionnel avec des outils souvent Open source graphiques et développés en Java. Nous détaillons, dans ce qui suit, chacun des outils et langages utilisés pour la manipulation des données ainsi que l’implémentation des interfaces de notre application.

114

VI.2.1. Environnement de développement

Afin de faciliter le développement de notre application, nous avons utilisé l’environnement de développement Eclipse Indigo basé sur le langage Java. Eclipse est un Environnement de Développement Intégré (EDI: Environment development integrated). Il est particulièrement bien adapté pour le développement d’applications Web, ainsi il supporte différents langages, comme Python, C, C++, XML, HTML. C'est un IDE moderne qui offre un éditeur avec des codes couleurs et un ensemble de signes, des modèles de projets multi-langage et de différents types (application indépendante, distribuée, plugin, mobiles, ... etc.).

Eclipse est disponible sous Windows, Linux ou sous une version indépendante des systèmes d'exploitation. Un environnement Java Développent Kit JDK est requis pour les développements en Java.

Figure VI.1 : La fenêtre principale de l’Eclipse

VI.2.2. Langage de programmation

Nous avons choisi le langage Java pour la programmation de notre application. La syntaxe générale du langage Java est très proche de celle du langage C. Ce choix a été motivé par les raisons suivantes :

115

 Java est un langage orienté objet simple ce qui réduit les risques d’incohérence ;

 Java est portable. Il peut être utilisé sous Windows, sous Linux, sous Macintosh et sur d’autres plateformes sans aucune modification. Java est donc un langage multiplateformes, ce qui permet aux développeurs d’écrire un code qu’ils peuvent exécuter dans tous les environnements ;

 Java possède une riche bibliothèque de classes comprenant des fonctions diverses telles que les fonctions standards, le système de gestion de fichiers, les fonctions multimédia et beaucoup d’autres fonctionnalités ;

 Il existe une API Java fournie avec l’éditeur d’ontologies Protégé, ce qui permet d’accéder à l’ontologie à partir de notre application. De plus, les API des autres langages ne sont pas encore finalisées et doivent encore être mises à jour.

VI.2.3. Plateforme JADE

Afin d’assurer un développement rapide est efficace des agents qui composent notre système, nous utilisons la plateforme de développement des systèmes multi-agent JADE.

JADE est une plateforme implémentée complètement avec le langage Java. Ce Framework est destiné à faciliter le développement des systèmes multi-agents en conformité totale avec le standard FIPA. La plateforme JADE fournit une interopérabilité sans limite pour les applications quelles prend en charge, car cette plateforme est indépendante du système d’exploitation ainsi que du matériel sur laquelle elle est implémenté (Bellifemine, 1999).

VI.2.3.1. Architecture logicielle

Puisque JADE est une plateforme basée sur les standards FIPA, l’architecture de cette plateforme est également basée sur l’architecture proposée par FIPA. AMRM (Agent Management Reference Model) est le modèle de base de l’architecture de la plateforme JADE proposée par FIPA. Chaque module qui compose l’architecture de la plateforme JADE est présenté sous forme de service, ce qui permet aux agents de bénéficier d’une plateforme orientée service, afin de faciliter la communication et la collaboration entre eux. Les principaux modules qui composent l’architecture JADE sont : DF, AMS et également le MTS (Massage Transport Service) qui sert de moyen pour la communication entre plusieurs plateformes JADE. Afin d’assurer un fonctionnement efficace des agents sur la plateforme JADE, cette dernière utilise :

116

AID (Agent Identifier) : afin de distinguer et d’identifier chaque agent.

DF : qui joue le rôle d’un annuaire servant à enregistrer les compétences de chaque agent. Les pages jaunes fournis par ce service, sont destinées à mettre en relation les différents agents fonctionnels sur la plateforme JADE, et cela pour qu’un agent puisse consulter et interroger ce service, afin d’obtenir des informations sur les compétences des autres agents et afin d’assurer une bonne collaboration entre eux.

AMS : joue le rôle d’un annuaire pour l’enregistrement des adresses de transport des différents agents de la plateforme. Le but c’est de fournir un service de « pages blanches » afin de mettre en correspondance les agents avec l’AID, pour faciliter leur contrôle et supervision.

VI.2.3.2. Langage de communication

Le langage de communication FIPA-ACL (Agent Communication Langage) est le langage adopté par la plateforme JADE. De façon générale, la communication entre agents est en mode asynchrone, et elle est mise en oeuvre en utilisant la classe ACLMessage. La structure générale d’un message envoyé entre deux agents contient plusieurs champs tels que chaque champ comprend une donnée spécifique. La structure d’un message est la suivante :

Sender : contient le nom de celui qui envoie le message.

Receiver : contient la liste des noms des agents qui vont recevoir le message.

Performative : ce champ peut prendre les valeurs suivantes : REQUEST, INFORM, PROPOSE, ACCEPT_PROPOSAL, REJECT_PROPOSAL.

Content : ce champ contient le message à envoyer.

VI.2.3.3. Mobilité

Afin de permettre aux agents de migrer d’une plateforme à une autre ou d’un container à un autre, selon le type de mobilité visé par chaque agent mobile, la plateforme JADE utilise deux types de services:

Mobilité Intra-plateforme : la plateforme JADE utilise un service de gestion de la mobilité des agents (Agent Mobility Service) pour implémenter ce type de mobilité. Avec la mobilité intra-plateforme, l’agent mobile a la faculté d’émigrer d’un container à un autre, mais dans la même plateforme seulement, en utilisant la méthode doMove().

117

Outre, les méthodes beforeMove() et afterMove() servent comme moyen de déterminer les actions à entreprendre par l’agent mobile avant ou après la migration.

Mobilité Inter-plateforme : la plateforme JADE utilise l’IPMS (Inter-Platform

Mobility Service) pour implémenter ce type de mobilité. Avec la mobilité inter- plateforme, l’agent mobile a la faculté d’émigrer d’une plateforme à une autre, en utilisant la méthode move() et power-up(). La première méthode sert à l’émigration de l'agent avec ses données et son code, et la seconde méthode sert à activer l'agent une fois la migration effectuée.

VI.2.4. L’éditeur des ontologies Protégé

Protégé est un éditeur d’ontologies distribué en open source par l’université en informatique médicale de Stanford. Protégé n’est pas un outil spécialement dédié à OWL, mais un éditeur hautement extensible, capable de manipuler des formats très divers. La figure VI.2 illustre notre ontologie de tourisme crée par l’outil Protège 5.0.0-beta-24.

Figure VI.2 : Aperçu de l’ontologie « Tourisme » comme elle apparaît sur l’éditeur Protégé 5.0 (Benseghir, 2015)

118

Le support d’OWL, comme de nombreux autres formats, est possible dans Protégé grâce à un plugin dédié. Protégé est un outil employé par les développeurs et des experts de domaine pour développer des systèmes basés sur les connaissances (ontologies). Des applications développées avec Protégé sont employées dans la résolution des problèmes et la prise de décision dans un domaine particulier. Protégé est aussi une plate-forme extensible, grâce au système de plug-ins, qui permet de gérer des contenus multimédias, interroger, évaluer et fusionner des ontologies, etc. L'outil Protégé possède une interface utilisateur graphique (GUI) lui permettant de manipuler aisément tous les éléments d’une ontologie : classe, méta-classe, propriété, instance,…etc.

Protégé permet aussi de créer ou d’importer des ontologies écrites dans les différents langages d’ontologies tel que : RDF-Schéma, OWL, DAML, OIL, …etc. Cela est rendu possible grâce à l’utilisation de plugins qui sont disponibles en téléchargement pour la plupart de ces langages.

VI.2.5. JENA

JENA est un Framework Java pour construire des applications Web sémantique. Il fournit un environnement de programmation pour RDF, RDFS, OWL, et SPARQL. JENA comprend un moteur d’inférence à base de règles.

VI.2.6. JSP

Le Java Server Pages ou JSP est une technique basée sur Java qui permet aux développeurs de créer dynamiquement du code HTML, XML ou tout autre type de page Web. Cette technique permet au code Java et à certaines actions prédéfinies d'être ajoutés dans un contenu statique. Depuis la version 2.0 des spécifications, la syntaxe JSP est complètement conforme au standard XML. Les JSP permettent d'écrire facilement des servlets, en incluant dans des balises spécifiques le code JSP au sein du fichier HTML. De cette façon, elles fournissent une technologie rapide afin de créer des pages dynamiques. De plus, les JSP sont basées sur Java côté serveur, elles possèdent toutes les caractéristiques faisant la force de Java : efficace ; facile pour les développeurs du Web ; ...