• Aucun résultat trouvé

Partie I. Etat de l’art et travaux connexes

V. Contribution 2: Architecture du système

VI.2. Outils et Plateformes Utilisés

Afin de faciliter le développement de notre application, nous avons utilisé l’environnement de développement intégré Eclipse Indigo basé sur le langage JAVA. Nous utilisons également la plate-forme JADE (version 4.1) pour le développement des agents, avec le langage de communication FIPA-ACL. Enfin, Nous utilisons, la plate-forme Cloudsim pour la simulation des ressources virtuelles ainsi que les taches exécutées par notre système.

VI.2.1. Simulateur Cloud

Un des grands problèmes de développement d’applications sur le Cloud est l'environnement dans lequel nous pouvons reproduire les tests. Faire des tests sur un environnement Cloud réel comme Amazon EC2, pourrait être très coûteux. Mais avec la simulation, les développeurs peuvent tester et optimiser leurs applications Cloud sans avoir à payer quoique ce soit, et même les clients peuvent tester les performances de leurs services de façon reproductible, et sur un environnement contrôlable et gratuit, avant de mettre les applications sur l’environnement Cloud réel.

Un simulateur Cloud est un outil qui permet de manipuler des Datacenter avec leurs serveurs de base et tout le hardware nécessaire à leur bon fonctionnement (CPUs, Disque dur, RAM … etc.), afin de simuler la création et distribution de taches sur des machines virtuelles.

Dans la validation que nous présentons sur cette thèse, nous utilisons le simulateur Cloudsim.

119

VI.2.1.1. Plate-forme Cloudsim

Cloudsim est un outil puissant de modélisation, simulation et expérimentation qui sert au développement d'infrastructure Cloud, il permet également aux développeurs de tester leurs services et applications Cloud, sans se préoccuper des détails de bas niveau liés aux infrastructures Cloud :

Les principales fonctionnalités de Cloudsim sont [149, 150]:

 Supporter la modélisation et la simulation des Datacenter Cloud à grandes échelle.  Supporter la modélisation et la simulation des serveurs virtuels d’hébergement

d’application, avec possibilité de personnaliser la politique de fourniture des ressources d’hébergements aux machines virtuelles.

 Supporter la modélisation et la simulation de ressources virtuelles et logiques pour le test et l’optimisation de la consommation d'énergie sur le Cloud.

 Supporter la modélisation et la simulation des différentes topologies réseaux, Datacenter et échange de messages entre applications Cloud.

 Supporter la modélisation et la simulation des systèmes Cloud fédérés.

 Supporter l'insertion dynamique de nouveaux éléments de simulation, avec des capacités d’arrêt et de reprise de simulation.

 Supporter tout type et politiques d’allocation de ressources pour la création de machines virtuelles, et tout type et politiques d’allocation de ressources pour l’hébergement d’application et de services Cloud.

VI.2.1.2. CloudAnalyst

Avec Cloudsim, il est très difficile de quantifier certains paramètres importants pour l’évaluation de l’efficacité des services Cloud, tels que la localisation géographique des Datacenter, qui permet de calculer la distance entre eux et leurs clients, l’impact du nombre d'utilisateurs simultanés, et l’implication de la topologie des réseaux sur la gestion des ressources.

CloudAnalys est un outil de simulation qui permet aux développeurs d'exécuter et de tester les différentes simulations de façon reproductible, en prenant en considération les différents paramètres suscités.

CloudAnalys est équipé d'une interface utilisateur graphique (GUI) qui facilite sont utilisation (voir figure 6.1), et qui permet aux développeurs de mettre en place des expériences de façon rapide et facile. Outre, CloudAnalyst permet de séparer entre l’aspect simulation et l’aspect programmation lors du développement des paramètres de chaque expérimentation. De cette façon le développeur peut se concentrer sur la complexité de la simulation au lieu de passer la majeure partie de son temps sur les aspects techniques de la programmation à l'aide d'un Toolkit de simulation [151].

120

Figure VI.1: Interface graphique du simulateur CloudAnalyst.

VI.2.2. Plate-forme 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 regroupe un ensemble d’outils et d’API qui permettent la construction et la mise en service d’agents sur un contexte bien spécifique.

VI.2.2.1. Présentation générale

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é [152]. JADE est composée de trois principaux modules qui dépendent directement des normes FIPA :

 DF : pour Dirictor Facilitor en anglais, qui sert à la fourniture d’un service de « page jaune » à toute la plateforme JADE.

 ACC : pour Agent Communication Channel en anglais, qui représente l’outil de gestion de communication entre agents, pour la plateforme JADE.

 AMS : pour Agent Management System en anglais, qui représente l’outil de gestion (authentification, supervision, accès … etc.) des agents de la plateforme JADE.

VI.2.2.2. 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 (pour Agent Management Reference Model en anglais) 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.

121

Les principaux modules qui composent l’architecture JADE sont : DF, AMS et également le MTS (pour Massage Transport Service en anglais) 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 :

 AID : pour Agent Identifier en anglais, 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.2.3. Langage de communication

Le langage de communication FIPA-ACL (pour 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 œuvre en utilisant la classe ACLMessage. On distingue deux cas d’utilisation de la classe ACLMessage:

 Envoi de messages : quand un agent souhaite envoyer un message, il doit créer un Objet du type ACLMessage, ajouter les paramètres qu’il souhaite envoyés, et appeler la méthode send() pour envoyer son message.

 Réception de messages : quand un agent souhaite recevoir un message, il doit faire appe là la méthode recieve() ou blocking receive().

VI.2.2.4. 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 en anglais) 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(). 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 (pour Inter-Platform Mobility Service en anglais) 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.

122