SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Sabato 28 Ottobre 2006

P2P facile con JXTA:
      introduzione allo sviluppo
        di applicazioni peer to peer

                         Bello Emmanuele
                         TorLUG.org

                         emmanuele.bello@torlug.org

                         http://www.torlug.org
                                                      1
Agenda

 • ...strutture e storia!

 • applicazioni P2P comuni

 • caratteristiche comuni
 • introduzione a JXTA

 • architettura del framework

 • una semplice applicazione
 • live example! ;-)


                                2
Precisiamo...

 • Questo talk è:

 - una introduzione a JXTA...non si
 puo' vedere tutto in 45 minuti :-)
 - un invito a programmare applicazioni P2P.


                        • Questo talk NON è:
                        - la guerra epica tra C e Java!!!
                        - l'enciclopedia di JXTA!!!

                                                            3
Introduzione

 • Un sistema P2P:
  è un insieme di entità autonome (peers), capaci di auto-organizzarsi,
 che condividono un insieme di risorse distribuite presenti all’interno
 di una rete di computers. Il sistema utilizza tali risorse per fornire una
 determinata funzionalità in modo completamente decentralizzato.

 • Paradigma SERVENT

 -Risorse condivise: potenza di calcolo, banda, memoria, informazioni,
  file, etc. etc.


                                                                              4
Introduzione 2

 • La comunità:
 è il punto forte del sistema, ogni “edge” fornisce e riceve risorse
 autonomamente (nella maggior parte dei casi!).



  -Ad esempio in SETI@Home si donano risorse!


 -Connessione transiente, IP dinamico, indirizzamento diverso da
 quello classico...



                                                                       5
Introduzione 2

 • Architetture:
 -cooperazione decentralizzata
 -evoluzione dei modelli con la storia
 -Client/server, puro, ibrido




                                         6
Introduzione 3

 • Campi applicativi:
 - File sharing (Napster, KaZaa, Gnutella, ...)
 - Comunicazione (VoIP, IM, ...)
 - Distributed Storage (Freenet, ...)
 - Computazione (Seti@home, ...)
 - Game on-line multiplayer
 - ...




                                                  7
Introduzione 4

 • Struttura:
 - Sistemi non strutturati
   overlay network dinamica creata dai peer che si collegano è non
   strutturata. Algoritmi di ricerca basati su flooding o su directory
   centralizzate

 - Sistemi strutturati
   basati su algoritmi DHT(Distributed Hash Tables), stabili.
   I peer devono eseguire una determinata procedura per
   connettersi.
   Complessità garantita dalla rete O(log N)!!!

                                                                         8
Storia 1

 • Origini:
 - Fine anni '60
   ARPAnet condivisione di documenti e risorse.
 - 1997
   USENET basata su newsgroup, modello basato su
   client/server.
 - 1999
   Napster, prima generazione dei sistemi P2P.




                                                   9
Storia 1

 • Origini:
 - Dicembre 1999
  prima denucnia di RIAA verso Napster....cominciano i problemi
  etici e legali!!

 - Febbraio 2001
  2.79 bilioni di file scambiati al mese.

 - Luglio 2001
  Napster chiude!!!



                                                                  10
Storia 2

 • Seconda generazione:
 - Ottobre 2000
   iniziano i sistemi di seconda generazione. Routing gerarchico.
   Introduzione dei reflector superpeer.

 - Introduzione del progetto Gnutella.


 - ...riassumiamo...




                                                                    11
Storia 3

 • Le generazioni P2P:




                         12
JXTA

• Introduzione:
- Tecnologia sviluppata da Sun Microsystem (Billy Joy e Mike
Clary);
- Significa giustapposto, perchè il P2P deve affiancare le tecnologie
esistenti e non sostituirle;
- JXTA è una suite di protocolli aperti per sviluppare soluzioni
interessanti, portabili e leggere;
- Esistono le librerie scritte in Java e C, C++;
- http://www.jxta.org/



                                                                        13
JXTA

• Cosa fa:
- Standardizza le modalità su come i peer si scoprono sulla rete;
- Standardizza le ricerche delle risorse tra i peer;
- Standardizza le modalità di diffusione delle risorse (pubblicazione);
- Usa un sistema a pipes per comunicare;
- Standardizza le attività di monitoraggio.


