SDP 1-Info generali - General Information

Course Title: Sistemi Distribuiti e Pervasivi - Distributed and Pervasive Systems 

Prof. Claudio Bettini 

Tutor: Dott. Gabriele Civitarese

 

Obiettivi

Obiettivo del corso e’ quello di illustrare i fondamenti dei sistemi distribuiti moderni permettendo una profonda comprensione delle problematiche coinvolte nella progettazione di sistemi di cloud computing e più in generale di sistemi complessi formati da nodi eterogenei con capacità di calcolo e comunicazione. 
Il corso si propone anche di introdurre gli studenti ai sistemi pervasivi come particolari sistemi distribuiti ai quali partecipano come nodi smart objects e reti di sensori. 
Il corso prevede esercitazioni e lo sviluppo guidato di un progetto. 

Programma

Introduzione

  • Definizione di sistema distribuito e sistema pervasivo.
  • Concetti di trasparenza e scalabilità.
  • Tipi di sistemi distribuiti (Cluster, Grid, Cloud, ...)

1a parte: le basi dei sistemi distribuiti

  • Architetture dei sistemi distribuiti e pervasivi. Sistemi client-server multilivello. Sistemi peer-to-peer, Reti di sensori e smart objects
  • Le basi della comunicazione in ambiente distribuito. Modelli di comunicazione. Comunicazione orientata ai messaggi; RPC/RMI; Web Service Invocation
  • Cooperazione e sincronizzazione: orologi fisici e logici; algoritmi di elezione e mutua esclusione 
  • Sistemi distribuiti basati su componenti e sistemi basati su servizi Web
  • Case study: Google distributed system technologies 

2a parte: sistemi pervasivi e applicazioni

  • Tipologie e architetture di sistemi pervasivi
  • Rappresentazione e trattamento di dati provenienti da sensori 
  • Context-awareness e adattività
  • Sicurezza e Privatezza nei sistemi distribuiti e pervasivi

ESERCITAZIONI

  • Sviluppo di sistemi distribuiti (Java e  Web service REST)
  • Sviluppo di semplici sistemi distribuiti pervasivi 
  • Guida al progetto.

Libri di testo e di approfondimento

Testo di riferimento: Distributed Systems: Concepts and Design, 5/e, Coulouris, Dollimore, Kindberg & Blair, Addison-Wesley, 2012, ISBN-10: 0132143011

Testi di approfondimento: 
Ubiquitous Computing Fundamentals, John Krumm, CRC Press, 2010.

Distributed Systems: Principles and Paradigms, Second Edition, Andrew S. Tanenbaum, Martin Van Steen, Prentice-hall, 2007, ISBN: 0-13-239227-5.

Foreign students not speaking Italian

This course is currently taught in Italian. However, most of the slides and the textbook are in English. The exam can be given in English upon request to the instructor (in this case it will be oral exam for both the theory and the project discussion). English speaking students that do not understand the information on this web site can contact the instructors.

Modalità d'esame

Gli studenti possono acquisire i 6 crediti nel seguente modo:

- 3 crediti relativi alla parte teorica del corso acquisibili superando la verifica scritta di fine corso oppure con esame orale per gli appelli successivi.
La verifica e l'orale vertono su tutti gli argomenti trattati a lezione e verificabili tramite le slide pubblicate sul sito. Sono possibili domande anche sulla parte riguardante la programmazione in ambiente distribuito, ma non riguarderanno aspetti tecnici/sintattici ma piuttosto concettuali. Lo studio degli argomenti trattati a lezione, come per ogni corso universitario, non dovrebbe limitarsi al ripasso degli appunti, ne' allo studio del solo testo di riferimento, ma dovrebbe includere la consultazione di altri testi suggeriti ed eventuali risorse online segnalate dal docente o individuate dallo studente. La verifica scritta è composta di alcune domande a scelta multipla, un esercizio (solitamente di applicazione di uno degli algoritmi presentati a lezione) e una domanda a risposta aperta.

- 3 crediti relativi allo sviluppo di un progetto software. La valutazione e' in trentesimi e fa media con il voto conseguito nella parte teorica. Il progetto, che deve essere svolto individualmente, viene assegnato durante il corso (solitamente a fine Aprile) e rimane valido per un anno. Le esercitazioni guidano gli studenti allo sviluppo del progetto che puo' essere consegnato alla fine del corso oppure durante uno degli appelli previsti.  

 

Iscrizione all'esame

Teoria

