MIM Server Architecture

This chapter outlines the components that define the MIM server and details how the server and execution engine work together to provide the capability to analyze and manipulate raw data and perform such tasks as: event driven analysis, cross-market analysis, P & L studies and more all in a near-English language query format.

System Highlights

The following list details the components that make up the MIM server, including:

  • C/C++, Java, C#, VB .NET and the BMIM Scripting Language; also XML

  • Server platforms are Solaris and Linux

  • Client platforms include Solaris, Linux, and Windows XP/Vista

  • Built-in knowledge of financial markets

  • Specialized tools for equities, futures, options, fundamental data

  • Sophisticated rollover language

  • Specialized storage for options data

  • Holiday schedules

  • Distinction between types of NaNs and different fill options

  • Real tick, intraday and daily data

  • Aggregation and frequencies

  • Dynamic schema (extensional database)

  • Entitlements

  • Data management utility

  • High-frequency data handling

  • Weekend data

  • Multi-valued data and Multi-field data

  • Time-varying trading patterns

  • Non-contiguous trading patterns

  • Multiple databases and External databases

  • Custom search facilities

  • Multiple access paths to ticker symbols

Architecture

The following shows the architecture of the MIM server.

The MIM client/server process functions as follows:

  • The process is made up of four components – (1) Master Server (2) Slave Servers (3) Clients (4) Database

  • The Master Server is the controlling process and acts like a traffic cop. Requests are made from the clients and the Master Server divides the workload among the slave servers.

  • The Slave Servers access the database performing the bulk of the work.

  • Once the client process has been assigned a Slave Server, communication is between the client and Slave Server until the request is complete.

  • Clients can be UNIX or PC clients. All clients use the rpc protocol to communicate with the server over the network or localhost. Port numbers are automatically assigned by the port mapper and are above 1024.

  • If a request is made for data, the Master Server will return the simple hostname and Slave Server port number to the client. The client will then establish communications with the Slave Server

  • It is very important that the client be able to resolve the simple hostname that the Master Server returns.

  • Each Master Server has a logical port number that is user defined between 0-255. The default port number is 0.

  • Each Slave Server within a Master Server has a logical port number beginning with 0 and incrementing up by 1 for each additional Slave Server.

  • There may be multiple Master Servers running on a single machine, each with a unique port number.