43
Jini et Applications Réparties: Le Jini et Applications Réparties: Le Projet Nœud de Calcul Projet Nœud de Calcul (PNC) (PNC)

Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)

Embed Size (px)

Citation preview

Page 1: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

Concepts généraux de JINIComment ça marche : DISCOVERY

Page 15: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)

Concepts généraux de JINIComment ça marche : JOIN

Page 16: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)

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)

Concepts généraux de JINIComment ça marche : Communication

Page 18: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)

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)

Concepts généraux de JINILes service de base : JavaSpace

Page 20: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)

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)

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)

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)

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)

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)

Architecture du projet Les différents composants

Page 26: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)

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)

Architecture du projet Répartition des calculs

Page 28: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)

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)

Architecture du projet La surveillance de l’activité

Page 30: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)

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)

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)

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)

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)

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)

L’exemple HelloWorld: Serveur: Les attributs nécessaires

Page 36: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)

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)

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)

L’exemple HelloWorld: Client: Les attributs nécessaires

Page 39: Jini et Applications Réparties: Le Projet Nœud de Calcul (PNC)

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)

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)

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)

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)

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