Skip to content

Usage Guide

chavipuri edited this page May 2, 2019 · 2 revisions

Mega Proxy is a centralized server which receives data through socket connections from different sources like mission/source related Gateway Proxy or Simulators. Mega Proxy Server handles data transport and routing, de-duplication, decryption/encryption to/from all connected sources.

Each Misson Operations center deploys an instance of a Mega Proxy, and multiple Mega Proxy Servers can sync with each other.

Architecture

  1. Data sources stream data as JSON objects at a particular frequency to Mega Proxy using socket connections.
  2. If the data is encrypted in JSON packet and there is a corresponding decryption key in Mega Proxy server, the data is decrypted, else it is saved to database as it is.
  3. If the data is not encrypted, or when the data is decrypted, it is passed through a mission library which understands the data for corresponding mission and parses it using configuration and some supporting files.

Socket Connection

Mega Proxy uses Socket IO for socket connections with the data sources. Data sources stream data to the proxy using socket connections.

  1. On socket connect or reconnect from the data source, it sends out the mission name.
  2. A list of current clients on the socket is maintained which includes the socket ID and the mission name corresponding to that socket ID.
  3. On socket disconnect from a data source/client, the client is deleted from the list.
  4. Mission name sent out on the socket connect is used to identify the mission library for data from that particular source.

Telemetry Beacon

A beacon refers to a data packet received from a source at defined intervals. Mega Proxy expects a certain JSON object structure of a beacon. The structure includes

  1. Mission Name - Name of the mission (String)
  2. Timestamp - Mission time as unix timestamp
  3. Metadata - An object which can contain supporting metadata as per a mission. For example, a numeric ID for each type of beacon in case of Audacy Zero mission.
  4. Data - It can be a stream of bits or another JSON object, depending on the source/mission.

Example below:

{ “mission” : “Test Mission”, “timestamp” : 1526341557, “metadata” : { "id" : 1 }, “data” : “000010101111010100010111” }

Mission Library

Data from sources like Gateway Proxy or simulator need to be parsed in the Mega Proxy server before storing it in the database. Sources are mission specific, hence data from each source needs a mission library to parse its contents.

There is a file in this repository called "mission.json" which defines the variables specific to each data source/mission. It contains a list of mission names defining their libraries. On socket connection from the source, the mission is identified and the specific mission library is executed.

File Management

Quindar needs a lot of supporting files in order to make telemetry available for the main console. These files include

  1. Configuration File
  2. Timeline File
  3. System Map File

All these files are uploaded using UI of Mega Proxy Server. Mega Proxy UI has a left sidebar which has icons to switch the main content of the page between uploading different types of files.

Clone this wiki locally