View Full Version : Struttura MSN
nucarote
10-09-2006, 19:07
Dovendo sviluppare un'applicazione simile ad MSN in Java, avrei la necessità di sapere com'è strutturata tutto il sistema MSN (anche se solo come idea di base).
francamente te lo sconsiglio, il business dell'IM è inflazionato in una maniera assurda (troppi concorrenti di una potenza di troppo superiore alla tua: MSN, Yahoo, AOL, Google, ICQ...), e considera che sarebbe anche un lavoro non banale perché un Instant Messenger che si rispetti è all'80% un software grafico di elevata complessità e solo al rimanente 20% un software di rete; a tutto ciò aggiungi anche che hai bisogno di server dedicati (e uno solo non basta quando il programma ha una certa diffusione; basta vedere gli sporadici disservizi da parte della stessa Microsoft, che certe volte non riesce a reggere il traffico nemmeno con le sue attrezzature...).
detto questo ti linko il draft IETF del protocollo MSN, che ti sarà sicuramente utile: http://www.hypothetic.org/docs/msn/ietf_draft.txt
sappi che quello è solo un abbozzo del protocollo con le funzioni essenziali, è molto vecchio; Microsoft aveva annunciato una vaga idea di dischiudere il protocollo e poi ci ha ripensato. tutt'ora il protocollo è chiuso, e i programmatori di IM alternativi (come Gaim) per ottenere interoperabilità devono aver operato necessariamente pratiche illegali di reverse engineering (tipicamente in questi casi sniffing dei pacchetti: fortunatamente il protocollo MSN è ASCII e quindi più facile da comprendere senza documentazione), e infatti io mi sto ancora chiedendo come possa essere legale un progetto come Gaim; probabilmente Microsoft non gli ha ancora fatto causa perché non gli sconviene visto che può trattarsi solamente di espandere il suo network, ma se beccassero un utente che scarica Gaim secondo me nella maggior parte degli stati in teoria andrebbe multato...
Xalexalex
10-09-2006, 20:32
francamente te lo sconsiglio, il business dell'IM è inflazionato in una maniera assurda (troppi concorrenti di una potenza di troppo superiore alla tua: MSN, Yahoo, AOL, Google, ICQ...), e considera che sarebbe anche un lavoro non banale perché un Instant Messenger che si rispetti è all'80% un software grafico di elevata complessità e solo al rimanente 20% un software di rete; a tutto ciò aggiungi anche che hai bisogno di server dedicati (e uno solo non basta quando il programma ha una certa diffusione; basta vedere gli sporadici disservizi da parte della stessa Microsoft, che certe volte non riesce a reggere il traffico nemmeno con le sue attrezzature...).
detto questo ti linko il draft IETF del protocollo MSN, che ti sarà sicuramente utile: http://www.hypothetic.org/docs/msn/ietf_draft.txt
sappi che quello è solo un abbozzo del protocollo con le funzioni essenziali, è molto vecchio; Microsoft aveva annunciato una vaga idea di dischiudere il protocollo e poi ci ha ripensato. tutt'ora il protocollo è chiuso, e i programmatori di IM alternativi (come Gaim) per ottenere interoperabilità devono aver operato necessariamente pratiche illegali di reverse engineering (tipicamente in questi casi sniffing dei pacchetti: fortunatamente il protocollo MSN è ASCII e quindi più facile da comprendere senza documentazione), e infatti io mi sto ancora chiedendo come possa essere legale un progetto come Gaim; probabilmente Microsoft non gli ha ancora fatto causa perché non gli sconviene visto che può trattarsi solamente di espandere il suo network, ma se beccassero un utente che scarica Gaim secondo me nella maggior parte degli stati in teoria andrebbe multato...
Ma quante ne sa sto uomo :D
gli sconviene visto che può trattarsi solamente di espandere il suo network, ma se beccassero un utente che scarica Gaim secondo me nella maggior parte degli stati in teoria andrebbe multato...
come mai?
Che han fatto di illegale?
beppegrillo
10-09-2006, 21:58
ma se beccassero un utente che scarica Gaim secondo me nella maggior parte degli stati in teoria andrebbe multato...
Beh è un client multiprotocollo , non è detto che lo debba usare x msn :D
come mai?
Che han fatto di illegale? usato un prodotto che nel loro stato è illegale perché viola leggi di copyright, trade secrets e quant'altro :D
nucarote
11-09-2006, 11:55
Veramente si tratterebbe di una piattaforma collaborativa,basata sul paradigma Client/Server, che consenta agli utenti di poter lavorare su un progetto attraverso ad una whiteboard oltre a prevedere alcuni strumenti quali una chat e un servizio di messaggi privati e possibilità di condividere file,fin quà ci sono molte analogie con MSN,salvo ovviamente gestire le informazioni riguardanti gli utenti i progetti i gruppi e determinare whiteboard più "specializzate".Pensavo di realizzarla con Java attraverso la tecnologia RMI,Infatti il server,oltre che mettere in comunicazione tutti i client implementati come applicazioni Java, ha il compito di recepire tutte le informazioni generate dai vari client e di memorizzarle in un DB (pensavo a MySQL) quest'ultimo verrà poi consultato da una web application (Java/JSP) e permettere ai non partecipanti del progetto la visualizzazione delle informazioni e lo stato del progetto,un pò come avviene analogamente con la gestione dei blog di MSN.
Per cui prima di mettermi all'opera per realizzare la mia idea, vorrei dare uno sguardo all'archiettura di MSN per vedere se c'è qualche utile spunto o qualche soluzione alternativa migliore per la realizzazione del mio progetto.
Dovendo sviluppare un'applicazione simile ad MSN in Java, avrei la necessità di sapere com'è strutturata tutto il sistema MSN (anche se solo come idea di base).
appunto come idea di base:
- Tutto è incentrato sul dialogo in rete quindi puoi usare i socket. Ti consiglio TCP.
- La parte grafica tutta gestita sul client (come MSN)
- Il server solo per smistare i messaggi dei loggati.
Io per divertimento ne ho fatto uno in vb6 (sistema peer to peer) senza gestione grafica tipo MSN ma spartana alla vb6 quel tanto che basta per scaricare file nella stessa cartella condivisa e comunicare alla MSN come in una chat sia in modo pubblico che privato.
Se lo vuoi provare in 2 con un tuo amico:
Download diretto:
http://www.twork.it/changetime/changetimeITA.zip
guida:
http://www.twork.it/changetime/changetime.html
La parte da progettare è un server on line (oppure tanti server) che vengono letti dai vari clients.
Il procedimento non è difficile da capire:
Devi progettare un db online in cui quando un utente si connette deposita nei campi IP, email, nick, loggato e altro.
Il client che si collega legge il db prende la lista della rubrica controlla che sono collegati i nick.
Ti aggiorni la listbox (progetti le varie emoticons e popup sul client con suond ecc ecc alla MSN se vuoi) e aggiorni a listbox.
Cliccando su un nome della listbox apri un popup per chattare con quell'utente.
I comandi di send li fai tu tipo:
send (#1 invita l'utente)
utente riceve:
recv (#1)
apre il popup che è un form e inizia a chattare.
send (#2 file) (IP, percorsocartella, utente)
recv (#2)
stampa il download nel form, ci clicca e inizia il download ad IP. percorsocartella, utente.
se vuoi ulteriori spiegazioni sono quì
Dovendo sviluppare un'applicazione simile ad MSN in Java, avrei la necessità di sapere com'è strutturata tutto il sistema MSN (anche se solo come idea di base).
Io ti consiglio di dare un'occhiata ad un progetto di applicazione simile a MSN come aMSN
http://www.linspire.com/lindows_products_details.php?product_id=9504&pg=specs
Anche se i sorgenti non sono in Java, comunque ti rendi conto dei protocolli e di come è strutturato MSN, poi puoi tradurre ciò che ti serve in Java, anche se non è così semplice...In bocca al lupo!
nucarote
11-09-2006, 12:54
Ti ringrazio, in effetti pensavo a qualcosa di simile, però penso che RMI sia una scelta preferibile ai socket (non ho la necessità di dovermi occupare della gestione degli IP dei clients, ma soprattutto mi consente di concentrarmi più sulle funzionalità del mio programma, ovviamente pagando qualcosa).
PS nel "qui" che hai messo alla fine, era un links?
sconsiglio RMI.
consiglio invece di farsi il proprio protocollo su TCP/IP o in alternativa utilizzare SOAP, WDDX o simili.
nucarote
11-09-2006, 13:42
sconsiglio RMI.
consiglio invece di farsi il proprio protocollo su TCP/IP o in alternativa utilizzare SOAP, WDDX o simili.
Perchè sconsigli RMI?
SOAP l'ho pure considerato soprattutto per il fatto che in ogni caso avrei già bello che definito le interfaccie per realizzare un server in altri linguaggi,ma i processori SOAP li vedo un pò troppo lenti.
Perchè sconsigli RMI?
SOAP l'ho pure considerato soprattutto per il fatto che in ogni caso avrei già bello che definito le interfaccie per realizzare un server in altri linguaggi,ma i processori SOAP li vedo un pò troppo lenti.
RMI ormai è obsoleto e non è semplicissimo da usare.
Inoltre se un client che si collega al server, sta dietro un router ed è nattato, il server non riesce a chiamare metodi remoti su quel client.
nucarote
11-09-2006, 18:46
RMI ormai è obsoleto e non è semplicissimo da usare.
Inoltre se un client che si collega al server, sta dietro un router ed è nattato, il server non riesce a chiamare metodi remoti su quel client.
Sulla prima parte non son tanto d'accordo.
Comunque dimenticavo il problema dei client dietro router nattati.
perchè non usare un protocollo già collaudato e aperto? ad esempio jabber? mica sono scemi quelli di google che lo usano per googletalk ;)
Sulla prima parte non son tanto d'accordo.
Sulla prima parte, bè se usi RMI poi farai fatica a integralo con altri client, se usi qualcosa tipo SOAP, potrai scrivere un domani client in Java, C# o qualunque altro linguaggio che potranno interagire in modo totalmente trasparente.
francamente te lo sconsiglio, il business dell'IM è inflazionato in una maniera assurda (troppi concorrenti di una potenza di troppo superiore alla tua: MSN, Yahoo, AOL, Google, ICQ...), e considera che sarebbe anche un lavoro non banale perché un Instant Messenger che si rispetti è all'80% un software grafico di elevata complessità e solo al rimanente 20% un software di rete; a tutto ciò aggiungi anche che hai bisogno di server dedicati (e uno solo non basta quando il programma ha una certa diffusione; basta vedere gli sporadici disservizi da parte della stessa Microsoft, che certe volte non riesce a reggere il traffico nemmeno con le sue attrezzature...).
detto questo ti linko il draft IETF del protocollo MSN, che ti sarà sicuramente utile: http://www.hypothetic.org/docs/msn/ietf_draft.txt
sappi che quello è solo un abbozzo del protocollo con le funzioni essenziali, è molto vecchio; Microsoft aveva annunciato una vaga idea di dischiudere il protocollo e poi ci ha ripensato. tutt'ora il protocollo è chiuso, e i programmatori di IM alternativi (come Gaim) per ottenere interoperabilità devono aver operato necessariamente pratiche illegali di reverse engineering (tipicamente in questi casi sniffing dei pacchetti: fortunatamente il protocollo MSN è ASCII e quindi più facile da comprendere senza documentazione), e infatti io mi sto ancora chiedendo come possa essere legale un progetto come Gaim; probabilmente Microsoft non gli ha ancora fatto causa perché non gli sconviene visto che può trattarsi solamente di espandere il suo network, ma se beccassero un utente che scarica Gaim secondo me nella maggior parte degli stati in teoria andrebbe multato...
mostro nerd :eek:
ma si può sapere che aveva quel post? :|
che ci trovate di tanto eccezionale? :mbe:
Xalexalex
12-09-2006, 13:37
ma si può sapere che aveva quel post? :|
che ci trovate di tanto eccezionale? :mbe:
Putenza della sapienza della cultura inside :O
nucarote
12-09-2006, 18:19
Sulla prima parte, bè se usi RMI poi farai fatica a integralo con altri client, se usi qualcosa tipo SOAP, potrai scrivere un domani client in Java, C# o qualunque altro linguaggio che potranno interagire in modo totalmente trasparente.
Sicuramente,infatti ci stò pensando a SOAP anche per fornire questa cosa,comunque pensavo che intendessi altro.
ci sono per caso i sorgenti di aMSN per windows??? :stordita:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.