Programmazione Avanzata in Java
- Codice corso: DV/JAVA2
- Durata corso: 5gg
INTRODUZIONE
Questo corso permette di approfondire le conoscenze sulle tecnologie di connettività di rete attraverso Sockets e Remote Methode Invocation (RMI) e sulla programmazione multi-thread in ambito Java.
OBIETTIVI DEL CORSO
Fornire tutto il know-how necessario per comprendere gli aspetti essenziali della programmazione di applicazioni distribuite e multi livello.
PREREQUISITI
È necessario aver appreso i fondamenti della programmazione Java, in particolare:
- Input/Output
- Conoscenza base di sockets
- Conoscenza base dei thread
- Concetti legati ai protocolli TCP e UDP
STRUTTURA DEL CORSO
Introduzione alle applicazioni distribuite
Introduzione ai Thread
- Processi e Multitasking
- Thread e Multithread
- Contesto di un processo
- Caratteristiche dei thread
- Modelli implementativi di multithreading
- Java Thread
- Programmazione concorrente in Java
- Sottoclasse di Thread
- Implementazione di Runnable
- Classe Thread vs Interfaccia Runnable
- Ciclo di vita di un thread
Sincronizzazione e ciclo di vita di un Thread
- Metodi per il controllo di un thread
- Il problema di stop() e suspend()
- Priorità dei thread in Java
- Scheduling
- Sincronizzazione di thread
- Metodi di sincronizzazione
- Gruppi di thread
- Daemon thread
Introduzione ai Socket e alla programmazione di rete
- Sistema di Nomi
- Nomi per Socket
- End Point
- La programmazione di rete in Java
- La Classe InetAddress
- La Classe URL
- Socket STREAM
- Asimmetria, Simmetria
- Socket Stream in Java
- API Lato Client
Interazione tra processi tremite Socket
- Operazioni di supporto
- Operazioni di comunicazione
- Esempi di Input/Output da socket streams
- API Lato Server
- Operazioni di supporto
- Server Parallelo con connessione
- Socket DATAGRAM
- La Classe DatagramPacket
- Opzioni sulle socket
- Socket Multicast
- Esempi di Azioni Multicast
RMI
- Remote Method Evaluation
- Comunicazione RMI
- Struttura RMI
- Java RMI
- Garbage Collection
- Architettura RMI
- La serializzazione
- Interazione Client/Server: Socket e Thread
- Stub
- Skeleton
- Interfacce e Implementazione
- RMI Registry
- Operazioni di Naming
Operazioni di Deploying
- Uso del registry
- Distribuzione delle classi
- Localizzazione del codice