JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione...

30
JXTA: Protocols JXTA: Protocols JXTA definisce una formati per messaggi XML (aka JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai peer per Peer Discovery Protocol (PDP) utilizzato dai peer per pubblicare le loro risorse (peers, peer groups, pipes o pubblicare le loro risorse (peers, peer groups, pipes o services) e scoprire risorse presso altri peer. Ogni services) e scoprire risorse presso altri peer. Ogni risorsa è descritta e pubblicata tramite un advertisement risorsa è descritta e pubblicata tramite un advertisement Peer Information Protocol (PIP) usato per ottenere Peer Information Protocol (PIP) usato per ottenere informazioni di stato da altri peer (uptime, state, informazioni di stato da altri peer (uptime, state, recent traffic…) recent traffic…) Peer Resolver Protocol (PRP) permette ai peer di inviare Peer Resolver Protocol (PRP) permette ai peer di inviare richieste e di ricevere risposte da altri peer. Le richieste e di ricevere risposte da altri peer. Le richieste (query) possono essere dirette a tutti i peer richieste (query) possono essere dirette a tutti i peer di un gruppo oppure a uno specifico peer. PRP differisce di un gruppo oppure a uno specifico peer. PRP differisce da PDP e da PIP perché permette la richiesta di da PDP e da PIP perché permette la richiesta di informazioni generiche (non solo query predefinite) informazioni generiche (non solo query predefinite) Pipe Binding Protocol (PBP) usate per creare pipes. In Pipe Binding Protocol (PBP) usate per creare pipes. In particolare PBP permette a un peer di legare fra loro due particolare PBP permette a un peer di legare fra loro due o più endpoints. o più endpoints.

Transcript of JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione...

Page 1: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: ProtocolsJXTA: Protocols

JXTA definisce una formati per messaggi XML (aka JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer:protocolli) per la comunicazione fra peer:

Peer Discovery Protocol (PDP) utilizzato dai peer per pubblicare Peer Discovery Protocol (PDP) utilizzato dai peer per pubblicare le loro risorse (peers, peer groups, pipes o services) e scoprire le loro risorse (peers, peer groups, pipes o services) e scoprire risorse presso altri peer. Ogni risorsa è descritta e pubblicata risorse presso altri peer. Ogni risorsa è descritta e pubblicata tramite un advertisementtramite un advertisement

Peer Information Protocol (PIP) usato per ottenere informazioni Peer Information Protocol (PIP) usato per ottenere informazioni di stato da altri peer (uptime, state, recent traffic…)di stato da altri peer (uptime, state, recent traffic…)

Peer Resolver Protocol (PRP) permette ai peer di inviare Peer Resolver Protocol (PRP) permette ai peer di inviare richieste e di ricevere risposte da altri peer. Le richieste (query) richieste e di ricevere risposte da altri peer. Le richieste (query) possono essere dirette a tutti i peer di un gruppo oppure a uno possono essere dirette a tutti i peer di un gruppo oppure a uno specifico peer. PRP differisce da PDP e da PIP perché permette specifico peer. PRP differisce da PDP e da PIP perché permette la richiesta di informazioni generiche (non solo query predefinite)la richiesta di informazioni generiche (non solo query predefinite)

Pipe Binding Protocol (PBP) usate per creare pipes. In Pipe Binding Protocol (PBP) usate per creare pipes. In particolare PBP permette a un peer di legare fra loro due o più particolare PBP permette a un peer di legare fra loro due o più endpoints. endpoints.

Page 2: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: ProtocolsJXTA: Protocols

JXTA definisce una formati per messaggi XML (aka JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer:protocolli) per la comunicazione fra peer:

Peer Discovery Protocol (PDP) Peer Discovery Protocol (PDP) Peer Information Protocol (PIP)Peer Information Protocol (PIP) Peer Resolver Protocol (PRP)Peer Resolver Protocol (PRP) Pipe Binding Protocol (PBP) Pipe Binding Protocol (PBP) Endpoint Routing Protocol (ERP) usato dai peer per instradare i Endpoint Routing Protocol (ERP) usato dai peer per instradare i

messaggi. Le informazioni relative all’instradamento contengono messaggi. Le informazioni relative all’instradamento contengono una seguenza di relay peer che può essere usata per una seguenza di relay peer che può essere usata per raggiungere la destinazione.raggiungere la destinazione.

Rendezvous Protocol (RVP) meccanismo utilizzato per la Rendezvous Protocol (RVP) meccanismo utilizzato per la propagazione dei messaggipropagazione dei messaggi

Tutti i protocolli si basano su un modello Tutti i protocolli si basano su un modello domanda/risposta. Ad ogni domanda possono domanda/risposta. Ad ogni domanda possono corrispondere 0, 1 o più risposte.corrispondere 0, 1 o più risposte.

Page 3: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: PDPJXTA: PDP

TypeType 0 peer0 peer 1 group1 group 2 adv generico2 adv generico

ThresholdThreshold num max risposte che ogni peer può fornirenum max risposte che ogni peer può fornire

Attribute, Value Attribute, Value Condizioni da verificare (Es Attribute = name, Value = test*)Condizioni da verificare (Es Attribute = name, Value = test*)

PeerAdvPeerAdv Può contenere l’advertisement del peer che effettua la queryPuò contenere l’advertisement del peer che effettua la query

Page 4: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: PDPJXTA: PDP

Page 5: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: PDPJXTA: PDP

TypeTypeCountCount

num rispostenum risposte

Attribute, Value Attribute, Value Condizioni verificatesiCondizioni verificatesi

PeerAdvPeerAdv l’advertisement del peer che risponde alla queryl’advertisement del peer che risponde alla query

Response (contiene una scadenza)Response (contiene una scadenza)

Page 6: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: PDPJXTA: PDP

Page 7: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: PIPJXTA: PIP

Fornisce una serie di query predefinite per ottenere Fornisce una serie di query predefinite per ottenere informazioni sui peer (Es. il messaggio PIP ping, serve a informazioni sui peer (Es. il messaggio PIP ping, serve a stabilire se un peer è attivo).stabilire se un peer è attivo).

sourcePid sourcePid L’id del peer che effettua la richiesta.L’id del peer che effettua la richiesta.

targetPid targetPid L’id del peer che riceve la richiesta.L’id del peer che riceve la richiesta.

request request Una struttura che descrive la richiesta.Una struttura che descrive la richiesta.

Page 8: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: PIPJXTA: PIP

Page 9: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: PIPJXTA: PIP

sorcePidsorcePid

targetPidtargetPid

uptime uptime tempo di attività del serviziotempo di attività del servizio

timestamp timestamp Tempo in ms dal 1/1/1970 GMTTempo in ms dal 1/1/1970 GMT

response response risposta a una PIP query precedente e deve contenere la query risposta a una PIP query precedente e deve contenere la query

id della precedente query (query id fa parte del protocollo PRP) id della precedente query (query id fa parte del protocollo PRP)

traffictraffic contiene informazioni sul traffico effettuato dal target peer contiene informazioni sul traffico effettuato dal target peer

Page 10: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: PRPJXTA: PRP

Permette ai peer di inviare query generiche ad altri peerPermette ai peer di inviare query generiche ad altri peer

Le query possono essere inviate direttamente ad altri Le query possono essere inviate direttamente ad altri peer o propagate attraverso rendezvouspeer o propagate attraverso rendezvous

PIP and PDP si basano su PRPPIP and PDP si basano su PRP

Può anche utilizzare il servizio SRDI (Shared Resource Può anche utilizzare il servizio SRDI (Shared Resource Distributed Index).Distributed Index).

Page 11: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: PRPJXTA: PRP

<jxta:Cred> Le credenziali di chi genera la query

<HandlerName> Una stringa che specifica la destinazione della query (quale modulo deve processare la

query).<SrcPeerID>

L’ id del peer che genera la query.<QueryID>

L’identificatore della query. Deve essere incluso nel messaggio di risposta alla query<HC>

Rappresenta il numero di hop già attraversati dalla query. Deve essere incrementato ogni volta che un peer inoltra la query

<Query>

Page 12: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: PRPJXTA: PRP

Page 13: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: PRPJXTA: PRP

<jxta:Cred> credenziali del nodo che risponde alla query.<HandlerName><ResPeerID> L’id del peer che risponde alla query<QueryID> L’id della query alla quale si sta rispondendo.<Response>

Page 14: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: PRPJXTA: PRP

Page 15: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: PBPJXTA: PBP

Una pipe può essere vista come una coda di messaggi che supporta le operazioni di create, open(bind), close(unbind), delete, send e receive.L’operazione create è l’operazione effettuata dal peer per legare un pipe endpoint con un protocollo di trasporto.Le pipe vengono pubblicate attraverso pipe advetisement

<Id>

<Type> JxtaUnicast JxtaUnicastSecure JxtaPropagate

<Name> (Non deve essere necessariamente univoco)

Page 16: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: PBPJXTA: PBP

<MsgType> query o answer.<Pipe ID><Type><Cashed> (non viene più usato)<Peer>.<Found> + <PeerAdv>

Page 17: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: ERPJXTA: ERP

Il protocollo ERP (Endpoint routing protocol) fornisce una serie di query/risposte che permette a un peer di instradare messaggi.Quando un peer riceve un messaggio da instradare, controllo se nella propria cache ha una entry verso la destinazione, in caso contrario, invia una route resolver query verso un peer routers per ottenere informazioni relative all’instradamento del messaggio.Ogni gruppo di solito utilizza una serie di peer come routers, i quali dispongono di una ampia cache per la memorizzazione di informazioni di instradamento.Ogni messaggio mantiene informazioni su tutti i peer che ha attraversato. Tali informazioni permenttono di evitare cicli e di scoprire nuove rotte.

Page 18: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: ERPJXTA: ERPRoute informationRoute information

<DstPID> Il peer ID associato alla destinazione.<DstPID> Il peer ID associato alla destinazione.<Dst>Contiene una lista di endpoint addresses associati alla destinazione.<Dst>Contiene una lista di endpoint addresses associati alla destinazione.<Hops> Una lista di Access Point Advertisements che descrive una rotta verso la <Hops> Una lista di Access Point Advertisements che descrive una rotta verso la destinazione.destinazione.

Page 19: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: ERPJXTA: ERPRoute query messageRoute query message

<Dst> Il peer ID associato alla destinazione.<Dst> Il peer ID associato alla destinazione.<Src> Route advertisement del peer che richiede informazioni.<Src> Route advertisement del peer che richiede informazioni.

Page 20: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: ERPJXTA: ERPRoute response messageRoute response message

<Dst> Route advertisement del peer di cui abbiamo richiesto info.<Dst> Route advertisement del peer di cui abbiamo richiesto info.<Src> Route advertisement del peer che ha richiesto informazioni.<Src> Route advertisement del peer che ha richiesto informazioni.

Page 21: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: RVPJXTA: RVP

Il RendezVous Protocol viene utilizzato per la propagazione di messaggi all’interno di un gruppo.Ogni rendezvous peer collabora con altri rendezvous nella propagazione dei messaggi fra peer.I rendezvous peer formano una struttura dinamica detta Peer View che permette la propagazione dei messaggi in maniera consistente senza l’utilizzo di una componente centralizzata.Il Peer View protocol permette ai peer rendezvous di organizzarsi in maniera decentralizzata.

Page 22: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: RVPJXTA: RVP

RendezVous Advertisement

<RdvGroupId> L’ ID del gruppo per il quale il peer fa da rendezvous.<RdvPeerId> L’ ID del peer che fa da rendezvous.<RdvServiceName> Informazioni relative alla PeerView<Name> Nome del rendezvous peer. Può anche essere uguale al nome del peer.<RdvRoute> Una rotta verso il Rendezvous Peer. Contiene al suo interno una Route advertisement

Page 23: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: RVPJXTA: RVP

Propagation control Un peer rendezvous inoltra tutti i messaggi a meno che:

si è verificato un ciclo TTL = 0 Il messaggio è un duplicato

Il controllo è effettuato includento in ogni messaggio inoltrato alcune informazioni

Page 24: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: Hello WorldJXTA: Hello World

RequirementRequirement Java SDK (Java SDK (http://java.sun.comhttp://java.sun.com)) JXTA (JXTA (http://download.jxta.org/index.htmlhttp://download.jxta.org/index.html))

Documentation (Documentation (http://platform.jxta.org/java/api/overview-summary.htmlhttp://platform.jxta.org/java/api/overview-summary.html))

Esempi (Esempi (http://www.jxta.org/ProgGuideExamples.ziphttp://www.jxta.org/ProgGuideExamples.zip))

Page 25: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: Hello WorldJXTA: Hello World

Compilare usando JXTA javac -classpath .\lib\jxta.jar SimpleJxtaApp.java

Lanciare un applicazione java -classpath .\lib\jxta.jar;.\lib\log4j.jar; .\lib\bcprov-jdk14.jar;.

SimpleJxtaApp

Page 26: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: Hello WorldJXTA: Hello Worldimport 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 jxtastatic 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 NetPeerGroupnetPeerGroup = 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);}

}}

Page 27: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: ConfigurazioneJXTA: Configurazione

Page 28: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: ConfigurazioneJXTA: Configurazione

Page 29: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

JXTA: ConfigurazioneJXTA: Configurazione

Page 30: JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.

DemoDemo