...si utilizza XML che è lo standard per l'interscambio dei dati.




                                                                          14
JXTA

• Overlay Network:




                     15
JXTA

• Layer:




           16
JXTA

• Classificazione dei peer:
- Identificati da un ID univoco, JXTAID
- Un qualsiasi dispositivo connesso alla rete di overlay di JXTA


- Minimal edge peer
 hanno risorse limitate e solitamente sono dietro un firewall o un
 NAT. Possono ricevere e inoltrare messaggi, non hanno cache e
 non svolgono lavoro per altri.




                                                                     17
JXTA

• Classificazione dei peer 2:
- Full featured edge peer
 hanno le stesse funzionalità dei minimal edge peer, in più hanno la
 cache per memorizzare informazioni sulla rete.


- Rendez-vouz peer
 stesse funzionalità dei precedenti, offrono servizi di routing,
 memorizzano informazioni per altri peers. Possiede risorse dicalcolo
 superiori a quelle dei due precedenti.



                                                                        18
JXTA

• Classificazione dei peer 3:
- Relay peer
 sono in grado di inoltrare messagi per conto di peer che sono
 dietro FW o dietro NAT.




- Rely peer
 utili per permettere il collegamento ad una rete JXTA per i peer
 che sono dietro FW o NAT. Sono peer di boot.


                                                                    19
JXTA

• Gruppi:
- servono a suddividere la rete di overlay in base all'applicazione a cui
 i peer partecipano
- nei gruppi ci sono peer con interesse comune;
- il peer group definisce:
       a) un insieme di servizi;
       b) politiche di membership;
       c) scoping;
       d) monitoraggio.
- sono creati dalle applicazioni.


                                                                            20
JXTA

• Gruppi 2:
- al boot per default si appartiene a NetPeerGroup in grado di
 fornire servizi di base
- un peer può unirsi a diversi gruppi durante il suo ciclo vita
- rappresentato come albero NetPeerGroup è la radice

                   NetPeerGroup 1


           GameGroup 2
                                 AppGroup 3




                                                                  21
JXTA

• Le pipes:
- meccanismi per lo scambio di messaggi tra servizi e applicazioni
- componenti: pipe, pipe endpoint(in e out), messaggi
- collegamenti tramite pipe binding protocol
- sono risorse condivise
-solitamente sono:
       a) point-to-point unicast;
       b) secure unicast pipes;
       c) propagate pipes.
- messaggi scambiati con XML


                                                                     22
JXTA

• Gli advertisements:
- rappresentazione strutturata di entità, servizi, o risorsa resa
disponibile da un peer per gli altri peer
- hanno un ciclo di vita per non intasare la cache dei peer
- esempio:
<?xml version=“1.0”?>
<!DOCTYPE jxta: PipeAdvertisement>
<jxta: PipeAdvertisement xmlns:jxta=“http://jxta.org”>
      <id>
           urn:jxta:uuid59616261646162614E504720503250338E3E786229EA460DADC1A176B69B735
      </id>
      <type>
            JxtaUnicast
      </type>
      < name
           TestPipe
      </name>
</jxta:PipeAdvertisement>

                                                                                      23
JXTA

• Gli advertisements 2:
- peer advertisements
- peer group advertisemts
- pipe advertisements
- peer info advertisements
- ...ne esistono altri...li vediamo avanti



....Ora arriva il codice finalmente :-) !!!



                                              24
JXTA

• Restonet un valido esempio:




                                25
JXTA

• Ricerca di un gruppo:
- creazione del riferimento al NetPeerGroup e reperimento del discovery:

...
try
      {
          PeerGroup netpg = PeerGroupFactory.newNetPeerGroup ( );
      }
      catch (PeerGroupException e)
       {
          System.exit(1); }
          DiscoveryService hdisco = netpg.getDiscoveryService ( );
...




                                                                           26
JXTA

