PROGRAMMAZIONE ORIENTATA AI MICROSERVIZI
cod. 1011605

Anno accademico 2023/24
3° anno di corso - Primo semestre
Docente
Tommaso NANU
Settore scientifico disciplinare
Informatica (INF/01)
Ambito
A scelta dello studente
Tipologia attività formativa
A scelta dello studente
48 ore
di attività frontali
6 crediti
sede:
insegnamento
in ITALIANO

Obiettivi formativi

Lo scopo del corso è quello di fornire agli studenti strumenti e competenze per la progettazione e realizzazione di applicazioni cloud-native, basate su complesse architetture a microservizi

Prerequisiti

Nessuno

Contenuti dell'insegnamento

I parte – Evoluzione dei sistemi informatici
II parte – Architettura Microservizi
III parte – Pattern
IV parte – Sviluppo .NET
V parte – Accesso ai dati (Entity Framework)
VI parte – Web API (JSON, REST, .)
VII parte – Container e K8S
VIII parte – Comunicazione tra microservizi (Kafka, gRPC)
IX parte – Sicurezza, autenticazione e autorizzazione

Programma esteso

I parte – Evoluzione dei sistemi informatici
Panoramica sull’evoluzione dei sistemi informatici con particolare riferimento ai modelli architetturali di applicazioni enterprise monolitiche, web 2.0 e cloud native.

II parte – Architettura Microservizi
Focus sui microservizi: caratteristiche, dimensionamento e sovranità dei dati. Vantaggi e svantaggi nell’adozione di questo tipo di architettura.

III parte – Pattern
Pattern architetturali per la progettazione di applicazioni basate su microservizi. Criticità e punti di attenzione. La replica dei dati vs la comunicazione sincrona. Approfondimento di pattern come DDD e Circuit Breaker. Le transazioni distribuite mediante il pattern SAGA.

IV parte – Sviluppo .NET
Il framework di sviluppo .NET e il linguaggio C#. La programmazione a oggetti, i tipi generici, la dependency injection. ASP.NET Core e i web services.

V parte – Accesso ai dati (Entity Framework)
.NET e l’interazione con le basi dati relazionali. ADO.NET e le operazioni base e le transazioni. Introduzione agli ORM e approfondimento su Entity Framework.

VI parte – Web API (JSON, REST)
Introduzione alle web API. I webservice SOAP e REST. La serializzazione degli oggetti mediante JSON. ASP.NET core e le web API, i metodi http (GET, POST, PUT, DELETE).

VII parte – Container e K8S
I microservizi e le architetture a container. Introduzione a Docker. Le applicazioni ASP.NET in contesto a container. Kubernetes e le tematiche di orchestrazione dei container. Deployment, POD e i file YAML per la configurazione.

VIII parte – Comunicazione tra microservizi (Kafka, gRPC)
I microservizi e la loro comunicazione per lo scambio di informazioni. La comunicazione sincrona con gRPC e asincrona mediante l’utilizzo del bus Kafka.

IX parte – Sicurezza, autenticazione e autorizzazione
Web API e sicurezza. Approfondimenti su come rendere i metodi sicuri mediante autorizzazione. Approfondimenti sulle tematiche di autenticazione e autorizzazione del client.

Bibliografia

Materiale didattico:
diapositive del corso

Metodi didattici

Lezioni frontali con esercitazioni assistite

Modalità verifica apprendimento

La verifica dell’apprendimento verrà effettuata mediante un progetto finale che consisterà nella realizzazione di un’applicazione che utilizzi tutte le tecnologie/tecniche apprese durante il corso. L’elaborato verrà discusso in sede di esame con il docente.

Altre informazioni

- - -

Obiettivi agenda 2030 per lo sviluppo sostenibile

- - -