|
Claudia CANALI
Professore Associato Dipartimento di Ingegneria "Enzo Ferrari"
|
Insegnamento: Distributed Edge Programming
Ingegneria informatica (Offerta formativa 2023)
Obiettivi formativi
Il numero di oggetti connessi, in crescita a ritmi vicini al 15% all’anno, ha recentemente superato i 15 miliardi di unità. In questo scenario il carico sulle reti di comunicazione e sui centri di calcolo centralizzati (e.g., Amazon AWS, Google Cloud) può essere tale da impedire lo sviluppo di applicazioni particolarmente esigenti in termini di banda e latenza. L'edge computing è un modello di calcolo distribuito nel quale l'elaborazione dei dati avviene il più vicino possibile a dove i dati vengono generati, migliorando i tempi di risposta e risparmiando sulla larghezza di banda. L’insegnamento fornisce competenze per progettare, implementare, e manutenere sistemi software basati su questo recente paradigma.
Prerequisiti
Per una corretta fruizione dell’insegnamento sono utili conoscenze riguardo reti di calcolatori, sistemi Unix, e ingegneria del software.
Programma del corso
Nell'ambito del Corso si tratta il seguente programma.
[M1] Architetture di Edge Computing (3 CFU)
- Architetture e servizi di edge computing: principi fondamentali
- IoT e Edge Computing: scenari applicativi
- Progettazione e gestione di architetture edge
- Valutazione scalabilità e prestazioni
[M2] Ciclo di vita del software nel continuum edge/cloud (3 CFU)
- Design Patterns per sistemi distribuiti
- Deployment e integrazione continua (Kubernetes, Azure Percept, TFHub)
- Monitoraggio di sistemi distribuiti (Apache Samza, Apache Kafka)
- Integrazione e manutenzione di modelli di machine learning
[M3] Integrazione con il mondo fisico: il modello Digital Twin (3 CFU)
- Modelli concettuali ed integrazione con piattaforme edge/cloud
- Frameworks per ingegnerizzare Digital Twins (Ditto, Azure)
- Casi d’uso (IoT, IoT industriale, …)
Metodi didattici
L’insegnamento è organizzato in moduli organizzati su base settimanale. Ogni modulo tratta un argomento specifico e prevede una parte di laboratorio. La frequenza alle lezioni in presenza non è obbligatoria. L’insegnamento è erogato in lingua italiana.
Testi di riferimento
Materiale fornito dal docente su Moodle.
Verifica dell'apprendimento
L'insegnamento prevede lo sviluppo di un progetto software da sviluppare individualmente. L'esame consiste in una discussione orale del progetto stesso (15/30) unita a domande riguardo le nozioni teoriche fornite durante l'insegnamento (15/30).
Risultati attesi
Conoscenza e capacità di comprensione:
Conoscenze di modellazione e progettazione di soluzioni edge distribuite.
Conoscenze approfondite sulle componenti hardware e software coinvolte nel processo di sviluppo.