Peer to Peer Computing
a.a. 2005/2006 - secondo semestre

(Corso di Laurea Specialistica in Informatica, corso di Laurea Specialistica in Tecnologia Informatiche)

Codice: AA547 Sigla: P2P Semestre: 2 Crediti: 6  

L'orario definitivo del corso e' il seguente

Martedi' ore 14.00-16.00 Aula B
Venerdi' ore 14.00-16.00 Aula C

Ricevimento

Giovedi' ore 15.00-18.00    


Docente

Laura Ricci 


Prerequisiti

Reti, Laboratorio Programmazione di Rete


Obiettivi

L'obiettivo principale del corso e' quello di esporre i principi, gli algoritmi e le tecnologie fondamentali nella realizzazione di sistemi peer to peer.
Il corso e' strutturato in due parti. La prima parte espone i fondamenti relativi ai sistemi distribuiti, che vengono esemplificati attraverso algoritmi e soluzioni che fanno parte del bagaglio fondamentale di questo campo. Questa parte ha lo scopo di far comprendere allo studente i problemi fondamentali che vanno affrontati nella definizione di un sistema peer to peer, esaminandone le soluzioni.
Esempi di concetti base che verranno affrontati durante il corso sono: naming, sincronizzazione, consistenza e replicazione.
La seconda parte e' invece orientata alla presentazione sia di sistemi P2P esistenti sia sistemi attualmente studio di ricerca. In particolare verranno presenate le problematiche relative alla definizione di un opportuno middleware per questo tipo di sistemi, passando in rassegna sia tecnologie di uso comune come JXTA che proposte di ricerca (sistemi publish-subscribe, a spazi di tuple, application level multicast).
Verranno infine mostrati un insieme di sistemi P2P, sia sistemi classici per la condivisione di files come Gnutella, Kazaa, Freenet, che sistemi P2P meno convenzionali, come sistemi basati su Distributed Hash Tables, sistemi di supporto a giochi multiplayer massivi, CSCW, etc.

Descrizione

Il corso intende presentare le problematiche principali relative alla progettazione di applicazioni peer to peer.
Nella prima parte vengono introdotti i problemi relativi alla progettazione di sistemi distribuiti. La seconda
parte riguarda l'analisi di acune applicazioni P2P esistenti, sia applicazioni commerciali come Napster, Gnutella, Freenet, che
proposte di ricerca  (Chord, CAN, Tapestry). Nell'ultima parte del corso verra' introdotta la piattaforma JXTA, come
supporto per la realizzazione di sistemi peer to peer

Programma

Prima Parte. Sistemi Distribuiti: Fondamenti

  • Concetti Introduttivi
  • Naming di entita' in un ambiente distribuito, localizzazione di entita' mobili}
  • Sincronizzazione: Clock logici, Clock fisici, il protocollo NTP
  • Consistenza e Replicazione: Modelli di consistenza, Consistenza in applicazioni discrete ed in applicazioni real-time

Seconda Parte: Sistemi Peer to Peer
  • Concetti introduttivi, applicazioni peer-to-peer, evoluzione
  • Sistemi peer to peer puri ed ibridi
  • Sistemi P2P non Strutturati: Gnutella, Kazaa, Freenet
  • Distributed Hash Tables, algoritmi
  • Sistemi P2P Strutturati: Chord, Tapestry, CAN, Pastry
  • P2P Multiplayer Games: strutture di comunicazione e sincronizzazione in ambiente real time
  • Parallel Computing su Desktop Grids
  • P2P middleware:Overlay Networks, Application Level Multicast, Sistemi Publish Subscribe
  • JXTA

Bibliografia

  • Peer-to-Peer Systems and Applications, Lecture Notes in Computer Science, Volume 3485 Editori: Ralf Steinmetz, Klaus Wehrle, Settembre 2005
  • A. S. Tanenbaum, M. Van Steen, "Distributed Systems", Prentice Hall, 2002
  • Articoli Distribuiti a Lezione

Modalità di esame

Gli studenti potranno scegliere se sostenere lo scritto oppure svolgere un piccolo progetto. L'orale
e' obbligatorio per tutti

