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
E' necessario aver appreso i fondamenti della programmazione Java, in particolare:
Input/Output
Conoscenza base di sockets
Conoscenza base dei thread
E' inoltre necessaria una conoscenza base dei 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