SISTEMI ORIENTATI AD INTERNET

Crediti: 
6
Settore scientifico disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Anno accademico di offerta: 
2016/2017
Semestre dell'insegnamento: 
Primo Semestre
Lingua di insegnamento: 

Italiano

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

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