Les trois couches de virtualisation
Présentation du contexte
Le besoin a toujours guidé l’être humain à de grandes inventions. La mise en place et le développement d’infrastructure a eu et continu d’avoir un grand impact sur notre mode vie. La création des chemins de fer, des routes, des réseaux électriques, des réseaux téléphoniques, etc. ont changé notre mode de vie, non seulement sur l’aspect économique, où ces infrastructures supportent des industries de plusieurs milliards de dollars, mais aussi sur l’aspect social (Cronon, 1992). Sans ces infrastructures, notre vie ne sera pas semblable à celle qu’on connait actuellement. Malgré le fait que ces infrastructures soient en apparence différentes, elles partagent un ensemble de caractéristiques communes. Pour étudier l’impact, sur nos sociétés, du développement d’infrastructure dans le domaine des technologies de l’information, la comparaison peut être faite avec les autres types infrastructures. En effet, l’infrastructure de transport a participé à la création et au développement de villes entières. De la même façon, l’infrastructure informatique regroupe autour d’elle des gens, des organisations et des compagnies, qui sont intéressés par l’information, les services et les applications qu’offre le web, et qui permettent de faciliter le travail, le commerce, etc. Cette activité humaine sur Internet génère une grande quantité de données sous plusieurs formes : textuelles et non textuelles, structurées, semi structurées ou non structurées. Plusieurs applications, notamment dans le domaine scientifique, produisent aussi d’énormes quantités de données telles que les projets de recherches sur le génome humain, l’astronomie, la physique comme le projet du grand collisionneur d’hadrons qui va théoriquement, générer une grande quantité de données (Baud, Casey, Lemaitre, & Nicholson, 2005). Ces données doivent être stockées, analysées et traitées. Cependant, les ressources disponibles ne sont pas souvent suffisantes pour répondre à la demande croissante en matière d’infrastructure informatique nécessaire à cet effet. La dernière décennie a vu naitre un nouveau paradigme, en l’occurrence la virtualisation, qui a pour objectif de résoudre le problème de la demande en matière d’infrastructure. Basée sur l’idée du partage et de l’utilisation des ressources communes, cette idée n’est pas aussi récente. En effet, on a déjà partagé les supercalculateurs. Historiquement, la technologie des grilles informatiques est la première technologie qui a permis le partage d’un grand nombre de types de ressources géographiquement distantes. De nouvelles technologies de virtualisation ont émergé récemment, en l’occurrence les technologies des nuages informatiques qui consistent tout particulièrement à partager des ressources. Les fournisseurs d’infrastructures mettent en commun un ensemble de ressources dans un espace accessible aux différents usagers autorisés à utiliser ces infrastructures. Les nuages informatiques offrent un accès orienté service pour une vaste gamme de ressources, matérielles ou logicielles. L’intérêt suscité par les nuages informatiques ne cesse de prendre de l’ampleur, aussi bien dans les milieux industriels que dans les milieux académiques. En comparant aux technologies des grilles, l’accès aux ressources s’effectue d’une façon plus fiable et plus transparente. Les nuages informatiques en particulier et les organisations virtuelles en général offrent une grande quantité de ressources hétérogènes. On peut trouver différents types de ressources : des serveurs, des supports de stockages, des supercalculateurs, etc. avec différents systèmes d’exploitation comme Windows, Linux, MAC OS, des micrologiciels qui font fonctionner certain type de ressources, et même pour chaque type de ressource on peut trouver différentes versions de système d’exploitation ou micro logiciel. Cette flexibilité permet aux fournisseurs ainsi qu’aux utilisateurs de virtualiser et de partager un grand nombre de types de ressources hétérogènes. Mais aussi, elle les met devant de grands défis. L’un des problèmes auquel il faut faire face est le problème de la description et de la recherche des ressources dans un environnement virtuel. Un utilisateur qui souhaite soumettre des tâches à un système virtuel doit d’abord chercher les ressources nécessaires pour l’exécution de ses tâches. Un problème clé dans la mise en œuvre d’une telle technologie est le système de découverte de ressources. Un mécanisme de virtualisation, que ce soit, un nuage informatique ou une grille informatique, doit se doter d’un système adéquat. Les traditionnelles méthodes de recherche des ressources web se basent sur une recherche avec des mots clés qui représentent au mieux la ressource nécessaire à l’exécution d’une tâche spécifique. Cette méthode consiste à retourner les ressources dont les descriptions contiennent les mêmes mots clés que comporte la requête. Malheureusement, cette méthode ne donne pas satisfaction dans le cas ou les ressources sont mal décrites, de même si les requêtes des utilisateurs manquent de précision ou comportent des confusions. Car souvent, les utilisateurs ne sont pas capables de bien spécifier leurs besoins où ne choisissent pas les mots les plus significatifs. Par ailleurs, plusieurs ressources sont décrites avec des mots clés différents que ceux utilisés par l’usager dans sa requête, mais sont sémantiquement identiques. Ces ressources ne seront malheureusement pas retournées. Tout ça conduit à une sous exploitation des ressources et du potentiel existant.
Problématique
Si la virtualisation se positionne comme une solution prometteuse face à l’augmentation de la demande en matière d’infrastructure informatique, la recherche des ressources dans le contexte des organisations virtuelles interconnectées via Internet peut être une fastidieuse tâche. En effet, afin d’être performant et efficace, un système de recherche de ressources web, dans le contexte des nuages informatiques, doit absolument répondre aux questions suivantes : • Comment modéliser et décrire des ressources qui sont hétérogènes ? Pour que le système de découverte de ressource soit capable de retrouver les ressources souhaitées, il est primordial de trouver une méthode avec laquelle les ressources peuvent être modélisées et décrites. • Comment représenter les ressources ? 4 Afin qu’un système de découverte de ressources puisse retrouver la ressource souhaitée dans un environnement distribué, les ressources doivent être représentées d’une manière efficace. Chaque ressource doit être adressable convenablement et de la meilleure façon. • Comment résoudre le problème de la précision? Tout système de recherche doit être précis et le résultat doit comporter le moins que possible de ressources non souhaitées. • Comment résoudre le problème de la sémantique ? Un système de recherche dans un contexte de nuage informatique doit aller au-delà des mots clés et trouver les ressources qui sont décrites avec des mots syntaxiquement différents, mais sémantiquement identiques. Par exemple, une ressource qui décrit un serveur qui possède un système d’exploitation Ubuntu peut être compatible avec une ressource possédant un système d’exploitation Fedora. Elles font partie du même groupe, à savoir celui des ressources qui possèdent un système d’exploitation Linux. • Comment traiter les requêtes des utilisateurs ? Les requêtes des utilisateurs peuvent être ambigües ou comprendre des mots clés qui ne sont pas les plus communs. Le traitement des requêtes peut augmenter les performances d’un système de découvert de ressources. Par exemple, une requête formulée de la manière suivante : {‘‘Ubuntu’’, ‘‘512 Mo’’, ‘‘HDD=30 G’’} doit être prise en charge. Pour cela elle peut être reformulée en une requête type, en ajoutant d’autres indications, comme suit : {‘‘système d’exploitation=Ubuntu’’, ‘‘Mémoire=512 Mo’’, ‘‘disque dure=30 G’’}.
|
Table des matières
CHAPITRE 1 INTRODUCTION
1.1 Présentation du contexte
1.2 Problématique
1.3 Objectifs
1.4 Plan du mémoire
CHAPITRE 2 LA VIRTUALISATION
2.1 Introduction
2.2 Organisation virtuelle
2.3 Les trois couches de virtualisation
2.3.1 La couche application
2.3.2 La couche service
2.3.3 La couche infrastructure
2.4 La technologie des grilles
2.4.1 La gestion décentralisée des ressources
2.4.2 Standard et code source libre
2.4.3 Qualité de service
2.5 L’architecture d’une grille
2.5.1 La couche Applications
2.5.2 La couche collective
2.5.3 La couche de ressources
2.5.4 La couche connectivité
2.5.5 La couche fabrique
2.6 Open Grid Service Architecture (OSGA)
2.7 Les types de grilles
2.7.1 Grille de calcul
2.7.2 Grille de données
2.8 Web Services Resource Framework WSRF
2.8.1 Service Web
2.8.2 Invocation d’un service Web
2.8.3 Architecture d’un Service Web
2.8.4 Le protocole SOAP
2.8.5 Web Service Description Language
2.8.6 Service Resource Framework
2.8.7 La ressource dans le contexte des grilles
2.8.8 WS-Resource
2.8.9 Les spécifications des WSRF
2.9 Globus toolkit
2.9.1 L’architecture de Globus
2.10 La découverte des ressources dans un environnement virtuel
2.11 Monitoring and Discovery Services (MDS)
2.11.1 Service d’index
2.11.2 Déclencheur (Trigger)
2.11.3 Aggregator Framework
2.11.4 L’interface utilisateur WebMDS
2.12 La découverte des ressources et la sémantique
2.13 Conclusion
CHAPITRE 3 LE NUAGE INFORMATIQUE
3.1 Introduction
3.2 Les nuages informatiques
3.2.1 Le logiciel comme service SaaS
3.2.2 La plate forme comme service PaaS
3.2.3 L’infrastructure comme service IaaS
3.3 Architecture d’un nuage de calcul
3.4 Nuage versus grille
3.4.1 Similarités
3.4.2 Différences
3.5 IaaS inocybe
3.5.1 Le module ressource
3.5.2 L’architecture du module ressource
3.5.3 Le module modèle
3.5.4 Le module capacité (capability)
3.5.5 Le module persistance
3.5.6 Le module service
3.6 Open Services Gateway Initiative (OSGI)
3.6.1 Le paquet OSGI
3.6.2 Le fichier manifeste
3.7 Le Framework OSGI
3.7.1 La couche sécurité
3.7.2 La couche module
3.7.3 La couche cycle de vie
3.7.4 La couche service
3.8 Conclusion
CHAPITRE 4 LE CADRE DE DÉCOUVERTE DE RESSOURCE WEB BASÉ SUR
L’ONTOLOGIE ET LE RÉSEAU BAYÉSIEN
4.1 Introduction
4.2 Les spécifications de la recherche des ressources
4.3 Le Web sémantique
4.4 RDF
4.5 Méthodologie
4.6 Le cadre de découverte des ressources
4.6.1 Fournisseur d’infrastructure
4.6.2 Utilisateurs finaux
4.6.3 Fournisseur de service
4.7 La base de connaissance
4.8 L’ontologie
4.8.1 Le concept
4.9 Méthode de construction d’une ontologie
4.9.1 Déterminer le domaine de l’ontologie
4.9.2 Déterminer les ontologies existantes qui sont proches
4.9.3 Déterminer les classes et la hiérarchie
4.9.4 Déterminer la terminologie de l’ontologie
4.10 Le thésaurus
4.11 Réseau Bayésien
4.11.1 Réseau Bayésien pour la recherche d’informations
4.11.2 L’analyseur sémantique Bayésien
4.12 Conclusion
CHAPITRE 5 EXPÉRIMENTATIONS ET DISCUSSION
5.1 Introduction
5.2 Le Green Star Network
5.3 Déploiement de GSN
5.4 Ontologie
5.5 Construction du banc de test
5.6 Test de performance
5.7 Découverte des ressources selon les émissions du CO2
5.8 Conclusion
CONCLUSION
ANNEXE I EXEMPLE D’UN FICHIER WSDL2.0
ANNEXE II FICHIER RDF
LISTE DE RÉFÉRENCES BIBLIOGRAPHIQUES
Télécharger le rapport complet