Programmazione Applicazioni Client Server Docente: Alberto Pravato Semestre: 2o Crediti: 6 Settore scientifico-disciplinare: INF/01 (Informatica) Ore di lezioni/esercitazioni: 40 Ore per attività integrative: 8 Modalità di esame: Prova scritta e, a scelta, colloquio orale o progetto. Esame coordinato con: Esami propedeutici: Basi di dati e sistemi informativi; Reti di calcolatori. Obiettivi: Lo scopo del corso è anzitutto chiarire gli aspetti relativi ai sistemi enterprise (sistemi client/server, distribuiti, Web oriented e loro integrazioni) come costruirli e quali effetti possano avere sulle organizzazioni che intendano utilizzarli, fornendo un approfondimento sugli aspetti di apertura, interoperabilità e scalabilità. Il corso intende poi fornire allo studente una preparazione sulle tecniche di strutturazione di applicazioni distribuite e sull'utilizzo di nuovi strumenti di programmazione per l'interfacciamento con database server e per la programmazione a componenti distribuiti (come CORBA, DCOM ed EJB) anche in Web. Programma: Introduzione (4 ore). Contenuti e obiettivi del corso; tecnologia client/server (C/S) a livello di sistema; modello C/S; C/S nella realtà; applicazioni enterprise e loro integrazioni. Progettazione C/S (8 ore): Separazione dei compiti tra entità distribuite; bilanciamento dei carichi; architetture 2tier e multi-tier; distribuzione delle risorse; scalabilità; cenni alla progettazione di applicazioni enterprise usando UML. C/S nei database (8 ore). SQL dinamico; scelte implementative in ambito C/S (quando e perché usare stored procedure, trigger, application server e multi-tier); ODBC e JDBC: connessioni, esecuzioni (gestione dei record set); OLAP: database multidimensionali, operazioni drill-down e rolling-up. Software a componenti distribuiti (13 ore): Fondamenti teorici sulla programmazione a componenti: differenze tra oggetto e componente, interfacce, polimorfismo, ereditarietà e incapsulamento; la tecnologia CORBA; la tecnologia DCOM; introduzione alla tecnologia J2EE (EJB). C/S in Web (7 ore): Il Web e il protocollo HTTP; estensioni ai server Web: via API, via programmazione CGI, via server side include e via Java Servlet; programmazione dal lato Client: realizzazione di Applet Java, JavaScript. Libri di testo: P. E. Renaud. Introduction to Client/Server Systems. Second Edition. John Wiley & Sons 1996. C. Szyperski. Component Software. Addison Wesley 1998. Libri di consultazione: C. T. Arrington, Susan Cardinale, Hugo Scavino. Enterprise Java with UML. John Wiley & Sons 2000. M. Hall. Web Programming. Prentice Hall 1998.