Programming with JXTA Hello World Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group
JXTA: Hello World Requirement Java SDK ( Java SDK ( JXTA ( [JXTA 2.4.1] JXTA ( [JXTA 2.4.1] Esempi ( /jxta_devguide.zip ) [JXTA 2.3] Esempi ( /jxta_devguide.zip ) [JXTA 2.3] /jxta_devguide.zip /jxta_devguide.zip
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
Demo
Programming with JXTA Peer discovery Gli advertisement vengono mantenuti nella cache di JXTA (./.jxta/cm) Gli advertisement vengono mantenuti nella cache di JXTA (./.jxta/cm) In particolare per ogni gruppo sarà presente una sottodirectory In particolare per ogni gruppo sarà presente una sottodirectory./.jxta/cm/jxta-NetGroup./.jxta/cm/jxta-NetGroup./.jxta/cm/group-ID./.jxta/cm/group-ID Le directory contengono tre tipi di file 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 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). 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 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 instanziare JXTA Per discovery
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 Simile al discovery dei peer In questa demo loperazione di discovery non parte finchè il nodo non è connesso ad almeno un rendezvous In questa demo loperazione di discovery non parte finchè il nodo non è connesso ad almeno un rendezvous Creazione gruppi usando la shell Creazione gruppi usando la shell
Programming with JXTA
Demo Group Discovery
Programming with JXTA Creating Peer Group and publishing advertisement Stampa dei gruppi presenti nella cache Stampa dei gruppi presenti nella cache Creazione del gruppo Creazione del gruppoIdImplAdvNomeDescrizione Pubblicare un gruppo Pubblicare un grupporemotePublish(adv)
Programming with JXTA
Demo Creating Peer Group and publishing advertisement
Programming with JXTA Joining a peer group
Programming with JXTA
Demo Joining a peer group