Homepage  Il progetto dsy.it è l'unofficial support site i corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, la chat, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto dei nostri blogs


Guarda la pagina live qui


.dsy:it. .dsy:it. ~ luna's journal ~ RMI
 
RMI
13-01-2008 12:01
»
Lo so, è un pò odioso leggere una entry del genere ma ho scritto diverse volte nel forum di Sistemi Distribuiti ma non mi caga nessuno :(

Mi è poco chiaro come funziona RMI.
Nel senso: io ho un Main da cui lancio due thread Client e Server.
All'interno del Server invoco l'oggetto remoto tramite il metodo rebind.
All'interno del Client richiedo il metodo dell'oggetto remoto tramite look up. E l'unbind quando viene fatto invece?

Intanto, questo è corretto?perchè ho difficoltà nel capire dove posizionarli.

E poi soprattutto...come funziona il registry?
Di solito utilizzo il metodo createRegistry(). Ma posso associargli lo stesso numero di porta?perchè facendo così mi dice ovviamente che la porta è già utilizzata...esiste quindi un modo per avere un numero di porta RMI fissa oppure deve per forza cambiare ogni volta che un utente si connette?

Grazie mille a chiunque mi dia una mano in merito :)
User Mood mood: (none) | Now Playing now playing: (none)


Commento di holylaw
13-01-2008 12:01
»
RMI funziona come hai detto tu non ho capito perche' devi cambiare porta al registry: lo fai partire una volta sola sul server e stop... poi i client si connetteranno ad esso sulla stessa porta

Commento di luna
13-01-2008 12:01
»
perchè non funziona se faccio in quel modo...il problema è che nel server non ho un main ma è un semplice thread che rimane in attesa con l'accept().è ovvio però che ogni utente che faccio partire ripeterà la procedura...non so se possa essere questo il problema :alsono: ma quindi dovrei inserire questa istruzione con un numero a caso di porta rmi che rimane fissa? Registry reg = LocateRegistry.createRegistry(portaacaso); ma poi da prompt devo lanciare ogni volta i comando rmic e start rmiregistry? ho un po' di confusione sulla procedura.. grazie mille davvero :)

Commento di holylaw
13-01-2008 12:01
»
nono aspe con createRegistry fai gia' partire il registry, non c'e' bisogno di farlo partire dal prompt, per cui mettilo prima dell'accept e sei a posto sono 2 modi alternativi

Commento di holylaw
13-01-2008 12:01
»
e poi dubito che il server non abbia un main :D

Commento di luna
13-01-2008 12:01
»
eh ma continua a darmi java.rmi.ConnectException :( nel thread server ho messo: [code]String name = "//localhost/OggettoPeers"; OggettoPeers oggetto = new OggettoPeers(); Registry reg = LocateRegistry.createRegistry(5000); Naming.rebind(name, oggetto);[/code] Mentre nel client: [code] String name = "//localhost/OggettoPeers"; Object obj = Naming.lookup(name); Interface i = (Interface)obj;[/code] e poi la chiamata al metodo dell'interfaccia... sbaglio qualcosa a livello di codice?:alsono: perdonami ma sono proprio una frana in queste cose! grassie grassie grassieee!!!

Commento di holylaw
13-01-2008 12:01
»
ma hai fatto il getRegistry nel client?

Commento di luna
13-01-2008 12:01
»
holylaw ho risolto :) non so come mai il createRegistry veniva visto male dal mio pc :look: così uso l'altra alternativa :D vado di start rmiregistry :D grazie mille davvero!!!!:)

Commento di holylaw
13-01-2008 12:01
»
in effetti non funzionava perche' non hai specificato nel lookup la porta 5000.... senza cerca il registry alla porta di default (1099) con String name = "//localhost:5000/OggettoPeers"; dovrebbe funzionare

Commento di luna
13-01-2008 12:01
»
ma oltre al name dovevo specificare quella porta? :) buono a sapersi!:) un'altra cosa: per l'algoritmo ad anello...per "token" cosa si intende?è una stringa che viene passata via socket? grazie!

Commento di Viry
13-01-2008 12:01
»
Si, il token e' un qualcosa da far circolare via socket... credo che la soluzione piu' semplice sia appunto una stringa particolare

Commento di holy sloggato (non registrato)
13-01-2008 12:01
»
il mio token per esempio era semplicemente 't'

Commento di luna
13-01-2008 12:01
»
ok,grazie mille davvero :smack: ma questo "token" chi lo fa materialmente partire?forse la domanda è un po' stupida :look:

Commento di ghily sloggato (non registrato)
13-01-2008 12:01
»
Luna chiedigli sulla sincronizzazione!!! holy è ferrattissimo :D

Commento di luna
13-01-2008 12:01
»
immagino cavoli :D lui è bravissimo!:D

Commento di holylaw
13-01-2008 12:01
»
il token lo fa partire il server quando si connette il primo peer

Commento di holylaw
13-01-2008 12:01
»
doppio

Commento di ghily
13-01-2008 12:01
»
luna ma che tu sappia bisogna iscriversi al sifa anche solo per il progetto? Inoltre questo è l'ultimo appello disponibile per tenere valido il compitino? Thanks

Commento di luna
13-01-2008 12:01
»
si ti devi iscrivere via sifa :) l'ultimo appello disponibile è il 5 Febbraio :sbonk: sai che differenza :sbonk: perchè, devi darlo pure te?

Commento di ghily
13-01-2008 12:01
»
si ci sto provando. Mi hai dato una buona notizia!! Però devo convincermi che la scadenza è il 22 se no la mia voglia non ci si mette

Commento di luna
13-01-2008 12:01
»
è quello che provo a fare anche io :look: ti ho mandato un pm comunque :)

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Thanks | Syndacate