Vous êtes sur la page 1sur 4

Universit de Reims Champagne-Ardenne TIP2P : Techniques Internet et systmes pair pair

Anne 2007/2008

JXTA TP 1 - 2
1 Informations Prliminaires
1.1 Comment compiler et excuter un programme JXTA 1.1.1 Si vous utilisez Eclipse comme environnement de travail
1) Crer sous clipse un nouveau projet TP1-TIP2P partir de larchive tp2-tip2p.zip dzippe.
Ce projet se dcompose en deux rpertoires : lib contient lensemble des fichiers .jar ncessaires la compilation et lexcution de vos programmes sous JXTA. test contient les fichiers de prise en main de JXTA propagate contient les fichiers pour la dernire partie des expriences

1.1.2 Si vous prfrez la compilation par ligne de commande


Dzippez l'archive tp1-tip2p.zip. Pour compiler, vous utilisez javac avec la bibliothque jxta.jar dans le classpath
javac -classpath ./lib/jxta.jar test/fichier.java

Pour excuter l'application il faut rajouter, aussi les autres bibliothques dans le rpertoire lib.
java -classpath ./lib/jxta.jar:./lib/bcprov-jdk14.jar:(...):. test.fichier

1.2 Configuration au premier lancement de JXTA


Pour le premier lancement de JXTA vous obtenez une fentre de configuration qui est compose de quatre sous menu : Basic, Advanced , Rendezvous/Relays et Security. 1) Dans le menu Basic vous devez saisir le nom du Peer (figure 1). 2) Dans le menu Advanced vous choisissez l'adresse IP de la machine (dans le menu droulant) et dans la partie HTTP Settings vous dcochez le point Enabled (figure 2). 3) Dans le menu Rendezvous/Relays vous pouvez laisser les options par default (figure 3). 4) Dans le menu Security il faut donner un nom d'utilisateur et le mot de passe qui vous sera demand chaque fois que relancer votre application (figure 4).

Figure 1: Configuration de base

Figure 2: Configuration Avance

Figure 4: Configuration du Rendezvous/Relay

Figure 3: Configuration mot de passe

1.3 Documents utiles


La documentation javadoc JXTA est disponible ladresse suivante :
https://jxta-docs.dev.java.net/nonav/jxse-javadoc/2.5/jxse/api/index.html

Un guide du programmer est disponible ladresse suivante : https://jxta-guide.dev.java.net/source/browse/jxta-guide/trunk/src/guide_v2.5/ http://stromboli3.int-edu.eu/~defude/P2P/JXTA/

2 Activits
2.1 Helloworld
Analysez, testez et commentez la classe HelloWorld.java. Idntifiez les structures de base pour dclarer un peer jxta, pour se connecter un groupe et afficher un advertisement. ATTENTION : pour le premier lancement de JXTA, il est ncessaire de configurer votre machine.

Remarque : Si tout sest bien pass, un rpertoire .jxta a t cr dans votre rpertoire courant.

2.2 Crer un groupe


Analyser et modifier le code de la classe GroupCreate.java, afin de crer votre propre groupe. Testez et commentez la classe !

2.3 Dcouverte de groupes de paires


1. Excutez deux instances de PeerDiscovery (dans des rpertoires ou des projets diffrents). Quel est le rsultat ? 2. Excutez deux instances de GroupDiscovery (dans des rpertoires diffrents). Quel est le rsultat ? Expliquez. 3. Excutez une instance de GroupDiscovery et une instance de GroupCreate (dans des rpertoires diffrents). Quel est le rsultat maintenant ? 4. Pourquoi le groupe cre dans la mthode GroupDiscovery.startJxta() n'est pas affich ?

2.4 Caches
Modifiez le code de GroupCreate pour changer le nom de votre groupe. 1. Excutez une instance de GroupDiscovery et une instance de GroupCreate (dans des rpertoires diffrents). Quels sont les groupes affichs (la dcouverte peut prendre un certain temps) ? 2. Effacez le rpertoire .jxta/cm (le rpertoire o est stock le cache des ressources) 3. Refaire l'tape 1 4. Modifiez le code de GroupDiscovery afin d'utiliser la mthode getLocalAdvertisements(int type, String attribute, String value). Quelle est la diffrence entre cet appel et celui de getRemoteAdvertisements() ?

2.5 Pipe de communication entre deux pairs


Cet exemple montre comment utiliser des pipes pour envoyer des messages entre deux pairs JXTA et comment implmenter l'interface Rendezvous Listener. Deux applications spares sont utilises pour cet exemple :

: lit le fichier de publication examplepipe.adv, cre un input pipe et coute les messages dans ce pipe. PipeExample : lit le fichier de publication examplepipe.adv, cre un output pipe et envoie les messages dans ce pipe.
PipeListener

1. Analyser,

et commenter le code des classes PipeExample.java et PipeListener.java. Idntifiez les procdures lies l'envoi et la rception des messages, ainsi qu' la dclaration des ressources (pipe).

tester

2.6 Diffusion
Les pipes utiliss jusqu' prsent ont servi uniquement pour la communication entre deux peers. Afin d'envoyer un message plusieurs peers, nous pouvons utiliser un PropagatePipe . 1. Cherchez dans la documentation une description des caractristiques des PropagatePipe. 2. Allez dans le rpertoire propagatePipes. tudiez attentivement le code de sender et receiver, et indiquez dans le rapport s'il existent des diffrences entre la dclaration d'un PropagatePipe et d'un Pipe standard . 3. Faites tourner sender et deux instances de receiver (rpertoires receiver1 et receiver2) et dcrivez ce que vous observez. 4. cause d'un oubli, les messages envoys ne portent aucune information. Corrigez le code de sender. Vous pouvez vous inspirer du code de PipeExample (et faites attention envoyer des informations dans le format attendu par receiver).

3 Rapport
Envoyez un fichier ZIP avec vos rapports en format PDF et le code que vous avez crit (exercice 2.6) l'adresse Luiz-Angelo.Steffenel@univ-reims.fr. N'oubliez pas de mettre le nom des membre du binme.