Il corso fornisce agli studenti:
- competenze avanzate di programmazione concorrente e distribuita;
- approfondimenti delle tecniche di progettazione a oggetti, mediante l’uso dei pattern;
- conoscenze e competenze sulle tecnologie middleware.
A tal fine sono proposti lo studio del linguaggio Java e del middleware CORBA.
Argomenti:
Il linguaggio Java. La macchina virtuale. Ciclo di sviluppo. Ereditarietà. Polimorfismo. Eccezioni. I/O.
Programmazione concorrente in Java: la classe Thread e l’interfaccia Runnable. Priorità e scheduling dei thread. Sincronizzazione e mutua esclusione. Java networking: Le socket TCP e UDP. Schema di un server multithreaded. Accesso a basi di dati remote con JDBC.
Progettazione a oggetti. Richiami sull’object-orientation e sulla modellazione UML. Da UML a Java o C++: gerarchie, contenimento e associazioni tra classi. I pattern. Da UML a Java o C++: gerarchie, contenimento e associazioni tra classi. Progettazione a oggetti. L’importanza del riuso nella progettazione. I pattern. Enterprise Application Integration. Modelli di middleware: Chiamata di procedura remota (RPC), Accesso a Dati Remoti (RDA), Transazionale (TP), Spazio delle Tuple (TS), Orientato ai Messaggi (MOM), a Oggetti Distribuiti (DOM), a Componenti (CM). Lo standard CORBA.
2. La modellazione a oggetti e il linguaggio UML (richiami)
3. Generalità su Java e la programmazione ad oggetti
6. Regole di traduzione da UML a Java/C++
7. Programmazione multi-thread
8. Sincronizzazione tra thread
9. Programmazione client-server con socket TCP/IP (Java networkin...
10. Programmazione di applicazioni client-server: il Pattern Proxy...
12. Design Patterns
13. Pattern architetturali - Esempi
14. Design pattern creazionali. Esempi
15. Design pattern strutturali. Esempi
16. Introduzione alle tecnologie middleware
17. Modelli di middleware: RPC, MOM, TP, TS
Ha conseguito la laurea in Ingegneria Elettronica presso l’Università Federico II nel 1988, ed il Dottorato di Ricerca in Ingegneria Elettronica ed Informatica nel 1993.
È Professore Ordinario del settore scientifico “Sistemi di Elaborazioni delle Informazioni” presso la Facoltà di Ingegneria dell’Università Federico II, ove è stato Ricercatore dal 1994 al 1998 e Professore Associato dal 1998 al 2002.
È titolare degli insegnamenti di Programmazione II e di Sistemi Distribuiti.
È Presidente del Consiglio dei Corsi di Studio in Ingegneria Informatica, e Direttore del Laboratorio Nazionale “C. Savy” di Napoli del Consorzio Interuniversitario Nazionale per l’Informatica (CINI).
Guida il gruppo di ricerca MOBILAB sui Sistemi Distribuiti e Mobili del Dipartimento di Informatica e Sistemistica.
È autore di oltre 100 pubblicazioni scientifiche su riviste ed in atti di convegni internazionali, e coautore del testo “Introduzione a CORBA”.
I suoi interessi di ricerca riguardano l’ingegneria del software per i sistemi distribuiti mission-critical, e le tecnologie middleware per i sistemi di mobile e nomadic computing.