Vinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.x

DISTRIBUTED SYSTEMS

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

DOCENTE: STEFANO RUSSO
TELEFONO: 0817683832
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

INSEGNAMENTO INTEGRATO (EVENTUALE):
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): II
SEMESTRE (I, II): I
CFU: 6

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

...................................................................................................................................................

 

OBIETTIVI FORMATIVI

Obiettivo dell’insegnamento è di fornire la conoscenza degli algoritmi avanzati che risolvono problemi classici nell’ingegnerizzazione dei sistemi software e dei sistemi embedded distribuiti (sincronizzazione dei clock, consenso; stato globale; comunicazioni di gruppo; mutua esclusione; elezioni; transazioni; tolleranza ai guasti; consistenza dei dati), nonché quelli adoperati nei sistemi peer-to-peer, nei sistemi IoT e nei sistemi basati sulla tecnologia blockchain.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione
Lo studente deve dimostrare: di comprendere i problemi teorici (non tecnologici) alla base dei sistemi distribuiti in applicazioni affidabili, critiche, tolleranti ai guasti e/o scalabili; di conoscere i limiti teorici in funzione delle assunzioni temporali e sui fallimenti; di conoscere gli algoritmi per la loro risoluzione.

Capacità di applicare conoscenza e comprensione
Lo studente deve dimostrare di saper astrarre le problematiche non tecnologiche della ingegnerizzazione di un sistema distribuito - sia esso di tipo software per applicazioni in rete, o di tipo embedded in applicazioni industriali - di saperle ricondurre a problemi teorici noti, e di saper individuare un adeguato approccio ingegneristico alla pratica risoluzione.

 

PROGRAMMA-SYLLABUS

Caratterizzazione dei sistemi distribuiti. Definizioni. Modelli architetturali. Modello dei guasti. Requisiti di progetto: prestazioni, qualità del servizio, scalabilità, correttezza, sicurezza, tolleranza ai guasti. Classificazione: sistemi distribuiti sincroni, asincroni, parzialmente sincroni. (0,25 CFU)
Tempo e sincronizzazione nei sistemi distribuiti. Clock, skew, drift, tempo astronomico, Coordinated Universal Time (UTC). Sincronizzazione dei clock; algoritmo di Berkeley; algoritmo di Cristian. Network Time Protocol (NTP). Relazione happened-before. Orologi logici di Lamport. Orologi vettoriali. (0,5 CFU)
Stato globale di un sistema distribuito. Tagli consistenti e non consistenti. Algoritmo di snapshot di Chandy e Lamport. Raggiungibilità dello snapshot. Esempi di applicazione. (0,5 CFU)
Consenso nei sistemi distribuiti. Il problema del consenso, dei generali bizantini, della consistenza interattiva. Algoritmo di Dolev. Algoritmo Paxos. Failure detectors; classificazione. algoritmo Lazy FD. Consenso con failure detectors. (1,25 CFU)
Comunicazioni di gruppo. Multicast affidabili e/o ordinati. Algoritmi per la loro implementazione. (0,5 CFU)
Coordinazione distribuita. Mutua esclusione distribuita; algoritmi: del server centrale, ad anello, di Ricart e Agrawala, di Maekawa. Elezioni distribuite. Algoritmo: ad anello, del prepotente. Valutazione degli algoritmi. (0,5 CFU)
Azioni atomiche distribuite. Transazioni. Proprietà ACID. Problemi di consistenza dei dati, serializzabilità, effetto domino. Controllo di concorrenza: Two-phase lock. Two-version lock. Transazioni composte. Transazioni distribuite, two-phase commit, controllo di concorrenza nelle transazioni distribuite. Deadlock distribuito. L’astrazione memoria stabile. (1 CFU)
Replicazione e tolleranza dei guasti nei sistemi distribuiti. Dependability. La catena fault-error-failure. Replicazione attiva e passiva. Strategie di aggiudicazione. L’approccio state machine replication. (0,25 CFU)
Sistemi peer-to-peer. Motivazioni, requisiti, applicazioni, classificazione. Overlay networks, Overlay routing, Distributed Hash Table (DHT). Esempi: Napster, Gnutella, BitTorrent, Chord, Pastry. (0,25 CFU)
Consistenza dei dati nei sistemi distribuiti. Replicazione e consistenza. Consistenza stretta, linearizzabile, sequenziale, causale, eventuale, processor consistency, slow memory, modelli client centrici. Teorema CAP. (0,5 CFU)
Blockchain. Motivazioni, applicazioni. Algoritmi base. Smart contracts. Bitcoin, Blockchain e Internet of Things. (0,5 CFU)

 

