OPTIMIZATIONS:
==============

1. Network speed test -> This should test the speed between each
   client, and the server by sending ping like packets.

2. Client speed(CPU speed) test -> This should test the speed of the
   client in terms of CPU speed.

3. Client memory(RAM) capacity test -> This should test whether the
   client machine has enough memory to handle the request being sent
   to it without making sufficient use of it's swap file.

LOAD BALANCING:
===============

This algorithm should balance the load between the various clients by
relinquishing some unused clients in some server to some other client
who needs them(and their processing speed) to distribute its
work-load.

FAULT-TOLERANCE: DONE!
================

If some client goes down while evaluating the determinant, then the
server should immediately recognize this situation, and take remedial
steps such as sending the request to another client if there exists a
free client or queueing up the request for a client as soon as some
client gets free, or to evaluate the determinant itself.

SECURITY:
=========

If some spurious application tries to log on to the network, and
pretend to be an actual client, we have no way of knowing this fact!
This was pointed out to me by Sandesh Singh
(sandesh247@softhome.net). If such a situation arises, then the
application can get badly mistaken, and can produce wrong results if
the spurious application sends back junk data. We need some method by
which the clients are authenticated before they are allowed to
establish a connection with the server, and get problems to solve.
