Les innovations de la version 4 de Globus
Les services web
Avec sa version 4.0, Globus est rentré dans l’ère des services Web [6]. Cette technologie, en pleine expansion, offre une méthode simple, souple et portable d’échanges d’informations entre des applications au travers d’un réseau.
A l’instar de Corba ou RMI, les services Web permettent l’invocation de méthodes ou fonctions situées sur une autre machine que celle qui effectue l’appel. La principale différence avec ces deux technologies est que les services Web utilisent principalement le protocole HTTP pour les transferts réseaux (ils se révèlent donc être particulièrement adaptés pour être utilisés à travers Internet) et se veulent entièrement indépendants de tout langage et de toute plate-forme. Ainsi, on peut imaginer qu’un client écrit en Python et tournant sous Microsoft Windows interroge un serveur de services Web en Java sous GNU/Linux.
Les services Web sont capables de se décrire eux-mêmes. Ainsi, une fois un service localisé, on peut lui demander de se décrire afin de récupérer les différentes opérations possibles et la manière dont on peut les invoquer. Ils assurent l’interopérabilité entre des systèmes pouvant fonctionner sur des environnements très hétérogènes. Parmi les inconvénients des services web citons :
• un Service Web est sans état (stateless) c’est-à-dire qu’il ne peut pas sauvegarder le résultat d’une invocation à une autre. En effet, nous ne pouvons pas invoquer le même Service Web deux fois en passant comme paramètre pour la deuxième invocation le résultat de la première.
• Une autre limitation est la non persistance, c’est-à-dire si deux clients invoquent le même Service Web et que le premier client décide d’arrêter ce service (arrêter le container du services), le deuxième client sera pénalisé et ne pourra pas profiter de ce Service web.
Pour remédier à ce problème, Globus a développé le Web Service Ressource Framework (WSRF). Il introduit la notion de Ressource (à ne pas confondre avec les ressources physiques ou logiques de la grille que nous avons vues jusqu’ici) qui stocke un contexte d’exécution. Celui-ci, se présente sous la forme d’un ensemble de variables, possède un identifiant unique et est préservé entre les appels.
Les nouveaux composants
Avec sa version 4, on note l’apparition de certains nouveaux composants :
• Myproxy : qui facilite la gestion de clés et certificats appelés « grid credentials » de façon à ce que l’utilisateur n’ait pas à transférer ses clés de cryptographie à chaque fois qu’il change de client. Avec la version 4 de Globus de nouveaux outils ont été ajoutés aux composants. On peut citer :
• globus-rls-admin pour l’administration des répliquas.
• globus-rls-cli permettant aux clients d’avoir accès aux répliquas.
Globus est composé d’un ensemble de modules ayant chacun une interface que les services de niveau supérieur pourront utiliser pour invoquer ses mécanismes. Nous trouvons ainsi des modules pour :
• la localisation et allocation des ressources : permet aux applications d’exprimer leurs besoins en ressources et fournit les mécanismes permettant d’identifier les ressources adéquates,
• la communication : permet aux différentes applications de communiquer entre elles. Différents paradigmes de communication sont fournis (communication par messages, mémoire distribuée, appel de procédures à distance),
• l’information sur les ressources : permet d’obtenir des informations sur l’état et la structure globale du système,
• les mécanismes de sécurité : fournissent les mécanismes d’authentification et d’autorisation des utilisateurs,
• la création et lancement des processus : permet de préparer l’environnement dans lequel un processus s’exécutera et de le lancer,
• l’accès aux données : accès performant et consistant aux données stockées dans des fichiers et des bases de données.
Voyons maintenant les quatre grandes classes de services offerts par le toolkit Globus : le service de sécurité, le service d’information, le service de gestion des données et service de gestion des tâches.
Le service de sécurité
Concepts
Globus a développé un ensemble de protocoles nommés Grid Security Infrastructure (GSI) basés sur une architecture à chiffrement asymétrique (paire clé publique / clé privée) [17].Ils sont utilisés pour l’authentification, la confidentialité des communications ainsi que pour l’identification.GSI répond à des contraintes telles que l’identification unique (single sign on), la délégation de permissions, l’intégration avec divers outils de sécurité locaux (tels que Kerberos).Les utilisateurs et machines sont identifiés à l’aide d’un certificat au format X.509. Ce dernier contient :
a. des informations sur le propriétaire du certificat : nom, institut, etc.
b. la clé publique associée au certificat,
c. l’autorité de confiance qui assure que le propriétaire du certificat est bien celui qu’il dit être,
d. la signature de l’autorité de confiance en question.
La procédure est la suivante [12] :
1. Le noeud A envoie son certificat au noeud B.
2. B s’assure que le certificat est valide et extrait l’identité et la clé publique de A du certificat.
3. B génère un nombre aléatoire et l’envoie à A.
4. Lors de la réception de ce nombre, A le chiffre avec sa clé privée (c’est ici que A pourra demander à l’utilisateur d’entrer le mot de passe) et l’envoie à B.
5. Lors de la réception du nombre chiffré, B le déchiffre avec la clé publique de A et s’assure qu’il est le même. A est alors authentifié par B.
6. La procédure est répétée dans le sens inverse pour que A authentifie B.
7. B transpose le nom de l’utilisateur se trouvant dans le certificat en un nom d’utilisateur local au noeud. Pour cela un fichier appelé grid-map est utilisé. Il contient une entrée du genre « /O=Grid/O=Globus/OU=enst.fr/CN=Un Tel » untel. Cette ligne permet de transposer le DN (« Distinguished Name ») de Monsieur Un Tel en un nom d’utilisateur local (untel). Cette dernière étape constitue la phase d’autorisation.
La gestion des données
On y retrouve des services pour la localisation, le transfert et la gestion de données distribuées. Pour le transfert de données, Globus a développé une extension du bien connu File Transfert Protocol (FTP) nommée Gridftp. Ce protocole de transfert pour grilles est conçu sous la forme d’extensions au protocole FTP. Les buts qu’il souhaite fournir sont décrits [4].
La gestion des données distribuées est assurée, entre autres, par le Repliqua Location Service (RLS) qui enregistre dans un catalogue les différentes localisations d’un fichier afin d’en retrouver les répliquas. Le RLS peut être distribué sur plusieurs serveurs distants afin d’augmenter sa capacité et, surtout, d’éviter d’avoir un seul serveur centralisé qui mettrait à mal la gestion des données de la grille en cas de dysfonctionnement [4].
La gestion des ressources
Concepts
Lorsque l’on désire effectuer une tâche sur un ordinateur, il est nécessaire d’acquérir un accès à ce dernier, de le configurer pour qu’il puisse satisfaire nos besoins, d’y installer un exécutable, de démarrer et surveiller son exécution et, enfin, de récupérer les résultats. Le service Grid Ressource Allocation and Management de Globus (GRAM) fournit une interface au travers de services Web pour effectuer ces étapes sur des ordinateurs distants. Cette interface permet au client de spécifier des contraintes telles que les ressources désirées, le programme à exécuter ainsi que ses arguments. . .
GRAM peut s’interfacer avec plusieurs systèmes de gestion de processus t els que LSF, PBS, Condor.
Ainsi, il faut bien comprendre que GRAM n’est pas un Ordonnanceur de job mais bien une couche d’abstraction permettant de communiquer avec une série d’Ordonnanceur.
Dans cette architecture, une application exprime ses besoins en ressources sous la forme d’une expression RSL de haut niveau. Les courtiers de ressources analysent récursivement la requête et la transforment en un ensemble de RSL bas niveau plus spécifique jusqu’à l’identification de l’ensemble des ressources susceptibles de satisfaire la demande de l’application. A ce stade de l’analyse nous avons une RSL de base (« ground RSL ») identifiant un ensemble de GRAM. Cette RSL de base est alors décomposée en RSL individuelles et chacune est envoyée au GRAM adéquat qui transforme la requête en une demande que le système sous-jacent comprend.
Le service d’information
La dernière grande catégorie de fonctionnalités que fournit Globus concerne la surveillance et la découverte des services et ressources. Leur but est de pouvoir récupérer, distribuer et collecter des informations relatives aux différents services et ressources disponibles sur la grille. Ces informations peuvent inclure :
• la configuration des ressources : quantité de mémoire, fréquence du processeur, nombre de processeurs, nombre et type des interfaces réseau,
• l’état instantané d’une ressource : charge du processeur, mémoire disponible, bande passante du réseau,
• l’information sur les applications : besoins mémoire, processeur et de stockage.
Le composant Globus en charge de ces taches est nommé Monitoring and Discovery. System (MDS). Ce service sera utilisé par GRAM pour trouver les ressources pouvant satisfaire les contraintes d’un job.
Le service MDS utilise le standard LDAP (Lightweight Directory Access Protocol) comme base pour la représentation et l’accès aux données. Il repose sur un ensemble de serveurs LDAP peuplant la grille. Plus spécifiquement MDS est constitué des modules suivants :
• « Grid Resource Information Service » (GRIS) : Les serveurs GRIS peuvent se trouver dans plusieurs endroits dans une grille. Ils peuvent contenir toute information concernant les machines qui y sont enregistrées (les informations en local).
• « Grid Index Information Service » (GIIS) : Tous les serveurs GRIS d’une grille sont enregistrés lors de leur démarrage avec un serveur GIIS. Ce serveur contient des informations concernant la localisation dans la grille des serveurs GRIS et les noms des machines enregistrées avec chaque GRIS.