 | |
Il progetto dsy.it è l'unofficial support site dei 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, 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 del nostro forum |
[info] Progetto Clicca QUI per vedere il messaggio nel forum |
cag |
Ci sono indicazioni riguardo al progetto da realizzare?
Testo, modalità, scadenze ...
Grazie. |
nous |
Pdf utilissimo e interessante ;) |
luna |
voi come siete messi col progetto?
io ho dei problemi col metodo search..e detto sinceramente mi è davvero poco chiaro il testo del progetto :roll: |
nous |
Cosa non ti è chiaro del testo? |
luna |
ne abbiamo gia' parlato pero' scrivo lo stesso qui i miei dubbi :D magari anche qualcun'altro ha il mio stesso problema!
comunque a me non era chiaro il fatto che l'oggetto peer dovesse avere al suo interno sia la parte client che server, infatti ero convinta che dovessi fare un client e un server separati! |
luna |
scusate ma nessuno di voi ha avuto problemi con rmi?io non riesco a farlo girare sul mio pc..dice che non trova la classe quando gli do il comando rmic...:help: |
No?Ya! |
Originally posted by luna
scusate ma nessuno di voi ha avuto problemi con rmi?io non riesco a farlo girare sul mio pc..dice che non trova la classe quando gli do il comando rmic...:help:
non ho ancora affrontato la parte di RMI... se devo essere sincero sto ancora strippando su come implementare Bully...
comunque il problema potrebbe essere legato al classpath e al path da impostare sul PC:
vai su risorse del computer -> tasto destro -> tab "avanzate" -> bottone "variabili d'ambiente"
li devi settare PATH mettendo la cartella di bin di java: metti dopo i path presenti il ";" e attaccato, il path dei bin di java (solitamente C:\programmi\jdk1.5.0_06\bin\)
io poi non riuscivo a far andare le classi una volta compilate (mi dava un errore che non trovava il "main")... l'ho risolto inserendo all'interno del CLASSPATH il valore "." (directory corrente), sempe dopo il ";" che separa i singoli valori di percorso |
luna |
grazie mille :) per fortuna dopo un sacco di scleri sono riuscita a risolvere facendo esattamente quello che tu hai scritto :D |
nous |
Attenzione a quando lanciate il server rmi e il client sullo stesso pc (non tutti hanno una rete a casa :)) : se non impostate ad hoc le policies vi rifiuterà ogni connessione. |
luna |
nel caso in cui avessi problemi come bisognerebbe impostarle?:D |
Coppoluto |
scusate ragazzi...ma per quanto riguarda l'algoritmo bully, il segnale che si manda per vedere se un host è attivo o meno può essere solo un ping o deve riguardare anche la posta utilizzata(per quel che ne so il ping normale non ispeziona le porte ma solo l'indirizzo)
voi cosa utilizzate??delle socket?
grazie mille e ciao! |
luna |
ho una domanda anche io su bully :D
quando bisogna eleggere un coordinatore, gli utenti devo pescarli dal file di configurazione?per cui avro' sempre un numero di utenti fisso giusto?e chi ha l'indirizzo ip maggiore diventera' coordinatore? |
Black Morgoth |
Originally posted by luna
ho una domanda anche io su bully :D
quando bisogna eleggere un coordinatore, gli utenti devo pescarli dal file di configurazione?per cui avro' sempre un numero di utenti fisso giusto?e chi ha l'indirizzo ip maggiore diventera' coordinatore?
Allora non vorrei dire una cavolata ma mi sembra di aver capito dal testo che come Id per l'algoritmo Bully bisogna usare il nick dell'utente. Il numero di utenti è dato dalla lista nel file di configurazione ma è una "lista massima": non è detto che siano tutti collegati.
A me sfugge una cosa però.... il folder dove pescare il file di configurazione glielo devo passare durante l'esecuzione? |
luna |
Originally posted by Black Morgoth
Allora non vorrei dire una cavolata ma mi sembra di aver capito dal testo che come Id per l'algoritmo Bully bisogna usare il nick dell'utente. Il numero di utenti è dato dalla lista nel file di configurazione ma è una "lista massima": non è detto che siano tutti collegati.
mi sono dimenticata di scrivere che avevo risolto :D comunque hai ragione :) bisogna utilizzare proprio il nick dell'utente :) |
No?Ya! |
Originally posted by Black Morgoth
A me sfugge una cosa però.... il folder dove pescare il file di configurazione glielo devo passare durante l'esecuzione?
Io ho fatto un oggetto peer che ha il costruttore che prende come parametro la prima stringa inserita quando faccio partire la classe: a seconda del nome prende il file di configurazione relativo
es. java Peer test1 prenderà il file di config del peer test1 |
luna |
Originally posted by No?Ya!
Io ho fatto un oggetto peer che ha il costruttore che prende come parametro la prima stringa inserita quando faccio partire la classe: a seconda del nome prende il file di configurazione relativo
es. java Peer test1 prenderà il file di config del peer test1
visto che bisogna far girare 4 peer io pensavo di modificare in ognuno il percorso del file, facendo puntare al file di configurazione relativo al peer che viene avviato.va bene ugualmente?:look: perche' da quello che hai scritto non ho ben capito sinceramente!
per ora ho implementato con l'algoritmo bully la fase dell'elezione del coordinatore..voi cosa avete usato per spedire l'avviso agli altri peer?da quel che ho capito la comunicazione deve avvenire uno per uno, non in multicast giusto?:)
Off-Topic: Noya!hai pm!!:D |
Black Morgoth |
Originally posted by luna
per ora ho implementato con l'algoritmo bully la fase dell'elezione del coordinatore..voi cosa avete usato per spedire l'avviso agli altri peer?da quel che ho capito la comunicazione deve avvenire uno per uno, non in multicast giusto?:)
Off-Topic: Noya!hai pm!!:D
Credo anche io di aver capito che il procedimento è singolare ma totale (nel senso che va fatto a tutti i peer).
Per l'algoritmo bully e la gestione dell'elezione . . . è necessario usare un'altro oggetto? Come lo avete gestito voi? |
luna |
io ho lanciato un altro thread a parte per gestire l'algoritmo bully :)
credo di aver risolto la parte dell'elezione..in pratica via socket chi è coordinatore deve spedire un messaggio a tutti gli altri utenti che ovviamente hanno id piu' basso (quindi con il nickname piu basso).
pero' deve spedire un messaggio alla volta, non tutti insieme!
io pero' ho un altro dubbio..guardando l'esempio di file di configurazione nel testo del progetto, se tutti i peer fossero attivi, sarebbe Paolo il coordinatore..ma come faccio nel caso in cui Paolo non sia attivo?non capisco come devo gestire questa eventualita'!perche' comunque tutti i peer pescano sempre dal file di configurazione!spero di essere stata chiara :look: |
Cr34t|v3 |
Originally posted by luna
io ho lanciato un altro thread a parte per gestire l'algoritmo bully :)
credo di aver risolto la parte dell'elezione..in pratica via socket chi è coordinatore deve spedire un messaggio a tutti gli altri utenti che ovviamente hanno id piu' basso (quindi con il nickname piu basso).
pero' deve spedire un messaggio alla volta, non tutti insieme!
io pero' ho un altro dubbio..guardando l'esempio di file di configurazione nel testo del progetto, se tutti i peer fossero attivi, sarebbe Paolo il coordinatore..ma come faccio nel caso in cui Paolo non sia attivo?non capisco come devo gestire questa eventualita'!perche' comunque tutti i peer pescano sempre dal file di configurazione!spero di essere stata chiara :look:
Credo, sia sottinteso che il file di configurazione non sia lo stesso per ogni peer. Basta cambiare l'ordine dei client, e far ruotare la riga che identifica il nostro peer (la 3°).. spero di essere stato chiaro
test1:
...
Marco..
Paolo..
Andrea..
test2:
...
Paolo..
Marco..
Andrea..
test3:
...
Andrea..
Paolo..
Marco..
.
.
.
se di peer ce ne solo 1 attivo, quello svolge la funzione di coordinatore.. |
luna |
si esatto :) ma il problema è che io pesco i nick dal file e il file non mi dice chi è attivo e chi no :) di conseguenza vedra' sempre tutti attivi no?oppure pesco i nickname degli utenti e prima di eleggere il coordinatore guardo chi è attivo e chi no?se dovessi far cosi',come potrei fare un controllo del genere?:look:
ah inoltre, una conferma..voi quando il testo dice "il coordinatore esegue l'rmi registry" come lo avete interpretato?eseguira' un getRegistry con il numero di porta dell'rmi registry che è nel file di configurazione?:) |
No?Ya! |
Originally posted by luna
si esatto :) ma il problema è che io pesco i nick dal file e il file non mi dice chi è attivo e chi no :)
rispondo in parte alla prima domanda (anche perchè sono un pò antiripigliato in questo momento ed in generale col progetto...
per controllare se i peer sono attivi io ho fatto questa funzioncina:
code:
public boolean connectTo(int peerIndex){
try{
socketConnessione = new Socket(peerIP[peerIndex], Integer.parseInt(peerPort[peerIndex]));
return(true);
}catch(Exception e){
return(false);
}
}
in pratica prova a connettersi ad uno dei peer (che io ho memorizzato in array) e restituisce true se riesce, false altrimenti... in tal modo se ti restituisce true vuol dire che il peer a cui prova a connettersi è attivo... |
luna |
grazie :) hai decisamente ragione..pensavo anche io di fare un metodo del genere e di richiamarlo magari prima di effettuare la ricerca di un file oppure direttamente prima di fare l'elezione :) |
luna |
comunque, mi sa che per creare quel metodo credo che usero' il metodo gia' esistente per le Socket che mi permette di capire se è attiva o no :)
attualmente lo sto implementando durante l'algoritmo bully..in modo che sapro' sempre a priori chi è connesso o no...sara' giusto? |
ripe |
Qualcuno consegna questo progetto Mercoledì?
Avete qualche suggerimento ? |
nous |
Il mio suggerimento è di fare l'esame orale e di consegnarlo quel giorno :) |
ripe |
Originally posted by nous
Il mio suggerimento è di fare l'esame orale e di consegnarlo quel giorno :)
Molto utile, grazie, mi aiuterà sicuramente a capire se ho implementato correttamente la concorrenza. |
rik |
succede anche a voi che facendo partire l'remiregistry da codice java, tutte le comunicazioni rmi rallentano in modo incredibile (rispetto a quando faccio partire il registry da linea di comando)?? |
ripe |
Originally posted by rik
succede anche a voi che facendo partire l'remiregistry da codice java, tutte le comunicazioni rmi rallentano in modo incredibile (rispetto a quando faccio partire il registry da linea di comando)??
Si, ma l'esercitatore ha detto che dovrebbe essere tutto normale... |
rik |
ma quelli che non consegnano il progetto questo mercoledi, poi devono per forza fare l'orale anche sulla teoria? o si può fare cmq lo scritto a fine corso e poi si porta il progetto in un appello degli orali? |
Flavia |
Credo proprio che si possa fare lo scritto il 7 Giugno! Spero! :look: |
Nonsaprei |
Sì lo possono fare!! |
luna |
qualcuno ha consegnato?come è andata? |
ripe |
Originally posted by luna
qualcuno ha consegnato?come è andata?
Mooooooolto bene! :D :D :D
Preparatelo in maniera perfetta perchè chiede di tutto, vuole vedere il codice e fa domande molto tecniche di teoria.. ma alla fine è ok! |
luna |
bravo!!:D:D:D ma quanto hai preso?:P poi mi racconti i particolari eh :D |
Gilbert |
Originally posted by luna
qualcuno ha consegnato?come è andata?
Benssssimo! :D:D
Poche prove di esecuzione, molto codice e molte domande di teoria. |
Flavia |
Ma da il voto in trentesimi che poi farò media o cosa?
E poi, domande di teoria? :look: Ma solo sulla parte che spiegato lui? |
Nonsaprei |
Allora dipanerò i tuoi dubbi....dà il voto in trentesimi che vale metà punteggio...e fa le domande sul progetto chiedendo solo la parte di teoria inerente al progetto, oltre a chiedere di spiegare il codice
Spero di essere stato chiaro |
ripe |
Originally posted by luna
bravo!!:D:D:D ma quanto hai preso?:P poi mi racconti i particolari eh :D
Anche quelli più scabrosi... :asd: |
cag |
Come avete testato il progetto?
(quali nickname, indirizzi e porte per la sezione di comunicazioni socket ???) |
luna |
Originally posted by cag
Come avete testato il progetto?
(quali nickname, indirizzi e porte per la sezione di comunicazioni socket ???)
guarda puoi usare anche quelli che ha messo lui come esempio di file di configurazione nel testo del progetto :) |
luna |
voi avete gestito la questione della sincronizzazione?come avete fatto?avete link o altro con suggerimenti? |
cag |
Intendo per indirizzare processi diversi sulla stessa macchina. |
luna |
Originally posted by cag
Intendo per indirizzare processi diversi sulla stessa macchina.
:pensa: scusami ma non capisco sinceramente il tuo dubbio :look:
ogni volta che lanci un peer deve pescare il numero della socket dal file di configurazione..quindi bastera' lanciare 4 finestre di prompt diverse sullo stesso pc in cui in ognuna fai lanciare un Peer diverso, ogni peer peschera' dalla sua cartella in cui c'e' il file di configurazione e dove appunto è presente anche il numero di socket a cui collegarsi, per controllare che anche gli altri peer siano attivi...pero' non so se intendevi proprio questo...prova a esporre esattamente il tuo dubbio.. :alsono: |
cag |
Ad esempio sulla chiamata Socket("test1", 2020); mi viene sollevata l'eccezione UnknownHostException anche se esiste un processo in attesa di connessioni, sulla stessa porta. |
luna |
hai provato a mettere la socket in un try catch per catturare l'eccezione?:) |
cag |
Sì mi viene sollevata la UnknownHostException, la socket non va a buon fine. Indagherò meglio il tipo eccezione |
Black Morgoth |
Originally posted by cag
Sì mi viene sollevata la UnknownHostException, la socket non va a buon fine. Indagherò meglio il tipo eccezione
Prova a metterci direttamente l'indirizzo... magari "catturando" la socket con cui vuoi dialogare tramite una serverSocket.accept().
Problema personale: qualcuno sà come "distruggere" un registro rmi? Ovvero una volta che un utente se ne va o si cambia il cordinatore, vorrei chiudere quel determinato registro... ma non trovo da nessuna parte il comando.
Quello per aprirlo girando su internet è saltato fuori ma questo no... qualcuno lo sa? |
cag |
vi ringrazio per i suggerimenti !!
Sapreste dirmi dove trovare temi d'esame degli anni scorsi ? grazie. |
futurbaggio |
Una domanda per chi ha consegnato o consegna mercoledì:
l'Output dei vari processi può essere buttato (un pò di debug incluso) direttamente sul System.out o avete gestito un registro di log su file testuali, etc etc? |
luna |
secondo me puoi tranquillamente fare delle stampe semplicissime :) l'importante è che fai vedere per bene che funziona :)
Te sei riuscito a gestire la parte facoltativa in cui dice che prima che un peer termini deve far finire gli upload in corso?non ho capito come farla :( :please: |
futurbaggio |
cacchio, mi sa che ho letto troppo tardi la tua richiesta :evil:
Cmq sono riuscito a fare entrambe le parti facoltative, se hai bisogno posso dirti cmq... |
|
|
|
|