ankursaxena
Programmer
Hi! Guys,
I just wanted to a get a little more practice in programming with java and also gain some experience with designing things..
I dont know i have alsways wanted to design my own IM system, so thats y here i am asking for some help..
what i want to do is..design an IM server and client from scratch.. i was wondering if people on this post can discuss and put out issues that curtail to designing one system.
Also may be put what technologies could be/should be used..u know like may be XML for process communication etc.
What i have thought so far is to have:
1. An Authrization server, which does exactly that
2. A Messaging Server, which takes care of messages going from one client to another
3. An Alive Server, which receives min to min updates on the status of clients, like if they r typing, if they r still online, or did they get disconnected, by means of alive messages.
4. A Client GUI
5. A client proxy for each of the servers, so the implementation of that is independent of the GUI
6. Database design which will hold typical info like login table, buddylist for each client, status table, history table, may be even current IP, port being used. etc
The processs would start when the client tries to log on, it sends a loginMsg, then server upin receipt would get the username, password, and check it, send an Ack/Nack back..
The client when receives an ack, would go ahead and ask for buddylist, the server would query the database, return the buddylist along with at that moment known status of each members
the client then would ask the server by sending it a message to briadcast to all its buddies that he/she is online...
the server, would check the buddylist and depending on how the person is on their list pass the message to them that this guy just came online.
then the client can then go ahead and start using the messaging server.
the messaging server can have a bunch of threads running under it, handing these incoming messages..
it would be udp senario, when one message is sent and the messaging server does load balancing by giving the message to be handled in a round robin basis.. to its child threads which are actually taking care of the message. the thread would query the db, check the recievers ip and port and send a msg to him and on receipt the client would send an ack saying it received the message for confirmation of message.
i can go on, but i dont know to, i know this is just very raw, i actiually want to do really developement on this, i may be totaly off, but if someone has crap to tell me, pzl do cuz until and unless i get negative response i cant learn..
it would be really gr8 if u do respond and help..plz thanx a ton.
ps:- later i want this to be able to get attached to msn,yahoo by only change to the server side which does the translation back and forth and the client doesnt need to be changed too much.
thanx alot
-Ankur
I just wanted to a get a little more practice in programming with java and also gain some experience with designing things..
I dont know i have alsways wanted to design my own IM system, so thats y here i am asking for some help..
what i want to do is..design an IM server and client from scratch.. i was wondering if people on this post can discuss and put out issues that curtail to designing one system.
Also may be put what technologies could be/should be used..u know like may be XML for process communication etc.
What i have thought so far is to have:
1. An Authrization server, which does exactly that
2. A Messaging Server, which takes care of messages going from one client to another
3. An Alive Server, which receives min to min updates on the status of clients, like if they r typing, if they r still online, or did they get disconnected, by means of alive messages.
4. A Client GUI
5. A client proxy for each of the servers, so the implementation of that is independent of the GUI
6. Database design which will hold typical info like login table, buddylist for each client, status table, history table, may be even current IP, port being used. etc
The processs would start when the client tries to log on, it sends a loginMsg, then server upin receipt would get the username, password, and check it, send an Ack/Nack back..
The client when receives an ack, would go ahead and ask for buddylist, the server would query the database, return the buddylist along with at that moment known status of each members
the client then would ask the server by sending it a message to briadcast to all its buddies that he/she is online...
the server, would check the buddylist and depending on how the person is on their list pass the message to them that this guy just came online.
then the client can then go ahead and start using the messaging server.
the messaging server can have a bunch of threads running under it, handing these incoming messages..
it would be udp senario, when one message is sent and the messaging server does load balancing by giving the message to be handled in a round robin basis.. to its child threads which are actually taking care of the message. the thread would query the db, check the recievers ip and port and send a msg to him and on receipt the client would send an ack saying it received the message for confirmation of message.
i can go on, but i dont know to, i know this is just very raw, i actiually want to do really developement on this, i may be totaly off, but if someone has crap to tell me, pzl do cuz until and unless i get negative response i cant learn..
it would be really gr8 if u do respond and help..plz thanx a ton.
ps:- later i want this to be able to get attached to msn,yahoo by only change to the server side which does the translation back and forth and the client doesnt need to be changed too much.
thanx alot
-Ankur