Programming with JXTA
Hello World
Peer discovery
Peer Group discovery
Creating Peer group
Joining a Peer Group
JXTA: Hello World
Requirement



Java SDK (http://java.sun.com)[jdk1.6.0_03]
JXTA (http://download.jxta.org/index.html)
[JXTA 2.4.1]
Esempi
(http://www.dia.unisa.it/%7Ecordasco/teaching/ASDAD
0607/jxta_devguide.zip) [JXTA 2.3]
JXTA: Hello World
Compilare usando JXTA

javac -classpath ..\lib\jxta.jar; $[FileName]
Lanciare un applicazione

java -classpath ..\lib\jxta.jar;..\lib\bcprov-jdk14.jar;..\lib\log4j.jar;.
$[CurClass]
JXTA: Hello World
import net.jxta.peergroup.PeerGroup;
import net.jxta.peergroup.PeerGroupFactory;
import net.jxta.exception.PeerGroupException;
public class SimpleJxtaApp {
// This is a simple example of how an application would start jxta
static PeerGroup netPeerGroup = null;
public static void main(String args[]) {
System.out.println("Starting JXTA ....");
SimpleJxtaApp myapp = new SimpleJxtaApp();
myapp.startJxta();
System.out.println("Hello from JXTA group " + netPeerGroup.getPeerGroupName() );
System.out.println(" Group ID = " + netPeerGroup.getPeerGroupID().toString());
System.out.println(" Peer name = " + netPeerGroup.getPeerName());
System.out.println(" Peer ID = " + netPeerGroup.getPeerID().toString());
System.out.println( "Good Bye ....");
myapp.netPeerGroup.stopApp();
System.exit(0);
}
private void startJxta() {
try {
// create and start the default JXTA NetPeerGroup
netPeerGroup = PeerGroupFactory.newNetPeerGroup();
} catch (PeerGroupException e) {
// could not instantiate the group, print the stack and exit
System.out.println("fatal error : group creation failure");
e.printStackTrace();
System.exit(1);
}
}
}
JXTA: Configurazione
JXTA: Configurazione
JXTA: Configurazione
Demo
Programming with JXTA
Peer discovery


Gli advertisement vengono mantenuti nella cache di
JXTA (./.jxta/cm)
In particolare per ogni gruppo sarà presente una
sottodirectory
./.jxta/cm/jxta-NetGroup
./.jxta/cm/group-ID

Le directory contengono tre tipi di file
*.idx file, indice
record-offset.tbl, entry list
advertisement.tbl, advertisement
Programming with JXTA
Peer discovery



Per leggere i messaggi dalla cache si usa il metodo
getLocalAdvertisement();
Per scrivere nella cache si usa invece il metodo
getRemoteAdvertisement(); (il quale invia un
messaggio di discovery e attende la risposta).
Come si ottiene la risposta
Si può aspettare e successivamente controllare la propria
cache (getLocalAdvertisement())
Si può utilizzare un Discovery Listner (utilizzato nella demo).
Programming with JXTA
Per discovery
Per instanziare JXTA
Programming with JXTA
destinazione
tipo
Attributi della
query
Threshold
Programming with JXTA
Demo
Peer Discovery
Programming with JXTA
Group discovery



Simile al discovery dei peer
In questa demo l’operazione di discovery non
parte finchè il nodo non è connesso ad
almeno un rendezvous
Creazione gruppi usando la shell
Programming with JXTA
Programming with JXTA
Programming with JXTA
Demo
Group Discovery
Programming with JXTA
Creating Peer Group and publishing
advertisement


Stampa dei gruppi presenti nella cache
Creazione del gruppo
Id
ImplAdv
Nome
Descrizione

Pubblicare un gruppo
remotePublish(adv)
Programming with JXTA
Programming with JXTA
Programming with JXTA
Demo
Creating Peer Group and publishing
advertisement
Programming with JXTA
Joining a peer group
Programming with JXTA
Programming with JXTA
Programming with JXTA
Demo
Joining a peer group
Scarica

JXTA: Hello World