POLITECNICO DI BARI I FACOLTA' DI INGEGNERIA Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria delle Telecomunicazioni Corso di Laurea in Ingegneria dell’Automazione A.A. 2006-2007 Telematica II Ing. Michele Ruta Programma di insegnamento Obiettivo del corso di Telematica II è presentare le problematiche relative al layer applicativo dello stack TCP/IP e di fornire gli strumenti necessari alla progettazione e implementazione di applicazioni di tipo client/server. Data la diffusione e la semplicità di utilizzo, il linguaggio di programmazione adottato è Java(TM) 2. Il corso è strutturato in tre parti fra loro complementari: la prima fornisce una panoramica del linguaggio Java, la seconda è focalizzata sugli aspetti teorici relativi ai protocolli applicativi di uso comune; la terza è incentrata sugli aspetti implementativi. Conoscenze Propedeutiche: • Modelli ISO/OSI e TCP/IP • Principi della programmazione strutturata. Argomenti del corso: I Parte (6 ore) • Introduzione alla OOP, cenni di UML, concetti fondamentali sul linguaggio Java, tipi di dati, operatori, istruzioni. • Metodi, array, gestione della memoria, stringhe e metodi per la loro manipolazione. • Creazione di un ADT in Java, composizione, ereditarietà, polimorfismo, package. II Parte (14 ore) • Modello ISO/OSI, TCP/IP, modello client/server, socket, requisiti delle applicazioni. • il Web, HTML, URL, URI, URN, User Agents, Protocollo HTTP: request, response, connessioni persistenti, metodi GET, POST, HEAD, PUT, DELETE, status codes, cookies, autenticazione, proxy server, caching, AJAX, Apache Web server. • Protocollo FTP: connessioni dati e di controllo, rappresentazione dei dati, comandi, repliche, gestione connessioni, server vsFTPd. • La posta elettronica: SMTP, POP3, IMAP. • Protocollo DNS: gerarchia dei nomi, risoluzione iterativa e ricorsiva, formato dei messaggi, comandi nslookup, host, dig, whois, server BIND. • Voice over IP: protocolli SIP, SDP, RTP: principi di funzionamento, formato dei messaggi e applicazioni. • Reti peer-to-peer; protocollo BitTorrent: principio di funzionamento, formato dei messaggi. • Sicurezza, crittografia. III Parte (8 ore) • Gestione delle eccezioni, socket, server TCP. • Client TCP, uso dell'ereditarietà per creare i server, esempi di server: echo, time, mini-ftp. • Server UDP, multithreading, server multithreading (cenni) Testi di riferimento principali: • Computer Networking A Top-Down Approach Featuring the Internet, J. Kurose and K. Ross, Addison Wesley • Core Java 2, Volume 1-Fondamenti, C.Horstmann, G. Cornell – Pearson Edu. • Java Network Programming, E.Harold, O'Reilly Ulteriori testi suggeriti: • TCP/IP Illustrated, Volume 1, The protocols, W. R. Stevens, Addison Wesley • Core Java 2, Volume 2 – Tecniche avanzate, C.Horstmann, G. Cornell – Pearson Edu. • Thinking in Java (II edizione), B.Eckel, Apogeo • Java J2SE 5 La guida completa, H.Schildt – McGraw Hill