Concetti di base. Stili di interazione. Modelli di computazione distribuita. Piattaforme e sistemi distribuiti. Sistemi distribuiti fault-tolerant. Sistemi distribuiti real time. Tecnologie per lo sviluppo di applicazioni Web.
Paulo Verissimo, Luis Rodrigues "Distributed Systems For Systems Architects", Kluwer Academic Publisher.Marty Hall, Larry Brown "Core Servlets and Javaserver Pages", Vol. 1, II Edition.
Obiettivi Formativi
Conoscenze: Il corso intende fornire agli studenti i principi architetturali alla base dei sistemi distribuiti approfondendo in modo particolare gli aspetti metodologici relativi alla loro progettazione.Competenze acquisite: Conoscenza delle principali problematiche dei sistemi distribuiti insieme ai più importanti paradigmi e modelli di distribuzione. Metodologie di base per la risoluzione di problemi quali sincronizzazione, coordinamento, condivisione dei dati, allocazione di risorse, consistenza, tolleranza ai guasti e rispetto di vincoli temporali. Gli argomenti trattati durante il corso saranno esemplificati tramite vari esempi di tecnologie, piattaforme e sistemi concreti. Esercitazioni di laboratorio consentiranno agli studenti di sperimentare gli strumenti necessari per la realizzazione di semplici progetti software basati su tecnologie Web.Capacità acquisite (al termine del corso): Lo studente avrà acquisito gli strumenti necessari per la realizzazione di semplici progetti software basati sulle tecnologie Web.
Metodi Didattici
CFU: 9Numero di ore totali del corso: 225Numero di ore per studio personale e altre attività formative di tipo individuale: 145Numero di ore relative alle attività in aula: 56Numero di ore relative ad attività di laboratorio (lezioni in laboratorio): 24Numero di ore relative ad attività di esercitazioni (in laboratorio e in campo): 0Numero di ore relative ad attività seminariali: 0Numero di ore relative ad attività di stage: 0Numero di ore per prove in itinere: 0
Altre Informazioni
Frequenza delle lezioni ed esercitazioni: RaccomandataStrumenti a supporto della didatticaUniFi E-Learning: http://e-l.unifi.itOrario di ricevimento: Per appuntamento (contattare il docente per telefono o e-mail).Viale Morgagni, 65 - 50134 FirenzeTel. 055 4237450Fax. 055 4237436rosario.pugliese@unifi.it pugliese@dsi.unifi.it
Modalità di verifica apprendimento
Esame orale e progetto software.
Programma del corso
Concetti di base: reti di calcolatori, multicomputer e sistemi distribuiti; confronto tra sistemi centralizzati e distribuiti; evoluzione dei sistemi distribuiti (dall'accesso remoto al codice mobile); notazioni formali per la modellizzazione di sistemi e proprietà. Indirizzamento e risoluzione dei nomi. Stili di interazione: scambio di messaggi, operazioni remote, comunicazione a gruppi. Tempo, orologi e sincronia. Ordinamento di eventi distribuiti. Principali paradigmi distribuiti di coordinamento. Modelli di computazione distribuita: sincroni e asincroni, cliente-servente con RPC, orientati ai gruppi, memoria distribuita condivisa, bus di messaggi. Piattaforme e sistemi distribuiti: name e directory service, file system distribuito, Distributed Computing Environment, CORBA, WWW, sistemi basati su gruppi. Sistemi distribuiti fault-tolerant: concetti di base, paradigmi (consenso, membership, comunicazione, replicazione, recovery), e modelli. Sistemi distribuiti real time: concetti di base, paradigmi e modelli principali. Tecnologie per lo sviluppo di applicazioni Web: HTML e CSS; concetti di base di servlets e Java Server Pages (JSP); gestione delle richieste del client, popolazione automatica di Java Bean, gestione delle risposte del server, cookie e sessioni; JDBC e cenni di MySQL.