en
Politecnico di Torino
Anno Accademico 2011/12
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 43 13 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:
- i socket (2,4 CFU)
- 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 (ASP)
- integrazione con le basi di dati
- gestione delle sessioni (cookie ed altri meccanismi)
- programmazione web (ASP)
- XML come tecnica per lo scambio di dati tra applicazioni eterogenee
- la tecnica AJAX
Cenni su prestazioni e scalabilità delle applicazioni distribuite (0,4 CFU)
Programma (Prof. R. Sisto)
Introduction:
- distributed interaction models (client-server, peer-to-peer, 2-tier, 3-tier, ...)
- application protocol features (interaction models, data encoding, session management, ...)
Network programming:
- the socket interface
- remote procedure calls (RPC, RMI)
- client and server skeletons
- network programming in the C language
Distributed applications based on the web paradigm:
- motivation
- the http protocol
- the CGI programming interface and its limitations
- the Javascript language
- scripting in the server-side (PHP)
- integration with data bases
- managing sessions (cookies and other mechanisms)
- web programming (PHP)
- XML as a technique for data exchange among distributed applications
- the AJAX technique
Remarks on performance and scalability of distributed applications


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 materiale verrà fornito dal docente e sarà disponibile sull'apposito sito del corso.

R. Stevens, 'Unix Network Programming', Addison Wesley.
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico (Prof. R. Sisto)
The material will be provided by the teachers and will be available on the web site.

R. Stevens, 'Unix Network Programming', Addison Wesley.
R. Nixon, "Learning PHP, MySQL & JavaScript", O'Reilly


Criteri, regole e procedure per l'esame
Lo studente dovrà sviluppare durante il corso le seguenti applicazioni:
- creazione di un server di rete in linguaggio C
- creazione di un sito web
Lo studente dovrà inoltre sostenere una breve prova scritta di teoria
Criteri, regole e procedure per l'esame (Prof. R. Sisto)
Students will be assigned two exercises to be presented at each exam:
- one exercise about network programming
- one exercise about web programming
The solutions to the exercises must be submitted by the given deadline.
Oral discussion concludes the exam.


Orario delle lezioni
Statistiche superamento esami

Programma definitivo per l'A.A.2011/12
Indietro