Archiving System

The archiving system provides archiving of monitor point values. ACS provides only the data collection mechanism and not the storage of data. Data are made available from the archiving event channel.

The value of each Property of Characteristic Components can be archived. Archiving is enabled/disabled and configured on a per-Property basis.

ACS Properties publish their value on a specific ArchivingChannel notification channel, by using the ACS Logging System.

The parameters for data publishing are defined using the following Characteristics defined for all Properties:

archive_priority: The priority of the log entry that will carry the information required for archiving the parameter's value. If the priority exceeds the value specified in the MaxCachePriority, the archiving data will be transmitted immediately. If it is below MinCachePriority, the data will be ignored. If it is somewhere in-between, it will be cached locally until a sufficient amount of log entries is collected for transmission.

archive_max_int: The maximum amount of time allowed passing between two consecutive submissions to the channel. If the time exceeds the value specified here, the entry should be submitted even though the value of the parameter has not changed sufficiently. Publishing the value of the property at least once in a while allows to check that the property is really available and monitored.

archive_min_int: The minimum amount of time allowed passing between two consecutive submissions to the log. If the time is smaller than the value specified here, the value is not submitted, even though the value of the parameter has changed. Definining a minimum time interval allows to filter out quick oscillations and avoids flooding the system.

archive_delta (same type as parameter): Defines what change in parameter value is needed to trigger publishing the value. If the value changes for less than the amount specified here, no value is submitted. For Pattern and String properties, this Characteristic is irrelevant. That is, any change in the Property's value will trigger the Monitor.

Whenever the Characteristics of a Property are such that archive values have to be submitted, a BACI Monitor is created to periodically submit the values to the Logging System.


Figure 3.17: Archiving System sequence diagram

It is possible to switch archiving on/off using an API, to make sure that no values are published when the Property is in a state where values are not meaningful

For example, a Component might want to switch off archiving if it is not initialized, in an error state or disconnected form the hardware it is controlling.

The entries pushed into the ArchivingChannel are structured events with the following structure:


Name
Value
Event Header
domain_name
Archiving
type_name
Type of parameter
Filterable data
time_stamp
Time when the parameter had this value, i.e. when the data for the log entry was sampled
object
The object whose properties value is being reported
parameter
The name of the parameter within the object
value
The value of the parameter. The type of this field is the same as specified in type_name.

 

Clients can subscribe to the Archiving Notification Channel using filters to get events when archiving data is available. ACS provides an API that allows parsing the Notification Channel messages containing monitor point archiving data.


Figure 3.18: Archiving System architecture

Individual Properties data are cached locally before they are sent to the central archive

Each Property can be uniquely identified by a name, composed of the Characteristic Component name followed by the Property name.

The Archiving API can be used also to send to the archiving system data that does not fit in the Property design pattern.

Archiving of monitor point values is currently only supported in C++.