• Ricerca di un gruppo 2:
- ricerca di advertisemnts per RestoPeerGroup:
Enumeration ae = null;
int count = 3;
while (count-- >0)
{     try {
        ae = hdisco.getLocalAdvertisements(DiscoveryService.GROUP, “Name”,”RestoNet”);
        if ((ae !=null) )
               break;
        hdisco.getRemoteAdvertisements(null, DiscoveryService.GROUP,
Name”,”RestoNet”,1,null)
        try {
              Thread.sleep(timeout)
        } catch (InterrruptedException ie) { }
if (ae == null)
    <creazione del nuovo gruppo>
else <richiesta di partecipazione al gruppo>
catch (Exception e)
     {System.exit(1);}


                                                                                    27
JXTA

• Creazione di un gruppo:
...
String groupURL”jxta:uuid-4d617267657……………….f202002”

PeerGroupID groupID= (PeerGroupID)
      IDFactory.fromURI(new URI(“urn”,” “,groupURL));

PeerGroup restoNet = null;

ModuleImplAdvertisement implAdv =
   netpg.getAllPurposePeerGroupImplAdvertisement( );

restoNet = netpg.newGroup(groupID,implAdv,”RestoNet”,”Gruppo Ristoranti”);

...




                                                                             28
JXTA




• Protocolli e servizi:

- Discovery Service : Peer Discovery Protocol (PDB);
- Pipe Service: Peer Binding Protocol (PBP);
- Peer Information Service: Peer Information Protocol (PIP);
- Rendez Vouz Service: Rendez Vouz Protocol(RVP);
- End Point Service: END Routing Protocol(ERP);
- Peer Resolver Service: Peer Resolve Protocol(PRP);
- Membership e Access Protocol.
                                                               29
JXTA
• Live Session:

- Per completare l'introduzione a JXTA vediamo live:
      a) il meccanismo delle pipe;
      b) il discovery Service;
      c) la pubblicazione di advertisements;
      d) la ricerca dei servizi;
      e) ricezione dei messaggi.




                                                       30
DOMANDE...




             31
GRAZIE...

      www.torlug.org

    emmanuele.bello@torlug.org




                                 31

Weitere ähnliche Inhalte

Andere mochten auch

Peer coaching for collaboration
Peer coaching for collaborationPeer coaching for collaboration
Peer coaching for collaborationAngela Higgins
 
Peer coaching to improve debriefing skills for simulation-based education
Peer coaching to improve debriefing skills for simulation-based educationPeer coaching to improve debriefing skills for simulation-based education
Peer coaching to improve debriefing skills for simulation-based educationDebrief2Learn
 
Utilizzo della teoria dei giochi per lo sviluppo di tecnologie peer-to-peer
Utilizzo della teoria dei giochi per lo sviluppo di tecnologie peer-to-peerUtilizzo della teoria dei giochi per lo sviluppo di tecnologie peer-to-peer
Utilizzo della teoria dei giochi per lo sviluppo di tecnologie peer-to-peerEnrico Cambiaso
 
Dall' Author Index al Peer Index
Dall' Author Index al Peer IndexDall' Author Index al Peer Index
Dall' Author Index al Peer IndexCristina Rigutto
 
Presentazione_CAPOTOSTI_Giulia
Presentazione_CAPOTOSTI_GiuliaPresentazione_CAPOTOSTI_Giulia
Presentazione_CAPOTOSTI_GiuliaGiulia Capotosti
 
La peer education. Lineamenti operativi 2011
La peer education. Lineamenti operativi 2011La peer education. Lineamenti operativi 2011
La peer education. Lineamenti operativi 2011Rosalia Giammetta
 
Peer education - La formazione dei peer educator - prima parte
Peer education - La formazione dei peer educator - prima partePeer education - La formazione dei peer educator - prima parte
Peer education - La formazione dei peer educator - prima parteRosalia Giammetta
 
P2P: not only file sharing
P2P: not only file sharingP2P: not only file sharing
P2P: not only file sharingMarta Fava
 
The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017LinkedIn
 

Andere mochten auch (13)

Peer coaching for collaboration
Peer coaching for collaborationPeer coaching for collaboration
Peer coaching for collaboration
 
Peer coaching guide
Peer coaching guidePeer coaching guide
Peer coaching guide
 
