 | |
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 |
[SD-FSE] Programmazione di rete in Java Clicca QUI per vedere il messaggio nel forum |
0m4r |
Oggi, 22/10/2003, si è tenuta la seconda lezione nell'ambito del corso della laurea specialistica e la prima per quel che riguarda l'FSE in oggetto.
Ho raccolto qualche link utile:
java.sun.com
mi sembra inutile spiegare dove si arriva cliccandoci.
Questo è il punto di partenza per qualsiasi cosa si volgia sapere riguardo Java
http://java.sun.com/j2se/1.4.2/docs/api/
qui è visibile la JavaDoc per la versione 1.4.2 (l'ultima release disponibile)
http://java.sun.com/docs/books/tuto...kets/index.html
un tutorial alle socket java ma non solo (piu o meno c'è tutto quello che dovremmo vedere a lezione e anche qualcosa in più)
http://forum.java.sun.com/
la board ufficiale di java, molto frequentata e davvero utile.
Se avete altro da segnalare aggiungete pure, o se trovate qualche errore nella mia segnalazione avvisatemi pure!
Have fun! |
recoil |
consiglio caldamente di andare qui:
http://java.sun.com/j2se/1.4.2/download.html
e di scaricare la documentazione con il link in fondo alla pagina. chi non ha ADSL non può consultarla on-line e secondo me è sempre meglio averla a disposizione. nella pagina che ho linkato si scaricano anche SDK e JRE.
un altro consiglio: al posto di quegli IDE pesanti come eclypse e Jbuilder scaricatevi Jcreator (www.jcreator.com) |
Wally |
Lezione 2 (29 - 10)
- Argomenti Trattati:
* classe thread;
* problemi di concorrenza;
* sincronizzazione tra processi;
* cenni sulle eccezioni;
* esempi in java relativi a server multiprocesso;
Documentazione ufficiale su programmazione di thread (dal sito della sun) : http://java.sun.com/docs/books/tuto...eads/index.html
Poi... la lezione prossima (5-11) sarà su RMI e dopo quella le ultime 2 saranno in laboratorio perchè inizia la parte pratica.
Per il progetto:
La prossima lezione il prof. presenterà il progetto da fare;
La lezione dopo si dovrà arrivare in laboratorio con buona parte del codice scritta a casa, perchè si dovranno solo mettere a punto e sistemare bene le cose che magari a lezione si sono capite di meno;
L'ultima lezione si presenterà il progetto al prof;
Una cosa: qualcuno ha trovato i lucidi di oggi? nel sito dell'fse(http://webdid.usr.dico.unimi.it/progreti/) non c'è traccia di questi lucidi, o mi sarò sbagliato io (e, conoscendomi, è molto probabile) oppure... boh!
beh, se qualcuno li ha trovati, faccia sapere... |
recoil |
i lucidi che ci sono da scaricare sul sito non mi sembrano quelli che si vedono a lezione... non so nemmeno io dove andarli a prendere ma pazienza, basta che ci siano i lucidi di Bettini.
cmq una cosa: non mi pare che ci voglia molto a mettere sul sito i file sorgenti dei programmi che si vedono a lezione.
è meglio rifare tutto da capo per conto proprio, però potrebbero metterli no? |
Wally |
cmq una cosa: non mi pare che ci voglia molto a mettere sul sito i file sorgenti dei programmi che si vedono a lezione.
è meglio rifare tutto da capo per conto proprio, però potrebbero metterli no?
MA SEI IMPAZZITO!?!?!? :schoked::schoked:
Ma sai che per farlo dovrebbero copiare ogni bit dei file sorgenti, a mano, sull'hard disk del server!
...Sei senza cuore a chiedere una cosa del genere!!
Vabbè, comunque, rifarli può essere una buona cosa... certo che se arrivo a sabato senza aver rivisto nessun esercizio non avrei nessun modo per potermi rinfrescare la memoria!
Per questo, vediamo, riassumendo i sorgenti di oggi:
- prenotazione dell'aereo;
- 2 client + 1 server per l'esempio del maiuscolo;
- differenza tra wait() e sleep() [che già mi sono scordato... eh si, mi sa che devo già rivedere il tutto!];
- uso di try, throws, catch
Mi sembra che abbiamo visto solo questi, giusto? |
recoil |
Originally posted by Wally
Per questo, vediamo, riassumendo i sorgenti di oggi:
- prenotazione dell'aereo;
- 2 client + 1 server per l'esempio del maiuscolo;
- differenza tra wait() e sleep() [che già mi sono scordato... eh si, mi sa che devo già rivedere il tutto!];
- uso di try, throws, catch
Mi sembra che abbiamo visto solo questi, giusto?
direi che è tutto
la differenza tra wait e sleep la vedi quando sei in un metodo synchronized perché con la wait rilasci il lock sull'oggetto |
0m4r |
Ecco alcune domande che ho fatto in mertio al progetto e le relative risposte:
1) cosa significa che "Deve utilizzare una struttura dati in memoria
centrale" riferito al magazzino centrale? non mi è ben chiaro "memoria
centrale".
SIGNIFICA CHE NON DEVE STARE IN MEMORIA SECONDARIA (HD).
2) Il catalogo che il magazzino locale corrisponde 1:1 con tutti i
prodotti che puo vendere, indipendentemente dal fatto che ne abbia
disponibili o no? Inoltre un magazzino locale vende tutti i prodotti che
il magazzino centrale ha disponibile o puo averne in catalogo solo una
parte?
USA LA DEFINIZIONE INTUITIVA DI CATALOGO: INSIEME DEI PRODOTTI CHE DI
NORMA SONO IN VENDITA MA CHE NON NECESSARIAMENTE SONO DISPONIBILI. IL
MAG. LOCALE MANDA UN CATALOGO CON UN INSIEME DI PRODOTTI E, IN GENERALE,
NE AVRà SISPONIBILI SOLO UN SOTTINSIEME.
3) Il magazzino centrale fornisce esso stesso a quelli locali il
catalogo da mostrare ai clienti? Cioè è il magazzino centrale che indica
a tutti quelli locali quali prodotti sono in vendita?
NO, NELLA VERSIONE BASE NON SI FA NESSUN RIFERIMENTO AD UNA TRASMISSIONE
DI CATALOGO. NELLA VERSIONE BASE I MAG. LOCALI HANNO SCRITTO NEL CODICE
IL CATALOGO
4)"ci possono essere diversi client, ma ognuno di essi si connette ad un
solo magazzino locale" Questo lascia intendere che un client si collega
ad un solo magazzino locale alla volta, non che un client si collega
sempre allo stasso magazzino locale....giusto?
Sì |
recoil |
ho fatto anche io una domanda e Sergio mi ha risposto (velocemente tra l'altro) :approved:
quando un cliente ordina dei prodotti e il magazzino locale non ne ha abbastanza deve tenere da parte tutti quelli che ha e altrettanto deve fare il magazzino centrale con i prodotti richiesti.
se un secondo client fa lo stesso ordine il magazzino risponde picche, almeno finché il primo client non si è deciso.
se il client dice "o tutti o niente" allora i prodotti prenotati tornano ad essere disponibili. |
0m4r |
ecco un'altra domanda con la relativa risposta:
Quando il magazzino centrale legge il catalogo da file, aggiorna anche il suo oppure llo invia solo ai magazini locali?
Ovviamente aggiorna anche il suo. Anzi, a proposito, ricordati che è importante che, in seguito ad un aggiornamento, tutti i magazzini (compreso quello centrale) abbiano lo stesso catalogo... sarebbe poco carino se tu comprasi un prodotto in un magazzino mentre in un altro ha un prezzo diverso ;-) |
recoil |
questa domanda secondo me è da prendere in considerazione da chi ha scelto la parte facoltativa 1.
l'aggiornamento del catalogo dovrebbe, secondo me, imporre a ciascun magazzino locale di avvisare il cliente nel caso in cui il prezzo cambi durante l'ordine. certo non è una cosa simpatica nemmeno questa...
la questione a mio avviso è rognosa e ho preferito puntare sulla seconda parte facoltativa che è forse più lunga da realizzare ma sicuramente più chiara :) |
0m4r |
Ecco un chiarimento alla domanda precednete fatta da me:
quindi, se ho capito bene, supponendo che il file sia del tipo:
001 Pippo 5.0 50
sia il magazzino centrale che quello locale avrannno incrementato la propria disponibilita del prodotto 001 Pippo di 50 e non che avranno impostato la disponibilita del prodotto a 50. Giusto?
Sbagliato: fai confusione tra il concetto di catalogo (che contiene l'elenco dei prodotti, senza indicarne la quantità)e quello di magazzino (dove invece la quantità è indicata). Ad altri tuoi colleghi ho consigliato di usare questa politica: se un magazzino locale riceve, all'interno dell'aggiornamento catalogo, un codice che già conosce, modifica descrizione e prezzo e lascia invariata la quantità. Se invece riceve un nuovo codice, aggiunge il prodotto con quantità 0. Se nel proprio catalogo ha dei prodotti che non compaiono nell'aggiornamento, li cancella. |
0m4r |
ESAME!
Com'è andata? cosa ne dite?
Secondo me il povero Sergio stanotte avrà gli incubi....non ne potrà piu di magazzini locali centrali RMI ecc ecc ecc... |
recoil |
che delusione... il tutto si è risolto con un paio di prove e senza nemmeno uno sguardo al codice. un assoluto ignorante di java poteva farsi preparare il progetto da altri e spacciarlo per proprio, non se ne sarebbero accorti!
tra l'altro non c'era nemmeno una valutazione, era semplicemente passato o non passato.
a saperlo prima avrei evitato di mettere alcuni bei commenti ordinati e soprattutto non avrei fatto certe sboronate inutili (tipo comunicazione via socket con XML, nemmeno notata dal prof) :sad: |
0m4r |
secondo me hanno fatto quello che avevo detto che avrebbero fatto.... prova a leggere bene il testo del progetto, da qualche parte c'è scritta una roa del tipo "a noi interessa che funzioni la comunicazione di rete, tutte le altre sboronate sono roba in più!".
Naturalmente sul fatto del cosice hai ragione, ma io credo, dato che bene o male kli eravamo tutti "specialisti" che se uno deve passare un esame copiando tutto pari parri, bhe...meglio che se ne stia a casa! |
recoil |
Originally posted by 0m4r
secondo me hanno fatto quello che avevo detto che avrebbero fatto.... prova a leggere bene il testo del progetto, da qualche parte c'è scritta una roa del tipo "a noi interessa che funzioni la comunicazione di rete, tutte le altre sboronate sono roba in più!".
si ho letto il testo del progetto. però parliamoci chiaro: la concorrenza in java è banale... basta mettere un synchronized e tutto si risolve.
il progetto a mio avviso andava fatto con un pochino di "complicazione" proprio perché siamo già laureati e java dovremmo conoscerlo ormai, non ci sono scuse.
io ho cercato di complicarmi la vita ma almeno ho imparato qualcosa di nuovo, altrimenti il corso avrebbe avuto l'unica utilità di farmi vedere RMI che probabilmente non userò mai...
secondo me è un corso che va bene per studenti dei primi anni, per noi ci voleva qualcosina in piùjava script:checklength(document.vbform);
[check message length] |
ma2k1 |
Sono molto interessato a questo Fse.
Mi sono iscritto alla prossima edizione.
Nel frattempo qualcuno che ha frequentato potremme gentilmente darmi login e password necessarie per accedere al materiale didattico.
Grazie |
0m4r |
Originally posted by ma2k1
Sono molto interessato a questo Fse.
Mi sono iscritto alla prossima edizione.
Nel frattempo qualcuno che ha frequentato potremme gentilmente darmi login e password necessarie per accedere al materiale didattico.
Grazie
credo sarebbe piu corretto che tu le chiedessi direttamente a chi tiene il corso... |
Wally |
si ho letto il testo del progetto. però parliamoci chiaro: la concorrenza in java è banale... basta mettere un synchronized e tutto si risolve.
il progetto a mio avviso andava fatto con un pochino di "complicazione" proprio perché siamo già laureati e java dovremmo conoscerlo ormai, non ci sono scuse.
io ho cercato di complicarmi la vita ma almeno ho imparato qualcosa di nuovo, altrimenti il corso avrebbe avuto l'unica utilità di farmi vedere RMI che probabilmente non userò mai...
secondo me è un corso che va bene per studenti dei primi anni, per noi ci voleva qualcosina in piùjava script:checklength(document.vbform);
[check message length]
Secondo me non ci si può aspettare per un corso FSE e per un esame da sei crediti un progetto esageratamente complicato. E' stato comunque un carico di lavoro per la quale abbiamo avuto solo 2 settimane... se fosse stato più complicato non tutti sarebbbero riusciti a finirlo, e sarebbe stato ingiusto nei confronti di chi non ha mai visto niente di programmazione concorrente, multithreaded, peer to peer, e in generale, non abbia un'esperienza significativa in java.
Di carne al fuoco ce ne era tanta, se uno l'avesse voluta, nel nostro piccolo tutti abbiamo avuto delle complicazioni, chi derivate dalle specifiche chi invece se le è inventate, ma non penso che il testo del progetto sarebbe dovuto essere differente... magari potevi chiedere una terza parte facoltativa, se tanto ci tenevi alle complicazioni...
Ah, un'ovazione al buon Sergio, :ola: anzi doppia va, se la merita: :ola:
Giusto così, a titolo informativo, anch'io penso di non utilizzare mai più i metodi RMI, non mi sono piaciuti, evviva le socket... un'ovazione anche per le socket :ola:
Tra l'altro avevo sentito che c'erano i voti, no? aveva mica detto che li avrebbe messi in rete... poi sul foglio il buon Sergio mi sembrava scrivesse qualcosa o mi sono sognato tutto causa orario e fame? |
0m4r |
ora quello che mi domando, diopo tutto questo sfacchinamento, è come sarà pesato questo FSE all'interno del corso...nel senso dato che ha occupato circa metà delle lezioni varra come circa meta esame? o siamo stati bravi e basta per cui un paio di punti al massimo? |
recoil |
Originally posted by Wally
Tra l'altro avevo sentito che c'erano i voti, no? aveva mica detto che li avrebbe messi in rete... poi sul foglio il buon Sergio mi sembrava scrivesse qualcosa o mi sono sognato tutto causa orario e fame?
ho chiesto proprio a Sergio e mi ha detto che non ci sono voti, per questo ci sono rimasto un po' male. se lo avessi saputo prima avrei fatto il progetto con più "leggerezza"
cmq non so quanto peserà all'interno del corso ma non essendoci voti la valutazione sarà data solo dallo scritto finale. l'unica cosa utile di questo FSE è la possibilità di saltare il progetto finale... però il tempo "perso" per seguire il corso FSE è paragonabile a quello per fare un progetto. |
Wally |
Per chi non li avesse ancora visti (ammetto di aver appena scoperto la loro esistenza :alsono: ) sono usciti i risultati del progettino del corso FSE sul sito di sistemi distribuiti(qui ) nell'area del materiale didattico. |
|
|
|
|