Plateforme à base de grid pour la gestion des connaissances

Définition d’une grille

Le terme de la grille est apparu en informatique dans les années 1990 , il s’inspire de la grille d’électricité .
Une grille peut être vue comme un assemblage de ressources logicielles et matérielles distribuées, hétérogènes et partageables telles que les unités de stockages, les unités de calcules, les ressources réseaux et les entités logiques comme les fichiers système distribués et les clusters. Ainsi, ils existent plusieurs définitions de la grille ;
« Une grille informatique est une infrastructure virtuelle, garantissant des qualités de services non triviales, et constituée d’un ensemble de ressources informatiques partagées, hétérogènes, coordonnées et non contrôlées. »  « il nous permet d’accéder à des ressources hétérogènes à partir de différentes organisations en fournissant un ensemble de protocoles, technologies, et méthodologies… » .
Une grille informatique est une infrastructure virtuelle constituée d’un grand nombre de ressources (cycles CPU, données, espace mémoire de stockage) qui ne possèdent pas d’une relation physique, mais juste de point de vue logique; et pour ce faire il est nécessaires de disposer d’une architecture matérielle permettant l’interconnexion entre ces ressources, et d’une architecture logicielle afin de gérer et contrôler cet ensemble.

Différents types de grilles informatiques

On distingue trois types de grille : Grilles d’information : La notion de grille d’information consiste en le partage de l’information à travers un réseau. Le net est basé sur ce principe de partage de connaissances, toute organisation peut publier les connaissances qu’elle possède afin de les rendre disponibles pour d’autres unités, en y fournissant un ensemble d’outils pour manipuler (rechercher, interroger, ..) ces connaissances. Ce genre de plateforme (grille) doit être doté de mécanismes pour gérer de grandes masses d’informations, les indexer, les classer et les trouver efficacement en cas de besoin.
Grilles de données : Ce type de grille (appelé caches distribués) permet le partage de données entre plusieurs nœuds, plus une donnée est demandée, plus elle sera répliquée pour la rendre plus disponible et facilement accessible, aucun calcul n’est effectué. Les grilles de données ont pour objectif de maximiser la récupération d’objets tout en assurant une cohérence des données dans un contexte multi-machines. Les réseaux d’échange Peer-To-Peer (« P2P ») sont le cas le plus représentatif de ce concept, ils permettent l’accès aux données via un réseau de serveurs partageant un indexe, ce dernier est utilisé pour référencier les données est pour effectuer la recherche à travers des moteurs très performants.
Les données peuvent être divisées selon leurs volumes, identifiées avec une fonction de hachage, répliquées sur un nombre de nœuds variant selon leurs demandes.
Grilles de calcul : Les idées de partage de ressources de calcul et de stockage ont commencé dans les années 80 avec de grands projets tel que Condor, la demande de ce partage a eu lieu dans le domaine de la physique des particules, où de grandes masses de données sont produites. Appelé également calcul distribué ou calcul partagé, ce type de grille permet de réaliser des calculs intensifs demandant un nombre important de ressources de calcul (processeurs, mémoires, ressources réseau, ..).
Une grille de calcul est constituée de ressources informatiques hétérogènes liées par un réseau, c’est une forme d’informatique distribuée, basée sur le partage dynamique des ressources afin d’augmenter les performances des environnements, et pour l’accomplissement d’une tâche gourmande en terme calcul. Pour pouvoir coopérer un ensemble de ressources hétérogènes, il est nécessaire de se posséder d’une couche logicielle, généralement nommée Intergitiel, ce dernier masque toute sorte d’hétérogénéité au niveau matériel qu’au niveau logiciel, cette couche permet d’exploiter efficacement et en toute sécurité les différentes ressources disponibles sur la grille.

Application des grilles de calcul

