SIMPLE GENOME TRANSFER PROTOCOL

The goal of this protocol is to allow a distributed execution of
a genetic algorithm to take place.

Goals:

 - Nodes should be added and removed from the parallel evolution
   without disturbing the running nodes or crashing the server.

 - If we decide to have a server, it can be shut down or turned
   on at any time, without crashing any node.

 - We should be able to control the running parameters of the
   GA in some way using an interactive application. I think
   we should try to code a 'genetic algorithm name server',
   that can help us find running simulations. We should be able
   to talk to any running simulation, no matter what server we're
   connected to. Let's name it a Genetic Broker.

So in a first stage we'll address the issue of transmitting genomes
thru the network. We've chosen to use UDP for this task, since we
don't want to keep permanent connections and we might communicate
with different hosts at the same time.

Well, let's see what the Broker can do. When started, the broker could
be waiting for the registration of the GAs. Then every time a GA is run,
it will try to establish a connection with the server. One the connection
has been established, it will keep the server up to date with the
following information:

 - Maximum fitness
 - Average fitness
 - Mutation probability
 - Population size
 - Generation
 - Name (each simulation will have a name or a descriptive text)

The server can also change some of the Parameters of the GA. A human
could also be allowed to make such changes telnetting the GA. We can
also tell the broker to add a running GA to its pool.

So, let's develop the protocol.
