Newsgroup: it.comp.lang.visual-basic
Titolo: [OT] Applicazione Client-Server... come?

Ciao a tutti
Dopo un bel po' di tempo faccio una bella domandina e ovviamente è un'OT ;)
Mi serve un consiglio su come implementare e sull'effettiva fattibilità di 
un programma di tipo client-server di cui non ho proprio esperienza.
Mettiamo di dover fare il classico programma di chat, come potrebbe essere 
un client IRC via web.
Ora, un sistema del genere prevede qualcosa che giri su un server web e che 
smazzi le singole richieste dei client.
Sarebbe tecnicamente possibile (ad es. in .Net) una cosa del genere se si 
avesse a disposizione il classico spazio web (cioè con tutti i limiti 
amministrativi del caso)?
Oppure, volendo pensare la cosa come P2P sarebbe possibile?
Come?
Per ora mi interessa la logica, i dettagli implementativi verranno 
eventualmente in seguito.
Idee?
Ciao

 amministrativi del caso)?
Tutto e' possibile...pero' se spieghi cosa vuoi fare magari ci capiamo 
meglio :-D
(cmq, si, con una serie di pagine ASP puoi gestire il tutto. Potresti usare 
tranquillamente una tecnica AJAX stile, tra l'altro...)

 usare tranquillamente una tecnica AJAX stile, tra l'altro...)
Ci ho pensato.
In questi giorni avevo dato un occhio a questa tecnologia di cui forse ho 
capito la logica (non ho capito come sia possibile che il browser lavori in 
modo asincrono... il server manda la risposta di sua iniziativa e il browser 
l'accetta?), ho provato a dare anche un occhio ad es. a Atlas 
(
http://atlas.asp.net/default.aspx?tabid=47
  che razza di nomi... Ajax 
sembra un detersivo, Atlas mi ricorda ufo robot... boh) ma non ho capito un 
tubo di come sia possibile che del codice Asp.Net, quindi lato server, 
funzioni sul client in modo asincrono.
Comunque questo è un dettaglio implementativo, diciamo che per ora 
Ajax/Atlas potrebbero essere una soluzione.
Ciao 

 imprese impossibili volevo capire se è effettivamente possibile.
http://aspnet.html.it/guide/leggi/69/guida-creazione-di-una-chat-in-aspnet/
http://www.codeproject.com/aspnet/AliAspNetChat.asp
cmq...una chat si fa anche in asp......
il segreto è nel "REFRESH"...ogni x secondi....forzi il client a avere
un refresh ed a interrogare una pagina asp...
Quello che vuoi fare ...se ho ben capito....esula dal "WEB"
se vuoi fare una cosa "istantanea"
devi avere un "coso"
 che sia Server/Client!
Ossia su una porta invio una richiesta (può essere anche la 80 del
web)...ma su un altra sto COSTANTEMENTE in ascolto di una qualche
risposta da qualcuno!
Esattamente come fa Emule...Messenger....ICQ....e via dicendo....
Se ti accontenti di avere un ritardo di 5 10 30 secondi (anche perchè
non stresserei il server web di Aruba....altrimenti ti tagliano lo
spazio!)...è fattibilissimo da ASP(x)....

 funzioni sul client in modo asincrono.
Ajax e' solo un nome.
La sostanza e': se ho bisogno di qualche informazione, mando una richiesta 
al server tramite una pagina nascosta, il server mi reinvia dei dati ed io 
li elaboro per aggiornare quella visibile.
Ad esempio, una chat:
input box, ci scrivo qualcosa e premo invio. Un Js a questo punto usa una 
qualsiasi tecnica stile Ajax per inviare il testo ad un server SENZA 
necessita' di fare il submit della pagina.
La pagina client, quella che visualizza i messaggi inviati dagli altri 
utenti, ha un timer in js che ogni tot usa ajax per richiedere al server i 
nuovi messaggi e li visualizza. Anche qui, senza dover fare il refresh della 
pagina.
Diciamo che per piccole cose senza troppe pretese di velocita' e costi, come 
tecnica va benissimo. Altrimenti ti devi mettere a sviluppare un software 
vero...

 della pagina.
Quindi alla fine il client ha sempre un timer che ogni tanto va a vedere se 
ci sono messaggi?
Pensavo che una chat funzionasse tipo connessione socket, quindi ok per il 
ritardo minimo, ma non gestito tramite polling.
Ciao 

 ritardo minimo, ma non gestito tramite polling.
Buongiornooooooo!!!
Fabio, contesto! :-D
Hai chiesto un sistema di scambio informazioni via web con supporto su 
Aruba?
ASP e polling.
Hai un tuo server? Java e Socket.
Hai un tuo server e ti va di programmare? Applicazione VB e Socket.
Hai un tuo server e ti va di programmare per sei mesi? Applicazione VC e 
Socket.
Contesto, e' tutta una questione di contesto...
;-)

 Ciao
NO ASPETTA FRENAAAAAAAAAAAAAAAAAAAAAAA
poggia!
Se chiedi una pagina web sul tuo client...IE...o Firefox....tu
interroghi un SERVER WEB
ossia c'è un DEMONE o un SERVIZIO che ti risponde tipicamente sulla
porta 80....
lo stesso se vuoi scaricare dei file via FTP....interroghi un server
ftp....che ti connette sulla porta?...tic tac....cercala tu.....!
Lo stesso una chat che non è altro che un server IRC che risponde a
vari client "istantaneamente"!!!
Diverso è se vuoi mettere dentro un server web una chat....
O fai scaricare un client che è gia configurato automaticamente per
connettersi ad un server irc
Javairc di 
azzurra.org
 ad esempio....ma la pagina web serve solo da
contenitore...tipicamente lo fanno come applet java...ma potrebbe
essere anche un activeX da scaricare...
oppure "EMULI" una pseudo chat via asp o php.....e non installi
nulla!...e ti serve solo un browser web!
si tratta di avere un buffer (che può essere un file xml ma anche un
mdb ...mysql...o quello che vuoi) sul server...e periodicamente
interrogarlo...
Siccome puoi impostare il client automaticamente (giocando un po con i
tag META) a ricaricare la pagina dopo x secondi...
basta fare 2+2.....

 Diverso è se vuoi mettere dentro un server web una chat....
Allora, vediamo di capirci :)
Dato che non so quali siano i limiti degli strumenti a disposizione io li ho 
elencati.
Dato questi come premessa volevo capire qual è il sistema conveniente.
Non è detto che debba passare dal server web! Io ho detto che eventualmente 
ho quello, ma magari è sufficente una rete P2P senza nemmeno il server, non 
lo so!
Ciao 

 Aruba?
