Sistemi distribuiti/2006-2007
Indice
- 1 Informazioni generali
- 2 Diario del corso
- 2.1 Lezione di Mercoledì 7 marzo 2007
- 2.2 Lezione di Mercoledi' 14 Marzo
- 2.3 Lezione di Mercoledi' 21 Marzo
- 2.4 Lezione di Mercoledi' 28 Marzo
- 2.5 Lezione di Mercoledi' 4 Aprile
- 2.6 Lezione di Mercoledì 11 Aprile
- 2.7 Lezione di Mercoledì 18 Aprile
- 2.8 Lezione di Mercoledì 2 Maggio
- 2.9 Lezione di Mercoledì 9 Maggio
- 2.10 Lezione di Mercoledì 16 Maggio
- 2.11 Lezione di Mercoledì 23 Maggio
- 2.12 Lezione di Mercoledì 30 Maggio
- 2.13 Lezione di Mercoledì 6 Maggio
- 2.14 Lezione di Mercoledì 13 Maggio
Informazioni generali
Docenti
Prof. Carlo Bettini
Dott. Sergio Mascetti (per la parte di laboratorio)
Orari delle lezioni
Mer 9.00 - 11.30 in aula Beta (via Comelico)
(con pausa di circa 15 minuti)
Orario di ricevimento studenti
Mar 17.30 in poi Stanza P121
Sito del corso
Materiale didattico
- Testo: "Distributed Systems: Principles and Paradigms" Andrew S. Tanenbaum,
Martin Van Steen, 2nd Edition, Pearson Prentice Hall, 2007, ISBN: 0-13- 239227-5.
- I lucidi delle lezioni sono presenti sul sito ufficiale del corso. Per accedere al materiale è necessario avere username e password.
Modalità d'esame
Il primo appello sarà il 13 Giugno e consisterà in un esame scritto (test a scelta multipla e domande a risposta aperta). Durante il corso si potrà lavorare ad un progetto nelle ore di laboratorio che verrà valutato alla fine delle lezioni pratiche.
Il voto sarà dato dalla media dei due voti ottenuti nelle due prove (verrà dato pari peso a pratica e teoria - 3 crediti per entrambe).
Se si decide di dare l'esame dopo giugno bisognerà sostenere un orale durante il quale si dovrà presentare anche il proprio progetto.
Progetto
Il testo del progetto sarà valido per un anno.
Diario del corso
Lezione di Mercoledì 7 marzo 2007
- Introduzione
- Definizione di "Sistema distribuito"
- Trasparenza
- Scalabilità
- Concetti hardware
- Concetti software
- Tipi di sistemi distribuiti (sistemi di calcolo distribuito, sistemi informativi distribuiti, sistemi distribuiti pervasivi)
Lezione di Mercoledi' 14 Marzo
- Ripasso pila ISO/OSI
- Differenze tra comunicazione persistente/transiente e sincrona/asincrona
- Servizi di comunicazione di alto livello:
1. Message oriented communication
2. Remote Procedure Call (RPC)
3. Remote Object Invocation
4. Stream
1. Message oriented communication: il prof ci ha mostrato un esempio tramite Berkeley sockets con relative primitive piu' utilizzate.
2. RPC: il prof ha spiegato il funzionamento del client e del server stub e i vari passi che avvengono nel caso di una RPC. Inoltre ha spiegato le differenze tra passaggio di parametri per valori e per riferimento e quando client e server sono sincroni o asincroni in RPC. Ha anche mostrato un esempio di un client e un server in DCE RPC.
3. Remote Object Invocation: è molto simile all'RPC con la differenza che utilizza oggetti anziche' procedure. Esempio: Java RMI.
4. Streams: accenno al funzionamento degli streams con vari esempi.
Lezione di Mercoledi' 21 Marzo
Prima lezione di Laboratorio tenuta dal dott. Mascetti.
- breve ripasso del concetto di socket
- socket in Java
- esempio di un client/server TCP
- esempio di un client/server UDP
- primo esempio di thread in Java
I programmi di esempio mostrati a lezione verranno messi a disposizione sul sito del corso.
Lezione di Mercoledi' 28 Marzo
Algoritmi di sincronizzazione
- Orologi fisici, che misurano il tempo "reale":
- NTP
- Berkeley Algorithm
- Orologi logici, permettono di avere un ordinamento fra eventi del sistema anche se non sincronizzati con un orologio fisico esterno:
- Algoritmo di Lamport
Algoritmi per mutua esclusione
- Centralizzato
- Distribuito
- Ad Anello
Algoritmi di elezione
- Algoritmo Bully
- Algoritmo ad Anello
Lezione di Mercoledi' 4 Aprile
Seconda lezione di Laboratorio tenuta dal dott. Mascetti.
- Server Concorrenti
- Uso di sleep () , wait () e notify (), join ()
- Esempi di codice di server multithread
Lezione di Mercoledì 11 Aprile
Non c'è stata lezione.
Lezione di Mercoledì 18 Aprile
Terza lezione di laboratorio tenuta dal Dott. Mascetti
- Java RMI
- Esempi di utilizzo di RMI
- Presentazione del progetto (il testo del progetto e' disponibile sul sito del corso)
Lezione di Mercoledì 2 Maggio
Laboratorio in aula Delta.
E' stata aggiunta al testo del progetto una parte facoltativa.
Guardare il sito del corso per scaricare l'aggiornamento.
Lezione di Mercoledì 9 Maggio
Non c'è stata lezione.
Lezione di Mercoledì 16 Maggio
Laboratorio in aula Delta.
Lezione di Mercoledì 23 Maggio
Laboratorio in aula Delta.
Lezione di Mercoledì 30 Maggio
- CORBA
- Web Services
Lezione di Mercoledì 6 Maggio
Consegna progetti.
Lezione di Mercoledì 13 Maggio
Compitino 8.30 Aula Beta.