Newsgroup: it.comp.java
Titolo: Progetto Client-Server

Salve.
Sto sviluppando un progetto Client-Server, per l'esame di Reti di
Calcolatori.
Premetto che con Java 1.1 me la cavo abbastanza bene: quello di cui
avrei bisogno sarebbero un po' di informazione riguardo ai prg di
rete.
Vi semplifico quello che voglio fare, tanto mi basta capire i punti
chiave e poi mi arrangio ad espanderli (o al max vi rompo di nuovo :-)
Il server dovrebbe fornire una serie di servizi di trasmissione dati,
diciamo ad esempio trasferimento file e mail, point-to-point, dal
client al server e viceversa.
Io avevo pensato di fare cosi':
- il server parte e si mette in ascolto di connessioni
- quando arriva una connessione forva un nuovo thread (diciamo
ServerThread) e ritorna in ascolto
Ora, il ServerThread ed il client, con il suo ClientThread, pensavo di
implementarli in maniera molto simmetrica:
- all'inizio c'e' la fase di login
- quindi, entrambi, fanno partire un thread per ogni servizio, diciamo
SrvMailThread, SrvFileThread, CltMailThread CltFileThread
A me sarebbe piaciuto far comunicare direttamente i corrispondenti
Thread del server e del client, ma dopo un po' di riflessione, sono
giunto alla conclusione che cio' non e' possibile, dato che c'e' un
solo socket aperto.
A questo punto vedo 2 soluzioni:
a) creare un socket per ogni servizio, in maniera da mettere in
comunicazione i thread direttamente; solo che cosi', sul lato server
ci sarebbe aperti (numServizi+1)*numClientConnessi socket e cio' non
mi piace molto
b) far gestire l'unico socket ai due thread principali e demandare ad
essi lo smistamento dei dati ricevuti all'opportuno thread di
servizio, tramite un pipe tra ogni servizio ed il thread principale;
in questo momento e' la soluzione quella che ritengo migliore e che
penso utilizzero'
Inoltre, penso che che si potrebbe utilizzare RMI, chiamando dei
metodi e passando come parametro i dati della comunicazione.  Solo
che, al momento, non mi e' chiaro se questa strada porti davvero da
qualche parte.
Voi che ne dite?
Consigli, suggerimenti, osservazione sono assolutamente ben accette.
Grazie.
**********************************************************************
***  Nuovo indirizzo e-mail:  
efa...@dada.it
                      ***
**********************************************************************
Bye...
                        <=-  Enrico  Faccin  -=>
   <-= Students' representative - Computer Science Dept. Verona -=> 
  <=- ICQ:3031668 -  
efa...@dada.it
 - 
fac...@arena.sci.univr.it
 -=>

qualche parte.
Certo che porta da qualche parte: ti porta che nella comunicazione
Client-Server puoi addirittura far viaggiare delle CLASSI e non solo i dati
come quando usi delle Socket.
Immagina:
SOCKET:
chiedi dei dati al server, il server li trasmette tramite la socket il
client li prende e li passa ad una frame che li mostra.
RMI:
chiedi dei dati al server il server li prende dal DB, istanzia una Frame a
cui fornisce questi dati e la passa al Client, il client deve solo dire alla
Frame di mostrarsi!-> e' piu' comodo.
Che ne dici?
Pino.

 rete.
Scusa se mi intrometto...
Sei obbligato a scriverti questo protocollo (E vivere in un mondo di dolore)
?? altrimenti puoi usare un middleware gia' scritto ti consiglio horb che e'
free anche per uso commerciale e volendo puoi pure smanettare il sorgente...
inoltre gira pure su Java 1.0.2
http://ring.etl.go.jp/openlab/horb/welcome.html
tieni comunque presente che se il tuo utente e' dietro ad un firewall le
socket non passano e devi implementarti un qualche protocollo di "tunneling"
via HTTP.
massimo
-----== Posted via Deja News, The Leader in Internet Discussion ==-----
http://www.dejanews.com/rg_mkgrp.xp
   Create Your Own Free Member Forum