Vu la puissance offerte par les grilles de calcul, la disponibilité des ressources qu’elles peuvent garantir, ainsi la sécurité des transactions, elles peuvent êtres impliquées dans plusieurs domaines d’application qu’on peut les classer en cinq catégories principales:
Supercalculateur distribué (Distributed Supercomputing) : La grille de calcul peut contenir un nombre important de calculateurs, qui travaillent en synchronisation pour fournir la puissance de calcul demandée afin de réaliser une tâche gourmande. Les ressources agrégées peuvent être hétérogènes. Différentes technologies peuvent être incluses. Parmi les ressources qu’on peut trouver, on cite les stations de travail, les grappes et les clusters.
Dans le domaine de supercalculateur distribué, l’infrastructure doit être dotée de mécanismes et d’algorithmes capables de gérer l’ordonnancement à grande échelle, tout en garantissant des performances globales élevées qualifiantes l’utilisation des grilles de calcul dans une telle infrastructure hétérogène.
Calcul haut débit (High-Throughput Computing) : C’est un terme publié par le projet Condor (Miron Livny, University of Wisconsin). Utilise de puissants calculateurs distribués (potentially grid computing) pour affecter aux processus les ressources demandées afin de terminer le plus vite possible le traitement des lots de tâches.
Les ressources de calcul qui peuvent êtres utilisées dans ce type d’application sont des serveurs centralisés comme les clusters et les Grappes, ou des PCs distribués. Les applications qu’on peut réaliser avec le calcul haut débit sont les applications de cryptographie, la simulation des molécules et l’analyse des ADN.
Plusieurs projets ont été élaborés dans ce contexte, on cite : World Community Grid (WCG) : un projet lancé en Novembre 2004 par IBM, dans le but de créer la plus grande grille de calcul pour des projets de recherche. En utilisant des cycles de processeurs non utilisés des ordinateurs connectés à Internet dans le monde, le projet WCG de recherche a réussi d’analyser les aspects du génome humain, le VIH, la dystrophie musculaire, et le cancer.
Large Hadron Collider (LHC projet) : c’est le plus grand accélérateur de particules mis en opération fin 2008 par l’Organisation européenne pour la recherche nucléaire (CERN). Destiné à s’opposer à des collisions de faisceaux de protons ou des ions de plomb. La grille du HLC est un assemblage de plus de 140 centres de calcul dans 33 pays, le principal objectif est de construire une infrastructure d’analyse et de stockage d’une dizaine de million de GO de données produites par le LHC.

Notion d’organisation virtuelle (VO)

L’organisation virtuelle est un concept qui signifie un ensemble d’individus et d’équipements informatiques, qui partagent des ressources et des services soumis à des politiques de sécurité spécifiant les autorisations de ce partage. On regroupe les utilisateurs qui ont les mêmes besoins au sein d’une VO, cette dernière possède des règles et des stratégies de sécurité adaptées le mieux à ce groupe. La VO peut grouper : une équipe qui travail sur un même projet ; un ensemble de chercheur dans un domaine commun ou avec une technologie commune ; un ensemble d’utilisateurs qui travaillent sur les mêmes ressources. La VO fournit une multitude de services selon les besoins de leurs utilisateurs et en suivant des stratégies de sécurité et des politiques définies par les concepteurs.
Un utilisateur peut être affecté à plus d’une organisation virtuelle, dans ce cas, son authentification se fait qu’auprès une seule, ensuite, il peut accéder au autres VO dont il est membre et donc a le droit de bénéficier des ressources et des services disponibles. La durée de vie des organisations virtuelles est variante, ainsi leurs créations et leurs gestions ouvrent la voie vers d’autres travaux de recherches qui incluent les projets de localisation, d’affectation et de partage de ressources dans une VO.

Services Web