MATERIALE DIDATTICO

Libri di testo:
• Coulouris, Dollimore, Kindberg, “Distributed Systems: Concepts and Design – 5th ed.”, Addison-Wesley, 2011;
• Kshemkalyani, Singhal, “Distributed Computing: Principles Algorithms and Systems”, Cambridge Univ. Press, 2008.
Trasparenze delle lezioni (disponibili sul sito web docente).
Pubblicazioni scientifiche:
• L. Lamport, “Time, Clocks and the Ordering of Events in a Distributed System”. Communications of the ACM, Vol. 21, N. 7, Luglio 1978.
• L. Lamport, “Paxos Made Simple”, 2001.
• F.B. Schneider, “Implementing Fault-Tolerant Services Using the State Machine Approach: A tutorial”. ACM Computing Survey, Vol. 22, N. 4, Dicembre 1990.
• A. Rowstron and P. Druschel, “Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems”. Proc. 18th IFIP/ACM Int. Conf. on Distributed Systems Platforms (Middleware 2001), Nov. 2001.
• M. Crosby, Nachiappan, P. Pattanayak, S. Verma, V. Kalyanaraman, “BlockChain Technology”, 2015, https://scet.berkeley.edu/wp-content/uploads/BlockchainPaper.pdf

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

La didattica è erogata: a) per l’80% con lezioni frontali; b) per il 10% con seminari sulle tematiche emergenti di blockchain e delle sue applicazioni all’Internet of Things; c) per il 10% con esercitazioni guidate in aula per approfondire praticamente aspetti relativi agli orologi logici e vettoriali e alla realizzazione degli algoritmi trattati.
Gli argomenti delle lezioni frontali e dei seminari sono esposti con l’ausilio di trasparenze dettagliate, messe a disposizione dello studente nel materiale didattico tramite il sito web ufficiale del docente.

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale  
 Solo scritta   
 Solo orale
 Discussione di elaborato progettuale   
 Altro  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera   
 Esercizi numerici  

  

L’esame si articola in una prova solo orale, consistente in tre domande su altrettanti problemi/algoritmi esposti al corso. A scelta dello studente, una delle tre domande può essere sostituita dall’esposizione del contenuto di una delle pubblicazioni scientifiche elencate nel materiale didattico.

 

BIG DATA ENGINEERING

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

DOCENTE: VINCENZO MOSCATO
TELEFONO: 0817683835
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

INSEGNAMENTO INTEGRATO (EVENTUALE): 
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): II
SEMESTRE (I, II): II
CFU: 6

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

...................................................................................................................................................

 

OBIETTIVI FORMATIVI

Scopo dell’insegnamento è quello di fornire in forma specialistica le caratteristiche peculiari delle Architetture per il Big Data Processing e la Big Data Analytics, con riferimento alla progettazione di sistemi per la gestione dati di grandi dimensioni e complessi, e all’implementazione dei processi di modellizzazione, acquisizione, condivisione, analisi e visualizzazione delle informazioni presenti nei Big Data. In particolare, verranno approfonditi le tecnologie, i framework ed i tool più diffusi per la memorizzazione, elaborazione ed analisi dei Big Data, fornendo allo studente tutte le conoscenze necessarie sia allo sviluppo di applicazioni pratiche per l’applicazione dei Big Data alla cosiddetta XInformatics, sia alla comprensione e gestione delle relative infrastrutture tecnologiche. Verranno infine trattate le problematiche ingegneristiche relative alla realizzazione di analytics su massive dataset sia per applicazioni batch sia real-time, con riferimento a quelle che sono le applicazioni emergenti dei Big Data (es. Social Network Analysis, Cyber-Security, Smart Cities, etc.).

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione
Il percorso formativo intende fornire agli studenti le conoscenze specialistiche e tutti gli strumenti metodologici e tecnologici per la gestione di Big Data, con particolare riferimento alle caratteristiche delle moderne architetture informatiche per il Big Data Processing e la Big Data Analitycs. In particolare, tali strumenti consentiranno agli studenti, a seconda del tipo di applicazione, da un lato, di sapere definire quelli che sono i processi più adeguati di modellizzazione, acquisizione, condivisione, analisi e visualizzazione delle informazioni relative ai Big Data, dall’altro di individuare i requisiti hardware e software dei sistemi informatici di supporto.


