Obiettivi formativi
La finalità del corso è quella di definire e caratterizzare i sistemi orientati ad Internet. In particolare verrà fornita allo studente la capacità di comprendere:
- i principi di funzionamento di Internet
- le principali tecnologie Web
- il linguaggio di programmazione JavaScript
- i principi e le tecnologie delle architetture orientate ai servizi
- i principi della progettazione e sviluppo di applicazioni ai Microservizi
- i principi della sicurezza informatica
- i principi alla base dei containers e della governance di applicazioni in cloud
Lo studente imparerà ad applicare tali competenze per:
- sviluppare applicazioni Web interattive
- progettare e realizzare microservizi
- gestire le applicazioni in un environment isolato attraverso l'utilizzo dei container
- muoversi nell'ecosistema dei servizi basilari offerti dal mondo cloud
Prerequisiti
- - -
Contenuti dell'insegnamento
1. Internet
2. Network e Transport layer
3. Application layer
4. Tecnologie web di base
5. Javascript
6. Web API SOA
7. Microservizi
6. Internet Security
7. Containers e orchestrazione in applicazioni cloud moderne
Programma esteso
1. Internet
- Cos'è Internet?
- Breve storia di internet
- Network edge
- Network core
- Ritardi, perdite, throughput
- Sicurezza
- Protocolli
2. Network e Transport layer
- Network layer:
Introduzione:
data plane e control plane
IP: Internet Protocol
formato datagram
addressing
network address translation
IPv6
- Transport Layer:
servizi del Transport-layer
Multiplexing e demultiplexing
Connectionless transport: UDP
Connection-oriented transport: TCP
Gestione della congestione
TLS Transport Layer Security
3. Application layer:
- DNS
- HTTP
- WS
- HTTP2
- HTTPS
- Proxy
- Reverse Proxy
- Virtual Hosting
- SSL-Offloading
- WAF
4. Tecnologie Web di base:
- HTML
- CSS
- JSON
- AJAX
5. Javascript
- Basi del linguaggio
- Asynchronocità
- Callback
- Javascript e il Web
6. Web API SOA:
- Paradigmi di comunicazione
- SOA
- XML
- SOAP
7. Internet Security:
- Le basi
- OWASP Top 10
- Tipi più comuni di attacco
- Threat modeling
8. Containers e orchestrazioni in modern cloud applications:
- Container
- Orchestrazione
- Auto scaling
- Load balancing
- Auto discovery
- Performance
- Readiness
- Web services liveness
Bibliografia
Jim Kurose, Keith Ross
Computer Networking: A Top Down Approach
8th Edition, Pearson, 2020
Larry L. Peterson, Bruce S. Davie
Computer Networks, A system Approach
5th Edition, Morgan Kaufmann 2012
David Gourley and Brian Totty
HTTP The Definitive Guide
O’Reilly Media, 2002
Barry Pollard
HTTP2 In Action
Manning, 2019
Jennifer Robbins
Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics
5th Edition, O’Reilly Media, 2018
Keith J. Grant
CSS in Depth
1st Edition, Manning, 2018
Waseem Roshen
SOA-Based Enterprise Integration: A Step-by-Step Guide to Services-based Application
McGraw-Hill Education, 2009
Metodi didattici
Le attività si svolgeranno sia in telepresenza attraverso l’utilizzo della piattaforma Teams sia in presenza nella aule assegnate al corso. Inoltre le lezioni saranno registrate e il materiale (slides e regitrazioni) sarà caricato sulla pagina Elly del corso. Durante le lezioni, si alterneranno momenti di spiegazione a momenti interattivi con gli studenti durante i laboratori.
Modalità verifica apprendimento
Non sono previste prove in itinere.
E' previsto lo svolgimento di una progetto legato agli argomenti del corso.
Tale progetto comporta lo sviluppo di un'applicazione orientata ad Internet, la stesura di una relazione in formato PDF che illustri l'architettura scelta e una valutazione da parte della commissione della soluzione implementata.
E' prevista una prova orale di verifica in merito agli argomenti del corso.
Altre informazioni
Il materiale didattico e di supporto alle lezioni è disponibile sul sito
http://elly2000.dia.unipr.it/
Obiettivi agenda 2030 per lo sviluppo sostenibile
- - -