81942 - SCALABLE AND CLOUD PROGRAMMING

Scheda insegnamento

Anno Accademico 2018/2019

Conoscenze e abilità da conseguire

Servizi Web quali Facebook, Google, Amazon, ecc. vengono eseguiti su molteplici data center geograficamente distribuiti. In particolare, sono necessarie migliaia di calcolatori, organizzati in modo tale da realizzare sistemi tolleranti ai guasti e capaci di supportare migliaia di richieste concorrenti. Inoltre, piattaforme di questo tipo (come ad esempio Google e Amazon) offrono servizi di hosting per applicazioni di terze parti creando cos“ i cosiddetti servizi di Òcloud computingÓ. In questo corso si tratteranno aspetti legati alla programmazione di tali sistemi considerando sia le problematiche derivanti dalla distribuzione dei dati e dei processi, sia le principali attualmente adottate quali ad esempio il modello di programmazione MapReduce.

Programma/Contenuti

Analisi delle problematiche relative alla realizzazione di applicazioni altamente concorrenti e distribuite.

Tecniche di parallelizzazione e distribuzione scalabili di dati e programmi, quali il modello di programmazione MapReduce.

Approccio funzionale alla realizzazione di sistemi scalabili tramite linguaggi e framework quali Scala e Spark.

Piattaforme cloud per l’esecuzione di applicazioni scalabili Amazon Web Services (AWS) e Google Cloud Platform (GCP).

Testi/Bibliografia

Programming in Scala (3rd edition)
Martin Odersky, Lex Spoon, Bill Venners
Artima

Learning Concurrent Programming in Scala (2nd edition)
Aleksandar Prokopec
Packt Publishing

Learning Spark: Lightning-Fast Big Data Analysis
Holden Karau, Andy Konwinski, Patrick Wendell, Matei Zaharia
O’Reilly

Metodi didattici

Lezioni frontali ed esercitazioni.

Modalità di verifica dell'apprendimento

Progetti di sviluppo di sistemi utilizzando le tecniche e le piattaforme discusse a lezione.

La valutazione finale sarà decisa tenendo in considerazione i seguenti fattori:

- originalità e qualità del sistema sviluppato (20 punti);

- qualità della presentazione (10 punti).

 

Strumenti a supporto della didattica

PC e proiettore.

Orario di ricevimento

Consulta il sito web di Gianluigi Zavattaro