Внутренние механизмы iH

Структуры системы

Kernel

Kernel — ядро системы. Ядро системы обеспечивает взаимодействие между всеми блоками системы.

Ядро системы содержит в оперативной памяти весь образ проекта системы автоматизации в реальном времени.
Ядро системы работает с виртуальными устройствами. Оно ничего не знает о реальных (аппаратных) устройствах и их протоколах. Связь с реальными объектами обеспечивает Plugins Engine.

Ядро системы реализовано на базе платформы Node.js

Web Server

Web Server — обеспечивает пользовательский интерфейс системы. Взаимодействие между интерфейсом на компьютере пользователя и web-сервером системы обеспечивается протоколом WebSocket.

Пользовательские интерфейсы реализованы на  React.js

Plugins Engine

Plugins Engine — обеспечивает взаимодействие c оборудованием, реально присутствующим в системе. Для этого используются плагины. Плагины — программные модули для соответствующих устройств (контроллеров, шлюзов и т.п.). В системе может одновременно работать несколько плагинов для разного оборудования. Таким образом, имеется возможность одновременной работы аппаратных компонентов разных производителей и имеющих разные информационные протоколы.

Scene Engine

Scene Engine — механизм сценариев. Он обеспечивает логику работы системы. Сценарии поведения системы в целом и отдельных устройств в частности выполняются именно благодаря механизму сценариев.
Создавая сценарии работы для модуля Scene Engine, мы полностью определяем, каким образом будет работать система в нашем проекте.

Database Engine

Database Engine — механизм работы с базами данных. Он обеспечивает хранение исторической информации о поведении системы.

Events

В системе intraHouse используется событийная модель. Это ключевое свойство системы. Такая модель позволяет существенно увеличить быстродействие системы. Суть этой модели в следующем. Ядро системы (Kernel) ничего не знает о других компонентах системы. Оно просто выдает сообщение об изменении состояния объекта, а тот, кому надо, берет это сообщение и обрабатывает соответствующем образом. Таким образом, исполнительные компоненты системы используют информацию в соответствии со своим предназначением:
Scene Engine — диктует правила
Plugins Engine— обеспечивает связь с реальными устройствами
Web Server — отображает  пользователю информацию о состоянии системы