Интеграционная платформа для Интернета вещей
Remote Monitoring, M2M and Device Management Software Platform
AggreGate Platform

Единая модель данных

Единая модель данных AggreGate

В AggreGate, каждое устройство представлено так называемым контекстом, являющимся частью иерархической структуры контекстов. Каждый контекст включает формализованные элементы данных трех типов: свойства, методы, и события. Контекст также содержит метаданные, описывающие все имеющиеся элементы. В дополнение, метаданные включают список дочерних контекстов. Таким образом, все данные и метаданные контекста полностью сосредоточены внутри него самого. Эта технология называется нормализацией устройств.

Драйверы устройств и агенты создают нормализованную презентацию различных аппаратных устройств.

Можно провести параллели с объектно-ориентированным программированием, где объекты также предоставляют свойства, методы и события. Свойства – это внутренние переменные устройства, методы – это операции, которые оно может выполнять, а события – это способ устройства оповестить сервер об изменениях внутренних данных или внешней среды.

Практически каждое устройство может быть описано набором свойств, методов и событий. Например, дистанционно-контролируемый резервуар для воды может иметь свойство “уровень воды”, а также методы “открыть задвижку” и “закрыть задвижку” для контроля поступления жидкости. Интеллектуальный резервуар может также генерировать оповещения, например “практически пустой”, “практически полный”, и “переполнение”.

Контекстное дерево

Все контексты сервера AggreGate располагаются в иерархической структуре под названием контекстное дерево. В этом дереве каждый контекст имеет название, то есть уникальный ID в пределах его родителя, и путь, то есть уникальный ID контекста в пределах сервера. Поскольку все контексты имеют общий интерфейс, они могут взаимодействовать внутри контекстного дерева сервера, предлагая беспрецедентный уровень гибкости.

Таблицы данных

С целью дальнейшей унификации каждая часть контекстных данных в AggreGate использует единый тип данных под названием таблица данных:

  • Значения свойств контекста являются таблицами данных
  • Каждый метод контекста получает таблицу входных данных и возвращает таблицу выходных данных
  • Каждый экземпляр события контекста имеет соответствующую таблицу со специфичными данными по событию

Таблицы достаточно гибки для вмещения любого типа данных:

  • Скалярные величины (числа, строки, даты и т.д.) представлены таблицами в одну ячейку
  • Массивы представлены таблицами в одну колонку
  • Структуры представлены таблицами в одну строку
  • И, наконец, табличные данные хранятся в том виде, в каком они есть

Ячейки таблиц данных могут содержать вложенные таблицы, открывая возможность использования одной таблицы верхнего уровня, представляющей объект любого уровня сложности.