On trouve plusieurs définitions pour les services Web : Définition fournie par IBM : Un service Web est une interface qui décrit une collection d’opérations accessibles sur un réseau via des messages standards au format XML. Des Services Web accomplissent une tâche spécifique ou un ensemble de tâches. Un Service Web est décrit en utilisant la notation XML formelle, appelée également le descripteur de Service qui fournit tous les détails nécessaires, y compris des formats de message (qui détaillent les opérations) et protocoles de transport.
La nature de l’interface masque les détails de mise en œuvre de service pour que ce dernier puisse être utilisé indépendamment du matériel ou du logiciel de la plateforme sur laquelle il est mis en œuvre, et indépendamment de la langue de programmation avec laquelle il est implémenté. Cela permet et encourage les applications basées sur les services Web d’être faiblement couplées, orientées composant, indépendantes des implémentations des technologies. Les services Web peuvent être utilisés seuls ou avec d’autres services.
Une des définitions de Microsoft : Un service Web est une unité logique d’application, il fournit des données et des services. Les applications accèdent aux services Web via des protocoles web et des formats de données standards comme HTTP, XML et SOAP, sans besoin de savoir comment chaque service Web est mis en œuvre. Les Services Web combinent les meilleurs aspects de développement à base de composant et de Web, et ils sont la fondation des modèles de programmation de Microsoft .NET.
Définition fournit par Sun : Les Services Web sont des composants logiciels qui peuvent êtres découverts, combinés et recombinés pour fournir une solution du problème/demande de l’utilisateur. Le langage Java et XML sont les headers des technologies Services Web. Les services Web définissent des applications en s’appuyant sur (XML) pour mapper des programmes, objets ou des Bases de données. En XML, Les Services Web définissent le format des messages à échanger, spécifient l’interface de la destination, décrit la procédure du mappage et définissent le mécanisme de déploiement et de découverte des services Web sur les serveurs. Un service est un acteur logiciel qui accomplit certaines opérations bien définies (i.e. fournir des services), il peut être invoqué dans le contexte d’un grand nombre d’applications. Les utilisateurs sont concernés juste par les descriptions des interfaces que fournit le service. Le service possède des interfaces réseau et de communication, et il est accessible par des standards de protocoles et de formats de données .

Table des matières

