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
- sistemi di tipo client/server e sistemi di tipo peer-to-peer
- i principi e le tecnologie delle architetture orientate ai servizi
- i principi della progettazione e sviluppo di applicazioni Cloud
Lo studente imparerà ad applicare tali competenze per:
- sviluppare pagine Web dinamiche
- sviluppare applicazioni Web
- progettare e realizzare applicazioni di tipo peer-to-peer
- progettare e realizzare servizi Web
- progettare e realizzare applicazioni cloud
Prerequisiti
- - -
Contenuti dell'insegnamento
1. Internet
2. Tecnologie Web di base
3. JavaScript
4. Sistemi peer-to-peer
5. Architetture orientate ai servizi
6. Sviluppo di applicazioni cloud
Programma esteso
1. Internet
- Cosa è Internet?
- Network edge
- Network core
- Ritardi, perdite, throughput
- Protocolli
- Storia di Internet
2. Tecnologie Web di base
- HTTP
- Apache HTTP server
- HTML
- CSS
- XML
- JSON
3. JavaScript
- Basi del linguaggio
- Programmazione client-side
- Programmazione server-side
4. Sistemi Peer-to-Peer
- Variabili di stato
- Dinamiche delle reti peer-to-peer
- Problematiche di progettazione
- Strategie di progettazione
- Principali schemi di overlay (Napster, eMule, BitTorrent, Chord, Kademlia, Skype)
- Bitcoin
5. Architetture orientate ai servizi
- Concetti generali
- Web Services
- SOAP
- WSDL
- UDDI
- WS Security
- REST
6. Sviluppo di applicazioni cloud
- Ripasso: IaaS, PaaS, SaaS
- OpenStack
- Sistemi cloud autonomici
- Progettazione e sviluppo di SaaS
Bibliografia
M. Amoretti, slide in inglese sugli argomenti del corso.
J. Kurose, K. Ross, Computer Networking: A Top Down Approach, ed. Addison-Wesley, 2012.
D. Flanagan, JavaScript - The Definitive Guide, ed. O’Reilly, 2011.
M. Cantelon, M. Harter, T. J. Holowaychuck, N. Rajlich, Node.js in action, ed. Manning, 2014.
Metodi didattici
Il corso viene svolto con lezioni frontali in cui il docente spiega gli argomenti mostrando delle diapositive oppure scrivendo alla lavagna. Alcune lezioni coinvolgono gli studenti nello sviluppo di semplici applicazioni orientate ad Internet.
Modalità verifica apprendimento
Non sono previste prove in itinere.
E' prevista una prova scritta (2 ore) articolata su quesiti a risposta libera, relativi alla parte teorica del corso.
E' previsto lo svolgimento di una tesina legata agli argomenti del corso.
Tale tesina comporta lo sviluppo di un'applicazione orientata ad Internet, la stesura di una relazione e una presentazione alla commissione (con il supporto di diapositive).
Altre informazioni
Il materiale didattico e di supporto alle lezioni è disponibile sul sito http://elly.dii.unipr.it
Obiettivi agenda 2030 per lo sviluppo sostenibile
- - -