Architecture

Module Overview

Split into three

STAG system is logically spilt into three main parts:

  1. Technology Adapter Implementation - various modules that implement specific communication protocols that create Device abstractions for the internal information model.
  2. Core - internal modules that provide the base functionality for the system as a whole.
  3. Data Consumer Adapter Implementations - various modules that provide access to the internal information model and the stored Device abstractions.

Expandable at runtime

System administrators can add new Technology Adapter and Data Consumer Adapter Implementations without shuting down the system. The only part that is not expandable at runtime is the Core.


Information Model

Systems heart and soul

The heart of STAG is the aforementioned common central data model. As with humans, the heart is of no use without the veins that ensure the flow of blood to and from the heart.

In STAG, translation technology takes on the role of the veins.

It makes it possible for the data coming from the sensors to be mapped into the common data model and then forwarded from there to the data adapters, which then make the data available to the higher systems in the IT world via specific interfaces.

Custom model for simpler access

STAG System defines a custom Device abstraction which allows Technology Adapter Implementations to model data so it is accessible to all Data Consumer Adapter Implementations


Data Model

Standardized data types for ease of use

STAG defines 8 primitive data types to model your Device abstractions.

These data types have been specifically chosen, to cover most use-cases without cluttering the model namespace with similar data types. They are as follows:

  1. Boolean - represents true or false values
  2. Integer - represents integers between [-2³¹-1;2³¹-1] for 32 bit systems or [-2⁶³-1;2⁶³-1] for 64 bit systems
  3. Unsigned Integer - represents integers between [0;2³²] for 32 bit systems or [0;2⁶⁴] for 64 bit systems
  4. Double - represents double precision floating numbers as defined by IEEE 754-1985
  5. String - represents human readable text
  6. Opaque - represents binary information where each byte is stored as a value in a vector
  7. Time - represents timestamp values