IL PROGETTO RIMANE VALIDO FINO A FEBBRAIO 2007. IL PROGETTO PUO' ESSERE CONSEGNATO ANCHE NEI MESI DI OTTOBRE/NOVEMBRE 2006


ATTENZIONE: vi prego di segnalarmi qualsiasi errore riscontrato sui lucidi (errori di battitura,....) inviando una mail a ricci@di.unipi.it

TUTTI I LUCIDI PRESENTATI A LEZIONE SONO ORA IN LINEA.
COPIA DEI LUCIDI PUO' ESSERE RITIRATA PRESSO IL CENTRO DI CALCOLO.
PER RITIRARE I LUCIDI E' NECESSARIO CHE LO STUDENTE SIA STATO
INSERITO DAL DOCENTE NELL'ELENCO DEGLI STUDENTI CHE DEVONO SOSTENERE L'ESAME.



LUCIDI DELLE LEZIONI


Lezione 21/2/2006 Introduzione

Lezione 21/2/2006 Sistemi P2P: Evoluzione

Lezione 24/2/2006 Applicazioni

Lezione 28/2/2206 NATs e Firewalls

Lezione 28/02/2006 Napster

Lezione 03/03/2006 Reti P2P pure

Lezione 07/03/2006 Gnutella

Lezione 10/03/2006 Tecniche di Riconoscimento e Confinamento (lezione tenuta dal Dott.Suin)

Lezione 14/03/2006 Distributed Hash Tables

Lezione 17/03/2006 Chord

Lezione 21/03/2006 CAN (Content Addressable Network)

Lezione 24/03/2006 Pastry

Lezione 28/03/2006 Freenet

Lezioni 31/03/2006 e 19/04/2006 Grid Computing (lezione tenuta dal Dott. Paolo Mori)

Lezione 28/04/2006 JXTA: Concetti Generali

Lezione02/05/2006 JXTA: una applicazione

Lezione 05/05/2006 JXTA: il Servizio SDRI

Lezione 16/05/2006: Modelli per reti P2P: Small Worlds Networks

Lezione 19/05/2006: Sicurezza nei modelli P2P (lezione tenuta dal Prof. Baiardi)

Lezione 23/05/2006: Modelli per reti P2P: Scale Free Networks

MATERIALE DIDATTICO


MATERIALE INTEGRATIVO SU JXTA
   HelloWorld
  GenerateURL.java
  HungryPeer
  RestoPeer



FREENET: Articoli che integrano il materiale presente sui lucidi (da leggere per sostenere l'eseme!!)




TESTO DEL PROGETTO : Progettop2p0506



TESTI DI ESAME

08/06/2006

20/07/2006



Appello 08/06/2006 - Risultati prova scritta

Baglini           S
Bertoldi          I
Boragina         NI
Campisi          S
Carovano        I
Ciampalini      B
Luchini          D
Santoponte     B
Sottile            O
Stefani           D
Tonarelli        O

Appello 29/06/2006

Andreoli    S
Angius      D
Baglini      B
Bello         B
Bertoldi     B
Boragina    S
Goitisolo    S
Guadagni   S
Salvadori   O
Zitarosa     O
Tranchina  NI
Volpe        NI

Appello 20/7/2006

Battaglia Giovanni   B
Carovano Natalino   S
Volpe Marco            I

Appello 14/9/2006

Bartolomei Andrea        D
Camaroto Alessio          I
Cimino Danilo              S
De Maglio Antonio       I
Della Longa Simone     D
Dini Riccardo               B
Moretti Luigi                I
Moschini Ugo              B
Pardini Giovanni          B
Tanca Matteo               S

Valutazione:

O:     28-30
B:     25-27
D:     22-24
S:     18-21
I:      15-17
NI:     <15

Calendario Orali:

Giovedi' 21 settmbre ore 9.00
Bartolomei
Cimino
Della Longa
Dini
Moschini

Giovedi' 21 settembre ore 17.30
Pardini
Tanca

Per eventuali spostamenti di orario, inviatemi una mail