PDA

View Full Version : [JAVA RMI] Parametri dei metodi remoti


Ed_Bunker
03-08-2005, 11:40
Ciao, mi sembra di aver capito che il passaggio di parametri a metodi remoti (Messi a disposizione da un server RMI) possa avvenire per riferimento (Come solito nella semantica di Java) o per valore. Qua il mio dubbio:
nel secondo caso ogni modifica da parte dei metodi del server sull'oggetto non dovrebbe avere ripercussioni sull'oggetto originale (Residente nella macchina del client).
Nel secondo caso, invece, la modifica da parte del server (Remoto) sull'oggetto ricevuto come parametro sarebbe percepita anche da parte del client (Che ha invocato il metodo) ?

Per far si che il passaggio avvenga per riferimento l'oggetto che viene passato deve implementare sia l'interfaccia Serializable che l'interfaccia Remote !?!

thks :)

pela
04-08-2005, 15:30
il passaggio per valore avviene se l'oggetto è Serializable: ogni modifica non tocca l'oggetto originale
il passaggio per riferimento si ha se l'oggetto è remoto, le modifiche le vede anche il client, inoltre non importa che l'oggetto sia anche Serializable in quanto l'oggetto stesso non viene trasmesso, ma viene passato il riferimento (stub)

Ed_Bunker
04-08-2005, 16:00
il passaggio per valore avviene se l'oggetto è Serializable: ogni modifica non tocca l'oggetto originale
il passaggio per riferimento si ha se l'oggetto è remoto, le modifiche le vede anche il client, inoltre non importa che l'oggetto sia anche Serializable in quanto l'oggetto stesso non viene trasmesso, ma viene passato il riferimento (stub)
Ok, ma lo stub esiste solo per quegli oggeti che implementano un'interfaccia (remota) la quale a sua volta estende l'interfaccia Remote.
Io vorrei sapere quuesto:
supponiamo di mettere a disposizione il metodo remoto:

public String yourName (Profile yourProfile)

esiste un modo attraverso il quale il passaggio del parametro di tipo Profile (Che non e' un oggetto remoto) avvenga tramite riferimento ?
Oppure si puo' solo effettuare il passaggio per valore (Sempre che la classe Profile implementi Serializable) ?

thks

pela
05-08-2005, 15:43
penso proprio che se l'oggetto non è remoto deve essere passato per valore

Ed_Bunker
05-08-2005, 17:10
penso proprio che se l'oggetto non è remoto deve essere passato per valore
:(