Introduction générale
1. La technologie des grilles
1.1 Introduction 
1.2 Définition d’une grille
1.3 Différents types de grilles informatiques 
1.3.1 Grilles d’information
1.3.2 Grilles de données
1.3.3 Grilles de calcul
1.4 Application des grilles de calcul 
1.4.1 Supercalculateur distribué (Distributed Supercomputing)
1.4.2 Calcul haut débit (High-Throughput Computing)
1.4.3 Calcul à la demande (On-Demand Computing)
1.4.4 Calcul Collaboratif (Collaborative Computing)
1.4.5 Traitement massif de données (Data intensive Computing )
1.5 Évolution des technologies de la grille 
1.5.1 Première génération
1.5.2 Seconde génération
1.5.3 Troisième génération
1.6 Notion d’organisation virtuelle (VO)
1.7 Architecture d’une grille 
1.7.1 Couche fabrique
1.7.2 Couche connectivité
1.7.3 Couche ressources
1.7.4 Couche collectif
1.7.5 Couche application
1.8 Les Intergitiels
1.8.1 Globus
1.8.2 Unicore (UNiform Interface to Computer Resources)
1.8.3 Legion
1.9 Open Grid Services Architecture (OGSA), Open Grid Services Infrastructure (OGSI), Web Services (WS) 
1.9.1 Présentation
1.9.2 Services Web
A. Définitions
B. Architecture des Services Web
C. Invocation des Services Web
1.9.3 Architecture Orientée Service (SOA)
1.9.4 Web Services Resources Framework (WSRF)
1.9.5 Conclusion
2. Globus Toolkit 4
2. 1 Introduction 
2. 2 Architecture de Globus
2. 3 Modules de Globus
2.3.1 Module de gestion de données
A. GridFTP
B. Reliable File Transfer (RFT)
C. Replica Location Service (RLS)
D. Data Replication Service (DRS)
2.3.2 Le module de sécurité (Globus security Infrastructure GSI)
2.3.3 Module de gestion d’exécution
2.3.4 Le module d’information (Monitoring and Discovery System MDS4 ou WS MDS)
A. Services de haut niveau (higher-level services)
B. Fournisseurs d’informations
C. Client WebMDS
2. 4 Conclusion
3. Introduction en traitement d’images
3.1 La matrice de Cooccurrence
3.2 Filtrage 
3.2.1 Filtrage dans le domaine spatial
3.2.2 Filtrage dans le domaine fréquentiel
3.3 Segmentation
3.3.1 Méthodes statistiques
A. Histogrammes et Segmentation
B. Segmentation par sélection récursive sur histogrammes
3.3.2 Méthodes géométriques
A. Croissance de régions (Region growing)
B. Décomposition/fusion (Split & Merge)
3.3.3 Méthodes par optimisation
3.4 Classification
A. Méthodes de classification automatique
B. Méthodes de classification supervisée
C. Classification hybrid
3.5 Conclusion
4. Systèmes CBIR à base de grilles
4.1 Introduction 
4.2 Etat de l’art 
4.3 Conception de plateforme CBIR basée sur Globus
4.3.1 Introduction
Interface de passage de message (MPI)
Architecture parallèle
Types de tâches dans une application parallèle
Décomposition de problème
4.3.2 Fonctionnalités de la plateforme
A. Traitement de masse
B. Reconnaissance, classification et indexation
C. Recherche
4.3.3 Structure de la plateforme
4.3.4 Architecture de la plateforme
A. Ressources matériels et logiciels (La grille)
B. L’Intergitiel Globus
C. La couche traitement (Processing)
D. La couche contrôle
E. Application
4.4 Résultats 
4.5 Conclusion
5. ANNEXE A
5.1 Manuel d’installation de l’Intergitiel Globus (GT 4.0.6) sous Linux Fedora core
5.1.1 Quelques commandes Linux à connaître (Pré-requis)
5.1.2 Mise en place du réseau
A. Installation du système Linux
B. Configuration du réseau
C. Outils nécessaires
5.1.3 Préparation de l’installation de globus toolkit 4.0.6
A. Création des comptes utilisateurs
B. Création des répertoires d’installation
C. Installation des outils apache Java, Apache-ant et Postgresql
5.1.4 L’installation de Globus Toolkit
A. Lancement du script d’installation
B. Installation de l’Autorité de Certification (CA)
C. Génération du certificat pour le hôte
D. Génération du certificat pour l’utilisateur globus
E. Génération du certificat pour l’utilisateur user
F. Création du certificat du ‘container’
G. Ajout des autorisations
H. Vérification des certificats des utilisateurs
5.1.5 Installation de certificat pour plusieurs machines
5.1.6 Service ‘gridFTP’
A. Configuration du service ‘gridFTP’
B. Lancement du service ‘gridFTP’
5.1.7 Lancement du container des services web
5.1.8 Configuration du RFT
A. Création du fichier pg_hba.conf
B. Création d’un utilisateur globus sous postgres
C. Création de la base de données rftDatabase
D. Test de fonctionnement du RFT
5.1.9 Configuration du service GRAM
5.1.10 Configuration de gridFTP, RFT et GRAM sous les autres machines
5.2 Interface Graphique de COG Kit
5.3 Conclusion
6. ANNEXE B
6.1 Traitement des images
6.2.1 Structure d’une région
6.2.2 Structure de fichier .seg
6.2.3 Calcul des caractéristiques visuelles d’une image
6.2 Application 
6.2.1 Structure de la table des images indexées
6.2.2 Environnement de développement
6.2.3 Outil d’aide au développement
6.2.4 Etapes de développement de service de segmentation
A. Définition de l’interface du service
B. Implémentation de l’interface
C. Développement Côté client
D. Configuration de déploiement du service
E. Génération du fichier GAR
6.2.5 Conclusion

Télécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *