Il corso introduce le moderne problematiche dei sistemi in rete. Partendo dai principi dei sistemi distribuiti, si arriverà fino alle moderne architetture multiprocessor, multi sede, resistenti ai guasti che sono alla base sia delle aziende leader del 21o secolo (Google, Amazon, Facebook), sia del Cloud Computing in senso lato.
Si toccheranno anche gli aspetti ingegneristici di questa nuova industria del ICT, con particolare attenzione all;impatto sull'ambiente.
Il corso affronterà le tematiche di virtualizzazione delle risorse in sistemi informativi complessi. Verranno presentate le soluzioni metodologiche e architetturali più recenti. Successivamente verrà studiato l'approccio basato sul cloud computing analizzando sia aspetti formali che soluzioni commerciali.
Sistemi operativi, reti di calcolatori, competenze di base in programmazione e rudimenti di programmazione concorrente.
Principalmente lezioni frontali. Nella seconda parte del corso verranno proposti temi di approfondimento su argomenti spedifici con l'obiettivo di realizzare una breve presentazione e sostenere la discussione con il docente e gli altri allievi.
A. Sistemi distribuiti Scalabilità, prestazioni, disponibilità/affidabilità. Astrazioni e modelli; ipotesi su ordine e sul tempo. Problema del consenso; impossibilità di FLP ed il teorema CAP. Consistenza forte e debole. Tempo ed ordine: ordine totale e parziale. Relazione tra tempo, ordine e prestazioni. Repliche, sincrone ed asincrone. Principali approcci utilizzati. Algoritmi che tollerano partizioni di rete: Paxos. Metodi di replica a consistenza forte. Repliche: protocolli a consistenza debole. Tipi di dati che hanno convergenza delle repliche (CRDT). Il teorema CALM. B. Principi e pratica del Cloud Computing Che cos’è. Modelli di servizio: Infrastructure as a Service (IaaS), Platform as a Service (Paas), Software as a Service (SaaS). Modelli di business ed aspetti contrattuali. Aspetti socio economici. Tecnologia del Cloud Computing. Esempi di servizi Cloud (Web Services, SaaS, PaaS, IaaS). Organizzazione e gestione dei dati in Cloud. Esempi di applicazioni evolute (searching, indexing, ranking, intelligence collettiva). Aspetti economici. Sicurezza e governance dei Cloud (pubblico, privato, ibrido). C. Cenni di Green IT Dal server tradizionale al server virtualizzato in ambiente Data Center. L’organizzazione del Data Center moderno. I temi di efficienza energetica. L’evoluzione delle reti in ambito Data Center.
D. Architettura di Internet Qual'è la struttura moderna di Internet e come si è evoluto nel tempo il suo ecosistema. La governance della Rete. Che cos'è la Network Neutrality, eche cosa implica in termini teconologici ed economici.
Mikito Takada, “Distributed Systems for fun and profit”, free ebook [http://book.mixu.net/distsys/], 2013. Chris Harding et al., “Cloud Computing for Business”, The Open Group, free ebook [https://www2.opengroup.org/ogsys/catalog/G114], 2011 Marty Poniatowski, “Foundation of Green IT: Consolidation, Virtualization, Efficiency, and ROI in the Data Center”, Prentice Hall (anche in ebook), 2009.
Ricevimento: Su appuntamento (da richiedere via e-mail o in orario di lezione).
GIUSEPPE MARINO (Presidente)
ANTONIO BOCCALATTE
Le lezioni inizieranno il 18 settembre, ora e aula come da orario ufficiale.
VIRTUALIZATION AND CLOUD COMPUTING
Colloquio orale. Seminario di approfondimento su un tema a scelta (opzionale).
Acquisire competenze per riconoscere le difficolta specifiche dei sistemi distribuiti, riuscire a delineare possibili soluzioni tecniche. Acquisire competenze per valutare soluzioni di architetture Cloud e capacità progettuali per semplici servizi applicativi in rete Internet.