Difference between revisions of "Realtime Messaging API"

From 3forge Documentation
Jump to navigation Jump to search
Tag: visualeditor-switched
Tag: visualeditor-switched
Line 24: Line 24:
 
= Instruction Format =
 
= Instruction Format =
 
This protocol is designed to be flexible, compact and human readable. Each instruction must have a type and may contain a sequence number and timestamp. The general format for each message is: '''<span style="font-family: courier new; ">TYPE[#SEQNUM][@NOW][|PARAMS...]\n</span>'''
 
This protocol is designed to be flexible, compact and human readable. Each instruction must have a type and may contain a sequence number and timestamp. The general format for each message is: '''<span style="font-family: courier new; ">TYPE[#SEQNUM][@NOW][|PARAMS...]\n</span>'''
 +
 +
TYPE: The type of message. Please see following sections for details on each type.
 +
 +
Valid ''outbound'' types are:
 +
 +
* <span style="font-family: courier new; color: red;">L</span> (login)
 +
* <span style="font-family: courier new; color: red;">S</span> (status)
 +
* <span style="font-family: courier new; color: red;">S</span> (alert) DEPRECATED
 +
* <span style="font-family: courier new; color: red;">O</span> (object)
 +
* <span style="font-family: courier new; color: red;">C</span> (command definition)
 +
* <span style="font-family: courier new; color: red;">R</span> (response to execute command)
 +
* <span style="font-family: courier new; color: red;">D</span> (delete objects)
 +
* <span style="font-family: courier new; color: red;">X</span> (exit)
 +
* <span style="font-family: courier new; color: red;">H</span> (help)
 +
* <span style="font-family: courier new; color: red;">P</span> (pause)
 +
* <span style="font-family: courier new; color: red;">D</span> (delete objects)
 +
 +
Valid ''inbound'' types are:
 +
 +
* <span style="font-family: courier new; color: red;">M</span> (status message)
 +
* <span style="font-family: courier new; color: red;">E</span> (execute command)

Revision as of 17:23, 16 March 2021

AMI Backend Interface

Goal

The 3Forge Application Monitoring Interface (AMI) provides applications with a simple mechanism for connecting to the 3Forge Relay. 3Forge AMI's consolidated GUI lets users:

  • View the application's health statistics
  • Receive and manage objects though a simple workflow procedure
  • Interact with applications to call routines inside the application

Conventions

  • This document is written from the perspective of the application. "Outbound" is the application sending data, and "inbound" is the Application receiving data.
  • All key words are in a "courier" font.
  • Trailing text is indicated with an ellipses or "...".
  • Special ASCII chars are qualified inside parenthesis.
  • Brackets "[]" indicate optionally supplied data.
  • Examples are in blue.

Overview

This interface is an extension of the 3Forge AMI product. Applications interact with AMI through the relays only, and not the central server nor the front end servers. Each AMI relay, upon startup, establishes a server socket on a well-known configurable port. As each application starts up, it should connect to the server socket of the relay running on its local host. Multiple applications can connect to one relay.

Applications then interact with the relay by sending and receiving "instructions." Instructions are well-defined, atomic, sequential and transactional messages. The first instruction an application sends after connecting must be a login (L) instruction. Following that, applications can send instructions arbitrarily and should listen for incoming instructions. Optionally, applications can send a logout (X) message to initiate a graceful shutdown.

Instruction Format

This protocol is designed to be flexible, compact and human readable. Each instruction must have a type and may contain a sequence number and timestamp. The general format for each message is: TYPE[#SEQNUM][@NOW][|PARAMS...]\n

TYPE: The type of message. Please see following sections for details on each type.

Valid outbound types are:

  • L (login)
  • S (status)
  • S (alert) DEPRECATED
  • O (object)
  • C (command definition)
  • R (response to execute command)
  • D (delete objects)
  • X (exit)
  • H (help)
  • P (pause)
  • D (delete objects)

Valid inbound types are:

  • M (status message)
  • E (execute command)