Server Entity-Relationship Diagram

Server Components:


  Network:

    Only one network exists in the system  It abstracts the TCP/IP 
    layer of the system.  Network performs all connection accepting, 
    connection closing, etc.


  Connect:

    One connect exists per client.  The purpose of connect is to 
    encapsulate network connection for each client.
 

  Client:

    Spawned by network when a client connects.  Each client uses a 
    separate thread.  Keeps track of all of it's agents.


  Agent:

    One agent exists for each object in the world.  An agent is 
    generally connected to a client, but can be maintained by the system 
    for server-side agents.


  World:

    Keeps track of all objects in the world.  The world maintains 
    object relationships in the Object Database.  It uses the Movement
    Handler to track each agent's actions, as well as the Collision
    Handler to handle collisions between agents.  World is sent messages
    through the Event Dispatch which, in turn, receives messages from the
    network.  Also, the Inventory System is used to keep track of agents
    contained by agents.