Informazioni Generali

Risultati dell'apprendimento

Metodologie, principi e tecnologie per la progettazione ed implementazione di sistemi e servizi software distribuiti a larga scala, inclusi i sistemi e servizi Cloud.

CFU

9 CFU, 90 ore di didattica frontale distribuite in 6 ore a settimana

Prerequisiti

Il corso presuppone una conoscenza dei protocolli di rete, della progettazione e programmazione di applicazioni di rete (linguaggi C e Java), dell'organizzazione e gestione di basi di dati, dell'infrastruttura Web.

Orario delle lezioni

Orario valido dal 25/9/2017 al 20/1/2018 (primo semestre)
  • Lunedì dalle 9:30 alle 11:15, aula B9 edificio didattica
  • Mercoledì dalle 14:00 alle 15:45, aula B9 edificio didattica
  • Venerdì dalle 9:30 alle 11:15, aula C8 edificio didattica

Docente

Valeria Cardellini
Tel.: 067259 7388
E-mail: img (è necessario specificare [SDCC] nell'oggetto della mail)
Ufficio: stanza D1-17, corpo D dell'edificio "Ingegneria dell'Informazione", primo piano.
Orario di ricevimento:
  • martedì dalle 9:00 alle 11:00 in ufficio.


Avvisi

  • 10 luglio 2018 - Fissate le date degli appelli autunnali (vedi Appelli).
  • 10 maggio 2018 - Fissate le date degli appelli estivi (vedi Appelli).
  • 27 gennaio 2018 - La scadenza per la scelta dei progetti è posticipata a lunedì 5 febbraio.
    Comunico inoltre che la traccia 1 non è più disponibile.
  • 23 gennaio 2018 - L'appello del 21 febbraio inizierà alle ore 14:00 in aula B3 (anzichè alle 9:30 in aula B9).
  • 23 gennaio 2018 - Disponibile il testo della seconda prova intermedia (vedi Appelli).
  • 8 gennaio 2018 - Lunedì 15 gennaio alle ore 9:30 in aula B9 si terrà la lezione facoltativa su Data Stream Processing.
  • 8 gennaio 2018 - Giovedì 11 gennaio il ricevimento sarà dalle 11:00 alle 13:00.
  • 5 gennaio 2018 - Il ricevimento di martedì 9 gennaio è rinviato a mercoledì 10 gennaio dalle 9:00 alle 11:00.
  • 5 gennaio 2018 - Argomenti per la seconda prova intermedia: dagli algoritmi di elezione (in SincronizzazioneSD.pdf) fino ai Sistemi Web geografici per content delivery (in CDN.pdf).
    Ricordo che la prenotazione alla seconda prova intermedia è obbligatoria e deve essere effettuata entro l'8 gennaio.
  • 5 gennaio 2018 - Disponibile il testo della prima prova intermedia (vedi Appelli).
  • 13 dicembre 2017 - Aggiunte le slide da 33 in poi in CloudStorage.pdf.
  • 11 dicembre 2017 - Aggiunte le slide da 79 in poi in TolleranzaSD.pdf.
  • 7 dicembre 2017 - Fissate le date degli appelli invernali (vedi Appelli).
  • 7 dicembre 2017 - La seconda prova intermedia si terrà venerdì 12 gennaio 2018 alle ore 9:30 in aula 4 (vedi Appelli per la prenotazione).
  • 2 dicembre 2017 - Aggiunte le slide da 63 in poi in ConsistenzaSD.pdf.
  • 1 dicembre 2017 - I link per i bandi di tesi/semestri all'estero e per soggiorni di ricerca estivi all'ETH a Zurigo sono:
    Borse per tesi all'estero (scadenza: 20 dicembre 2017)
    Mobilità extraeuropea Overseas (scadenza: 20 dicembre 2017)
    Student Summer Research Fellowship @ETH (scadenza: 31 dicembre 2017)
  • 28 novembre 2017 - Argomenti per la prima prova intermedia: fino all'insieme di slide SincronizzazioneSD.pdf, esclusi soltanto gli algoritmi di elezione.
  • 28 novembre 2017 - Aggiunte le slide 114 a 117 in SincronizzazioneSD.pdf.
  • 22 novembre 2017 - La scadenza per la consegna dell'esercizio facoltativo è domenica 3 dicembre.
  • 22 novembre 2017 - Ricordo che la prenotazione alla prima prova intermedia è obbligatoria e deve essere effettuata entro il 25 novembre.
  • 22 novembre 2017 - Aggiunte le slide 46 e da 48 in poi in SincronizzazioneSD.pdf.
  • 13 novembre 2017 - Link per registrarsi al seminario online e gratuito dell'ACM "Reactive Microsystems - The Evolution of Microservices at Scale", che sarà tenuto il 15 novembre alle ore 18:00 GTM+1 da Jonas Boner.
  • 6 novembre 2017 - Aggiunte le slide da 58 a 60 e da 66 in poi in Virtualizzazione.pdf.
  • 30 ottobre 2017 - Venerdì 3 novembre in orario di lezione si terrà il primo seminario su AWS dal titolo "AWS Infrastructure Services" a cura dell'Ing. Paolo Latella di XPeppers.
    Il secondo seminario su applicazioni serverless in AWS si terrà venerdì 10 novembre, sempre in orario di lezione.
  • 30 ottobre 2017 - La prima prova intermedia si terrà mercoledì 29 novembre alle ore 14:00 in aula C1 (vedi Appelli per la prenotazione).
  • 25 ottobre 2017 - Disponibili le slide dell'esercizio facoltativo su RPC (EsercizioRPC.pdf).
  • 23 ottobre 2017 - Aggiunte le slide da 24 a 27, 35 e 36 in Go.pdf e da 70 in poi in ComunicazioneSD_1.pdf.
  • 9 ottobre 2017 - Modificata la slide 70 ed aggiunte le slide 47 e da 74 in poi in ArchitettureSD.pdf.
  • 18 settembre 2017 - Per la registrazione al corso, usare Delphi oppure inviare una email alla docente.

Materiale Didattico

Testi consigliati

Testi "classici" sui sistemi distribuiti:

Testi che trattano in modo esteso i sistemi e le applicazioni Cloud:

Calendario e lucidi delle lezioni

Giorno Argomento Lucidi Ultima modifica
25/9/2017 Organizzazione del corso
Introduzione ai SD
Organizzazione.pdf
IntroSD.pdf
25/9/2017
27/9/2017
27/9/2017 Introduzione ai SD vedi lezione precedente
29/9/2017 Introduzione ai SD
Introduzione al Cloud computing
vedi lezione del 25/9
IntroCloud.pdf

2/10/2017
2/10/2017 Introduzione al Cloud computing
Architetture dei SD: stili
vedi lezione precedente
ArchitettureSD.pdf

9/10/2017
4/10/2017 Architetture dei SD: stili, architetture di sistema, architetture centralizzate vedi lezione precedente
6/10/2017 Architetture dei SD: reti P2P non strutturate e strutturate vedi lezione del 2/10
9/10/2017 Architetture dei SD: reti P2P strutturate e sistemi self-* vedi lezione del 2/10
11/10/2017 Comunicazione nei SD: introduzione e semantica della comunicazione ComunicazioneSD_1.pdf 23/10/2017
13/10/2017 Comunicazione nei SD: RPC vedi lezione dell'11/10
16/10/2017 Comunicazione nei SD: Java RMI ed esempio Compute Engine vedi lezione dell'11/10
18/10/2017 Introduzione a Go e RPC in Go Go.pdf 23/10/2017
20/10/2017 Comunicazione nei SD: esempio RPC in Go, MOM ed esempi di MOM ComunicazioneSD_2.pdf 25/10/2017
23/10/2017 Comunicazione nei SD: Kafka, multicast, protocolli di gossiping vedi lezione del 20/10
25/10/2017 Esercizio facoltativo su RPC
Comunicazione nei SD: protocolli di gossiping
Virtualizzazione: introduzione
EsercizioRPC.pdf
vedi lezione del 20/10
Virtualizzazione.pdf
25/10/2017
 
6/11/2017
27/10/2017 Virtualizzazione: VMM e virtualizzazione della memoria vedi lezione precedente
30/10/2017 Virtualizzazione: a livello di SO, Xen vedi lezione del 25/10
3/11/2017 Seminario su servizi AWS: EC2, VPC, S3, RDS, DynamoDB (tenuto dall'Ing. Paolo Latella) Introduction to AWS and Cloud Computing Module 1 Part 1
AWS Foundational Services Module 2
6/11/2017 Virtualizzazione: resizing e migrazione di VM e container; virtual storage, network, cluster vedi lezione del 25/10
8/11/2017 Virtualizzazione: Docker (lezione tenuta dall'Ing. Matteo Nardelli) Docker.pdf 8/11/2017
10/11/2017 Seminario su servizi AWS: Continuous Integration & Continuous Development using AWS, Docker on AWS, ECS (tenuto dall'Ing. Paolo Latella) CI & CD using AWS
Docker on AWS
ECS and Docker Demo
13/11/2017 Sincronizzazione e coordinazione nei SD: introduzione, tempo fisico, sincronizzazione fisica SincronizzazioneSD.pdf 28/11/2017
15/11/2017 Sincronizzazione e coordinazione nei SD: clock logico scalare e vettoriale
Soluzione di prove d'esame passate
vedi lezione del 13/11
 

 
17/11/2017 Sincronizzazione e coordinazione nei SD: multicasting totalmente e causalmente ordinato, algoritmo del panificio di Lamport, mutua esclusione nei SD vedi lezione del 13/11
20/11/2017 Sincronizzazione e coordinazione nei SD: mutua esclusione nei SD, algoritmi di elezione vedi lezione del 13/11
22/11/2017 Consistenza nei SD: introduzione, consistenza stretta, linearizzabile, sequenziale
Soluzione di prove d'esame passate
ConsistenzaSD.pdf 2/12/2017
24/11/2017 Consistenza nei SD: consistenza causale, consistenza finale, teorema CAP
Esercizio su clock scalare e vettoriale
vedi lezione del 22/11
EsercizioClock.pdf
 
28/11/2017
27/11/2017 Sincronizzazione e coordinazione nei SD: distributed event matching
Consistenza nei SD: consistenza client-centrica, protocolli di consistenza
vedi lezione del 13/11
vedi lezione del 22/11
 
29/11/2017 Prima prova intermedia
1/12/2017 Consistenza nei SD: esempi di consistenza in sistemi Cloud, protocolli di distribuzione
Tolleranza ai guasti nei SD: dependability e definizioni
vedi lezione del 22/11
TolleranzaSD.pdf

11/12/2017
4/12/2017 Tolleranza ai guasti nei SD: TMR, consenso distribuito, accordo bizantino vedi lezione precedente
6/12/2017 Tolleranza ai guasti nei SD: Paxos, Raft, multicast affidabile vedi lezione dell'1/12
11/12/2017 Tolleranza ai guasti nei SD: 2PC, 3PC, ripristino
Sistemi di storage nel Cloud: introduzione, file system distribuiti
vedi lezione dell'1/12
CloudStorage.pdf
 
13/12/2017
13/12/2017 Sistemi di storage nel Cloud: GFS, data store NoSQL vedi lezione dell'11/12
15/12/2017 Sistemi Web distribuiti: Web cluster SistemiWeb.pdf 20/12/2017
18/12/2017 Sistemi Web distribuiti: Web cluster e multi-cluster vedi lezione del 15/12
20/12/2017 Sistemi Web distribuiti: esempi
Sistemi Web geografici per content delivery
vedi lezione del 15/12
CDN.pdf
 
27/12/2017
22/12/2017 Sistemi Web geografici per content delivery
Soluzione di prove d'esame passate
vedi lezione precedente
 
 
 
8/1/2018 Presentazione dei progetti
Correzione della prima prova intermedia
Soluzione di prove d'esame passate
Projects.pdf
 
 
11/1/2018
 
 
12/1/2018 Seconda prova intermedia
15/1/2018 Introduzione ai sistemi data-intensive
IntroBigData.pdf 21/1/2018

Articoli

I seguenti articoli approfondiscono ed integrano gli argomenti trattati a lezione; la loro lettura è raccomandata.

When I talk to researchers, when I talk to people wanting to engage in entrepreneurship, I tell them that if you read research papers consistently, if you seriously study half a dozen papers a week and you do that for two years, after those two years you will have learned a lot. This is a fantastic investment in your own long term development. (Andrew Ng, Inside The Mind That Built Google Brain: On Life, Creativity, And Failure)

Introduzione ai SD

  • A. Rotem-Gal-Oz, "Fallacies of distributed computing explained". (pdf)
  • M. van Steen and A.S. Tanenbaum, "A brief introduction to distributed systems", Computing, vol. 98, no. 10, pp. 967-1009, 2016. (pdf)
  • S. Vinoski, "Rediscovering distributed systems", IEEE Internet Computing, Vol. 18, No. 2, Mar.-Apr. 2014. (pdf)
  • J. Hodges, "Notes on distributed systems for young bloods", 2013. (html)

Introduzione al Cloud Computing

  • M. Armbrust et al., "Above the clouds: A Berkeley view of cloud computing", EECS Department, University of California Berkeley Technical Report No. UCB/EECS-2009-28, Feb. 2009. (pdf)
  • S.A. Baset, "Cloud SLAs: Present and future", SIGOPS Oper. Syst. Rev., Vol. 46, No. 2, pp. 57-66, July 2012. (pdf)
  • N. Herbst, R. Krebs, G. Oikonomou, G. Kousiouris, A. Evangelinou, A. Iosup, S. Kounev, "Ready for rain? A View from SPEC Research on the future of cloud metrics", SPEC Research Group - Cloud Working Group, Standard Performance Evaluation Corporation (SPEC), Technical Report SPEC-RG-2016-0, 2016. (pdf)
  • P. Mell, T. Grance, "The NIST definition of cloud computing", Sept. 2011. (pdf)

Architetture dei SD

  • H. Balakrishnan, M.F. Kaashoek, D. Karger, R. Morris, I. Stoica, "Looking up data in P2P systems", Communications of the ACM, Vol. 46, No. 2, pp. 43-48, Feb. 2003. (pdf)
  • W. Emmerich, "Software engineering and middleware: a roadmap", Prof. of the Conference on The Future of Software Engineering, pp. 117-129, 2000. (pdf)
  • P.T. Eugster, P.A. Felber, R. Guerraoui, A.-M. Kermarrec, "The many faces of publish/subscribe", ACM Computing Surveys, Vol. 35, No. 2, pp. 114-131, June 2003. (pdf)
  • J.O. Kephart, D.M. Chess, "The vision of autonomic computing", IEEE Computer, Vol. 36, No. 1, Jan. 2003. (pdf)
  • I. Stoica, R. Morris, D. Liben-Nowell, D.R. Karger, M.F. Kaashoek, F, Dabek, H. Balakrishnan, "Chord: a scalable peer-to-peer lookup protocol for Internet applications", IEEE/ACM Trans. Netw., Vol. 11, No. 1, pp. 17-32, Feb. 2003. (pdf)
  • Examples of self-adaptive software

  • V. Cardellini, E. Casalicchio, V. Grassi, S. Iannucci, F. Lo Presti, R. Mirandola, "MOSES: a framework for QoS driven runtime adaptation of service-oriented systems", IEEE Transactions on Software Engineering, Vol. 38, No. 5, Sept./Oct. 2012. (pdf)
  • P. Jamshidi, A. Ahmad, and C. Pahl, "Autonomic resource provisioning for cloud-based software", Proc. of SEAMS '14, 2014. (pdf)

Comunicazione nei SD

  • E. Petron, "Remote Procedure Calls", Linux Journal, Oct. 1997. (html)
  • Trail: RMI (The Java tutorials) (html)
  • T. Treat, "You cannot have exactly-once delivery", 2015. (html)
  • M. Castro, P. Druschel, A-M. Kermarrec, A. Rowstron, "SCRIBE: A large-scale and decentralised application-level multicast infrastructure", IEEE Journal on Selected Areas in Communications, Oct. 2002. (pdf)
  • P. Th. Eugster, R. Guerraoui, A.-M. Kermarrec, L. Massoulie, "From epidemics to distributed computing", IEEE Computer, Vol. 37, No. 5, pp. 60-67, May 2004. (pdf)
  • A.-M. Kermarrec, M. van Steen, "Gossiping in distributed systems", ACM Operating System Review, Vol. 41, No. 5, Oct. 2007. (pdf)
  • M. Jelasity, "Gossip", In Self-Organising Software: From Natural to Artificial Adaptation, Springer, pp. 139-162, 2011. (pdf)
  • M. Portmann, A. Seneviratne, "The cost of application-level broadcast in a fully decentralized peer-to-peer network", Proc. of ISCC 2002, 2002. (pdf)
  • K.P. Birman, M. Hayden, O. Ozkasap, Z. Xiao, M. Budiu, Y. Minsky, "Bimodal multicast", ACM Trans. Comput. Syst., Vol. 17, No. 2, pp. 41-88, May 1999. (pdf)

Virtualizzazione

  • K. Hwang, J. Dongarra, G.C. Fox, "Virtual machines and virtualization of clusters and data centers", chapter 3 of Distributed and Cloud Computing, Morgan Kaufmann, 2011. (pdf)
  • J. Daniels, "Server virtualization architecture and implementation", Crossroads, Sept. 2009. (pdf)
  • J.E. Smith, R. Nair, "The architecture of virtual machines", IEEE Computer, pp. 32-38, May 2005. (pdf)
  • OS-level virtualization

  • D. Bernstein, "Containers and cloud: from LXC to Docker to Kubernetes", IEEE Cloud Computing, Vol. 1, No. 3, pp. 81-84, Sept. 2014. (pdf)
  • C. Pahl, "Containerisation and the PaaS Cloud", IEEE Cloud Computing, Vol. 2, No. 3, pp. 24-31, May 2015. (pdf)
  • C. Wang, "Containers 101: Linux containers and Docker explained", InfoWorld, 2016. (html)
  • Performance comparison of hypervisors and containers

  • J. Hwang, S. Zeng, F. Wu, T. Wood, "A component based performance comparison of four hypervisors", Proc. of IFIP/IEEE Integrated Network Management Symposium (IM 2013), May 2013. (pdf)
  • J. Li, Q. Wang, D. Jayasinghe, J. Park, T. Zhu, C. Pu, "Performance overhead among three hypervisors: an experimental study using Hadoop benchmarks", Proc. of IEEE Big Data, 2013. (pdf)
  • R. Morabito, J. Kjällman, M. Komu, "Hypervisors vs. lightweight virtualization: a performance comparison", Proc. of 1st Int'l Workshop on Container Technologies and Container Clouds, 2015. (pdf)

Sincronizzazione nei SD

  • C. Baquero, N. Preguiça, "Why logical clocks are easy", ACM Queue, Jan. 2016. (pdf)
  • L. Lamport, "Time, clocks and the ordering of events in a distributed system", ACM Communications, Vol. 21, No. 7, pp. 558-565, July 1978. (pdf)
  • M. Raynal, M. Singhal, "Logical time: Capturing causality in distributed systems", IEEE Computer, Feb. 1996. (pdf)

Consistenza e replicazione nei SD

  • P. Bailis, A. Ghodsi, "Eventual consistency today: limitations, extensions, and beyond", Communications of the ACM, Vol. 56, No. 5, pp. 55-63, May 2013. (pdf)
  • E. Brewer, "CAP twelve years later: how the "rules" have changed", IEEE Computer, Feb. 2012. (pdf)
  • D.K. Gifford, "Weighted voting for replicated data", Proc. of the 7th ACM Symposium on Operating Systems Principles, Dec. 1979. (pdf)
  • D.B. Terry, A.J. Demers, K. Petersen, M.J. Spreitzer, M.M Theimer, B.B. Welch, "Session guarantees for weakly consistent replicated data", Proc. of the 3rd Int'l Conference on Parallel and Distributed information Systems, pp. 140-150, 1994. (pdf)
  • W. Vogels, "Eventually consistent", Communications of the ACM, Vol. 52, No. 1, pp. 40-44, Jan. 2009. (pdf)
  • F. Dabek, R. Cox, F. Kaashoek, R. Morris "Vivaldi: A decentralized network coordinate system", Proc. of ACM SIGCOMM '04, 2004. (pdf)

Tolleranza ai guasti nei SD

  • A. Avizienis, J.-C. Laprie, B. Randell, C. Landwehr, "Basic concepts and taxonomy of dependable and secure computing", IEEE Trans. on Dependable and Secure Computing, 2004. (pdf)
  • L. Lamport, "Paxos made simple", ACM SIGACT News, Vol. 32, No. 4, Dec. 2001. (pdf)
  • D. Ongaro and J. Ousterhout, "In search of an understandable consensus algorithm", Proc. of USENIX Annual Technical Conference 2014, 2014. (pdf)
  • The Paper Trail, "Consensus Protocols: Paxos", 2009. (html)

Sistemi di Cloud storage

  • G. DeCandia, D. Hastorun, M. Jampani, G. Kakulapati, A. Lakshman, A. Pilchin, S. Sivasubramanian, P. Vosshall, W. Vogels, "Dynamo: Amazon's highly available key-value store", Proc. of the 21 ACM SIGOPS Symposium on Operating Systems Principles (SOSP '07), pp. 205-220, 2007. (pdf)
  • S. Ghemawat, H. Gobioff, S.-T. Leung, "The Google File System", Proc. of the 19th ACM SIGOPS Symposium on Operating Systems Principles (SOSP '03), 2003. (html)
  • H. Hu, Y. Wen, T.-S. Chua, X. Li, "Toward scalable systems for Big Data analytics: a technology tutorial", IEEE Access, Vol. 2, pp. 652-687, 2014. (html)

Sistemi Web distribuiti

  • V. Cardellini, E. Casalicchio, M. Colajanni, P.S. Yu, "The state of the art in locally distributed Web-server systems", ACM Computing Surveys, Vol. 34, No. 2, pp. 263-311, June 2002. (pdf)
  • R. Nishtala, H. Fugal, S. Grimm, M. Kwiatkowski, H. Lee, H.C. Li, R. McElroy, M. Paleczny, D. Peek, P. Saab, D. Stafford, T. Tung, and V. Venkataramani, "Scaling Memcache at Facebook", Proc. of 10th USENIX Conference on Networked Systems Design and Implementation (NSDI'13), pp. 385-398, 2013. (pdf)

Sistemi Web geografici per content delivery

  • V.K. Adhikari, Y. Guo, F. Hao, M. Varvello, V. Hilt, M. Steiner, Z.-L. Zhang, "Unreeling Netflix: Understanding and improving multi-CDN movie delivery", Proc. of IEEE INFOCOM 2012, pp. 1620-1628, March 2012. (pdf)
  • B.M. Maggs and R.K. Sitaraman, "Algorithmic nuggets in content delivery", SIGCOMM Comput. Commun. Rev., July 2015. (pdf)
  • E. Nygren, R.K. Sitaraman, J. Sun, "The Akamai network: a platform for high-performance Internet applications", ACM SIGOPS Operating Systems Review, Vol. 44, No. 3, July 2010. (pdf)
  • R. Torres, A. Finamore, Jin Ryong Kim, M. Mellia, M.M. Munafo, S. Rao, "Dissecting video server selection strategies in the YouTube CDN", Proc. of IEEE 31 Int'l Conf. on Distributed Computing Systems (ICDCS '11), pp. 248-257, June 2011. (pdf)

Video

Video di presentazioni utili per approfondire alcuni argomenti avanzati del corso.

Programmazione RPC

Esempi SUN RPC
Argomento Codice
Square
(tratto da Stevens, "Network Programming Vol. 2")
square.zip
Echo
echo.zip
Average
(tratto da E. Petron, "Remote Procedure Calls")
avg.zip
Remote directory listing
(tratto da "ONC+ Developers Guide")
rls.zip

Esempi Java RMI
Argomento Codice
Echo
echo_rmi.zip
Compute engine
http://docs.oracle.com/javase/tutorial/rmi

Esempi RPC in Go
Argomento Codice
Operazioni aritmetiche
arithmetic.zip

Altri link utili

I seguenti link forniscono delle fonti per approfondimenti.


Programma

Introduzione ai sistemi distribuiti
Introduzione al Cloud computing
Architetture per sistemi distribuiti
Comunicazione nei sistemi distribuiti
Introduzione alla programmazione in Go
Virtualizzazione
Coordinazione e sincronizzazione nei sistemi distribuiti
Consistenza e replicazione nei sistemi distribuiti
Tolleranza ai guasti nei sistemi distribuiti
Sistemi e servizi per content delivery
Architetture a microservizi
Data storage nel Cloud
Amazon Web Services
Esempi di sistemi e servizi distribuiti e Cloud

Esami

Modalità di esame

L'esame si compone di:

  • Prova scritta;
  • Progetto e relativa discussione;
  • Prova orale facoltativa.
Prova scritta

La prova scritta verte sugli argomenti dell'intero corso e prevede domande a risposta aperta ed esercizi. Si raccomanda di sostenere la prova scritta prima del progetto.

In alternativa alla prova scritta, si terranno due prove scritte intermedie. Tali prove intermedie possono essere sostenute soltanto dagli studenti immatricolati al primo anno della Laurea Magistrale nell'A.A. 2017/18 e dagli studenti immatricolati in anni precedenti e che optano per il programma dell'A.A. 2017/18.
Se entrambe le prove intermedie saranno superate positivamente, verrà proposto un voto finale per la prova scritta. Non è possibile recuperare le prove intermedie in modo parziale.
Non ci sono vincoli sulla partecipazione alle prove (eccetto la prenotazione obbligatoria per le prove scritte).
Tuttavia, la partecipazione ad una prova scritta comporta la rinuncia automatica ad un voto sufficiente conseguito in una prova scritta precedente.
Gli studenti immatricolati in anni precedenti all'A.A. 2017/18 e che intendono sostenere le prove intermedie devono comunicarlo alla docente.

Prova orale facoltativa

La prova orale è facoltativa e verte su tutto il programma del corso. E' possibile sostenere la prova orale facoltativa in un appello diverso da quello in cui si è sostenuto la prova scritta, purchè nella stessa sessione.
E' possibile sostenere la prova scritta e l'eventuale prova orale in una stessa sessione e posticipare la discussione del progetto ad un'altra sessione.

Progetto

Per poter sostenere nell'A.A. 2017/18 l'esame di Sistemi Distribuiti e Cloud Computing dovranno essere comunicate entro lunedì 5/2/2018 via e-mail alla docente le seguenti informazioni:
- nominativi ed indirizzi di e-mail dei componenti del gruppo;
- progetto scelto;
- eventuale proposta del servizio da realizzare.
Nel caso in cui il numero di prenotazioni per il progetto scelto abbia raggiunto la soglia massima prevista, sarà necessario effettuare una nuova scelta tra i progetti ancora disponibili.
Eventuali modifiche relative al gruppo devono essere tempestivamente comunicate al docente e concordate con la docente.
Il progetto è valido solo per l'A.A. 2017/18 e e deve essere consegnato improrogabilmente entro il 22/9/2018.
Prova scritta e progetto devono essere entrambi superati entro la sessione autunnale 2017/18.

Per la realizzazione del progetto, è possibile usufruire del grant offerto da Amazon Web Service tramite il programma AWS Educate, a cui l'Università di Roma "Tor Vergata" ha aderito nel 2015. Per l'iscrizione in qualità di studente al programma AWS Educate, si raccomanda di seguire le istruzioni fornite a lezione ed inviate via email agli studenti iscritti al progetto.

La consegna del progetto deve avvenire una settimana prima della data (da concordare con la docente) in cui si intende sostenere la discussione del progetto.
Ciascuno studente esporrà una presentazione individuale tramite lucidi di una parte del progetto (max 10 minuti per studente).
Tutti i componenti del gruppo devono sostenere la presentazione del progetto nella stessa data.

Negli anni passati alcuni gruppi di studenti hanno svolto il loro progetto partecipando a competizioni internazionali o nazionali, tra cui: ACM DEBS 2016 Grand Challenge, CINI Smart Cities University Challenge 2017, open innovation project DOCK3 in collaborazione con Bridgestone.

Lucidi della presentazione dei progetti tenuta l'8 gennaio 2018: Projects.pdf.

Progetto 1: A Urban Analytics System for Traffic Monitoring and Control
SDCC1718_progetto1.pdf
3 o 4 componenti per gruppo;
prenotazioni disponibili: 0 su 25.
Tale progetto, se consegnato entro e non oltre il 13/7/2018, consente di partecipare alla selezione del team dell'Università di Roma "Tor Vergata" che parteciperà alla seconda edizione del CINI Smart City University Challenge.
La fase finale del challenge, a cui parteciperà il team vincitore della selezione locale, si terrà a L'Aquila nel mese di settembre 2018 nell'ambito della conferenza I-CiTies 2018.

Progetto 2: Fog Middleware
SDCC1718_progetto2.pdf
3 componenti per gruppo;
prenotazioni disponibili: 6 su 15.

Progetto 3: Your Own Replicated Service
SDCC1718_progetto3.pdf
2 componenti per gruppo;
prenotazioni disponibili: 11 su 15.

Progetto 4: Replicated Data Storage
SDCC1718_progetto4.pdf
2 o 3 componenti per gruppo;
prenotazioni disponibili: 12 su 15.

Progetto 5: Your Own Microservice Application with Decentralized Data Management
SDCC1718_progetto5.pdf
1 o 2 componenti per gruppo;
prenotazioni disponibili: 3 su 5.

Progetto 6: Your Own Serverless Computing Application
SDCC1718_progetto6.pdf
1 o 2 componenti per gruppo;
prenotazioni disponibili: 1 su 5.

Prove scritte di anni precedenti

Appelli

  • I prova intermedia
    Mercoledì 29 novembre 2017, ore 14:00 aula C1 edificio Didattica.
    Per la prenotazione, usare il servizio di prenotazione su Delphi entro sabato 25 novembre.
    In caso di problemi con il servizio, inviarmi una e-mail entro il 25 novembre, indicando nel subject [SDCC prenotazione I intermedia] e nel testo cognome, nome e numero di matricola.
    Testo
  • II prova intermedia
    Venerdì 12 gennaio 2018, ore 9:30 aula 4 edificio Didattica.
    Per la prenotazione, usare il servizio di prenotazione su Delphi entro lunedì 8 gennaio.
    In caso di problemi con il servizio, inviarmi una e-mail entro l'8 gennaio, indicando nel subject [SDCC prenotazione II intermedia] e nel testo cognome, nome e numero di matricola.
    Testo
  • I appello sessione invernale
    Prova scritta: martedì 30 gennaio 2018, ore 9:30 aula B9 edificio Didattica.
  • II appello sessione invernale
    Prova scritta: mercoledì 21 febbraio 2018, ore 14:00 aula B3 edificio Didattica.
  • I appello sessione estiva
    Prova scritta: venerdì 22 giugno 2018, ore 9:30 aula B8 edificio Didattica.
  • II appello sessione estiva
    Prova scritta: martedì 10 luglio 2018, ore 9:30 aula B8 edificio Didattica.
  • I appello sessione autunnale
    Prova scritta: giovedì 6 settembre 2018, ore 9:30 aula C7 edificio Didattica.
  • II appello sessione autunnale
    Prova scritta: martedì 18 settembre 2018, ore 9:30 aula C4 edificio Didattica.

  •