Capacità di applicare conoscenza e comprensione
Il percorso formativo è orientato a trasmettere le capacità e gli strumenti metodologici ed operativi necessari ad applicare concretamente le conoscenze relative alla gestione di Big Data in contesi applicativi reali. In particolare, lo studente deve dimostrare di essere in grado di progettare e implementare in forma prototipale, sfruttando i framework tecnologici ed i tool esistenti, sistemi per il Big Data Processing e la Big Data Analitycs in grado di supportare differenti applicazioni sia batch sia real-time.

 

PROGRAMMA-SYLLABUS

1. Introduzione ai Big Data: Definizione e caratteristiche di un Sistema Big Data.
2. L’ecosistema Hadoop: HDFS, Hadoop, Yarn.
3. Analisi di Big Data: Pig, Hive, Giraph, Spark, GraphX. MLib.
4. Basi di Dati NoSQL: Key-value - Column-family, Graph, Document Database systems. Proprietà BASE vs transazioni. Teorema CAP. Cenni alle Basi di Dati NewSQL.
5. Big Data Analytics (BDA): BDA Lifecycle: knowledge discovery in database, data preparation, model planning, model building, data visualization.
6. Analisi real-time di Big Data: Architetture Lambda e Kappa, Apache Flume, Apache Kafka, Spark Streaming.
7. Applicazioni emergenti dei Big Data: Social Network Analysis, Cyber-Security, Smart-Cities.
8. Servizi Cloud per Big Data: AWS, Microsoft Azure.

 

MATERIALE DIDATTICO

- Appunti del docente, Lucidi, Articoli scientifici.
- Manuali dei vari tools presentati.
- Libri di testo consigliati:
o "Big Data: Architettura, tecnologie e metodi per l’utilizzo di grandi basi di dati”,
o A. Rezzani, APOGEO, 2013. “Business intelligence. Modelli matematici e sistemi per le decisioni”,
o C. Vercelli, MacGraw-Hill Companies,2006 “Mining of Massive Datasets”, J. Leskovec, A. Rajarman, J.D.Ullman, 2014 (on line book)

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

Il docente utilizzerà lezioni frontali per circa il 60% delle ore totali, ed in aggiunta esercitazioni al calcolatore, sia assistite sia personali, per approfondire praticamente gli aspetti teorici ed i tool (software specialistico) introdotti, e seminari di approfondimento per le rimanenti ore. Il tutto sarà supportato da materiale didattico multimediale disponibile on-line.

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale  
 Solo scritta   
 Solo orale  
 Discussione di elaborato progettuale 
 Altro  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera   
 Esercizi numerici  

  

Ogni studente dovrà sviluppare durante il corso 2 Homeworks, in aggiunta all’elaborato progettuale finale, comprendenti l’uso delle tecniche e de tools presentati.

b) Modalità di valutazione:
Durante la discussione dell’elaborato progettuale saranno richiesti approfondimenti teorici relativi a parti dell’elaborato stesso, ed il tutto concorrerà alla valutazione finale.

 

SECURE SYSTEMS DESIGN

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

DOCENTE: VALENTINA CASOLA
TELEFONO: 081 7683907
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

INSEGNAMENTO INTEGRATO (EVENTUALE): 
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): II
SEMESTRE (I, II): I
CFU: 6

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

Conoscenze di programmazione; conoscenze dei principi dell’ingegneria del software.

 

OBIETTIVI FORMATIVI

Il corso si pone l’obiettivo di fornire un’impostazione metodologica e tecnologica per il progetto di sistemi sicuri. Il corso prevede di analizzare le tecniche di progetto standard con riferimento allo sviluppo ed uso dei principali meccanismi di sicurezza, tra cui: meccanismi di autenticazione e controllo accessi, meccanismi di sicurezza crittografici, meccanismi per la protezione delle comunicazioni e dei sistemi distribuiti. Sono inoltre presentati i principali elementi per l’analisi dei rischi e delle minacce applicabili ad un sistema per guidare le fasi di progettazione e le principali tecniche di assessment e testing della sicurezza dei sistemi.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione
Lo studente deve dimostrare di conoscere e comprendere le problematiche relative al progetto di sistemi sicuri, con riferimento alle metodologie di analisi e progettazione, standard, presentate durante il corso, e considerando i vincoli specifici derivanti dalle tecnologie utilizzate. Deve inoltre dimostrare di comprendere le caratteristiche fondamentali di diversi meccanismi di sicurezza e di saper individuare i controlli più appropriati per soddisfare specifici requisiti di progettazione.


