Inspark Platform IoT является IoT платформой и позволяет взаимодействовать с различными устройствами, приложениями и данными таким образом, чтобы пользователи без дополнительных интеграций могли сразу же применять полученные результаты. Платформа предоставляет три базовые возможности IoT платформы:

  • управление подключением (connectivity management) систем, датчиков и устройств;
  • агрегацию и хранение данных (IoT core);
  • поддержку приложений (IoT analytics and application).

Более подробно об основных возможностях IoT платформ прочитайте раздел Функции IoT платформ.
В платформу входят:

  • серверная платформа;
  • web приложения;
  • ПО для контроллеров.

Серверная платформа осуществляет сбор, агрегацию и взаимодействие с устройствами по протоколу MQTT. Для всех устройств, которые не поддерживают IoT протоколы, используется контроллер с установленным программным обеспечением платформы. Любое другое устройство, которое поддерживает протокол IoT и умеет взаимодействовать по протоколу MQTT может использовать возможности платформы Inspark Platform IoT. Серверная платформа обеспечивает практически неограниченные возможности по обработке данных при помощи процедур обработки, правил, нотификаций, которые описываются и параметризуются средствами платформы. Для внешнего взаимодействия платформа предоставляет программный интерфейс в виде REST API, который обеспечивает широкие возможности получения данных и взаимодействия с платформой.

Web- приложения представляют все необходимые инструменты для настройки и управления устройствами, вывод результатов в виде дашбордов, анализа поведения данных с помощью графиков и отслеживания состояния устройств на географической карте. Платформа предоставляет 4 web приложения:

Внешним разработчикам предоставляется среда разработки виджетов и доступ к магазину виджетов.

Программное обеспечение для контроллера (ПО контроллера) является самостоятельным элементом платформы. ПО контроллера позволяет выполнять предобработку данных, исполнять действия над устройствами по расписанию или правилам, а также взаимодействовать с платформой для передачи/получения данных.

Серверные компоненты содержат:

  • сервисы обмена с данными контроллера, количество которых зависит от объема обрабатываемого потока данных;
  • шину интеграции сервисов (Apache ActiveMQ.Artemis);
  • оперативный кэш данных сервисов, построенный на Redis (in-memory db);
  • сервисы приложений, которые могут горизонтально масштабироваться, в зависимости от нагрузки на обработку;
  • специальный сервис авторизации для контроллеров;
  • ETL движок для формирования данных в аналитическом хранилище;
  • специальный сервисы для работы с устройствами LoraWAN сети;
  • сервер баз данных;
  • магазин виджетов.

&800

Горизонтально масштабируемые сервисы приложений делятся на микросервисы::

  • сервис, предоставляющий доступ к данным по rest API;
  • сервисы обработчики данных, обеспечивающие в реальном времени конвейерную обработку поступающей информации и сохранение результатов обработки;
  • фоновые процессы обработки, обеспечивающие выполнение не срочных (отложенных) операций по обработке информации. Запускаются такие процессы, как правило, по расписанию.


Сервис авторизации контроллеров обеспечивает безопасное подключение контроллеров и устройств к платформе.

ETL движок осуществляет выгрузку данных в аналитическое хранилище и подготовку витрин данных для систем отчетности

Сервис LoraWan сети получает данные от LoRaWan устройств, осуществляет их разбор и передачу данных для дальнейшей обработки

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

Контроллер является элементом общей архитектуры SEM NEXT. Он обеспечивает функции мониторинга и управления для тех объектов, которые не совместимы с протоколами IoT. Управление объектами осуществляется контроллером локально и не требует для этого взаимодействия с серверными компонентами платформы.

На контроллере установлены следующие программные компоненты

  • управляющая программа;
  • сервер очередей MQTT;
  • драйверы устройств.

Управляющая программа обеспечивает сбор, обработку и передачу информации с контроллера на сервер сбора платформы, а также управление контроллером (автономно, либо через команды платформы). Управляющая программа состоит из следующих компонентов:

  • монитор - осуществляет прием, преобразование в нужный формат и отправку данных на сервер сбора платформы;
  • планировщик - обеспечивает автономное выполнение действий по расписанию либо при наступлении заданных условий.

Как монитор, так и планировщик получают все управляющие команды с режимами их работы, а также данные по параметрам со стороны платформы.

Сервер очередей контроллера (MosquittoMQ) предоставляет остальным компонентам средство информационного взаимодействия по протоколу MQTT. Кроме того, он взаимодействует с сервером очередей MQTT на сервере сбора для передачи данных между контроллером и сервером сбора.

Драйверы устройств отвечают за аппаратные возможности контроллера и функции внешних подключённых устройств (например, подключённых по интерфейсу RS-485 модулей реле). Они периодически записывают их состояние в очередь MQTT в виде специальных сообщений. Кроме того, указанные драйверы получают сообщения из очереди и отдают команды соответствующим устройствам. Подробно, спецификация ПО контроллера, протоколы информационного взаимодействия, описаны в разделе, посвященном ПО контроллера.