Menu

Modular Design

Victor H Olvera

VectorSigma follows a modular design. It is divided into 4 module types. At base of the server program lies what I call a LaunchPad because it initializes, loads and gets the modules up and running. The module types are

  1. Server Pump
  2. IO Control
  3. Net Couriers
  4. Method Support

The server pump, IO control and the net couriers each run on their own thread. For the most part they communicate with each other by passing messages back and forth using a tPacketArray object. The method support modules share the same thread and data as IO control. The server pump shares the same thread as the LaunchPad

  • The server pump is the interface between the operating system and the server. It is in charge of polling the sockets to be on the lookout for new connections and incoming data. It also handles any signals sent by the operating system. It does not do any retrieval or processing of data. When it sees a new connection it notifies IO control. When it sees incoming data it sends a notification to the net couriers. Its duties are pretty much like a guard at the gate or secretary in an office.

  • IO control is the brains of the operation. It is in charge of handling the logistics between input, output and processing. Think of IO control like the control center at NASA or the bridge of the enterprise.

  • The net couriers are in charge or receiving and transmitting data. They do not do any data processing with the exception of preliminary filtering of incoming packets. The job of net couriers is similar to the postal service, UPS, FedEx, etc. A single net courier represents a single transmission channel. The more net couriers a server has the more channels are available hence the more concurrent transmissions the server is capable of.

  • The method support modules do the actual processing of data. Each one of these modules handles a subset of the method APIs. Adding and removing these modules adds and removes the capabilities of the server. Method support modules assist IO control with very specific tasks. They do all the dirty work like minions or henchmen.


MongoDB Logo MongoDB