Peer coaching to improve debriefing skills for simulation-based education
Peer coaching to improve debriefing skills for simulation-based educationPeer coaching to improve debriefing skills for simulation-based education
Peer coaching to improve debriefing skills for simulation-based education
 
Utilizzo della teoria dei giochi per lo sviluppo di tecnologie peer-to-peer
Utilizzo della teoria dei giochi per lo sviluppo di tecnologie peer-to-peerUtilizzo della teoria dei giochi per lo sviluppo di tecnologie peer-to-peer
Utilizzo della teoria dei giochi per lo sviluppo di tecnologie peer-to-peer
 
Dall' Author Index al Peer Index
Dall' Author Index al Peer IndexDall' Author Index al Peer Index
Dall' Author Index al Peer Index
 
Presentazione_CAPOTOSTI_Giulia
Presentazione_CAPOTOSTI_GiuliaPresentazione_CAPOTOSTI_Giulia
Presentazione_CAPOTOSTI_Giulia
 
Peer Coaching
Peer CoachingPeer Coaching
Peer Coaching
 
La peer education. Lineamenti operativi 2011
La peer education. Lineamenti operativi 2011La peer education. Lineamenti operativi 2011
La peer education. Lineamenti operativi 2011
 
Peer Coaching
Peer CoachingPeer Coaching
Peer Coaching
 
Peer education - La formazione dei peer educator - prima parte
Peer education - La formazione dei peer educator - prima partePeer education - La formazione dei peer educator - prima parte
Peer education - La formazione dei peer educator - prima parte
 
P2P: not only file sharing
P2P: not only file sharingP2P: not only file sharing
P2P: not only file sharing
 
Aspetti giuridici del P2P
Aspetti giuridici del P2PAspetti giuridici del P2P
Aspetti giuridici del P2P
 
The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017
 

Ähnlich wie Bello Jxta Intro

Network_Forensics_Analysis_Tool.pptx
Network_Forensics_Analysis_Tool.pptxNetwork_Forensics_Analysis_Tool.pptx
Network_Forensics_Analysis_Tool.pptxManlioSantonastaso
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su LinuxMajong DevJfu
 
03 - Introduzione a Internet II
03 - Introduzione a Internet II03 - Introduzione a Internet II
03 - Introduzione a Internet IIGiuseppe Vizzari
 
3 - Introduzione a Internet (2/2) - 16/17
3 - Introduzione a Internet (2/2) - 16/173 - Introduzione a Internet (2/2) - 16/17
3 - Introduzione a Internet (2/2) - 16/17Giuseppe Vizzari
 
(in)Sicurezze delle reti wireless 802.11b
(in)Sicurezze delle reti wireless 802.11b(in)Sicurezze delle reti wireless 802.11b
(in)Sicurezze delle reti wireless 802.11bAlfredo Morresi
 
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embeddedDaniele Costarella
 
Nat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneNat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneGiuliano Latini
 
Sistemi lezione i - Presentazione - hardware
Sistemi   lezione i - Presentazione - hardwareSistemi   lezione i - Presentazione - hardware
Sistemi lezione i - Presentazione - hardwareUniversity of Catania
 
Dai protocolli alla_startup_bsw2010
Dai protocolli alla_startup_bsw2010Dai protocolli alla_startup_bsw2010
Dai protocolli alla_startup_bsw2010Leandro Agro'
 
Italian deft 7 manual 90
Italian deft 7 manual 90Italian deft 7 manual 90
Italian deft 7 manual 90mstrom62
 
Introduzione a Internet (2/2) - 18/19
Introduzione a Internet (2/2) - 18/19Introduzione a Internet (2/2) - 18/19
Introduzione a Internet (2/2) - 18/19Giuseppe Vizzari
 
Iaa s con openstack per l'analisi di bigdata
Iaa s con openstack per l'analisi di bigdataIaa s con openstack per l'analisi di bigdata
Iaa s con openstack per l'analisi di bigdataVincenzo Fogliaro
 
4 - Introduzione al Web (1/2) - 16/17
4 - Introduzione al Web (1/2) - 16/174 - Introduzione al Web (1/2) - 16/17
4 - Introduzione al Web (1/2) - 16/17Giuseppe Vizzari
 
