Newsgroup: it.comp.java
Titolo: Una domanda su RMI....è gradita anche una risposta. GRAZIE :-))

E' possibile utilizzando RMI far si che il server, di sua "iniziativa",
contatti il client per spedirgli dati o perlomeno per comunicargli che nuovi
e più recenti dati sono disponibili?
Questa domanda deriva dall'idea, forse errata, che mi sono fatto del
funzionamento di un'applicazione distribuita con RMI.
Infatti ho capito che il server mette a disposizione degli oggetti ed il
client può utilizzarli come se li avesse in locale. Tutto ciò funziona
tramite l'attivazione di uno o più metodi da parte del client.
Ora io vorrei che quando sul server è disponibile un nuovo oggetto il server
stesso comunichi questa informazione al client.
Come posso fare? Devo abbandonare RMI e ripiegare sui Socket?
Grazie mille anticipatamente a chi mi saprà indicare la strada...
Un saluto
Oettam

Io ho fatto l'altro post su rmi quindi non sono il più adatto a rispondere,
per quello che ho letto però, una classe è caricata da remoto, se la classe
è aggiornata in remoto, l'applicativo in locale utilizzerà quella classe
aggiornata, senza necessari aggiornamenti.
Infatti è come se tu bevessi l'acqua direttamente da una fonte senza passare
per il bicchiere.
Se l'acqua diventa vino,berrai vino - punto e stop.
Se invece vuoi aggiornare le tue classi locali, facendo il download ogni
tanto, credo che la cosa sia un poco diversa.
Quello che invece ho notato è che è sempre il client a controllare su un
server eventuali aggiornamenti, utilizzando un temporizzatore, e non
viceversa.
Inoltre chissà cosa succederebbe se in quel momento il client non fosse
collegato.. si perderebbe l'aggiornamento ?
Invece lasciando al client il lavoro di "controlla aggiornamenti", saresti
sicuro di poter controllare il momento esatto in cui avverrebbero e le
condizioni in cui lo fai (programma in esecuzione ma "libero da impegni",
connessione di rete presente,ultimo aggiornamento scaricato, etc etc).
Eventualmente potresti fare una classe di controllo, che ogni giorno
controlla se la sua versione è aggiornata, punto e stop- Se lo è si
ferma,altrimenti ricorda che è disponibile una versione aggiornata, senza
bloccare a tutti i costi il lavoro di un utente "di fretta" (penso a me che
scarico la posta,alla mattina di corsa, e a IE che mi dice "e' disponibile
una versione più aggiornata di IE" e io dico "mavaff sono di fretta, sempre
ste cagate" :-))
Con RMI però questo problema non dovrebbe esserci perchè RMI presuppone che
la classe remota aggiornata sia sempre a disposizione.
Se ho cannato qualcosa, sarò ben lieto di avere delucidazioni dato che ho
appena iniziato a leggere e se dovessi commettere errori di interpretazione
inquello che ho letto, sarei più che felice nell'avere bacchettate sulle
dita :-)
J

 ha scritto nel messaggio
news:NXvR7.4667$Yj1.1...@news2.tin.it...


 ha scritto nel messaggio
news:9v711v$ip5$1...@fe2.cs.interbusiness.it...


Ti ringrazio per l'intervento, tutta la partecipazione è sempre ben gradita.
Io sono alle prime armi e devo completare un progetto Universitario per fine
Febbraio in da poter registrare l'esame...:-))
Sicuramente farò molte stupidate e per questo con la collaborazione di tutti
cerco di evitarle.
Leggi pure la risposta che ho dato ad Alessio Bernesco che precisa il mio
problema.
Oettam
"J" <jj@thecloud.o> ha scritto nel messaggio
news:9v64b8$ga4$1...@serv1.iunet.it...


 metodo sul primo...""
beh, ocho ai riferimenti circolari ;)
Ciao ed in bocca al lupo


Beh, strumenti in giro ce ne sono parecchietti. L'ultimissimo "buzz" e' JXTA, un
infrastruttura per realizzare sistemi peer-to-peer in java (
www.jxta.org
). Molto tempo fa,
quando ancora peer-to-peer non riempiva le bocche del marketing, gia' esisteva JSDT
(
http://java.sun.com/products/java-media/jsdt/index.html
) ora riciclato in diversi altri
progetti (ehm... tra cui anche JXTA :-D).
In alternativa, nulla ti vieta in fase di _implementazione_, di implementare non un
sistema "reale" di callback (== chiamata all'indietro) da server a client, ma un sistema
in cui il client fa polling del server: questo ovviamente solo nell'implementazione, dal
punto di vista del tuo modello ad oggetti tu usi callback.
Spero di averti dato qualche dritta: fatti sentire sul NG per altre delucidazioni, mi 
raccomando! 
Ciao,
    Bruno.
|
| Bruno Bossola
| A Java Software Engineer :-)
| 
http://bbruno.fasturl.it
|
| 
http://members.xoom.it/bbruno
| 
http://digilander.iol.it/bbossola
|