Bello Jxta Intro

753 views

Published on

Published in: Business
  • Be the first to comment

Bello Jxta Intro

  1. 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. 2. Agenda • ...strutture e storia! • applicazioni P2P comuni • caratteristiche comuni • introduzione a JXTA • architettura del framework • una semplice applicazione • live example! ;-) 2
  3. 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. 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. 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. 6. Introduzione 2 • Architetture: -cooperazione decentralizzata -evoluzione dei modelli con la storia -Client/server, puro, ibrido 6
  7. 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. 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. 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. 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. 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. 12. Storia 3 • Le generazioni P2P: 12
  13. 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. 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. 15. JXTA • Overlay Network: 15
  16. 16. JXTA • Layer: 16
  17. 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. 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. 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. 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. 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. 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. 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. 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. 25. JXTA • Restonet un valido esempio: 25
  26. 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. 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. 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. 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. 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. 31. DOMANDE... 31
  32. 32. GRAZIE... www.torlug.org emmanuele.bello@torlug.org 31

×