en
Politecnico di Torino
Anno Accademico 2012/13
03NQVOC
Distributed programming
Corso di Laurea Magistrale in Ingegneria Telematica (Computer And Communication Networks Engineering) - Torino
Docente Qualifica Settore Lez Es Lab Tut Anni incarico
Sisto Riccardo ORARIO RICEVIMENTO PO IINF-05/A 40 16 24 0 5
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 8 D - A scelta dello studente A scelta dello studente
Presentazione
Insegnamento per la Laurea Magistrale in Computer and Communication Networks Engineering, collocato al II p.d. del II anno. Il corso fornisce le conoscenze per la realizzazione di applicazioni distribuite, a cominciare dalla così detta 'programmazione di rete', per arrivare alla programmazione di un sito web, che includa anche l'uso di una base dati relazionale remota.
Risultati di apprendimento attesi
-- Conoscenza dell'interfaccia socket in C per la programmazione di rete, sia nella versione per IPv4, sia in quella per IPv6.
- Capacità di applicare le conoscenze sull'interfaccia socket per realizzare applicazioni distribuite basate su questa, anche nel caso di server dual-stack (IPv4 e IPv6)
- Conoscenza dell'HTML
- Capacità di applicare le conoscenze sull'HTML per la realizzazione di pagine web semplici
- Conoscenza dei meccanismi per la realizzazione di pagine web dinamiche.
- Conoscenza dell'XML e della tecnica AJAX.
- Capacità di realizzare un sito web con utilizzo di programmazione lato server e client basata su pagine dinamiche e tecnica AJAX, e con utilizzo di una base dati relazionale remota
Prerequisiti / Conoscenze pregresse
Conoscenze sulla programmazione in C di livello avanzate. Conoscenze dei sistemi di gestione di basi dati relazionali e capacità di definire operazioni su di essi, in linguaggio SQL. Conoscenze sui principali protocolli per reti di calcolatori, con particolare riguardo a TCP, UDP, IPv4 e IPv6.
Programma
Introduzione: (0,2 CFU)
- modelli di elaborazione distribuita (client-server, peer-to-peer, 2-tier, 3-tier, ...)
- generalità relative ai protocolli applicativi (modalità di interazione, codifica dei dati, gestione delle sessioni, ...)
Programmazione di rete: (2,4 CFU)
- i socket
- le chiamate di procedura remota (RPC, RMI)
- scheletro di un client e di un server
- programmazione di rete in linguaggio C
Applicazioni distribuite basate sul paradigma web: (5 CFU)
- motivazioni
- il protocollo HTTP
- l'interfaccia di programmazione CGI ed i suoi limiti
- il linguaggio Javascript
- ambienti di scripting lato server (PHP)
- integrazione con le basi di dati
- gestione delle sessioni (cookie ed altri meccanismi)
- programmazione web (PHP)
- XML come tecnica per lo scambio di dati tra applicazioni eterogenee
- la tecnica AJAX
- cenni sui web services
Cenni su prestazioni e scalabilità delle applicazioni distribuite (0,4 CFU)


Organizzazione dell'insegnamento
Verranno svolte delle esercitazioni in laboratorio in cui si applicheranno le tecniche illustrate in aula.
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
Il docente fornirà materiale didattico (copia delle trasparenze) che sarà disponibile sull'apposito sito del corso.

Vengono consigliati i seguenti testi:
W.R. Stevens, B. Fenner, A. M. Rudoff, "Unix Network Programming", Volume 1, 3rd Ed., Pearson, 2004
R. Nixon, "Learning PHP, MySQL & JavaScript", O’Reilly, 2009


Criteri, regole e procedure per l'esame
Ai fini della valutazione finale verrà assegnato un esercizio di programmazione che comprende
- la realizzazione di un server e/o di un client di rete in linguaggio C
- la creazione di un sito web
Completerà l’esame un colloquio nel quale verranno discusse le soluzioni dell’esercizio assegnato, con riferimento al programma del corso


Orario delle lezioni
Statistiche superamento esami

Programma definitivo per l'A.A.2012/13
Indietro