elenco    
        corso    

Laboratorio di programmazione di rete B

Codice: AA018Crediti: 6Semestre: 1Sigla: LPR 
 
Settore disciplinare: INF/01 - Informatica

Docente

Andrea Corradini   andrea@di.unipi.it  Stanza 357  Tel. 0502212786

Prerequisiti

Laboratori del primo e secondo anno, conoscenza del linguaggio di programmazione Java.

Obiettivi di apprendimento

Il laboratorio si pone l'obiettivo di fornire le conoscenze di base necessarie per la progettazione e realizzazione di (semplici) applicazioni di rete (applicazioni client-server, applicazioni peer-to-peer). Il laboratorio pone una enfasi particolare nella sperimentazione di paradigmi per la programmazione di applicazioni di rete.
Conoscenze. Lo studente al termine del laboratorio avrà acquisito familiarità con le tecniche di base per programmare applicazioni di rete sia tradizionali (client-server) che innovative (peer-to-peer) in termini di comunicazione via socket (socket TCP, socket UDP e Multicast) e programmazione con oggetti remoti.
Capacità. Lo studente al termine del laboratorio sarà grado di utilizzare gli strumenti e le tecnologie di base (socket e oggetti remoti) per la realizzazione e il testing di applicazioni di rete non banali.
Comportamenti. Lo studente al termine del laboratorio avrà acquisito un livello di autonomia che permetta di valutare le tipologie differenti di applicazioni di rete e le tecnologie necessarie per la loro progettazione e realizzazione. Sarà inoltre cosciente delle problematiche inerenti al testing di applicazioni di rete in contesti operativi.

Descrizione

Il corso fornisce le conoscenze di base necessarie per lo sviluppo di (semplici) applicazioni di rete (WEB, trasferimento file, posta elettronica, chat, etc.).
In particolare, fornisce tutte le basi necessarie al corretto utilizzo dei thread in Java i dei socket (indirizzi, socket TCP e UDP, modello orientato alla connessione e senza connessione, comunicazioni punto a punto e multicast/broadcast, modello client/server). Inoltre, verranno presentate le caratteristiche base di meccanismi a più alto livello (RMI/CORBA/RPC) e verranno svolti esercizi utilizzando il meccanismo RMI, primitivo in Java.

English Description

The course aims at providing the basic knonwledge necessary to develop (simple) network applications (WEB, file transfer, email, chat, etc.).
In particular, the knowledge necessary to use Java threads and sockets (addresses, TCP and UDP sockets, connection-oriented and connectionless models, point to point and multicast/broadcast communications, client/server model) will be provided.
Furthermore, the basic features of higher level programming models (RMI/CORBA/RPC) will be discussed; exercises will be proposed that use the primitive RMI Java mechanism.

Indicazioni metodologiche

Per conseguire gli obiettivi indicati, è necessario:

Programma

Il corso si pone l’obiettivo di fornire le conoscenze necessarie per la scrittura di programmi distribuiti tramite l'utilizzo di socket (indirizzi, URL, socket TCP e UDP, modelli connection- oriented e connectionless, comunicazioni punto a punto, multicast e broadcast, modello client/server). Saranno inoltre presentate le caratteristiche base di modelli di programmazione distribuita più ad alto livello, come RMI, CORBA ed RPC. In particolare, verranno svolti esercizi utilizzando Java RMI.

Parte prima: multithreading e socket
Parte seconda: RMI. Parte terza: Progetto.
 Ore esercitazione: 24Ore laboratorio: 24  

Bibliografia

Harold, JAVA Network Programming, Third edition (O'Reilly), 2004  (http://oreilly.com/catalog/9780596007218/)
Hughes et al. JAVA Network Programming 2nd edition (Manning). 2001
Dispense e note didattiche distribuite dal docente (prevalentemente mediante pubblicazione sulla pagina WEB del corso).

Modalità di esame

Realizzazione e discussione di un progetto di programmazione. Il progetto di programmazione è un caso di studio derivato da casi di studio e/o applicazioni reali.

Ulteriore pagina web del corso: http://www.cli.di.unipi.it/doku/doku.php/lpr-b/start


home


email