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
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
- Applicazione RestoNet: Una
possibile Implementazione
Articoli che integrano il materiale
presente sui lucidi (da leggere per sostenere l'esame!!)
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