Skip to end of metadata
Go to start of metadata

Instrument and Platform Agents are specific sub-types of Resource Agent.

Instrument Agent

Each Instrument Agent manages one physical instrument, which can be a simple sensor or a sophisticated composite instrument. An instrument agent encapsulates all software necessary for interacting with a physical instrument in order to perform these basic functions:

  • command & control of an instrument through a common observatory message interface, including providing status updates on request and continuously,
  • represent an instrument's capabilities uniformly to the observatory,
  • perform data acquisition,
  • manage and perform direct access to the instrument.

Instrument agents have the following detailed responsibilities and capabilities:

  • take commands from the observatory and end users and perform policy check and access mediation,
  • translate commands to something understandable by the Instrument,
  • perform efficient state synchronization and communication between terrestrial and platform representation over intermittent, slow channels,
  • data acquisition, time-stamping and raw data logging for measurements coming directly from the instrument,
  • emit a context metadata annotated, formatted data stream,
  • emit instrument state, state changes and state of heath as engineering data stream,
  • manage the configuration of the instrument,
  • provide direct access (e.g., bidirectional direct serial) to the instrument,
  • update the clock of the instrument from an platform timing source,
  • detect resource conflicts (such as versions or driver conflicts, or conflicting use requests),
  • accept management from a platform agent (see below,
  • potentially manage subordinate instrument agents.

Each physical instrument has one Instrument Agent that represents it to the observatory (i.e., acts as its "agent"). This agent has up to three types of representations that differ in their deployment location (see Figure 1):

  • (exactly one) Terrestrial representation: The main part of the agent-informally "the agent"-is deployed within the terrestrial Integrated Observatory Network and is always accessible. May communicate directly with the physical instrument or via a Platform representation of the agent.
  • (zero or one) Platform representation: The part of the agent that can be embedded in remote, temporarily disconnected, resource limited environments, such as CG buoys. It does not exist in the case of instruments connected to the RSN cable. Interacts through opaque command & data protocol with the terrestrial representation through an intermittent, low bandwidth communication channel.
  • (zero or any number) Proxy: Projections of instrument capabilities into another domain of authority. Acts similar to the terrestrial representation but presents a different policy and potentially limited set of capabilities. Does not interact directly with the physical instrument but through the COI Exchange with another instrument agent (either the terrestrial representation or another proxy agent).

Figure 1. Instrument Agent Representations Domain Model (OV-7)

The Instrument Agent Architecture comprises a number of constituent components. Figure 2 depicts the functional components of an Instrument Agent as operational nodes with their needlines.

  • Instrument Control is the centerpiece and represents the state of the instrument that can be controlled via commands. It provides instrument state and configuration on request and emits state change events. It performs diagnostics, self test and failure management as necessary. It is also responsible for instrument fault detection and recovery, but also for overriding warnings and protection alarms.
  • The Instrument Driver is the actual software that translates commands into binary sequences understandable by the instrument, and knows how to get measurements from the instrument.
  • The Instrument Supervisor is the interface to the observatory and end users and accepts their commands. Within the agent, it receives status updates and events from the Instrument Control.
  • Instrument Direct Access enables the direct access of end users to the instrument, for instance through a bidirectional tunneled serial connection. This component is managed by Instrument Control.

A Platform Representation of the instrument agent may contain parts of the Instrument Driver and parts of the Instrument Control. The extent of platform side capabilities is dependent on the platform resource and communication regime constraints. The interaction interface between Platform representation and terrestrial representation is fully opaque and can be optimized to achieve maximum communication channel efficiency (such as in the case of very low bandwidth, intermittent satellite links).

A Proxy of the instrument agent contains an Instrument Supervisor component only or parts thereof. It communicates via the ION Exchange to another instrument agent (proxy or terrestrial representation). This realizes a chain of agents.

See [Instrument Agent and Driver Integration Interfaces] for an illustration of important implementation level interfaces.

Figure 2. 2820-00019 Instrument Agent Decomposition (OV-2)

See also: Internal setup of the Instrument Driver

The Instrument Management Services (S&A) are responsible for managing command and control of the instrument and platform via the Instrument Agent, and for the registration of the Instrument Agent.

Figure 3 shows the internal setup on the Instrument Control node from the Instrument Agent. The Instrument Event Detectordetects events related to the normal behavior about the instrument and low-level failure management. These are not science events. Its role is to make sure the instrument life cycle is preserved. The Instrument Fault Detector and Recoveryhas a (local) mitigation strategy. The strategy might reside in the configuration. For example: in a modem driver, when the line dropped is an event. In a connection, an unexpected line drop is a fault. Redial is a recovery strategy. This leads to commands to the Execution Engine to dial again.

The Command Execution Engine is a state machine that provides a bound for the set of commands available at a time. The initial state comes from the configuration.

Figure 3. 2820-00021 Instrument Control Nodes (OV-2)

Platform Agent

Platform agents manage the resources associated with a Marine Observatory platform. Platforms include remote buoy platforms with multiple embedded single board computers (SBCs) that are intermittently connected and are resource limited, and cable infrastructure. Platform ("hotel") resources include power systems, telemetry, networking, clocks, CPU cycles and storage and multiple instruments deployed on that platform.

Similar to instrument agents, platform agents have a primary terrestrial representation and optional platform representation and proxys. The terrestrial representation of a platform agent is always available and the primary point of contact; it provides opaque delayed state synchronization with the actual platform and its resources.

Platform agents have the following responsibilities and capabilities:

  • Accept commands from the observatory and end users and perform policy check and access mediation,
  • translate commands into something understandable by the platform resources,
  • perform efficient state synchronization and communication between terrestrial and platform representation over intermittent, slow channels,
  • perform platform resource state change notification,
  • manage the configuration of the platform resources,
  • emit platform and platform resources state, state changes and state of heath as engineering data stream,
  • provide direct access (e.g., terminal sessions) to platform SBCs,
  • manage platform clocks and precision timing,
  • mediate platform resources (e.g., the communication outbound queue on a low bandwidth satellite link, and power consumption),
  • detect resource conflicts,
  • manages zero or any number of subordinate platform agents and instrument agents.

Profilers, AUVs, Buoys are examples of platforms, as well as the RSN cable infrastructure. A port is a buoy hardware platform resource that connects an instrument physically and electrically to a DCL (Data Concentrator and Logger) SBC module. A port can power cycle and configure comm parameters such as for serial. Telemetry typically includes Iridium satellite, FleetBroadband satellite and short range wireless. Each of these have modem type interfaces.

Figure 4 shows the internal setup of the Platform Agent. There are interface nodes (components) that represent the specific bidirectional interface to lower level physical or software components.

Figure 4. 2820-00025 Platform Agent Nodes (OV-2)

The Platform Control is the central control behavior of a platform. Figure 6 shows the constituent elements of the control part of the Platform Agent. A Platform agent can host (aggregate) other platforms and instruments. The Instrument Management operational node manages the hosting of instruments and their resource capabilities and needs on the platform. The Platform Management operational node manages the hosting of subordinate platforms and their resource capabilities and needs on the platform.

Figure 5. 2820-00026 Platform Control (OV-2)

The Resource Scheduling manages the coordination of multiple heterogeneous resources on a platform. This includes allocation and interference avoidance. The Time management node controls time on the platform. It represents underlying GPS module and clocks and any associated time synchronization and time drift models. The Storage Management node controls disk/flash use on the platform. Represents underlying storage resources and the resource allocation and consumption model. It decides on resource requests and issues scoped tickets for resource use. The Power Management node controls power use on the platform. It represents underlying power module and the resource allocation and consumption model. Decides on resource requests and issues scoped tickets for resource use.

The Comm Management node controls communication system use on the platform. The is the decision maker for all external communication (from the point of view of the local platform), including comm to the shore and within the platform. It represents underlying networking and telemetry modules and the resource allocation and consumption model. It decides on resource requests and issues scoped tickets for resource use.

Behavior

See also:

Instrument Integration Interfaces

The figure below illustrates implementation level interfaces related to Instrument Agents, their implementation and strategies to integrate various instrument drivers.

Figure 6. Instrument Agent related interfaces (OV-1)

Specific Specifications:

Labels

read-sa read-sa Delete
read-mi read-mi Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.