Sistemi Distribuiti
Informazioni generali dell'insegnamento
| Nome dell'insegnamento: | Sistemi Distribuiti
[MN1-1239] |
| Docente: | Giacomo Cabri |
| Corso di Studio: | Informatica [16-209] |
| Tipologia: | Caratterizzante |
| CFU: | 9 |
| Periodo Didattico: | Secondo Ciclo Semestrale |
Avvisi (in ordine cronologico inverso)
Venerdì 12 e sabato 13 giugno il sistema ESSE3 non
sarà disponibile per iscriversi agli esami e neanche per
compilare il questionario di valutazione.
È disponibile una traccia per la scrittura della
documentazione del progetto; si veda la voce
esami.
Le lezioni terminaranno il 9 giugno 2009.
Lunedì 1 giugno 2009 la lezione di Sistemi Distribuiti
non si terrà.
Sono disponibili le
slide del seminario su Social Context
Awareness dell'11 maggio 2009.
Obiettivo dell'insegnamento
L'obiettivo dell'insegnamento è presentare i principali modelli e tecnologie
per la gestione di sistemi software distribuiti.
Gli obiettivi specifici sono lo studio delle architetture dei sistemi distribuiti avanzati.
In particolare,
verranno analizzati i sistemi client-server basati su oggetti, i sistemi a componenti autonomi (agenti) e le loro problematiche di
coordinazione. Infine si analizzeranno le tecnologie per la mobilità
e le relative problematiche.
NOTA: Nell'AA 2008/09 l'insegnamento di Sistemi Distribuiti della
Laurea Magistrale in Informatica è fruito dagli studenti della Laurea
Specialistica in Ingegneria Informatica con il nome Sistemi Software
Distribuiti per 5 CFU.
Le informazioni riportate si applicano in generale ad entrambi gli
insegnamenti; le differenze (in particolare riguardo alle
modalità di
svolgimento dell'esame) verranno evidenziate.
Programma dell'insegnamento
Sistemi distribuiti
- Introduzione e concetti generali
- Comunicazione e sincronizzazione distribuita
- File system distribuiti
- Tolleranza ai guasti tramite replicazione
Architetture ad oggetti distribuiti
- Introduzione e problematiche
- RPC
- RMI
- CORBA
- .NET
Mobilità
- Mobilità del codice e relative problematiche
- Mobilità del codice in Java
- Dispositivi mobili
Agenti software
- Agenti software
- Agenti mobili
- Coordinamento degli agenti
Orario delle lezioni
Orario per l'AA 2008/09:
- Lun 11.00 - 13.00, Aula FA-1A Facoltà di
Ingegneria;
- Mar 9.00 - 11.00, Aula FA-2F Facoltà di
Ingegneria;
- Mer 14.00 - 16.00, Lab. Zironi Matematica;
- Gio 9.00 - 11.00, Aula FA-1A Facoltà di
Ingegneria;
le lezioni inizieranno il 15 aprile
2009.
Si veda anche l'
orario
del Corso di Laurea Magistrale in Informatica.
Materiale didattico
Lucidi A.A. 2008/09
Introduzione all'insegnamento
Sistemi distribuiti
Sistemi a oggetti distribuiti
Mobilità
Agenti software
Seminario sulla
Social Context Awareness (Ing. Gabriella Castelli)
Codice degli esercizi su RPC:
eserciziRPC1.tar
NOTA: su MacOS X il portmapper potrebbe non essere avviabile in modo facile;
qui
è riportata una soluzione che modifica il file /System/Library/LaunchDaemons/
com.apple.portmap.plist
Codice dell'esempio CORBA
EsempioCORBA.zip
Codice dell'esempio .NET
EsempioDotNET.zip
Libri di riferimento
-
A. Tanenbaum, M. van Steen, Distributed Systems -
Principles and Paradigms, Prentice Hall
-
An Introduction to Multiagent Systems by Michael
Wooldridge. Published in
February 2002 by John Wiley & Sons (Chichester,
England). ISBN 0 47149691X
-
Stefano Russo, Carlo Savy, Domenico Cotroneo,
Antonio Sergio, Introduzione a CORBA, McGraw Hill
Strumenti software
CORBA
Un ORB per Java:
JavaORBv2_2_7.zip
.NET
È possibile ottenere una copia dei CD di installazione di
Visual
Studio .NET richiedendola al tecnico del laboratorio InfoMec. Tale
copia
è prevista per i soli studenti.
In alternativa, è possibile usare SharpDevelop (
http://www.icsharpcode.net/OpenSource/SD/),
uno strumento Open Source per C# e VB.NET.
Esami
Regole d'esame
Per gli studenti della Laurea Magistrale di Informatica
(insegnamento da 9 CFU) l'esame si compone di due parti:
- la presentazione di un progetto in gruppi di lavoro;
- una prova orale su tutto il programma.
Agli studenti della Laurea Specialistica in Ignegneria
Informatica è richiesta solo la prova orale.
Progetto
Il progetto consiste nello sviluppo di una applicazione
distribuita sfruttando una o più tecnologie spiegate durante il
corso.
Per l'AA 2008/09 il progetto è lo sviluppo di un
gestore di file distribuito; ad ogni gruppo viene chiesto di
svolgere l'analisi e il progetto dell'applicazione usando
le tecniche dell'ingegneria del software, e di
implementarla seguendo una delle seguenti linee:
- funzioni di base implementate con tecnologie
diverse, oppure
- funzioni avanzate implementate con una sola
tecnologia
La
documentazione da fornire deve conprendere:
- Descrizione dei requisiti, ed in particolare delle
funzionalitè messe a disposizione (ad es. tramite SRS);
- Descrizione dell'architettura (ad es. tramite
diagramma);
- Descrizione dei protocolli usati (client-server o
server-server, ad es. tramite diagrammi UML).
Nella documentazione vanno anche riportati i seguenti
punti:
- Come è stato definito lo spazio dei nomi;
- Come è strutturata l'interfaccia utente del
client;
- Se è presente una forma di replicazione e in
caso positivo di che tipo;
- Quale è il punto di accesso del sistema;
- Quali meccanismi aggiuntivi della gestione dei file sono stati
considerati (ad es., diritti).
Si cerchi di essere sintetici ma esaustivi.
Appelli d'esame
Si ricorda di iscriversi all'esame attraverso
ESSE3.
Nessun esame presente per questo insegnamento.