Capacità di applicare conoscenza e comprensione
Lo studente deve dimostrare di essere in grado di eseguire l’intero ciclo di analisi, progettazione e sviluppo di un sistema sicuro, dalla fase di analisi dei rischi e delle minacce alla identificazione dei meccanismi di controllo più opportuni, alla loro implementazione e corretta configurazione, fino al testing finale della sicurezza del sistema, utilizzando strumenti e ambienti di sviluppo di ampio utilizzo.

 

PROGRAMMA-SYLLABUS

Course Introduction: Basic terminology, Overview of system security, Policy/mechanism separation, Security requirements.
Fundamentals of cryptography: Symmetric cryptosystems: Block Cipher (DES, Skipjack….), Asymmetric cryptosystems: RSA, ECC; Key Management and distribution; Digital signature, Hash functions, Smart Card security; Public Key Infrastructure: PKCS Standards, X. 509 Certificates, Certificate Policies and Cross Certification; Java Cryptography Architecture; Digital Signature and PEC in the Italian law.

Identification and Authentication mechanism: Authentication mechanisms, Authentication protocols, Single Sign On, Kerberos, Identity Federation, OAuth, SAML, IAM (Identity and Access Management) Systems; credential management systems (Vault).

Access Control mechanism: Access Control models: Discretionary and Mandatory Access Control Models (DAC, MAC), Role based Access Control Models (RBAC), Other models: Attribute based Access Control (ABAC), Role hierarchy management, Conflict management; Access Control frameworks: XACML, Keycloack, Authentication and Authorization services.

System and Communication Protection mechanism: Attack taxonomy, Firewalls, Gateways, Intrusion Detection systems; Network segmentation and demilitarized zone (DMZ), Monitoring mechanisms; Auditing and Logging mechanisms.

Application and Network Security protocols: SSL, PGP, SMIME, VPN, IPv6.

Design of Secure Systems: standard risk-based development approach (NIST, ISO), Secure SDL methodologies, threats and vulnerabilities analysis, risk analysis, security controls identification techniques, security assessment, static and dynamic security testing techniques. Design trade-offs: Security and Performances. Case studies: Web application security, Security in hw and embedded devices (IoT security, WSN security, FPGA security…..), Cloud Security.

 

MATERIALE DIDATTICO

Libro di testo: Stallings William – Computer Security, Principles and Practice 3rd Ed - Prentice Hall.
Dispense e presentazioni fornite dal docente relative ad argomenti teorici e applicativi.
Manuali e standard di riferimento dei meccanismi e metodologie di sicurezza utilizzati.
Codice relativo alle esercitazioni svolte in aula.

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

Il corso prevede circa il 70% di lezioni frontali in cui vengono affrontati gli argomenti teorici, mentre il restante 30% è riservato a lezioni pratiche ed esercitazioni riguardanti la progettazione, implementazione e valutazione di meccanismi di sicurezza studiati.

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale  
 Solo scritta   
 Solo orale
 Discussione di elaborato progettuale 
 Altro  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera   
 Esercizi numerici  

  

La verifica dell’apprendimento prevede una prova orale orientata alla verifica della comprensione dei concetti teorici del corso e alla discussione di un elaborato.

 

EMBEDDED SYSTEMS

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

DOCENTE: ALESSANDRO CILARDO
TELEFONO: +39 081 7683852
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

INSEGNAMENTO INTEGRATO (EVENTUALE): 
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): II
SEMESTRE (I, II): II
CFU: 6

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

...................................................................................................................................................

 

OBIETTIVI FORMATIVI

