| | | corso | | | | |
Laboratorio di programmazione di rete B
Codice: | AA018 | Crediti: | 6 | Semestre: | 1 | Sigla: | LPR | |
|
Settore disciplinare: | INF/01 - Informatica |
Docente
Gianluigi Ferrari
Tel. 0502212766Prerequisiti
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.
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 mpone 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 cient/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 (2 ore)
- Paradigmi per la programmazione di applicazioni di rete (4 ore)
- Programmazione Programmazione con socket TCP e con socket UDP: (16 ore)
- Middleware di programmazione ad oggetti: Remote Method Invocation (RMI) (16 ore)
- Applets e Security (4 Ore)
- Assegnazione e discussione del progetto conclusivo del corso (4 ore)
Ore lezione: | 24 | Ore esercitazione: | 24 | | | |
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.
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.