B5474 - ARCHITETTURE SOFTWARE A MICROSERVIZI

Anno Accademico 2024/2025

  • Docente: Davide Rossi
  • Crediti formativi: 6
  • SSD: INF/01
  • Lingua di insegnamento: Italiano
  • Moduli: Davide Rossi (Modulo 1) Ivan Lanese (Modulo 2)
  • Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
  • Campus: Bologna
  • Corso: Laurea Magistrale in Informatica (cod. 5898)

Conoscenze e abilità da conseguire

Al termine dell'attività formativa lo studente conosce gli aspetti principali dell'analisi, della progettazione e della realizzazione di architetture software basate su servizi, sia con approccio a microservizi sia SOA enterprise; sa inoltre modellare esupportare l'esecuzione dei processi di business, integrando opportunamente i servizi che li compongono. E' in grado di progettare e realizzare tali architetture complesse,anche supportandone l'esecuzione con infrastrutture virtualizzate, attraverso l'applicazione di pratiche, pattern e opportune soluzioni tecnologiche.

Contenuti

Le architetture basate su servizi (SOA) vengono utilizzate per realizzare grandi sistemi software che operano fra più organizzazioni (come avviene in ambito enterprise) ma anche come struttura di base su cui costruire applicazioni flessibili ed estremamente scalabili (come nel caso dei microservizi).

Progettare questo tipo di sistemi e ragionare sulle loro proprietà richiede l’uso di astrazioni e tecniche di modellazione appropriate.

In questo insegnamento vedremo come le astrazioni di servizio e di processo possono interoperare per descrivere sistemi distribuiti complessi e vedremo tecniche di modellazione basate su queste astrazioni che aiutano a progettarli. Impareremo come modellare processi (usando BPMN), servizi (usando UML) e come modellare l’interazione fra processi e servizi e fra servizi diversi attraverso le coreografie.

Vedremo come sfruttare queste tecniche per progettare applicazioni aderenti allo stile architetturale orientato ai servizi sia in ambito cross-enterprise sia attraverso i microservizi (anche adottando specifici pattern). Vedremo anche nella pratica i protocolli e le tecnologie che possono essere utilizzati per la loro realizzazione; in particolare per le tecnologie di supporto ai servizi web vedremo SOAP/WSDL e lo stile RESTful; per i microservizi vedremo l’uso dei container (es. Docker), degli orchestratori di microservizi (es. Kubernetes), delle service mesh (es. Linkerd) e delle tecnologie di serializzazione (es. Protobuf).

Per quello che riguarda i microservizi cercheremo in particolare di capire i punti forti e i punti deboli di questa classe di applicazioni e capiremo come realizzare sistemi che siano scalabili e affidabili.

Per facilitare la realizzazione immediata di esempi di alcune delle tecnologie legate ai servizi web man mano che verranno introdotte, useremo il linguaggio Jolie che permette la prototipazione rapida di soluzioni SOA.

Segue una lista dei principali argomenti del corso:

  • Enterprise software systems, architecture and modeling

  • Business Process Management e BPMN

  • SOA/Coreografie

  • Web services (SOAP/WSLD/RESTful/gRPC)

  • Microservices properties, design, patterns and implementation

  • Virtualized infrastructures supporting SOAs: containers (Docker), distributed containers (Kubernetes)

  • Jolie

Testi/Bibliografia

  • Michael Papazoglou, "Web Services and SOA: Principles and Technology", 2nd ed. 2013, ISBN 9780273732167
  • Mathias Weske, “Business Process Management: Concepts, Languages, Architectures”, 3rd ed. 2019, ISBN 9783662594315

Metodi didattici

Lezioni frontati ed esercitazioni.

Modalità di verifica e valutazione dell'apprendimento

Consegna e discussione di un progetto. La valutazione considererà la completezza e correttezza del materiale consegnato, l'adesione alle pratiche viste a lezione, la capacità di mettere in relazione i vari argomenti trattati dall'insegnamento e uso del pensiero critico.

La correzione degli homework in itinere opzionali può determinare un bonus fino ad 1 punto della valutazione.

Orario di ricevimento

Consulta il sito web di Davide Rossi

Consulta il sito web di Ivan Lanese