L'insegnamento si propone di fornire agli studenti le nozioni specialistiche relative ai moderni Sistemi Embedded (sistemi informatici dedicati espressamente progettati ed integrati in forma "embedded" in specifici prodotti, spesso vincolati a soddisfare taluni requisiti di tipo real-time e prestazionali, oltre che requisiti su consumi, ingombro, affidabilità e sicurezza) quali quelli ampiamente impiegati nei sistemi industriali (trasporti: automotive e ferroviario; energia; sistemi di controllo meccanici) o di largo consumo (telefonia, intrattenimento, elaborazione multimediale) o, in generale, sistemi dell’internet delle cose (Internet of Things, IoT), di e-health, robotica ed Intelligenza Artificiale.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione
Il percorso formativo, basato su lezioni teoriche ed esercitative, è volto a dotare lo studente delle conoscenze relative alle architetture di tipo embedded, con enfasi sugli aspetti tecnologici e metodologici, così come della comprensione dei flussi di progettazione per sistemi di tipo System-on-Chip (SoC) e Multi-Processor System-on-Chip (MPSoC). Il corso presenta, tra gli altri, sistemi SoC con processore ARM su schede STM32F4 della STMicroelectronics ed altri processori per applicazioni embedded sintetizzati su FPGA. Nelle lezioni di laboratorio, sono anche sviluppate conoscenze di alcuni ambienti IDE per la progettazione, composti da compilatori di linguaggi HDL, quali VHDL e Verilog, debugger, simulatori e strumenti per il mapping tecnologico.

Capacità di applicare conoscenza e comprensione
Il percorso formativo è orientato a trasmettere le capacità e gli strumenti metodologici/operativi necessari ad applicare le conoscenze in termini di progettazione ingegneristica di sistemi embedded, basati su differenti architetture di tipo System-on-Chip (SoC), Multi-Processor System-on-Chip (MPSoC) e speciali (DSP, hardware dedicato), sintetizzate anche con componenti FPGA già studiati in insegnamenti precedenti del percorso di laurea magistrale. La progettazione farà ricorso a metodologie di sviluppo e ad ambienti IDE professionali ampiamente impiegati nel mondo industriale. La parte applicativa, in particolare, prevede lo sviluppo di un progetto d’aula.

 

PROGRAMMA-SYLLABUS

Il corso è organizzato in tre parti principali: una teorica, una tecnologica ed una applicativa.

Parte teorica
• Architetture speciali e generali dei Sistemi Embedded e loro strutturazione a livelli.
• Architetture hardware basate sull’integrazione di hardware commerciale (processori, periferiche, multiprocessori, multicomputer, DSP, system on chip, etc.), hardware specifico (progettato mediante HDL e tecnologie di sintesi automatica) e dispostivi per il collegamento con attuatori e sensori di campo.
• Caratteristiche architetturali dei processori e dei sistemi per applicazioni di tipo System-on-Chip (SoC) e Multi-Processor System-on-Chip (MPSoC).
• Software di base, sistemi operativi e software applicativo per sistemi dedicati con o senza vincoli di real-time.
• Generalità su sensori e attuatori: principi di funzionamento, tipologia, interfacce ed esempi d’uso.
• Reti di sensori: architettura e software di servizio.
• Logiche di partizionamento di un sistema dedicato tra unità funzionali realizzate in hardware e/o in software dei sistemi embedded SoC e MPSoC.
• Sistemi di elaborazione per applicazioni industriali critiche per costo, affidabilità, tempo, sicurezza, consumi e ingombro.
• Ciclo di sviluppo: metodologie e strumenti per la sintesi e il codesign.
• Sviluppo di un sistema embedded su board STMicroelectronics della serie STM32xxx con processori ARM.

Parte tecnologica
• Livelli hardware/software in cui è strutturato un sistema embedded: livello HAL, middleware, di sistema operativo RTOS e applicativo, anche con requisiti real-time, sottosistema di I/O caratterizzato dai più diffusi dispositivi di I/O, da sensori e attuatori e loro reti.
• Dispositivi di I/O sintetizzabili come IP core (UART/USART, PIO, I2C, SPI, USB, etc.) su FPGA.
• Componenti di base: sottosistemi di memoria, architettura di interconnessione. Bus e sistemi di interconnessione ad elevate prestazioni: i bus AMBA e AXI.
• Architetture dei più diffusi processori per sistemi embedded: la famiglia ARM; processori nativi della famiglia di FPGA (MicroBlaze di Xilinx); altri processori sintetizzabili come IP core su FPGA (processori di fascia bassa a 8, 16, 32 bit di tipo CISC e RISC, Java machine); architettura aperta RISC-V.
• Architetture System-on-Chip, famiglia di sistemi STM32Fxx.
• Architettura dei sistemi paralleli di tipo multiprocessore e reti di interconnessione.
• Architettura dei sistemi multicore e Multi-Processor System-on-Chip.
• Componenti programmabili ibridi composti da SoC o MPSoC (con processori di tipo general-purpose RISC/CISC e/o speciali quali ad esempio i Digital Signal Processor, DSP) e FPGA (per sintetizzare macchine speciali).
• Dispositivi ibridi FPGA-multicore: la famiglia Zynq.
• Architettura delle schede Digilent Zybo Zynq e ZedBoard Zynq
• Librerie di IP-Core, “intellectual Property Core”, appositamente sviluppate o presenti in librerie pubbliche e commerciali.

