Your SlideShare is downloading. ×
0
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Bello Jxta Intro
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Bello Jxta Intro

586

Published on

Published in: Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
586
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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
  • 15. JXTA • Overlay Network: 15
  • 16. JXTA • Layer: 16
  • 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
  • 31. DOMANDE... 31
  • 32. GRAZIE... www.torlug.org emmanuele.bello@torlug.org 31

×