====== Laboratorio di Programmazione di Rete Anno Accademico 2009-10 ====== ====== Polo Didattico La Spezia ====== ===== Docente: Laura Ricci ===== ===== Orario delle Lezioni ===== |Lunedì | 9-11 |Aula A7| |Lunedì | 11-13 |Laboratorio 2 | ===== Orario di Ricevimento ===== Giovedì ore 15.00-18.00, Pisa presso il mio Studio Per qualsiasi problema potete contattarmi in qualsiasi momento via e-mail ===== Programma Preliminare ===== **Thread Programming in JAVA** * Attivazione di threads. La classe Runnable * Pool di threads: politiche per la gestione dei Pool * Thread che restituiscono risultati: la classe Callable * Stati di un thread, metodi join, interrupt * Sincronizzazione, concetto di monitor * Metodi Synchronized, sezioni critiche, wait(), notify(), notifyall() **Gestione di indirizzi IP** * Classe InetAddress **JAVA streams ** * caratteristiche generali **Sockets UDP** * DatagramSockets, DatagramPackets * Generazione di pacchetti UDP: Le classi ByteArrayInputStream, ByteArrayOutputStream **Sockets TCP** * Le classi Socket, ServerSocket * Invio di dati strutturati su stream: framing * supporto per la gestione di socket TCP * Implementazione di servers paralleli **Remote Method Invocation** * Attivazione di registry * Esportazione di oggetti remoti * RMI callbacks ===== Materiale Didattico ===== ** Lucidi del Corso ** **Libri di Testo** * Esmond Pitt, ** Fundamental Networking in Java**, ISBN 1-84628-030-3, Springer Verlag, 2005 NOTA BENE :Una copia di questo libro è disponibile presso il tutor didattico * Bruce Eckel, ** Thinking in JAVA, Volume 3 - Concorrenza e interfacce grafiche**, Pearson Education Italia, 2006 * Brian Goetz, ** Java Concurrency in Practice **, Addison-Wesley, 2006. **Testi di Consultazione** * Harold, **JAVA Network Programming** 3nd edition O'Reilly, 2004. * K.Calvert, M.Donhaoo, TCP/IP Sockets in JAVA, Practical Guide for Programmers **Costrutti di base di JAVA:riferimenti ** * Cay Horstmann – Concetti di Informatica e Fondamenti di Java 2 [[http://projects.cli.di.unipi.it/LIP/|Corso di LIP: Fondamenti di JAVA]] ===== Modalitá d'esame ===== **Progetto+Orale ** ***Progetto** Il progetto può essere svolto in gruppi di massimo due persone. Il progetto verrà consegnato alla fine di aprile e rimarrà valido fino alla fine di aprile 2011. Il progetto può essere consegnato in un qualsiasi momento (via e-mail), escluso il periodo 20 luglio 2010 - 31 agosto 2010. Gli studenti che non hanno frequentato le lezioni di laboratorio (studenti lavoratori) sono pregati di mettersi in contatto con me prima dell'inizio dello svolgimento del progetto ***Orale**: verte sulla discussione del progetto e in generale sugli argomenti trattati nel corso. Tutti gli studenti che consegneranno una soluzione corretta degli esercizi assegnati a lezione, entro 15 giorni dalla presentazione degli esercizi, otterranno un 'bonus' per l'esame finale ===== Progetto di Fine Corso ===== * ** {{http://www.di.unipi.it/~ricci/progettospezia0910.pdf|ConnectionBook: Un Sistema Per La Gestione Di Social Networks}} ** Modalità di Consegna del Progetto * **Il Progetto è valido fino al 30 aprile 2011 ** * E' possibile consegnare il progetto in uno qualsiasi momento, escluso i periodi di vacanze * L'esame (discussione del progetto+ orale) si terrà circa una settimana dopo la data di consegna ===== Materiale Integrativo ===== [[http://www.di.unipi.it/~ricci/ipmlt_wp.pdf | Tutorial sull'Assegnazione di Indirizzi di Multicast]] [[http://www.di.unipi.it/~ricci/TalkMsg.java | TalkMsg.java, una classe di Supporto per l'esecuzione dell'esercizio assegnato nella lezione n.7 ]] =====Registro delle lezioni:===== ^ Giorno ^ Argomenti ^ Lucidi ^ Data Ultimo Upload ^ |22/02/2010 |Introduzione al Corso, Thread Programming | Thread: Attivazione, Interruzioni, Thread Pooling | 25/2/2010 | |01/03/2010 |Thread Pooling, Callable, Indirizzi IP | Thread Pooling, Callable, Inetaddress | 1/3/2010 | |08/03/2010 |TCP sockets, Filtri | Filtri, Modello Client/Server, TCP Sockets | 7/3/2010 | |15/03/2010 |Implementazione di Socket TCP | TCP:Implementazione | 14/3/2010 | |22/03/2010 |Thread: Sincronizzazione | Wait(), Notify(), NotifyAll() | 12/3/2010 | |14/04/2010 |Correzione dell'esercizio assegnato il 22/3/2010 | Esercizio | 22/3/2010 | |19/04/2010 |UDP Sockets, Datagram | DatagramPacket, DatagramSocket | 20/04/2010 | |26/04/2010 |UDP Multicast, Thread Pool: Politiche di Saturazione | Multicast, Saturazione | 25/04/2010 | |03/05/2010 |Remote Method Invocation | RMI | 03/05/2010 | |10/05/2010 |Correzione esercizio del 22/3/2010: Versione con Priorita' + Preemption | |22/3/2010 | |17/05/2010 |Callbacks, Thread Miscellanea | CallBacks | 17/05/2010 | ===== Collegamenti alle pagine dei Corsi degli Anni Precedenti ===== [[labprogretespezia0708]] [[labprogretespezia0809]]