Parte applicativa
Per il laboratorio, gli studenti, organizzati in gruppi di lavoro, svilupperanno un progetto concreto di sistema embedded, suddiviso in sottosistemi, a partire dalle specifiche funzionali loro assegnate. La progettazione farà ricorso a metodologie di sviluppo e ad ambienti IDE a supporto, concretamente impiegati in ambito industriale. In particolare, si farà riferimento ad esempi di sistemi “on board” commerciali messi a disposizione degli studenti, con processori della famiglia ARM ed FPGA delle famiglie Xilinx.

 

MATERIALE DIDATTICO

• G. Conte, A. Mazzeo, N. Mazzocca, P. Prinetto, “Architettura dei calcolatori”, Cittastudi edizioni, 2015.
• F.Vahid, T.Givaris, “Embedded System Design - A unified Hardware/Software Introduction”, Wiley, 2002.
• K. Papovic, F. Rousseau, A. A. Jerraya, M. Wolf, “Embedded Software Design and Programming of Multiprocessor System-on-Chip”, Springer, 2010.
• M. Domeika, Software Development for Embedded Multi-core Systems a Practical Guide Using Embedded Intel ® Architecture
• “Automotive Embedded Systems Handbook, Industrial Information Technology Series CRC Press, 2009, N. Navet, F. Simonot Lion eds.
• K. Yaghmour, J. Masters, G. Ben-Yossef, and P. Gerum, “Building Embedded Linux Systems”, O’Reilly.
• Wayne Wolf, “Computers as components”, Morgan Kaufman, 2000. Planned 2nd ed
• P. Marwedel,“Embedded System Design”, Kluwer academic publishers, ISBN: 1-4020-7690-8, November 2003
• J. Sauermann, M. Thelen, “Realtime Operating Systems Concepts and Implementation of Microkernels for Embedded Systems”,
• Manuali e datasheet dei vari dispositivi utilizzati e forniti durante il corso.

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

Il docente utilizzerà: a) lezioni frontali per circa il 55% delle ore totali, b) esercitazioni per approfondire praticamente aspetti teorici per 8 ore, c) laboratorio per approfondire le conoscenze applicate per 10 ore, d) seminari per approfondire tematiche specifiche per 4 ore.

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale  
 Solo scritta   
 Solo orale  
 Discussione di elaborato progettuale 
 Altro  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera   
 Esercizi numerici  

  

b) Modalità di valutazione:
Non applicabile (una sola tipologia di prova prevista)

 

WIRELESS NETWORKS AND IoT TECHNOLOGIES

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

DOCENTE: PROF. STEFANO AVALLONE
TELEFONO: +39 081 768 3902
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

INSEGNAMENTO INTEGRATO (EVENTUALE): 
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): II
SEMESTRE (I, II): II
CFU: 6

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

...................................................................................................................................................

 

OBIETTIVI FORMATIVI

Scopo del corso è impartire una conoscenza approfondita delle principali tecnologie impiegate in reti wireless, sia ad alte prestazioni (Wi-Fi) che caratterizzate da vincoli sul consumo energetico dei dispositivi (LoraWAN, ZigBee), come richiesto ad esempio dal paradigma Internet of Things (IoT). Tale scopo è perseguito attraverso l'analisi delle principali problematiche affrontate dalle tecnologie wireless considerate e la presentazione delle più recenti soluzioni proposte dagli enti internazionali di standardizzazione. Il corso è focalizzato principalmente sulle problematiche relative all'accesso al mezzo, all'instradamento e al supporto per le applicazioni nelle reti wireless. Gli obiettivi formativi principali sono: la conoscenza dei principali algoritmi distribuiti per l’accesso al mezzo wireless; l’acquisizione delle principali metodologie per l’analisi delle prestazioni delle tecniche di accesso wireless; la conoscenza delle problematiche di sicurezza nelle reti wireless; la comprensione delle problematiche derivanti dalla necessità di ridurre il consumo energetico dei dispositivi; la conoscenza dei protocolli per il supporto delle applicazioni in reti IoT; la capacità di utilizzare strumenti per la simulazione di reti wireless.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione

