Generali:

  • Dipartimento: Ingegneria
  • Settore Ministeriale: ING-INF/05
  • Codice di verbalizzazione: 8037389
  • Metodi di insegnamento: Frontale
  • Metodi di valutazione: Scritto E Orale
  • Prerequisiti: Il corso presuppone una buona conoscenza dei protocolli di rete, della progettazione e programmazione di applicazioni software e di rete (linguaggi C, Python e Java), dell'organizzazione e gestione di basi di dati, dell'infrastruttura Web.
  • Obiettivi: OBIETTIVI FORMATIVI: L'insegnamento si propone di fornire i principi, le metodologie e le tecnologie per la progettazione ed implementazione di sistemi distribuiti moderni, inclusi i sistemi distribuiti a larga scala ed i sistemi di Cloud computing. Durante il corso verranno coniugati aspetti metodologici e tecnologici, affrontando le principali problematiche e tecniche per lo sviluppo di sistemi distribuiti efficienti. In particolare, verranno approfonditi gli aspetti architetturali, i modelli di comunicazione tra i componenti di un sistema distribuito ed i corrispondenti middleware, le soluzioni per fornire sistemi scalabili e tolleranti ai guasti, le problematiche di coordinazione distribuita, replicazione e consistenza e le relativi soluzioni algoritmiche e tecniche, e la virtualizzazione dell'ambiente di esecuzione. Il progetto proposto ha lo scopo di consolidare ed approfondire la preparazione teorica, metodologica e tecnologica sui temi affrontanti nel corso. Nel corso viene anche introdotto il linguaggio Go per la programmazione dei sistemi distribuiti. CONOSCENZA E CAPACITÀ DI COMPRENSIONE: Al termine del corso lo studente avrà acquisito concetti di base ed avanzati sui sistemi distribuiti e sui sistemi Cloud e sullo sviluppo di applicazioni software in tale ambito. In particolare: realizzazione di applicazioni distribuite, scalabili, con diversi gradi di consistenza e modelli di comunicazione, utilizzando anche servizi Cloud (in particolare, i servizi Cloud di AWS, per l'utilizzo dei quali viene messo a disposizione degli studenti un grant gratuito tramite il programmi AWS Academy). CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: Al termine del corso lo studente avrà acquisito i principi e le metodologie proprie dell'analisi, progettazione e realizzazione dei moderni sistemi distribuiti. In particolare: progettare e sviluppare sistemi distribuiti e valutarne le prestazioni, usando strumenti avanzati per il deployment e l'esecuzione. AUTONOMIA DI GIUDIZIO: Al termine del corso lo studente sarà in grado di identificare le soluzioni più idonee per realizzare sistemi distribuiti e servizi di Cloud computing e di valutare le scelte architetturali, implementative e le prestazioni di sistemi e servizi esistenti. ABILITÀ COMUNICATIVE: Al termine del corso lo studente avrà acquisito padronanza della terminologia avanzata relativa ai sistemi distribuiti ed al Cloud computing, sarà in grado di presentare l'architettura di un sistema distribuito anche complesso con termini e linguaggio tecnico appropriato e di argomentare circa le varie alternative sia a livello sistemistico che applicativo. CAPACITÀ DI APPRENDIMENTO: Al termine del corso lo studente avrà acquisito la capacità di intraprendere in autonomia ulteriori approfondimenti su argomenti attinenti i sistemi distribuiti ed il Cloud computing, e di utilizzare le conoscenze e metodologie imparate per affrontare problemi nuovi.

Didattica:

  • A.A.: 2023/2024
  • Canale: UNICO
  • Crediti: 9

Classe virtuale:

  • Nome classe: CARDELLINI-8037389-SISTEMI_DISTRIBUITI_E_CLOUD_COMPUTING_3
  • Link Microsoft Teams: Link
  • Docente: CARDELLINI VALERIA