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