| | | corso | | | | |
Laboratorio di programmazione di rete B
Codice: | AA018 | Crediti: | 6 | Semestre: | 1 | Sigla: | LPR | |
|
Settore disciplinare: | INF/01 - Informatica |
Docente
Marco Danelutto
Tel. 0502212742Prerequisiti
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 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 acquisirà le conoscenze delle 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 è in grado di utilizzare le gli strumenti e le tecnologie di base (socket e oggetti remoti) di supporto al progetto, realizzazione e testing di applicazioni di rete non banali.
Comportamenti. Lo studente al termine del laboratorio ha acquisito una livello di autonomia che permette di valutare le tipologie differenti di applicazioni di rete e le tecnologie necessarie per il loro progetto 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 di 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 to provide the basic knonwledge necessary to develop
(simple) network applications (WEB, file transfer, email, chat,
etc.).
In particular, the knowledge necessary to use 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 given that use
the primitive RMI Java mechanism.
Indicazioni metodologiche
Per conseguire gli obiettivi indicati, è necessario:
- organizzare il processo di apprendimento in moduli flessibili, posti in sequenza logica;
- presentare in modo approfondito i diversi paradigmi di programmazione
- presentare in modo approfondito i diversi meccanismi di programmazione
- evidenziare i limiti delle tecniche presentate in modo da favorire il formarsi di una capacità critica nello studente;
- coordinarsi con i docenti dei corsi indicati nei prerequisiti e dei corsi paralleli del semestre;
- proporre l’analisi di casi di studio tratti da esperienze reali riportate in letteratura o derivanti da ricerche del docente;
- separare gli aspetti e le scelte puramente tecnologiche da quelle funzionali alla soluzione di un problema di natura applicativa.
Programma
Il corso si pone l’obiettivo di fornire le conoscenze necessarie per 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 più ad alto livello: RMI, CORBA ed RPC. In particolare, verranno svolti esercizi utilizzando Java RMI.
- Introduzione: La programmazione di applicazioni di rete
- Paradigmi per la programmazione di applicazioni di rete
- Programmazione Programmazione con socket TCP e con socket UDP
- Middleware di programmazione ad oggetti: Remote Method Invocation (RMI)
- Assegnazione e discussione del progetto conclusivo del corso
La durata delle varie parti del corso (comprensive di lezioni frontali per il richiamo dei concetti da utilizzare, preseumibilmente già visti nel corso di reti e per l'introduzione delle API Java da utilizzare e delle relative esercitazioni e discussione delle soluzioni) sarà di circa 6 ore per la parte iniziale, 4 ore per l'assegnazione del progetto, 15 ore per la parte sui socket e 15 ore per la parte su RMI.
Bibliografia
Harold, JAVA Network Programming Third edition (O'Reilly). 2005
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.