next up previous contents
Next: Protocol Up: Description of the problem Previous: Client side   Contents

Server side

Maintain threaded connection with applet to receive user requests.
For each connected client there is a thread of the server (namely a pthread) that listens on its commands on one hand and passes them on to the ICQ network on one hand, and receives events from the ICQ network and forwards them to the client on the other hand.

Maintain connection with ICQ servers through ICQ protocol.
The ICQ protocol requires certain operations to ensure correct functionality such as maintaining ``keepalive'' connection with the server, checking for messages and more. The server should take care of these operations to make the client as light as possible.

Maintain and manage a database for contact lists.
For each user there is an entry in the database that includes that user's contact list. The server is responsible for both creating the database entries and managing it, meaning saving the changes in the contact list to the database when necessary.

Zvika Brakerski 2001-05-09