際際滷

際際滷Share a Scribd company logo
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 allinterno
 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 groupURLjxta: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

More Related Content

Viewers also liked (13)

Peer coaching for collaboration
Peer coaching for collaborationPeer coaching for collaboration
Peer coaching for collaboration
Angela Higgins
Peer coaching guide
Peer coaching guidePeer coaching guide
Peer coaching guide
Fredrick Kariuki
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
Debrief2Learn
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
Enrico Cambiaso
Dall' Author Index al Peer Index
Dall' Author Index al Peer IndexDall' Author Index al Peer Index
Dall' Author Index al Peer Index
Cristina Rigutto
Presentazione_CAPOTOSTI_Giulia
Presentazione_CAPOTOSTI_GiuliaPresentazione_CAPOTOSTI_Giulia
Presentazione_CAPOTOSTI_Giulia
Giulia Capotosti
Peer Coaching
Peer CoachingPeer Coaching
Peer Coaching
amiepiper1
La peer education. Lineamenti operativi 2011
La peer education. Lineamenti operativi 2011La peer education. Lineamenti operativi 2011
La peer education. Lineamenti operativi 2011
Rosalia Giammetta
Peer Coaching
Peer CoachingPeer Coaching
Peer Coaching
thebigsmooth
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
Rosalia Giammetta
P2P: not only file sharing
P2P: not only file sharingP2P: not only file sharing
P2P: not only file sharing
Marta Fava
Aspetti giuridici del P2P
Aspetti giuridici del P2PAspetti giuridici del P2P
Aspetti giuridici del P2P
Council of Europe
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
LinkedIn
Peer coaching for collaboration
Peer coaching for collaborationPeer coaching for collaboration
Peer coaching for collaboration
Angela 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 education
Debrief2Learn
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
Enrico Cambiaso
Dall' Author Index al Peer Index
Dall' Author Index al Peer IndexDall' Author Index al Peer Index
Dall' Author Index al Peer Index
Cristina Rigutto
Presentazione_CAPOTOSTI_Giulia
Presentazione_CAPOTOSTI_GiuliaPresentazione_CAPOTOSTI_Giulia
Presentazione_CAPOTOSTI_Giulia
Giulia Capotosti
Peer Coaching
Peer CoachingPeer Coaching
Peer Coaching
amiepiper1
La peer education. Lineamenti operativi 2011
La peer education. Lineamenti operativi 2011La peer education. Lineamenti operativi 2011
La peer education. Lineamenti operativi 2011
Rosalia 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 parte
Rosalia Giammetta
P2P: not only file sharing
P2P: not only file sharingP2P: not only file sharing
P2P: not only file sharing
Marta Fava
Aspetti giuridici del P2P
Aspetti giuridici del P2PAspetti giuridici del P2P
Aspetti giuridici del P2P
Council of Europe
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
LinkedIn

Similar to Bello Jxta Intro (20)

Network_Forensics_Analysis_Tool.pptx
Network_Forensics_Analysis_Tool.pptxNetwork_Forensics_Analysis_Tool.pptx
Network_Forensics_Analysis_Tool.pptx
ManlioSantonastaso
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su Linux
Majong DevJfu
03 - Introduzione a Internet II
03 - Introduzione a Internet II03 - Introduzione a Internet II
03 - Introduzione a Internet II
Giuseppe Vizzari
Thread
ThreadThread
Thread
Giovanni Grano
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
Giuseppe 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.11b
Alfredo Morresi
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
Daniele 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'applicazione
Giuliano Latini
Sistemi lezione i - Presentazione - hardware
Sistemi   lezione i - Presentazione - hardwareSistemi   lezione i - Presentazione - hardware
Sistemi lezione i - Presentazione - hardware
University of Catania
Dai protocolli alla_startup_bsw2010
Dai protocolli alla_startup_bsw2010Dai protocolli alla_startup_bsw2010
Dai protocolli alla_startup_bsw2010
Leandro Agro'
Italian deft 7 manual 90
Italian deft 7 manual 90Italian deft 7 manual 90
Italian deft 7 manual 90
mstrom62
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
Giuseppe Vizzari
Blockchainvis Backend
Blockchainvis BackendBlockchainvis Backend
Blockchainvis Backend
Francesco Franz Moca
際際滷 Bit Torrent
際際滷 Bit Torrent際際滷 Bit Torrent
際際滷 Bit Torrent
Andrea Carrer
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
Vincenzo 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/17
Giuseppe Vizzari
Docker - virtualizzazione leggera
Docker - virtualizzazione leggeraDocker - virtualizzazione leggera
Docker - virtualizzazione leggera
Roberto 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 peer
Edoardo 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
TCP IP
TCP IPTCP IP
TCP IP
Vincenzo Calabr嘆
Network_Forensics_Analysis_Tool.pptx
Network_Forensics_Analysis_Tool.pptxNetwork_Forensics_Analysis_Tool.pptx
Network_Forensics_Analysis_Tool.pptx
ManlioSantonastaso
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su Linux
Majong DevJfu
03 - Introduzione a Internet II
03 - Introduzione a Internet II03 - Introduzione a Internet II
03 - Introduzione a Internet II
Giuseppe 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/17
Giuseppe 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.11b
Alfredo Morresi
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
Daniele 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'applicazione
Giuliano Latini
Sistemi lezione i - Presentazione - hardware
Sistemi   lezione i - Presentazione - hardwareSistemi   lezione i - Presentazione - hardware
Sistemi lezione i - Presentazione - hardware
University of Catania
Dai protocolli alla_startup_bsw2010
Dai protocolli alla_startup_bsw2010Dai protocolli alla_startup_bsw2010
Dai protocolli alla_startup_bsw2010
Leandro Agro'
Italian deft 7 manual 90
Italian deft 7 manual 90Italian deft 7 manual 90
Italian deft 7 manual 90
mstrom62
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
Giuseppe Vizzari
際際滷 Bit Torrent
際際滷 Bit Torrent際際滷 Bit Torrent
際際滷 Bit Torrent
Andrea Carrer
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
Vincenzo 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/17
Giuseppe Vizzari
Docker - virtualizzazione leggera
Docker - virtualizzazione leggeraDocker - virtualizzazione leggera
Docker - virtualizzazione leggera
Roberto 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 peer
Edoardo 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

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 allinterno 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 groupURLjxta: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