Originariamente inviato da neidus
Se qualcuno conosce questo tipo di pattern, può vedere se sbaglio qualcosa nell'implementazione?

Protocollo usato TCP, quindi classi Socket e ServerSocket

Classe Client= genera i thread che devono inviare richieste al Server

Classe ClientThread= nel costruttore crea la Socket client, ridefinisce il metodo run(), selezionando quanto deve essere mandato come richiesta, crea un'istanza del Proxy lato client, e su di esso invoca un metodo dell'interfaccia base.

Classe Proxy Client= implementa i metodi che sono definiti nell'interfaccia, inviando per ogni tipo di metodo quello che serve, tramite i canali di I/O, al Server e leggendo quanto gli viene inviato dal server
In realtà tu hai una interfaccia e dichiari che il tuo client è in grado di soddisfarla, in questo proxy non ne vedo.
sai già a priori quali sono le richieste (quindi automatiche) o devi gestirle? In genere è un client che fa una richiesta al thread, quasi sempre il client (per quanto riguarda il lato richiesta) è mono-thread.
Dimentichi che il client si rivolge da una interfaccia chiedendo un servizio, mettere qui l'interfaccia e i thread è una forzatura che non c'entra molto con l'applicazione del pattern.


Originariamente inviato da neidus
Classe Skeleton= gestisce la connessione lato server, implementa l'interfaccia definita e lascia indefiniti i metodi della stessa, legge quanto scritto dal client sul canale, e invoca un thread skeleton, passano socket di connessione, riferimento all'interfaccia e dati del pacchetto dopo aver fatto unmarshalling.

Classe SkeletonThread= costruttore, dove legge i dati passati dallo Skeleton, crea un canale di scrittura su Stream per scrivere i dati ottenuti dall'invocazione del metodo richiesto, per restituirli al client.
vorrei capire tu cosa intendi per "gestisce la connessione lato server".
Quello che tu definisci "skeleton" in realtà non è altro che la tua interfaccia (anche se ovviamente on instanzi nessuna interfaccia).
Vedila così, quando fai una connessione ad un server, ti connetti a qualcuno che dichiara di essere in grado di fare qualcosa. Se ti risponde il proxy o il server reale a te no importa.

Originariamente inviato da neidus
Classe ServerReale= implementa effettivamente cosa devono fare i metodi definiti nell'interfaccia creata.

Classe Server= istanzia un obj serverReale su cui richiama l'esecuzione dello skeleton

Grazie mille.
Per capire una applciazione di questo puoi provare a capire bene come funziona RMI che in pratica applica questo pattern.
E' sempre ben chiaro avere lo schema del pattern a vista

proxy

con relativi esempi