Docker - virtualizzazione leggera
Docker - virtualizzazione leggeraDocker - virtualizzazione leggera
Docker - virtualizzazione leggeraRoberto Polli
 
I contenuti in rete ed il peer to peer
I contenuti in rete ed il peer to peerI contenuti in rete ed il peer to peer
I contenuti in rete ed il peer to peerEdoardo E. Artese
 
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...Massimiliano Leone
 

Ähnlich wie Bello Jxta Intro (20)

Network_Forensics_Analysis_Tool.pptx
Network_Forensics_Analysis_Tool.pptxNetwork_Forensics_Analysis_Tool.pptx
Network_Forensics_Analysis_Tool.pptx
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su Linux
 
03 - Introduzione a Internet II
03 - Introduzione a Internet II03 - Introduzione a Internet II
03 - Introduzione a Internet II
 
Thread
ThreadThread
Thread
 
3 - Introduzione a Internet (2/2) - 16/17
3 - Introduzione a Internet (2/2) - 16/173 - Introduzione a Internet (2/2) - 16/17
3 - Introduzione a Internet (2/2) - 16/17
 
(in)Sicurezze delle reti wireless 802.11b
(in)Sicurezze delle reti wireless 802.11b(in)Sicurezze delle reti wireless 802.11b
(in)Sicurezze delle reti wireless 802.11b
 
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
 
Nat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneNat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazione
 
Sistemi lezione i - Presentazione - hardware
Sistemi   lezione i - Presentazione - hardwareSistemi   lezione i - Presentazione - hardware
Sistemi lezione i - Presentazione - hardware
 
Dai protocolli alla_startup_bsw2010
Dai protocolli alla_startup_bsw2010Dai protocolli alla_startup_bsw2010
Dai protocolli alla_startup_bsw2010
 
Italian deft 7 manual 90
Italian deft 7 manual 90Italian deft 7 manual 90
Italian deft 7 manual 90
 
Introduzione a Internet (2/2) - 18/19
Introduzione a Internet (2/2) - 18/19Introduzione a Internet (2/2) - 18/19
Introduzione a Internet (2/2) - 18/19
 
Blockchainvis Backend
Blockchainvis BackendBlockchainvis Backend
Blockchainvis Backend
 
Slide Bit Torrent
Slide Bit TorrentSlide Bit Torrent
Slide Bit Torrent
 
Iaa s con openstack per l'analisi di bigdata
Iaa s con openstack per l'analisi di bigdataIaa s con openstack per l'analisi di bigdata
Iaa s con openstack per l'analisi di bigdata
 
4 - Introduzione al Web (1/2) - 16/17
4 - Introduzione al Web (1/2) - 16/174 - Introduzione al Web (1/2) - 16/17
4 - Introduzione al Web (1/2) - 16/17
 
Docker - virtualizzazione leggera
Docker - virtualizzazione leggeraDocker - virtualizzazione leggera
Docker - virtualizzazione leggera
 
I contenuti in rete ed il peer to peer
I contenuti in rete ed il peer to peerI contenuti in rete ed il peer to peer
I contenuti in rete ed il peer to peer
 
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...
 
TCP IP
TCP IPTCP IP
TCP IP
 

