MokaByte
Numero 31 - giugno 1999
|
||||
|
|
la pratica |
||
|
|
|
||
Partiamo dal memento della puntata precedente e ne realizziamo una versione remotizzata. Al solito, qui trovate il sorgente |
||
L'abituale chiosa... ;-)Visto che si è parlato di RMI mi piacerebbe schematizzarne la struttura con UML, in modo da averne una visione di insieme...
Rendere "remoto" il mementoOra torniamo pure alla nostra applicazione...Se vi rammentate, nella puntata precedente avevo introdotto il concetto di Storage, un attore capace di... "gestire la memorizzazione da qualche parte (di solito su disco), a lui NON interessa da dove arrivano gli stati da salvare", tanto per citarmi. Questa volta vediamo l'esempio di un caretaker (l'attore che salva gli state) remoto, cioè una classe che incapsula le chiamate via RMI (trappando le eccezioni) e che quindi vi permette di trattare con uno Storage locale (che voi VEDETE come locale) ma che ridirige ogni sua funzionalità ad un VERO Storage istanziato su un'altra macchina. La situazione è analoga a quella vista per lo schema del RMI, abbiamo un RemoteStorageClient che IMPLEMENTA la stessa interfaccia di uno Storage reale (entrambi implementano infatti StorageI). RemoteStorageClient parla con RemoteStorageServer via RMI, ogni metodo dello Storage è replicato per delega prima dallo RemoteStorageServer (che infatti possiede un'istanza di StorageI) e poi anche dallo RemoteStorageClient, abbiamo quindi un doppio salto prima di arrivare allo Storage effettivo.
Avrei
anche potuto saltare il doppio passaggio "client -> server -> storage"
e remotizzare direttamente uno storage, ma avrei perso la possibilità
(che ora invece sfrutto spesso ;-) di usare un RemoteStorageClient al posto
di uno Storage qualsiasi, senza dover cambiare il sorgente di chi usa lo
storage stesso (infatti avrei dovuto curare la cattura delle eccezioni
ad ogni chiamata di metodo).
Come usare l'esempioScompattate lo zip (mantenendo la gerarchia) e avrete già tutto compilato e pronto da lanciare:
Alla prossima puntataSpero di avervi interessato, come al solito vi esorto a farmi domande e commenti, sia direttamenteche su JAVA-IT. |
||
|
||
|
||
www.mokabyte.it La redazione di MokaByte ricerca nuovi collaboratori. Chi volesse mettersi in contatto con noi può farlo scrivendo a mokainfo@mokabyte.it |
||
|