JXTA: Protocols - PowerPoint PPT Presentation

1 / 30
About This Presentation
Title:

JXTA: Protocols

Description:

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

Number of Views:71
Avg rating:3.0/5.0
Slides: 31
Provided by: Genna7
Category:
Tags: jxta | jxta | protocols

less

Transcript and Presenter's Notes

Title: JXTA: Protocols


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

2
JXTA Protocols
  • JXTA definisce una formati per messaggi XML (aka
    protocolli) per la comunicazione fra peer
  • Peer Discovery Protocol (PDP)
  • Peer Information Protocol (PIP)
  • Peer Resolver Protocol (PRP)
  • Pipe Binding Protocol (PBP)
  • Endpoint Routing Protocol (ERP) usato dai peer
    per instradare i messaggi. Le informazioni
    relative allinstradamento contengono una
    seguenza di relay peer che può essere usata per
    raggiungere la destinazione.
  • Rendezvous Protocol (RVP) meccanismo utilizzato
    per la propagazione dei messaggi
  • Tutti i protocolli si basano su un modello
    domanda/risposta. Ad ogni domanda possono
    corrispondere 0, 1 o più risposte.

3
JXTA PDP
  • Type
  • 0 peer
  • 1 group
  • 2 adv generico
  • Threshold
  • num max risposte che ogni peer può fornire
  • Attribute, Value
  • Condizioni da verificare (Es Attribute name,
    Value test)
  • PeerAdv
  • Può contenere ladvertisement del peer che
    effettua la query

4
JXTA PDP
5
JXTA PDP
  • Type
  • Count
  • num risposte
  • Attribute, Value
  • Condizioni verificatesi
  • PeerAdv
  • ladvertisement del peer che risponde alla query
  • Response (contiene una scadenza)

6
JXTA PDP
7
JXTA PIP
  • Fornisce una serie di query predefinite per
    ottenere informazioni sui peer (Es. il messaggio
    PIP ping, serve a stabilire se un peer è attivo).
  • sourcePid
  • Lid del peer che effettua la richiesta.
  • targetPid
  • Lid del peer che riceve la richiesta.
  • request
  • Una struttura che descrive la richiesta.

8
JXTA PIP
9
JXTA PIP
  • sorcePid
  • targetPid
  • uptime
  • tempo di attività del servizio
  • timestamp
  • Tempo in ms dal 1/1/1970 GMT
  • response
  • risposta a una PIP query precedente e deve
    contenere la query id della precedente query
    (query id fa parte del protocollo PRP)
  • traffic
  • contiene informazioni sul traffico effettuato dal
    target peer

10
JXTA PRP
  • Permette ai peer di inviare query generiche ad
    altri peer
  • Le query possono essere inviate direttamente ad
    altri peer o propagate attraverso rendezvous
  • PIP and PDP si basano su PRP
  • Può anche utilizzare il servizio SRDI (Shared
    Resource Distributed Index).

11
JXTA PRP
  • ltjxtaCredgt
  • Le credenziali di chi genera la query
  • ltHandlerNamegt
  • Una stringa che specifica la destinazione della
    query (quale modulo deve processare la query).
  • ltSrcPeerIDgt
  • L id del peer che genera la query.
  • ltQueryIDgt
  • Lidentificatore della query. Deve essere incluso
    nel messaggio di risposta alla query
  • ltHCgt
  • Rappresenta il numero di hop già attraversati
    dalla query. Deve essere incrementato ogni volta
    che un peer inoltra la query
  • ltQuerygt

12
JXTA PRP
13
JXTA PRP
  • ltjxtaCredgt credenziali del nodo che risponde
    alla query.
  • ltHandlerNamegt
  • ltResPeerIDgt Lid del peer che risponde alla query
  • ltQueryIDgt Lid della query alla quale si sta
    rispondendo.
  • ltResponsegt

14
JXTA PRP
15
JXTA 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.
  • Loperazione create è loperazione effettuata dal
    peer per legare un pipe endpoint con un
    protocollo di trasporto.
  • Le pipe vengono pubblicate attraverso pipe
    advetisement
  • ltIdgt
  • ltTypegt
  • JxtaUnicast
  • JxtaUnicastSecure
  • JxtaPropagate
  • ltNamegt (Non deve essere necessariamente univoco)

16
JXTA PBP
  • ltMsgTypegt query o answer.
  • ltPipe IDgt
  • ltTypegt
  • ltCashedgt (non viene più usato)
  • ltPeergt.
  • ltFoundgt ltPeerAdvgt

17
JXTA 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
    allinstradamento 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.

18
JXTA ERP
  • Route information
  • ltDstPIDgt Il peer ID associato alla destinazione.
  • ltDstgtContiene una lista di endpoint addresses
    associati alla destinazione.
  • ltHopsgt Una lista di Access Point Advertisements
    che descrive una rotta verso la destinazione.

19
JXTA ERP
  • Route query message
  • ltDstgt Il peer ID associato alla destinazione.
  • ltSrcgt Route advertisement del peer che richiede
    informazioni.

20
JXTA ERP
  • Route response message
  • ltDstgt Route advertisement del peer di cui abbiamo
    richiesto info.
  • ltSrcgt Route advertisement del peer che ha
    richiesto informazioni.

21
JXTA RVP
  • Il RendezVous Protocol viene utilizzato per la
    propagazione di messaggi allinterno 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 lutilizzo
    di una componente centralizzata.
  • Il Peer View protocol permette ai peer rendezvous
    di organizzarsi in maniera decentralizzata.

22
JXTA RVP
  • RendezVous Advertisement
  • ltRdvGroupIdgt L ID del gruppo per il quale il
    peer fa da rendezvous.
  • ltRdvPeerIdgt L ID del peer che fa da rendezvous.
  • ltRdvServiceNamegt Informazioni relative alla
    PeerView
  • ltNamegt Nome del rendezvous peer. Può anche essere
    uguale al nome del peer.
  • ltRdvRoutegt Una rotta verso il Rendezvous Peer.
    Contiene al suo interno una Route advertisement

23
JXTA 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

24
JXTA Hello World
  • Requirement
  • Java SDK (http//java.sun.com)
  • JXTA (http//download.jxta.org/index.html)
  • Documentation
    (http//platform.jxta.org/java/api/overview-summar
    y.html)
  • Esempi (http//www.jxta.org/ProgGuideExamples.zip)

25
JXTA 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

26
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

27
JXTA Configurazione
28
JXTA Configurazione
29
JXTA Configurazione
30
Demo
Write a Comment
User Comments (0)
About PowerShow.com