Unified Data Model

Top  Previous  Next

One of the most important and innovative concepts of AggreGate Platform is the unified server data model. This model is designed for aggregating various data from diverse hardware devices in a single system by converting data items into a "normalized" representation. Such normalized data can be:

Stored in a central database;
Uniformly processed and routed by bundled data mining tools;
Presented, exported and imported using standard components;
Made available in the integrated visual editors;
Exposed to external systems using an SDK, different APIs and web services.

Contexts

The heart of the AggreGate data model is the context tree. The context tree is hierarchical structure of data containers called contexts. The purpose of context is providing unified access to a certain system resource of hardware device. Thus, context exposes several objects:

Variables (also called properties or settings) for browsing or altering the configuration of underlying objects.
Functions (also called operations or methods) for performing operations with underlying objects by passing input and getting back output
Events that are asynchronously generated by underlying objects and routed to event listeners that were previously registered within the context by someone wishing to receive event notifications
Actions that combine internal operations of underlying object and interaction with the human system operator within a single dynamic workflow

We might say that context acts as a "proxy" for a certain resource that is a subject for control or monitoring.

Data Tables

Another core concept of AggreGate data model is a standard data item called Data Table. This is a tabular data structure used for representing:

Values of variables
Input and output values of functions
Data associated with certain event instances
Any other pieces of data flowing inside AggreGate

Data Tables are very similar to the database tables since they have zero or more rows and several fields of certain format. Here are several important facts about Data Tables:

1. For the sake of unification, scalar values (numbers, strings, booleans, dates) are represented as single-cell Data Tables, i.e. tables having one row and one field
2. Lists of diverse values are usually represented as single-row tables with multiple fields of different formats, while arrays are better represented by single-field tables with multiple rows.
3. If type of Data Table's field is also Data Table, each cell in this field contains a nested Data Table. There could be an unlimited level of table nesting.
4. Data Table format descriptor contains comprehensive information about field types, their meanings, value validation and presentation rules, cell cross-dependencies, etc.