Le Grid Computing

Le Globus Toolkit

Les composants du Globus Toolkit

architecture GT4

Le Globus Toolkit est composé de 5 modules, assurant des fonctionnalités essentielles dans la technologie du Grid Computing. Le premier module assure la sécurité. Cette fonctionnalité est la plus importante d'une architecture de Grid Computing. En effet, pour le bon fonctionnement d'une grille, il est primordial de pouvoir identifier les utilisateurs qui "entrent" sur la grille, afin d'éviter toutes personnes indésirable(inconnus, hacker, saboteurs). De plus, ce module assure la confidentialité des données qui transitent entre chaque noeud, étant donné que le plus souvent les grilles utilisent les interconnexions qu'offrent Internet. Il est donc vital que ces données soient cryptées. Le second module permet d'assurer une fonctionnnalité indispensable: les échanges de données entre chaque noeud. Le module "Execution Management" est le module qui va permettre de soumettre l'exécution d'une tâche à une machine distante enregistrée sur la grille. Le module "Information Services"  permet de surveiller et d'obtenir des informations sur la grille. Et enfin le module "Common Runtime" permet de développer des applications s'appuyant sur les 4 modules précédents.

 

Le module de Sécurité Grid Security Infrastructure (GSI)


Le module de sécurité a pour rôle:

  • D'authentifier les utilisateurs (membres) de la grille
  • D'assurer l'intégrité des données
  • De garantir la confidentialités des données 
  • D'appliquer des droits utilisateurs avec le Grid Map File, qui est un fichier qui permet d'autoriser l'accès à une machine à une liste d'utilisateurs contenus dans le fichier

  • Le Grid Security Infrastructure s'appuie sur une architecture PKI, avec une autorité de certification qui va signer les certificats de chaque utilisateur de la grille et donc attester de l'identité de chaque utilisateur. Il est possible de créer sa propre autorité de certification pour mettre en place sa grille, ou alors envoyer ces certificats à une autorité de certification (service payant). Le GSI s'appuie donc sur un algorithme asymétrique basé sur des clés publiques et privés (protégées par une passphrase). À chaque fois qu'un membre de la grille tente d'accéder à une ressource, le mécanisme d'authentification mutuelle se met en place.

    Mécanisme d'authentification mutuelle

    authMutuelle

    phase 1:  le user1 demande l'accès au user2
    phase 2:  le user2 envoie son certificat qui contient la clé publique du user2
    phase 3: le user1 vérifie l'authenticité du certificat du user2. Plus précisément, il vérifie la signature de l'autorité de certification aposée sur le certificat du user2 à l'aide de la clé publique de l'autorité de certification. À cet instant, le user1 est sûr de l'authenticité du certificat du user2
    phase 4, 5: même chose que pour la phase 2 et 3 mais dans l'autre sens. À cet instant, le user2 est sûr de l'authenticité du certificat du user1
    phase 6: le user2 envoie un message non crypté généré aléatoirement au user1
    phase 7: le user1 crypte ce message à l'aide de sa clé privé et le renvoie au user2
    phase 8: le user2 décrypte le message à l'aide de la clé publique du user1 à cet instant le user2 est sûr de l'identité du user1
    phase 9,10 et 11: même chose que pour la phase 6, 7 et 8 mais dans l'autre sens. À cet instant, le user1 est sûr de l'identité du user2
    phase 12: les échanges entre le user1 et le user2 peuvent commencer sans crainte


    Le seul inconvénient de ce mécanisme est qu'à chaque fois qu'un utilisateur utilise sa clé privée, il doit entrer sa passphrase. Donc à chaque fois qu'un membre de la grille voudra accéder à une ressource sur la grille, il devra entrer sa passphrase. Ce qui pose de réels problèmes, et ne facilite pas son utilisation. Pour pallier ce problème, il suffit de mettre en place un Proxy Certificat (extension de SSL).  L'utilisateur crée un Proxy Certificat, qui va agir en son nom. Le Proxy Certificat possède sa propre paire de clé privé et publique(certificat). Contrairement au certificat de l'utilisateur, le certificat du proxy est signé par l'utilisateur et pas par l'autorité de certification. Ainsi, le mécanisme d'authenfication mutuelle requiert une étape suplémentaire.
    proxy Certificate

    Le proxy certificat envoie en plus son certificat et celui du user1. Le user2 authentifie le certificat du user1 toujours avec le certificat de l'autorité de certification. Une fois authentifié, le user2 authentifie le certificat de proxy avec le certificat du user1.


     

    Le module de transfert de Données

    Dans ce module, on note la présence deux outils essentiels, le Grid FTP et le RFT(Reliable File Transfert). Le Grid FTP est un protocole normalisé, qui respectent les RFC 959, 2228, 2389. Il se présente avec une architecture client-serveur et permet donc des transferts de fichier d'une machine A vers une machine B , mais aussi d'une machine A vers une machine B depuis une machine C (le transfert est commandé depuis la machine C). Le RFT intègre les mêmes principes de base que le Grid FTP, mais il travaille sur une couche plus haute. Il permet de faire du Web Services et se veut plus fiable au niveau des transferts de "gros" fichiers que le Grid FTP.

    Le module d'Information Service


    Ce module est composé deux modules important: Le MDS (Monitoring and Discovery Service) et WebMDS. Le MDS est le module de surveillance et de découverte des ressources sur la grille. Il consiste en un processus, l'aggregator, qui tourne sans arrêt et qui interroge chaque noeud de la grille pour obtenir des informations sur les ressources diponibles. Toutes les informations récoltées sont stockées dans un fichier XML qui est mise à la diposition de tous les membres de la grille. Le WebMDS est un client graphique web permettant d'interroger et de regarder les informations du fichier XML. Grâce à ce module il est possible d'utiliser les ressources de la grille plus efficacement.

    Le module de gestion d'exécution

    Le module de gestion d'exécution est principalement représenté par l'outil GRAM (Grid Ressources Allocation Manager). Il permet de contrôler, localiser (lister), exécuter et annuler une tâche sur une machine distante sur la grille. Il est aussi prévu pour gérer des problèmes liés aux tâches ou au lancement de n'importe quel programme (les opérations fiables, la surveillance des états, la gestion des informations de sécurité).

    Le module common runtime component

    Ce module fournit des outils (API, Bibliothèques de fonctions etc.) pour permettre de développer des applications basées sur le Grid Computing, en utilisant et en communiquant avec les autres modules vus précédemment. Ces APIs sont basés sur des Web Services (en ce qui concerne les échanges). On note la possibilité de faire des développement dans 3 langages de programmation:
    • en C avec le C WS CORE
    • en Python avec le Python WS CORE
    • et en Java avec le Java WS CORE
    Pour le langage Java, on note en plus la présence d'un outil: le Java Commodity Grid Kit. Le CoG Kit est un outil Java qui fournit un niveau d'abstraction à l'API de Globus toolkit pour un usage plus facile. Il permet aux utilisateurs de grid, aux développeurs d'applications, aux administrateurs de grid d'utiliser, de programmer et d'administrer les grilles à l'aide d'un framework de plus haut niveau. Ces kits permettent un développement rapide d'application des grilles. Ils encouragent le travail collaboratif et la réutilisation de codes pour éviter la duplication des efforts concentrés sur les environnement de recherche, les portails de science, le middleware Grid.

    Java Cog Kit

    Mise en oeuvre

    Après avoir test้ plusieurs tutoriaux sur le Web, et pour une première approche en ce qui concerne la mise en oeuvre du Globus Toolkit, il est conseillé de suivre celui-ci. Il vous permettra de créer une architecture de grille avec plusieurs machines et vous fera découvrir des commandes simples (en ligne de commande) des différents modules du Globus Tolkit:
    • La création d'un proxy
    • Le transfert de fichier avec le Grid FTP et RFT
    • L'exécution d'une tâches sur machine distante enregistrée sur la grille
    • L'interrogation des noeuds de la grille (Informations sur les ressources)