Projet de fin d`études
Transcription
Projet de fin d`études
Projet de fin d’études Développement d’un service de grille avec Globus 4 Camille Coti, Jérémie Tiano, Maxime Wozny Encadrant : Daniel Millot PFE ASR – 10 Février 2006 – p. 1/18 Présentation Contexte Objectifs du projet Validation d’une procédure d’installation Prise en main Mise en place de grid services L’outil ServiceBase Un grid service parallèle Conditions de réalisation PFE ASR – 10 Février 2006 – p. 2/18 Installation Quickstart fourni dans la doc officielle Puis production d’une doc suivant notre expérience problèmes de configuration mySQL Écriture de scripts automatisant certaines étapes PFE ASR – 10 Février 2006 – p. 3/18 Installation (suite) Ant et Java À partir des sources ou des binaires Le SGBD Installation de mpich-g2 Device GT2 Sur une installation à partir des sources Rien de spécial PFE ASR – 10 Février 2006 – p. 4/18 Nouveautés importantes depuis GT2 Composants web-services et non-web-services Web-services : Axis Transferts de fichiers : RFT Le conteneur de web-services Sécurité au niveau du protocole de transport Service de délégation PFE ASR – 10 Février 2006 – p. 5/18 Une machine sur plusieurs grilles “une grille = un CA” Problème : mettre une machine sur plusieurs grilles Un seul hostcert par machine Possibilité de reconnaitre plusieurs CA Deux machines peuvent avoir des hostcerts signés par des CA différents Mais doivent reconnaitre le CA de la machine distante Au niveau utilisateur : pas de problème PFE ASR – 10 Février 2006 – p. 6/18 Exemple machine Grille A Grille B La machine a un hostcert signé par le CA de la grille B On veut la faire travailler dans la grille A Soumettre des jobs : les machines de la grille A doivent reconnaitre le CA B Accueillir des jobs : la machine doit reconnaitre le CA A PFE ASR – 10 Février 2006 – p. 7/18 TP de prise en main Une installation minimale locale Pas de CA : appel à un CA externe Aucun composant relatif aux transferts de fichiers Utilisable uniquement sur une machine Fait manipuler l’utilisateur Déploiement Création et modification d’une ressource Utilisation d’un annuaire Utilisation d’un proxy ... PFE ASR – 10 Février 2006 – p. 8/18 Écriture d’un grid service en 5 étapes Grid service = Web service stateful pour grille 1. Écrire l’interface du service Interface Java -> fichier WSDL (avec java2wsdl) Ajout d’attributs pour gérer les ressources wsrp:ResourceProperties -> déclaration des ressources wsdlpp:extends -> inclusion de portTypes WSRF grâce au préprocesseur Pas de bindings (générés lors de la création du service) PFE ASR – 10 Février 2006 – p. 9/18 MathService (suite) 2. Implémenter le service en Java Écriture du service -> plusieurs choix d’implémentation Une seule classe pour la ressource et le service Trois classes pour la ressource, le service et le resource home Utilisation de plusieurs ressources -> 2 services Factory Service : créer les ressources via le resource home Instance Service : fournit les opérations du service PFE ASR – 10 Février 2006 – p. 10/18 MathService (suite) 3. Configurer le déploiement Écriture du WSDD Localise le WSDL du service Spécifie quelle classe implémente l’interface du service Écriture du JNDI Spécifie quel resourcehome doit être utilisé PFE ASR – 10 Février 2006 – p. 11/18 MathService (suite) 4. Créer le fichier GAR avec Ant 5 étapes Décorer le fichier WSDL et ajouter les bindings Créer les classes stubs à partir du fichier WSDL Compiler les classes stubs Compiler l’implémentation du service Organiser les répertoires dans l’archive WSDL + fichier Java + WSDD + JNDI + fichiers de construction de GT4 et Ant = fichier GAR ./globus-build-service.sh -d <répertoire d’implémentation> -s <WSDL du service> PFE ASR – 10 Février 2006 – p. 12/18 MathService (suite) 5. Déployer le service et écrire le client globus-deploy-gar <fichier GAR> Écriture du client Compilation du client Lancement du conteneur Exécution du client PFE ASR – 10 Février 2006 – p. 13/18 L’outil ServiceBase Génération automatique de grid services à partir d’une classe service annotée import de.fb12.grid.annotations.* @GridAttribute devant les ressources @GridMethod devant les méthodes accessibles au client Étapes de création du service Modification du fichier service.properties ant generateAndBuild -> génère le fichier GAR ant deploy -> déploie le service PFE ASR – 10 Février 2006 – p. 14/18 L’outil ServiceBase (suite) Génération automatique d’un squelette de client Invocation dynamique du service Début d’utilisation des méthodes et des ressources Modification du client ant -> permet de recompiler ant runClient -> lance le client Contraintes de ServiceBase Outil encore en phase de développement Classes passées en argument = Java Beans Soulèvement d’exceptions impossible PFE ASR – 10 Février 2006 – p. 15/18 L’outil ServiceBase (suite) Création d’un service Produit Cartésien Création d’un Java Bean Vectors @GridMethod public int multiplication(Vectors vects){...} Création d’un client de multiplication de matrices -> Fait appel plusieurs fois au service Création d’un service Multiplication de Matrices ServiceBase ne supporte pas les Array Aucun essai concluant (Vector de Vector, récupération de WSDL, etc...) ServiceBase très limité, mais prometteur PFE ASR – 10 Février 2006 – p. 16/18 Grid-service parallèle Problème : faire un service qui s’exécute en parallèle Le web-service est en Java Le programme est en C et utilise MPI Comment interfacer les deux ? Java (service) exec() MPIRUN Machine 1 Machine 2 Machine 3 Runtime.getRuntime().exec(“mpirun ..”); PFE ASR – 10 Février 2006 – p. 17/18 Conclusion Objectifs atteints Installation de GT4 - Docs Création de Grid Services - Docs Démarche pédagogique - TP GT4 Exploration des possibilités de ServiceBase - Docs Service parallèle Un avenir pour GT4 ? mpich-g2 utilisant les web-services Lié à l’avenir des web-services PFE ASR – 10 Février 2006 – p. 18/18