DISI
- Scuola di Ingegneria - Alma Mater Studiorum - Università di Bologna Tecnologie Web T
CdS Laurea
in Ingegneria Informatica - A.A. 2020-2021
Obiettivi
e programma
Obiettivo: fornire tutte le conoscenze e le competenze necessarie per la progettazione e la realizzazione di applicazioni Web-based, inquadrandole nell'ambito più vasto delle applicazioni distribuite “di classe enterprise” e di interesse industriale
Competenze molto ricercate nel mondo del lavoro
Focus: definizione dei modelli su cui questa tipologia di applicazioni si basa, a partire da quelli più tradizionali per arrivare alle evoluzioni recenti
Parti del corso (descrizione sintetica)
- Web statico
- Web dinamico
- Architetture enterprise e modelli avanzati per il Web
- Evoluzione per front-end e single page Web app
- Tecnologie emergenti server-side, ad esempio node.js
Programma – Prima parte. Tecnologie e modelli di base
Modello statico: interazione e protocolli Web
Modello statico: breve introduzione storica
URI e protocollo HTTP
Linguaggi di descrizione della pagina: HTML e CSS
Modello dinamico
Sessioni e conversazioni - Gestione dello stato
Programmazione Server Side: Servlet e JSP
Programmazione Client Side: Javascript e Ajax
Programma – Seconda parte. Direzioni di evoluzione
Verso ambienti server-side di tipo Enterprise
Architetture multilivello: distribuzione orizzontale e verticale, separazione di business logic, modelli componente-container
Cenni di Model View Controller per Web e Java Model 2
Enterprise Java Beans come esempio di tecnologia conforme al modello a container pesante
Spring come esempio di tecnologia conforme al modello a container leggero
Tecnologie emergenti client-side
single page application
react.js
direzioni di evoluzione per front-end
Tecnologie emergenti server-side
modello orientato agli eventi e stateless
node.js
gestione asincrona I/O
Upgrading verso HTTP2/0
motivazioni
meccanismo delle Websocket in Javascript (client-side)
meccanismo delle Websocket in Java (server-side)
Prerequisiti
Il Corso di Tecnologie Web T ha un forte prerequisito in Reti di Calcolatori T; naturalmente, richiede le competenze di programmazione acquisite nei corsi di fondamenti, in particolare Java dall’insegnamento di Fondamenti di Informatica T-2