Generic Information Model Nodes
The information model describes the "blueprints" that are factored by the runtime into its node space.
Overview
The information model is a comprehensive set of nodes and structures applicable to the HumanOS® Runtime.
Schema
A schema is a description of the information model, like a blueprint. It can be applied to the node space once or many times.
This can be realized through:
- Loading JSON file from the
Config\DataModel\
folder - Loading devices, that are detected by some device detectors.
- Injecting schema using REST API or other dedicated service interface
- Dynamically instantiation of schema nodes through rules
The Schema header describes the schema and its usage:
Attribute | Description | Data Type |
---|---|---|
Id | Unique id of the schema node | System.Guid |
Name | Name of the schema | System.String |
ControlLevel | Control level of the nodes. Default = 0 | System.Int32 |
PersistanceMode | Defines if the nodes of the schema can be persisted. (Default = 0; Volatile = 1) | EPersistance |
Example in JSON notation:
{
"Id": "BC793870-2DB5-4B45-81CC-A9BFAB2E610E",
"Name": "MySchema",
"PersistanceMode": "Volatile",
…
}
Static Schema Loading
HumanOS® Runtime can load a static data model at start-up.
The information model manager loads the previously created schema from the Config\DataModel\
folder.
The manager distinguishes between three types:
- Objects: object schema files are loaded directly to the node space
- Rules: rule schema files that are loaded directly to the node space
- Schema: schema that are put to the node space as "schema". This allows to create the objects later through rules.
Name | Path |
---|---|
Schema | .\DataModel\Schema\ |
Objects | .\DataModel\Objects\ |
Rules | .\DataModel\Rules\ |
Dynamic Loading
A schema can be instantiated by instantiation rules according to some happening (events).
- Check on Instantiation Rules.
Loading through Plugin
A schema can be also instantiated by plugins using the kernel API. This allows to inject schema from external systems.
- See "Kernel API Documentation".
Loading Device Information Schema
The device information schema is a dedicated information model for devices and systems attached by the UHAL.
- Check on Device Information Model.
Node Terminology
All constructs in HumanOS® are derived from the "Node". Following table gives a short overview on the most important basic constructs:
Name | Short. | Description |
---|---|---|
Node Space | Space | The node space is the space where all nodes live and exist. |
Control Level | L | The node space is divided into several control levels. Each control level is able to have its own processing network structure, data nodes and rules. |
Schema | S | Schema nodes contain an information model of a complex node structure. Schema can be instantiated in the node space brining their nodes to life. |
DataNode | D | Data nodes contain data and are responsible for historization and access control. Typically, these nodes are visible from the outside through services like OPC-UA or MT-Connect. |
ConstantNode | Dc | Constant data node. Value is static and readonly. |
Command Node | C | Command nodes are used to perform actions. |
EntityTypes | ET | Entity types specifying an entity and its fields |
EntityCollectionNode | E | Collection of entities. |
Rule | R | Rule define the behavior, activities and transformation of processing networks. They are triggered by events and executed autonomously. |
Timer | Tn | Timer firing timing events after n-seconds |
Binary Relation | B | A relation between two nodes. It describes also the roles of the two nodes attending the relation. |
Agent | A | Agent are active nodes able to perform activities in a system. |
Skills | Sk | Defines a skill of an agent |
Workflow | W | Defines a workflow of activities and control nodes |
Group Relation | G | Several data nodes, processors etc. can be organized in groups. Groups help to structure the node space. In many cases, groups are also visible from the outside through services like OPC-UA or MT-Connect. |
- See SDK Manual for insights about the different node types.
Node Types
The schema can contain following node type:
- Agents and Skills
- AlarmEventPools (Alarm event and messaging pools)
- Commands
- ConstantNodes
- DataNodes
- EntityTypes
- EntityCollections
- ProcessingNetworks
- Rules
- Workflows
- Timers
- Groups
- CustomNodes
Example of a schema structure:
{
"Name": "MySchema",
"Id": "29FC1CDB-9734-43E8-B35A-756F36B649AA",
"Agents": [],
"AlarmEventPools": [],
"Commands": [],
"ConstantNodes": [],
"CustomNodes": [],
"DataNodes": [],
"EntityTypes": [],
"EntityCollections": [],
"ProcessingNetworks": [],
"Skills": [],
"Rules": [],
"Workflows": [],
"Timers": [],
"Groups": [
{
"Name": "Group",
"Id": "{0511EA04-2310-48DE-9705-DF65A60F6608}",
"Agents": [],
"AlarmEventPools": []
}
]
}