Bello Jxta Intro

  • 1. Sabato 28 Ottobre 2006 P2P facile con JXTA: introduzione allo sviluppo di applicazioni peer to peer Bello Emmanuele TorLUG.org emmanuele.bello@torlug.org http://www.torlug.org 1
  • 2. Agenda • ...strutture e storia! • applicazioni P2P comuni • caratteristiche comuni • introduzione a JXTA • architettura del framework • una semplice applicazione • live example! ;-) 2
  • 3. Precisiamo... • Questo talk è: - una introduzione a JXTA...non si puo' vedere tutto in 45 minuti :-) - un invito a programmare applicazioni P2P. • Questo talk NON è: - la guerra epica tra C e Java!!! - l'enciclopedia di JXTA!!! 3
  • 4. Introduzione • Un sistema P2P: è un insieme di entità autonome (peers), capaci di auto-organizzarsi, che condividono un insieme di risorse distribuite presenti all’interno di una rete di computers. Il sistema utilizza tali risorse per fornire una determinata funzionalità in modo completamente decentralizzato. • Paradigma SERVENT -Risorse condivise: potenza di calcolo, banda, memoria, informazioni, file, etc. etc. 4
  • 5. Introduzione 2 • La comunità: è il punto forte del sistema, ogni “edge” fornisce e riceve risorse autonomamente (nella maggior parte dei casi!). -Ad esempio in SETI@Home si donano risorse! -Connessione transiente, IP dinamico, indirizzamento diverso da quello classico... 5
  • 6. Introduzione 2 • Architetture: -cooperazione decentralizzata -evoluzione dei modelli con la storia -Client/server, puro, ibrido 6
  • 7. Introduzione 3 • Campi applicativi: - File sharing (Napster, KaZaa, Gnutella, ...) - Comunicazione (VoIP, IM, ...) - Distributed Storage (Freenet, ...) - Computazione (Seti@home, ...) - Game on-line multiplayer - ... 7
  • 8. Introduzione 4 • Struttura: - Sistemi non strutturati overlay network dinamica creata dai peer che si collegano è non strutturata. Algoritmi di ricerca basati su flooding o su directory centralizzate - Sistemi strutturati basati su algoritmi DHT(Distributed Hash Tables), stabili. I peer devono eseguire una determinata procedura per connettersi. Complessità garantita dalla rete O(log N)!!! 8
  • 9. Storia 1 • Origini: - Fine anni '60 ARPAnet condivisione di documenti e risorse. - 1997 USENET basata su newsgroup, modello basato su client/server. - 1999 Napster, prima generazione dei sistemi P2P. 9
  • 10. Storia 1 • Origini: - Dicembre 1999 prima denucnia di RIAA verso Napster....cominciano i problemi etici e legali!! - Febbraio 2001 2.79 bilioni di file scambiati al mese. - Luglio 2001 Napster chiude!!! 10
  • 11. Storia 2 • Seconda generazione: - Ottobre 2000 iniziano i sistemi di seconda generazione. Routing gerarchico. Introduzione dei reflector superpeer. - Introduzione del progetto Gnutella. - ...riassumiamo... 11
  • 12. Storia 3 • Le generazioni P2P: 12
  • 13. JXTA • Introduzione: - Tecnologia sviluppata da Sun Microsystem (Billy Joy e Mike Clary); - Significa giustapposto, perchè il P2P deve affiancare le tecnologie esistenti e non sostituirle; - JXTA è una suite di protocolli aperti per sviluppare soluzioni interessanti, portabili e leggere; - Esistono le librerie scritte in Java e C, C++; - http://www.jxta.org/ 13
  • 14. JXTA • Cosa fa: - Standardizza le modalità su come i peer si scoprono sulla rete; - Standardizza le ricerche delle risorse tra i peer; - Standardizza le modalità di diffusione delle risorse (pubblicazione); - Usa un sistema a pipes per comunicare; - Standardizza le attività di monitoraggio. ...si utilizza XML che è lo standard per l'interscambio dei dati. 14
  • 17. JXTA • Classificazione dei peer: - Identificati da un ID univoco, JXTAID - Un qualsiasi dispositivo connesso alla rete di overlay di JXTA - Minimal edge peer hanno risorse limitate e solitamente sono dietro un firewall o un NAT. Possono ricevere e inoltrare messaggi, non hanno cache e non svolgono lavoro per altri. 17
  • 18. JXTA • Classificazione dei peer 2: - Full featured edge peer hanno le stesse funzionalità dei minimal edge peer, in più hanno la cache per memorizzare informazioni sulla rete. - Rendez-vouz peer stesse funzionalità dei precedenti, offrono servizi di routing, memorizzano informazioni per altri peers. Possiede risorse dicalcolo superiori a quelle dei due precedenti. 18
  • 19. JXTA • Classificazione dei peer 3: - Relay peer sono in grado di inoltrare messagi per conto di peer che sono dietro FW o dietro NAT. - Rely peer utili per permettere il collegamento ad una rete JXTA per i peer che sono dietro FW o NAT. Sono peer di boot. 19
  • 20. JXTA • Gruppi: - servono a suddividere la rete di overlay in base all'applicazione a cui i peer partecipano - nei gruppi ci sono peer con interesse comune; - il peer group definisce: a) un insieme di servizi; b) politiche di membership; c) scoping; d) monitoraggio. - sono creati dalle applicazioni. 20
  • 21. JXTA • Gruppi 2: - al boot per default si appartiene a NetPeerGroup in grado di fornire servizi di base - un peer può unirsi a diversi gruppi durante il suo ciclo vita - rappresentato come albero NetPeerGroup è la radice NetPeerGroup 1 GameGroup 2 AppGroup 3 21
  • 22. JXTA • Le pipes: - meccanismi per lo scambio di messaggi tra servizi e applicazioni - componenti: pipe, pipe endpoint(in e out), messaggi - collegamenti tramite pipe binding protocol - sono risorse condivise -solitamente sono: a) point-to-point unicast; b) secure unicast pipes; c) propagate pipes. - messaggi scambiati con XML 22
  • 23. JXTA • Gli advertisements: - rappresentazione strutturata di entità, servizi, o risorsa resa disponibile da un peer per gli altri peer - hanno un ciclo di vita per non intasare la cache dei peer - esempio: <?xml version=“1.0”?> <!DOCTYPE jxta: PipeAdvertisement> <jxta: PipeAdvertisement xmlns:jxta=“http://jxta.org”> <id> urn:jxta:uuid59616261646162614E504720503250338E3E786229EA460DADC1A176B69B735 </id> <type> JxtaUnicast </type> < name TestPipe </name> </jxta:PipeAdvertisement> 23
  • 24. JXTA • Gli advertisements 2: - peer advertisements - peer group advertisemts - pipe advertisements - peer info advertisements - ...ne esistono altri...li vediamo avanti ....Ora arriva il codice finalmente :-) !!! 24
  • 25. JXTA • Restonet un valido esempio: 25
  • 26. JXTA • Ricerca di un gruppo: - creazione del riferimento al NetPeerGroup e reperimento del discovery: ... try { PeerGroup netpg = PeerGroupFactory.newNetPeerGroup ( ); } catch (PeerGroupException e) { System.exit(1); } DiscoveryService hdisco = netpg.getDiscoveryService ( ); ... 26
  • 27. JXTA • Ricerca di un gruppo 2: - ricerca di advertisemnts per RestoPeerGroup: Enumeration ae = null; int count = 3; while (count-- >0) { try { ae = hdisco.getLocalAdvertisements(DiscoveryService.GROUP, “Name”,”RestoNet”); if ((ae !=null) ) break; hdisco.getRemoteAdvertisements(null, DiscoveryService.GROUP, Name”,”RestoNet”,1,null) try { Thread.sleep(timeout) } catch (InterrruptedException ie) { } if (ae == null) <creazione del nuovo gruppo> else <richiesta di partecipazione al gruppo> catch (Exception e) {System.exit(1);} 27
  • 28. JXTA • Creazione di un gruppo: ... String groupURL”jxta:uuid-4d617267657……………….f202002” PeerGroupID groupID= (PeerGroupID) IDFactory.fromURI(new URI(“urn”,” “,groupURL)); PeerGroup restoNet = null; ModuleImplAdvertisement implAdv = netpg.getAllPurposePeerGroupImplAdvertisement( ); restoNet = netpg.newGroup(groupID,implAdv,”RestoNet”,”Gruppo Ristoranti”); ... 28
  • 29. JXTA • Protocolli e servizi: - Discovery Service : Peer Discovery Protocol (PDB); - Pipe Service: Peer Binding Protocol (PBP); - Peer Information Service: Peer Information Protocol (PIP); - Rendez Vouz Service: Rendez Vouz Protocol(RVP); - End Point Service: END Routing Protocol(ERP); - Peer Resolver Service: Peer Resolve Protocol(PRP); - Membership e Access Protocol. 29
  • 30. JXTA • Live Session: - Per completare l'introduzione a JXTA vediamo live: a) il meccanismo delle pipe; b) il discovery Service; c) la pubblicazione di advertisements; d) la ricerca dei servizi; e) ricezione dei messaggi. 30
  • 32. GRAZIE... www.torlug.org emmanuele.bello@torlug.org 31