[Top] | [Previous] | [Next]

4.2.3 Application Program Interface Definition Example

An API definition attempts to identify mandatory interfaces between system components and provide detailed characteristics about the required communication. A complete API definition for a given application should provide all information needed by a separate application to interface to it. For example, the complete API definition should define how initiation and termination are performed, what interface protocol is used, what information is being sent or received, timing requirements, and other such attributes. A functional API should describe the range of choices for the interface implementation and the tradeoffs. For example, it should identify options related to publish/subscribe versus broadcast, synchronous versus asynchronous communication, candidate protocol, and data standards.

Ultimately, this architecture attempts to define a set of functional APIs independent of implementation. Developing software architectures based on common generic APIs increases modularity, which facilitates the plug and play of components and increases the ease with which COTS products can be integrated.

The following is an excerpt of the functional API definitions in Appendix F. In particular, this API definition applies to the interface between Commanding and Telemetry.

Input - Telemetry measurands and SV state

type : data transfer

to/from : from Quality Assessed EU Measurands data

store or from Process Telemetry function

method : DB read or discrete message

sync/async : async DB read or async message

timing : max 2 sec. delay

API standards : none

data arguments : stream_id {id, value}:

stream_id - identifier for telemetry stream

id - identifier for telemetry measurand

value - value for telemetry measurand

status reply : none

Input - Recommended corrective action

type : data transfer

to/from : from Monitor Telemetry function

method : discrete message

sync/async : async

timing : none

API standards : none

data arguments : message_text:

message_text - text describing recommended corrective action

status reply : none

This API excerpt describes the input to the Commanding function from Telemetry. The API for telemetry measurands and SV state describes a number of characteristics and options for the interface. The type defines the communication type desired. In the first example, this would be a simple data transfer from Telemetry to Commanding. The method describes the delivery method of the communication. The telemetry data may be input from a shared data store (such as a DB or file), or can be sent directly from a function as a discrete message. The timing specifies any unique timing requirements for the communication. Here, no more than a 2-second delay is tolerable. The API standards specifies one or more candidate API standards or protocols for the communication. Currently, no widely accepted standards for delivery of processed telemetry data exist. The data arguments specify mandatory arguments passed in the communication. For telemetry data, it would be expected that mandatory information to include an identifier of the telemetry stream, and a list of measurand identifiers and corresponding values. The status reply is the reply generated by the recipient of the communication.