No, ho chiesto una soluzione intelligente :)
Sei tu che mi stavi portando fuori strada. :P
Ciao 

Ce l'hai l'esempio della MS tratto (credo)
dai 101 esempi ver. 7.1 del 3-11-2004
chiamato: 
"Advanced .NET Framework (Networking) - Use Sockets"?
Ci sono due esempi Client e Server per chat (non so però se con Asp o meno)
chiamati: "How-To Sockets Client" e "How-To Sockets Sever".
Se non ce l'hai te lo faccio avere.


 Idee?
Se vai su 
www.visual-basic.it
, troverai un articolo di Antonio Giuliana 
che illustra come creare un servizio con .NET.
La particolarietà dell'articolo è che il servizio mostrato, apre un socket 
ed accetta connessioni dai client per enumerare (e volendo, killare) i 
processi in esecuzione sul server.
E' un buon punto di partenza.
Se poi mi spieghi meglio qual'è lo scopo vero e proprio del servizio, 
magari possiamo "estendere" la discussione.
Ciao
-- 
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca
 

 magari possiamo "estendere" la discussione.
Stranamente, quando stamani ho sincronizzato in ng, c'era solo la tua 
domanda, e non tutta la sequenza di risposte.
Pertanto, sono arrivato tardi :)


 Pertanto, sono arrivato tardi :)
Per niente.
Avevo pensato anche ai WS ma non ne ho mai realizzati quindi non so i 
vantaggi e svantaggi.
Il problema č esattamente quello di realizzare una chat (non č proprio cosě, 
ma č praticamente la stessa cosa) quindi con andata e ritorno di 
informazioni in tempi piuttosto brevi.
Non č che i WS sono un po' pesanti per il server e per il traffico se le 
chiamate diventassero molte e a mo' di "polling"?
Ciao 

 che illustra come creare un servizio con .NET.
Aaahh... ma aspetta, tu parli di servizi windows... io pensavo ai servizi 
web.
Ciao 

 servizi web.
un server web è comunque un servizio.
I web service, sono altra cosa, invece.


 le chiamate diventassero molte e a mo' di "polling"?
Beh, sicuramente un overhead del traffico http, dovuto al protocollo SOAP, 
lo avrai senz'altro.
Ma se consideri la semplicità e la versatilità d'uso, è uno prezzo che 
puoi pagare tranquillamente.
Dai un'occhiata a questo articolo:
http://www.devarticles.com/c/a/HTML/Wanna-Chat-with-a-Web-Service/


 il server, non lo so!
Alur...
I casi sono tre:
1) Ti compri un server e te lo metti in housing, ci fai girare sopra tutto 
il software che ti pare, e cosi' hai la possibilita' di realizzare qualsiasi 
cosa. (costo 10, velocita' di sviluppo 5, efficenza 10)
2) Usi il metodo che ti ho spiegato prima attraverso pagine ASP e AJAX o chi 
per lui (costo 1, velocita' di sviluppo 10, efficenza 6)
3) Ti scrivi un tuo set di applicazioni client-server attraverso P2P usando 
i socket. (costo 0, velocita' di sviluppo 1, efficenza 7)