Il corso fornisce agli studenti:
A tal fine sono proposti lo studio del linguaggio Java e del middleware CORBA.
Programmazione I
Sistemi operativi
Ingegneria del Software
Reti di calcolatori I
Il linguaggio Java.
Programmazione concorrente in Java (Java multi-threading)
Programmazione di rete in Java (Java networking)
Progettazione a oggetti
I pattern
La problematica dell’Enterprise Application Integration.
Modelli di middleware:
Lo standard CORBA.
Il linguaggio Java. Introduzione al linguaggio. La macchina virtuale Java. Il bytecode. Ciclo di sviluppo dei programmi. Tipi di dato. Scambio parametri. La gestione della memoria. Ereditarietà. Polimorfismo. Gestione delle eccezioni. Il sistema di I/O. (Dal testo J1: Capp. 1, 2, 4, 5, 6, 7, 9, 12, 13. Dal testo J4 Capp. 7, 9, 10)
Programmazione concorrente in Java. Creazione di un thread in Java: la classe java.lang.Thread e l’interfaccia Runnable. Ciclo di vita di un thread. La priorità di un thread. Selfish Thread. Scheduling dei Thread. Mutua esclusione e meccanismi di sincronizzazione: monitor, mutex e condition variablesIl package java.util.concurrent: variabili atomiche, semafori, barrier e lock. . Il problema Produttore/Consumatore in Java. (Dal testo consigliato J1: Cap. 13; dal testo J2, Cap. 7)
Java networking. Il package java.net. Le classi URL, URLConnection e InetAddress. Le socket TCP in Java: la classe Socket e la classe ServerSocket. Server multithread. Le socket UDP: le classi DatagramPacket e Datagram socket. JDBC. (Dal testo consigliato J3: Cap. 14 §§1, 2, 3, 4; Cap. 16 §§1, 2, 3, 4, 5; Cap. 20 §§1, 2, 3, 4, 5)
Modelli di middleware. Definizione e proprietà del livello middleware. Enterprise Application Integration (EAI). Modelli di sistemi middleware: chiamata di procedura remota (RPC), scambio di messaggi (MOM), elaborazione transazionale (TP), spazio delle tuple (TS), accesso a dati remoti, oggetti distribuiti (DOM), componenti (CM). (Dal testo IC: Cap. 1)
Lo standard CORBA. L’architettura OMA. Il CORBA Component Model (CCM). Il linguaggio IDL. Regole di traduzione da IDL a Java. Programmazione CORBA lato cliente e lato servente. I servizi di Naming e Trading. Distributed callback. Il servizio degli eventi. Il servizio di notifica. Studio di un caso. (Dal testo adottato IC: Capp. 2; 3; 4; 5; 6 da 6.1 a 6.6; 7; 8; 9; 12; Appendice B)
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