Gli studenti devono dimostrare di conoscere le principali tecnologie di reti locali di tipo wireless e le principali differenze tra di esse. Gli studenti devono comprendere le problematiche relative all’accesso al mezzo wireless condiviso e capire le scelte progettuali alla base delle diverse soluzioni proposte dalle diverse tecnologie. Il percorso formativo intende fornire agli studenti le conoscenze e gli strumenti metodologici di base necessari per analizzare le prestazioni delle reti locali di tipo wireless. Gli studenti devono dimostrare di conoscere strumenti per la cattura del traffico di rete reale e strumenti per l’esecuzione di simulazioni di rete .


Capacità di applicare conoscenza e comprensione

Gli studenti devono essere in grado di identificare la tecnologia di rete locale di tipo wireless più adatta ad un determinato contesto applicativo, sulla base delle caratteristiche dei dispositivi e dell’ambiente all’interno del quale operano e sulla base dei requisiti applicativi imposti. Gli studenti devono essere in grado di selezionare le tecniche e i meccanismi messi a disposizione da una tecnologia di rete wireless al fine di raggiungere determinati obiettivi. Gli studenti devono essere in grado di analizzare le prestazioni delle diverse tecniche proposte dalle tecnologie di reti locali di tipo wireless anche mediante l’ausilio di strumenti di simulazione di rete.

 

PROGRAMMA-SYLLABUS

Reti WLAN: architetture, definizione dei componenti, procedure di gestione e controllo. Reti WLAN: cenni sul livello fisico (IEEE 802.11a/b/g standards). Livello MAC: DCF e PCF. La sicurezza nelle reti WLAN: meccanismi per l’autenticazione (WEP, PSK, 802.1x, SAE) e algoritmi di cifratura (WEP, TKIP, CCMP, GCMP). Estensioni per il supporto della Qualità del Servizio: lo standard IEEE 802.11e e le funzioni di accesso al mezzo EDCA e HCCA. Metodologie per la valutazione delle prestazioni delle reti WLAN basate su IEEE 802.11. Evoluzione delle reti WLAN: gli emendamenti 802.11n, 802.11ac e 802.11ax. Reti wireless ad-hoc: scenari applicativi, problematiche, protocolli di routing reattivi e proattivi. Reti wireless mesh: scenari applicativi, procedure di gestione e controllo, protocolli per la selezione dei percorsi, interoperabilità con altri segmenti di rete LAN. Tecnologie di comunicazione wireless per l’Internet of Things (IoT): LoraWAN e Zigbee (IEEE 802.15.4 standard). Protocolli applicativi per l’IoT: MQTT e CoAP. Strumenti e metodi per la simulazione di reti wireless.

 

MATERIALE DIDATTICO

Libro di testo consigliato: Stefano Avallone, “Protocolli per Reti Mobili”. McGraw-Hill Italia. ISBN: 978-88-386-7414-3
Altro materiale didattico utile: Slides delle lezioni, articoli scientifici e standard selezionati.

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

La didattica verrà erogata principalmente attraverso lezioni frontali. Circa 6 ore saranno dedicate all’illustrazione del simulatore di rete ns-3, che verrà utilizzato come strumento per l’esecuzione di simulazioni di rete. La documentazione relativa al simulatore ns-3 è disponibile online sul sito web del simulatore.

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale  
 Solo scritta   
 Solo orale
 Discussione di elaborato progettuale 
 Altro  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera   
 Esercizi numerici  

  

L’elaborato consiste nella realizzazione di un programma per il simulatore di rete ns-3 che abbia come obiettivo la valutazione di una o più tecniche utilizzate dalle tecnologie di rete wireless oggetto del corso. L’elaborato incide per un massimo di 3 punti sulla valutazione complessiva.

 

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.