Questa è una vecchia versione del documento!
Indice
Laboratorio di Programmazione di Rete - corso B
Docenti: Andrea Corradini e Sonia Campa
Prerequisiti
- Laboratori dei primi due anni.
- Conoscenza del linguaggio Java, versione 1.5 o superiore, incluso packages, streams ed eccezioni.
Programma del corso
Il corso si pone l’obiettivo di fornire le conoscenze necessarie per la scrittura di applicazioni di rete 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
- Programmazione concorrente in Java con thread.
- Modello client/server, server seriali e concorrenti.
- Socket (lato cliente e lato servente) con TCP con indirizzi visti come coppie (nomehost, numeroporta).
- Accesso a servizi standard.
- Realizzazione di semplici server concorrenti e non.
- Indirizzi Inet.
- UDP.
- Accesso a servizi standard.
- Port scanning.
- Utilizzo di multicast.
- Implementazione di livelli diversi di affidabilità sopra UDP.
- Parte seconda: RMI.
- RMI.
- Relazioni con CORBA/RPC.
- Utilizzo di RMI per la realizzazione di semplici servizi di rete.
- Parte terza: Progetto.
- Assegnazione e discussione in aula del progetto conclusivo del corso.
Orario di lezione
Giorno | Orario | Aula | |
---|---|---|---|
Lunedì | 9–13 | H | esercitazione (due gruppi) |
Mercoledì | 11–13 | H | lezione |
Orario di ricevimento
Giorno | Orario | Luogo |
---|---|---|
Lunedì | 15–18 | Studio Corradini (Dipartimento di Informatica) |
Esami
- Modalità di esame: Progetto finale + orale.
- La traccia del progetto sarà disponibile entro le vacanze natalizie.
- La data di consegna verrà comunicata successivamente.
- Vanno consegnati sorgenti e relazione.
- L'orale consiste nella discussione del progetto e in domande sugli argomenti trattati nelle lezioni teoriche (soprattutto quelli non coperti dal progetto).
Materiale didattico
Il libro di testo consigliato è Harold, Java Network Programming Third Edition: October 2004 ISBN 10: 0-596-00721-3 ISBN 13: 9780596007218 Pages: 760, http://oreilly.com/catalog/9780596007218/. Questo libro è da intendersi come un manuale da consultare mentre si realizzano gli esercizi ed il progetto del corso. Non è un libro di reti. Assumeremo durante il corso che le nozioni necessarie siano fornite dal corso di Reti di Calcolatori, parallelo al corso di LPR.
E’ fondamentale la consultazione della documentazione on line di Java.
Esercizi
La pagina degli esercizi verrà regolarmente aggiornata con gli esercizi proposti nelle esercitazioni in aula H. Su questa pagina verranno anche pubblicate (appena discusse a lezione) le soluzioni proposte per gli stessi esercizi.
Note
Infine, sulla pagina delle note verranno pubblicate tutte le note di supporto al corso.
Ambiente di sviluppo
Ai fini del corso la versione di Java da utilizzare è la 1.5. Si può ovviamente utilizzare la più recente 1.6, senza però utilizzare caratteristiche “nuove”, salvo nei casi indicati esplicitamente dal docente.
L’ambiente di programmazione consigliato è Eclipse ma al fine del superamento dell’esame è fondamentale conoscere anche il funzionamento dell’ambiente standard Java da riga di comando.
Lezioni
Il registro delle lezioni è disponibile sulla a questo link