jini et applications réparties: le projet nœud de calcul (pnc)

Post on 04-Apr-2015

111 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

(PNC)(PNC)

Plan

Présentation et organisation du projet

Concepts généraux de JINI

Architecture du projet

Démonstration

L’exemple Hello World

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

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

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é

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 !

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

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

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

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)

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.

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

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)

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

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

Concepts généraux de JINIComment ça marche : Envoi du proxy

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

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

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

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

Architecture du projetLes différents composants

Les services JINI répartis sur deux machines

Un site Web : mise à disposition des proxys

Architecture du projetLes différents composants

Une communauté de workers : exécution des tâches et retour des résultats

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

Architecture du projetLes différents composants

Un controler : surveillance et administration distante

Architecture du projet Les différents composants

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

Architecture du projet Répartition des calculs

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

Architecture du projet La surveillance de l’activité

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:cvs@s-java.ift.ulaval.ca:/usr/local/cvs login

cvs –d:pserver:cvs@s-java.ift.ulaval.ca:/usr/local/cvs co pnc

Démonstration du projet

Compilation du projet

cd pnc

ant deploy

Démarrage du Mastercd deploy

./startFractalMaster

Démarrage du Controler

./startControler

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

L’exemple HelloWorld: L’interface du Serveur

Le Service ne propose qu’une seule fonctionnalité : afficher un message

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

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

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

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)

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

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

L’exemple HelloWorld: Client: Recherche d’un service

On définit le type de service à rechercher

On cherche le service dans la REGGIE

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

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!

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

top related