
Thingularity/
Платформа Thingularity
Ядро Thingularity
Thingularity - это универсальная платформа интернета вещей, которая обеспечивает простое и мощное управление устройствами интернета вещей и данными и значительно упрощает разработку приложений интернета вещей. Он также поставляется с набором мощных приложений, которые обеспечивают мгновенное развертывание и использование.
Платформа распространяется в виде интернет-сервиса, специальные действия по установке Платформы на стороне пользователя не требуются.
Руководство по эксплуатации Thingularity (скачать PDF) 365 KB
Ключевые возможности
Поддержка нескольких технологий с помощью мостов (LoRaWAN, MQTT, BLE и т.д.)
Управление устройствами и контроль с помощью драйверов устройств
Унифицированный уровень представления данных Интернета Вещей со схемами данных
Механизм RPC для элементов управления и вызовов функций устройства
Уведомления, интегрированные с SMS, Telegram, электронной почтой
Хранение исторических данных
Управление пользователями и профилями пользователей
Универсальное хранилище и хранилище медиафайлов с API медиасервера
Готовые приложения: Admin, Monitor, Board
Модуль диспетчера бизнес-логики
Сетевой сервер LoRaWAN
Современный GraphQL API для веб-приложений
gRPC API для высокоскоростной передачи данных

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

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

Ядро платформы
Платформа в своей Основе использует Самую Передовую В Мире Реляционную Базу Данных с Открытым Исходным Кодом - PostgreSQL. Это позволяет структурировать, но очень гибкое хранение данных, включая высокоскоростную обработку и очень богатую функциональность, доступную другим компонентам системы через API. Платформа поддерживает два типа API, а именно gRPC и GraphQL, которые могут быть использованы для двух типичных случаев использования.
gRPC API - это высокопроизводительный API, ориентированный на юг, с набором функций, оптимизированных для высокоскоростной обработки потока данных устройства и функций управления устройством.
GraphQL - это современная и мощная технология API с богатым набором функциональных возможностей, что делает ее идеально подходящей для реализации пользовательского интерфейса и бизнес-логики. GraphQL используется в качестве API, ориентированного на север.

Данные устройств
Платформа разработана с использованием двух типов основных компонентов, которые поддерживают взаимодействие с устройствами Интернета вещей: Сетевые мосты и драйверы устройств. Сетевые мосты обеспечивают поддержку различных коммуникационных технологий (LoRaWAN, MQTT, BLE, ModBUS и т.д.) и обеспечивают доступ внешних данных Интернета вещей к Платформе. Мосты поддерживают важнейшую двустороннюю связь.
Соединяет данные передачи данных с драйверами устройств. Драйверы устройств обеспечивают декодирование специфичных для устройства данных и отправляют декодированные данные в Платформу.

Команды девайсам
Мосты предоставляют RPC API внутри Платформы для управления физическими устройствами (подготовка, генерация нисходящей линии связи и прием сообщений восходящей линии связи, другие специфические для технологии функции).
Мосты и драйверы устройств предоставляют функциональность RPC API в рамках Платформы. В случае с Bridge RPC API позволяет выполнять специфические для технологии функции, такие как устройства предоставления/удаления разрешений, сообщения push downlink и forward uplink, а также некоторые другие специфические для технологии функции.
В случае драйвера устройства RPC API позволяет выполнять специфические для устройства функции, такие как настройка устройства, декодирование восходящих и нисходящих сообщений в соответствии со спецификацией устройства, а также другие специфические функции устройства.Мосты и драйверы устройств используют rpc API для связи друг с другом через Платформу.

Комбинирование мостов и драйверов
Мосты и пакеты драйверов могут быть объединены в соответствии с требованиями развертывания. Один и тот же пакет драйверов может управлять устройствами через один или несколько мостов (при условии, что используется одна и та же технология). В то же время один мост может передавать данные в один или несколько пакетов драйверов устройств.

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

Объединение
Thingularity поддерживает подход объединения, когда выделенные экземпляры Платформы могут использоваться совместно в рамках одного развертывания. Это позволяет IT-отделу распределять обработку нагрузки между несколькими серверами, перемещать рабочую нагрузку ближе к соответствующим сетям интернета вещей и иметь более точный контроль над потоками данных и их обработкой.

Бизнес-логика
Платформа оснащена простым в использовании и настраиваемым компонентом: диспетчером бизнес-логики. Диспетчер отвечает за всю реализацию бизнес-логики внутри Платформы (для всех готовых приложений). Однако также поддерживаются автономные модули BL. Dispatcher предоставляет удобный фреймворк, позволяющий разработчику сосредоточиться только на самой бизнес-логике и заботится обо всех накладных расходах инфраструктуры - авторизации, планировщике, подписке на сообщения и прочем.

Интеграция со сторонними системами
Наличие двух стандартных API-интерфейсов, реализованных в Thingularity, обеспечивает простую в использовании интеграцию со сторонними разработчиками.

Передача информации
Одной из важных функций Платформы является поддержка уведомлений и их доставка. Notifier - это модуль, который прослушивает сгенерированные уведомления и предоставляет пользователям несколько вариантов доставки. По сути, он записывает статус доставки для дальнейшего изучения, если это необходимо. Notifier поддерживает готовые варианты доставки SMS, электронной почты, Whatsapp с помощью интеграции Twilio. Notifier реализован в рамках платформы Business Logic Dispatcher framework и легко расширяется для поддержки других технологий.

Структура данных объектов
В Thingularity все объекты из физического (и не только) мира, такие как устройства, датчики и шлюзы, представлены в виде объектов. Структура объекта определяется с помощью схем. Схемы и объекты связаны в течение всего жизненного цикла объекта - изменение Схемы приводит к автоматическому обновлению Объектов, созданных с помощью этой Схемы. Объекты обычно представляют собой устройства, Носители, Наборы данных и приложения. Объекты используются для представления фактического статуса объекта, а также имеют связанное с ним историческое хранилище.

Хранение информации
В Thingularity все объекты из физического (и не только) мира, такие как устройства, датчики и шлюзы, представлены в виде объектов. Структура объекта определяется с помощью схем. Схемы и объекты связаны в течение всего жизненного цикла объекта - изменение Схемы приводит к автоматическому обновлению Объектов, созданных с помощью этой Схемы. Объекты обычно представляют собой устройства, Носители, Наборы данных и приложения. Объекты используются для представления фактического статуса объекта, а также имеют связанное с ним историческое хранилище.
