Системная архитектруа платформы представлена на рисунке ниже:
Inspark.Core центральный горизонтально масштабируемый компонент серверной платформы. Inspark.Core состоит из сервисных модулей (микросервисы), взаимодействующие между собой через общую шину данных и оперативный кэш данных (Service bus, DBMemory).
Inspark.GateMQTT серверный модуль (брокер) приема-передачи данных по протоколу MQTT. Количество экземпляров модулей в каждом инстансе зависит требований по обработке потока данных.
Inspark.Gate_XXX, а также все модули, указанные на этом архитектурном уровне - серверные модули (брокер) приема-передачи данных по протоколам LoraWAN, NBIOT, интегрируемыми внешними системами.
Платформа поддерживает и самые разные брокеры, которые обеспечивают взаимодействие с различными источниками (системы, устройства), см. в разделе Интеграции
Inspark.WebDesk - RESTAPI серверной платформы, используется web-приложениями платформы, мобильными клиентами и внешними приложениями.
Inspark.EdgeGuard - сервис авторизации клиентов MQTT брокера. В качестве MQQT брокера используется сервер EMQX.
Inspark.Lorain - специальный сервис для разбора json/xml пакетов от устройств LoraWan;
Inspark.NBIOT-GATE - специальный сервис для разбора json пакетов от устройств NbIoT.
Inspark.WidgetStore - магазин виджетов.
Inspark.Edge - программное обеспечение для контроллера, обеспечивающее обмен данными с серверной платформой и предварительную обработку данных на «месте».
DB - уровень хранения данными платформы. В качестве хранилища могут использоваться как реляционные так и noSQL СУБД. Платформа подерживает хранение различных типов данных: числовые, строки, графические, raw-данные. Для числовых данных предусмотрена агрегация, для уменьшения объема хранения и быстрого доступа к данным на больших временных периодах.
Inspark.ETL - программное обеспечение выгрузки данных в DWH. Структура DWH поддерживает OLAP-совместимость для загрузки данных в vault-кубы.
На серверном уровне все компоненты платформы горизонтально масштабируемы. Базовые варианты построения серверной архитектуры в зависимости от мощности потока данных приведены в разделе Производительность&Масштабируемость
Ключевым вопросом масштабируемости, которое обеспечивает не только требуемый уровень чтения большого количества параметров , но и функции управления устройств, взаимодействие между устройствами, является архитектура уровня EDGE контроллера.
Основная проблема - как обеспечить подключение контроллеров к большому количеству устройств таким образом, чтобы создать общее поле параметров для построения алгоритмов управления на уровне EDGE-контроллеров.
Традиционный способ решения задачи - создание контроллеров со стекируемыми модулями различного назначения и организация общей шины на уровне контроллер-модули. Такие аппаратные решения позволяют обеспечить прием несколько тысяч параметров, в зависимости от мощности процессорного модуля. Для обработки большего потока, данные должны быть переданы на сервер. Но, количество данных, требуемое для сбора растет практически кратно, мощность контроллеров со стекируемой архитектурой ограничено количеством модулей в стеке, либо вычислительной мощностью цетрального процессорного контроллера, обработка на сервере большого потока технически сложно и дорого.
В платформе Inspark IoT Platform предложен современный сетецентрический подход, в котором уровень взаимодействия с устройством вынесен в отдельный слой (контроллер-драйвер). Такой контроллер-драйвер может взаимодействовать по IoT протоколам с любым EDGE-контроллером.
За счет разделения EDGE-контроллера и контреллера-драйвера, обеспечивается возможность чтения бесконечного количества параметров контроллерами-драйверами. Общее поле всех параметров создается на всех EDGE-контроллерах, и таким образом устраняется основная проблема SCADA систем - ограничение масштабируемости по скорости чтения и количеству параметров.
Кроме того, Inspark IoT Platform позволяет на уровне серверного инстанса подключать большое количество объектовых EDGE, в результате платформа поддерживает бизнес-центричную архитектуру, которая обеспечивает централизованные процессы управления распределенными объектами компании.
Ниже дана иллюстрация вышесказанному.