Non saranno ammessi alla prova di teoria studenti non iscritti alla prova stessa attraverso il sistema SIFA, senza eccezione alcuna. Presunti malfunzionamenti del SIFA vanno segnalati alle segreterie prima della scadenza di iscrizione. I docenti NON hanno modo di modificare i dati nel SIFA.  Inoltre, gli studenti che sostengono la prova scritta di fine corso devono registrarsi a Moodle usando l'email @studenti.unimi.it al link: http://moodlewlab.di.unimi.it/login/ . Una volta confermata l'iscrizione seguendo le istruzioni ricevute per email, occorre autenticarsi e iscriversi al corso. La registrazione va fatta prima dell'esame e all'esame sarà necessario avere le credenziali per autenticarsi; per problemi contattare per tempo il tutor del corso.

Progetto

Non è mai necessaria iscrizione SIFA per il progetto, ma basta l'upload dello stesso entro la data indicataIl superamento della prova di teoria e l'accettazione del relativo voto sono condizioni necessarie per la discussione del progetto. In alcuni casi potrebbe succedere che il risultato della prova di teoria non sia ancora disponibile al momento della scadenza dell'invio dei progetti per lo stesso appello (questo è il caso per gli appelli nei quali l'orale di teoria è nella stessa data della discussione progetti). In questi casi, gli studenti possono inviare comunque il progetto, che sara' discusso solo se la prova di teoria risulterà superata. 

Gli studenti devono presentarsi a ciascuna prova d'esame muniti di documento di riconoscimento in corso di validità con fotografia e tesserino universitario. Per la prova di teoria serve anche ricevuta di iscrizione al SIFA.

Voto prova teoria

Al termine della valutazione della prova di teoria viene notificato il voto conseguito (dal docente in caso di orale o dal sistema per email in caso di scritto). Se uno studente non e' soddisfatto del voto ottenuto deve semplicemente iscriversi via SIFA ad un appello successivo. Al fine del computo del voto finale, fa sempre fede la votazione ottenuta nell'ultima prova di teoria sostenuta (esempio: se uno studente nell'appello di teoria di luglio prende 25 e non e' soddisfatto, puo'  iscriversi nuovamente all'esame per la prova di settembre. Tuttavia se a settembre ottiene un voto inferiore, per esempio 23, sara' tenuto in considerazione quest'ultimo voto).

Il voto ottenuto nella prova di teoria e' valido 13 mesi.  Esempio: il voto di teoria ottenuto a fine corso e' valido fino a giugno successivo incluso.

Voto progetto e complessivo

Al termine della discussione del progetto sara' comunicato il relativo voto e lo studente avrà facoltà di accettare o rifiutare. In caso di esito negativo o rifiuto dovrà ripresentare il progetto ad appello successivo (seguendo le norme relative a quell'appello come per esempio parti facoltative diventate obbligatorie o nuovo progetto). Nel caso il voto di teoria sia scaduto dovrà re-iscriversi via SIFA e sostenere la teoria prima di ripresentare il progetto. Nel caso di voto di progetto positivo ed accettato, verrà calcolato il voto complessivo come media di teoria e progetto, sarà verbalizzato elettronicamente e notificato dal sistema allo studente. 

Student plagiarism

Vengono utilizzati sofisticati tool automatici per la verifica di riutilizzo di software sviluppato da altri.

Nel caso venga riscontrato che il progetto consegnato non è stato interamente sviluppato dallo studente che lo presenta, lo studente in causa:

a) dovrà superare nuovamente tutte le prove che compongono l'esame del corso.
In altre parole, se l'esame è composto di più parti (teoria e progetto), lo studente dovrà sostenere nuovamente tutte le prove in forma di esame orale (se la prova di teoria fosse già stata superata, questa verrà annullata e lo studente in merito dovrà risostenerla).

b) non potrà sostenere nessuna delle prove per i 2 appelli successivi.
Esempio: supponiamo che gli appelli siano a Febbraio, Aprile, Giugno, Luglio, e che lo studente venga riconosciuto a copiare all'appello di Febbraio. Lo studente non potrà presentarsi agli appelli di Aprile e Giugno, ma potrà sostenere nuovamente le prove dall'appello di Luglio in poi.

Il docente si riserva la possibilità di assegnare allo studente in causa lo svolgimento di una parte integrativa o di un nuovo progetto.

Il caso di plagio verrà notificato al Presidente di Collegio Didattico riportando i nomi sia dello studente che ha copiato sia di quello dal quale il progetto è stato copiato.

Contatti

Per informazioni necessarie e non presenti sul web, gli studenti possono inviare email al tutor del corso (con il docente in cc).

Verranno considerate solo email che riportino: 

- Nome, cognome e matricola dello studente, e
- Nome del corso in oggetto