jini et applications réparties: le projet nœud de calcul (pnc)
TRANSCRIPT
![Page 1: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/1.jpg)
Jini et Applications Réparties: Jini et Applications Réparties: Le Projet Nœud de Calcul Le Projet Nœud de Calcul
(PNC)(PNC)
![Page 2: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/2.jpg)
Plan
Présentation et organisation du projet
Concepts généraux de JINI
Architecture du projet
Démonstration
L’exemple Hello World
![Page 3: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/3.jpg)
Présentation de l’équipe
Julie Cardon Julien Cuvillier Louis Demers Geoffrey Devred Jean-Sébastien Landry Romain Lecompte Jean-François Montreuil Stéphane Nicolas
![Page 4: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/4.jpg)
Présentation du projet
Débuté en Janvier 2002 sur l’initiative de Stéphane Nicolas
Développé sous Licence GPL Entièrement programmé en Java Utilisation des API Jini et JavaSpace Le but est de concevoir un système
distribué, dynamique, généraliste et maintenable pour la répartition de tâches de calcul sur plusieurs ordinateurs
![Page 5: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/5.jpg)
Organisation du travail dans un projet libre
CVS Liste de diffusion Documentation Peu de réunions Accessible à tous Pas de réelles contraintes de productivité
![Page 6: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/6.jpg)
Organisation du travail dans un projet libre (suite…)
Chacun peut trouver sa place: programmation, documentation, analyse, site WEB …
La connaissance des technologies utilisées n’est pas un pré requis
Pas de réelle planification … ... Mais des progrès visibles
quotidiennement !
![Page 7: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/7.jpg)
Notre implication dans le projet
Rédaction de documents sur les bases des technologies utilisées
Analyse et programmation
Moyenne de 20/25 heures par semaine
![Page 8: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/8.jpg)
Intérêt de s’impliquer dans un tel projet
Nouvelles connaissances en informatique
CV
Travailler dans une équipe motivée
Adaptation à un nouveau style de collaboration
![Page 9: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/9.jpg)
Concepts généraux de JINIApplications réparties : les bases
Serveurs : acteurs qui fournissent des services
Clients : acteurs qui ont besoin de certains services
Proxy (ou Stub) : décrit la façon dont le service doit être utilisé par le client
![Page 10: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/10.jpg)
Concepts généraux de JINIConcepts clés
Fédération : ensemble d’acteurs communiquant par un réseau
Les acteurs sont « plug & play » et autonomes
La communication entre clients et serveurs repose sur le téléchargement dynamique de proxys (basé sur RMI)
![Page 11: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/11.jpg)
Remote Method InvocationComment ça marche ?
JVM B JVM AObjet ClientObjet Serveur
RMI registry2 - Le client demande à la registry un serveur.
1 - Le serveur s'enregistre auprès de la registry.
3 - Le client appelle des méthodes du serveur.
![Page 12: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/12.jpg)
Remote Method InvocationRôle des Stubs
StubJVM AObjet Serveur
RMI registry
Bind
codebase
StubStub
Stub
StubStub
StubStub
StubStub
StubStub
StubStub
Stub
Côté serveur
Lookup
JVM BObjet Client
RMI registryStub
Côté client
![Page 13: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/13.jpg)
Concepts généraux de JINILe service de recherche (REGGIE) Acteur central de toute fédération JINI Chargé de recenser l’ensemble des acteurs
d’une fédération Fournit l’accès à tous les services enregistrés Accessible à toute la fédération par le protocole
DISCOVERY Utilise des protocoles de publication de services
(JOIN), et de recherche de services (LOOKUP)
![Page 14: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/14.jpg)
Concepts généraux de JINIComment ça marche : DISCOVERY
![Page 15: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/15.jpg)
Concepts généraux de JINIComment ça marche : JOIN
![Page 16: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/16.jpg)
Concepts généraux de JINIComment ça marche : Envoi du proxy
![Page 17: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/17.jpg)
Concepts généraux de JINIComment ça marche : Communication
![Page 18: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/18.jpg)
Concepts généraux de JINILes services de base
REGGIE
JavaSpace : Permet de faire transiter des objets entre les acteurs d’une fédération sous forme d’Entry tout en gérant leur durée de vie
Mahalo (TransactionManager) : Gère les transactions pour les accès au JavaSpace
![Page 19: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/19.jpg)
Concepts généraux de JINILes service de base : JavaSpace
![Page 20: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/20.jpg)
Pourquoi avoir choisi JINI ?
Robuste : Self-Healing
Dynamique : Plug & Play
Généraliste : Encapsulation des objets
Fiable : Échanges sécurisés par JavaSpace et TransactionManager
![Page 21: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/21.jpg)
Architecture du projetLes différents composants
Les services JINI répartis sur deux machines
Un site Web : mise à disposition des proxys
![Page 22: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/22.jpg)
Architecture du projetLes différents composants
Une communauté de workers : exécution des tâches et retour des résultats
![Page 23: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/23.jpg)
Architecture du projetLes différents composants
Un master : dépôt des tâches, collecte des résultats partiels et construction du résultat final
![Page 24: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/24.jpg)
Architecture du projetLes différents composants
Un controler : surveillance et administration distante
![Page 25: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/25.jpg)
Architecture du projet Les différents composants
![Page 26: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/26.jpg)
Architecture du projetRépartition des calculs
Le Master et les workers présents dans la fédération utilise la REGGIE pour trouver les services de JavaSpace et TransactionManager
Le Master génère des tâches de calcul et les dépose dans le JavaSpace
Les tâches sont récupérées par les workers, exécutées, puis les résultats sont replacés dans le JavaSpace
Les résultats sont récupérés par le Master
![Page 27: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/27.jpg)
Architecture du projet Répartition des calculs
![Page 28: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/28.jpg)
Architecture du projetLa surveillance de l’activité
Les workers s’enregistrent en tant que services auprès de la REGGIE
Le Controler interroge la REGGIE pour connaître les workers et le JavaSpace présents
L’interface graphique du Controler permet de suivre l’activité des workers et de les administrer ainsi que de connaître le contenu du JavaSpace
![Page 29: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/29.jpg)
Architecture du projet La surveillance de l’activité
![Page 30: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/30.jpg)
Démonstration du projet
Création du répertoire
mkdir atelier
cd atelier
Récupération d’une copie du projet sur le CVS
cvs –d:pserver:[email protected]:/usr/local/cvs login
cvs –d:pserver:[email protected]:/usr/local/cvs co pnc
![Page 31: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/31.jpg)
Démonstration du projet
Compilation du projet
cd pnc
ant deploy
Démarrage du Mastercd deploy
./startFractalMaster
Démarrage du Controler
./startControler
![Page 32: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/32.jpg)
L’exemple HelloWorld: Récupérer les sources
http://bitos33.free.fr/atelier tar xvfz atelier19-04.tgz cd jini sh compile.sh sh service.sh Dans un autre console : sh client.sh
![Page 33: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/33.jpg)
L’exemple HelloWorld: L’interface du Serveur
Le Service ne propose qu’une seule fonctionnalité : afficher un message
![Page 34: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/34.jpg)
L’exemple HelloWorld: Le Proxy du Serveur
Serializable : transféré par le réseau
Constructeur vide Propre à la sérialisation
Implémente l’interface précédente
![Page 35: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/35.jpg)
L’exemple HelloWorld: Serveur: Les attributs nécessaires
![Page 36: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/36.jpg)
L’exemple HelloWorld: Serveur: Découverte des REGGIE
On recherche les reggies du groupe « atelier » sur la machine « kaya.ift.ulaval.ca »
On ajoute un écouteur de découverte de nouvelle REGGIE: pour chaque REGGIE, on conserve sa trace et on s’y enregistre
![Page 37: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/37.jpg)
L’exemple HelloWorld: Serveur: L’enregistrement du Service
On enregistre notre service auprès de la REGGIE pour un certain temps (LEASE_TIME)
On récupère l’identifiant de notre service une fois enregistré (attribué par la REGGIE)
![Page 38: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/38.jpg)
L’exemple HelloWorld: Client: Les attributs nécessaires
![Page 39: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/39.jpg)
L’exemple HelloWorld: Client: Découverte des REGGIE
On recherche les reggies du groupe « atelier » sur la machine « kaya.ift.ulaval.ca »
On ajoute un écouteur de découverte REGGIE: pour chacune d’elle, on y recherche notre service
![Page 40: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/40.jpg)
L’exemple HelloWorld: Client: Recherche d’un service
On définit le type de service à rechercher
On cherche le service dans la REGGIE
![Page 41: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/41.jpg)
L’exemple HelloWorld: Client: Utilisation du service
On caste l’objet trouvé dans la REGGIE avec l’interface du Serveur et on appelle sa méthode partagée
![Page 42: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/42.jpg)
Conclusion
Un projet intéressant tant sur le plan technique que sur le plan organisationnel
Le monde du logiciel libre est en pleine expansion et toute contribution est toujours la bienvenue. Contribuez!
![Page 43: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)](https://reader038.vdocuments.us/reader038/viewer/2022110305/551d9da2497959293b8d2431/html5/thumbnails/43.jpg)
MERCI DE VOTRE ATTENTION
Le site du projet : http://s-java.ift.ulaval.ca/~pnc
Inscription à la Mailing List du projet :
http://s-java.ift.ulaval.ca/mailman/listinfo/gnu
Le site de GNU : http://www.gnu.org
Le site de JAVA : http://java.sun.com
Le site de JINI : http://wwws.sun.com/software/jini/
Livre de référence : Core JINI de W.Keith Edwards