Синхронизация полезных нагрузок устройств с Eclipse Vorto: практическое руководство
Александр Эдельман
你好 (китайский для «Привет»), я Александр Эдельман, базируюсь в Сингапуре и с 2006 года работаю софт-инженером в Robert Bosch. Я увлечен IoT и выступаю за открытые стандарты, обеспечивающие бесшовную интероперабельность устройств между платформами. Я активно вкладываюсь в проект Eclipse IoT Vorto, предоставляющий облачные инструменты для унифицированного описания устройств и интеграции по разным IoT-экосистемам. За пределами инженерии я люблю азиатскую кухню, практикую навыки палочек для еды и теннис.
В среде, лишенной глобального стандарта, производители IoT-устройств, интеграторы и провайдеры платформ борются с сильным разнообразием форматов полезной нагрузки, API и проприетарных протоколов.
Eclipse Vorto решает эту проблему, предлагая облачные редакторы, абстрагирующие вендор-специфичные полезные нагрузки в переиспользуемые Vorto Function Blocks. Эти блоки собираются в Vorto Information Model, определяющую цифровой двойник устройства. И Information Models, и Function Blocks написаны на vortolang — лаконичной грамматике, специфицирующей интерфейс между физическим устройством и его цифровым двойником. IoT-решения коммуницируют исключительно через эти абстрактные Function Blocks и их связанные схемы данных, тем самым отвязываясь от разрозненных форматов данных устройств. Преобразование сырых данных устройств в эти абстрактные интерфейсы достигается через Vorto Mapping Specifications, кодирующие инструкции, необходимые для гармонизации устройственно-специфичных полезных нагрузок.
Нормализация полезной нагрузки в общем
Нормализация данных может выполняться в разных точках IoT-стека, позволяя стейкхолдерам сохранять контроль над тем, где проприетарные данные трансформируются в стандартизированную форму.
- На узле устройства — умное устройство, такое как умная духовка Bosch, обрабатывает сенсорные данные локально, нормализует их и может экспонировать аналитику, агрегируемую в cloud data lake.
- На узле шлюза — шлюз, агрегирующий множество сенсоров или устройств через разнородные драйверы протоколов (BLE, GPIO и т.д.), нормализует входящие данные для предоставления шлюзовой аналитики или других бизнес-функций.
- На узле IoT-платформы — аналогично шлюзу, облачная IoT-платформа нормализует телеметрию, полученную через адаптеры протоколов (MQTT, CoAP и т.д.), для питания сервисов управления устройствами или аналитики.
- На узле приложения — приложение нормализует данные, чтобы оставаться агностичным к конкретным устройствам, фокусируясь на бизнес-логике вместо устройственно-специфичных декодеров.
Когда устройство не может выполнить маппинг полезной нагрузки — возможно, из-за ограниченной вычислительной мощности или ограничений пропускной способности — отдельный движок маппинга должен выполнить этот шаг на промежуточном, шлюзовом, платформенном или прикладном узле.
Нормализация данных может обрабатываться либо на узле устройства (1), либо на узле шлюза (2), либо на узле IoT-платформы (3) либо на узле приложения (4).
Тим Гроссман
Как студент компьютерных наук из Германии, я завершил проекты в трех разных департаментах Bosch за прошедший полтора года. Мои интересы лежат в Open Source и EduTech технологиях. Я верю, что IoT и автоматизация несут огромный потенциал для трансформации повседневной жизни. Я преданный ученик и разработчик, и поддерживаю крупнейший в мире бесплатный open-source Instagram-бот для автоматизации. В свободное время люблю скалолазание и путешествия за границу.
Как Eclipse Vorto решает нормализацию
Eclipse Vorto предоставляет runtime-библиотеку, которая, будучи сконфигурированной с Vorto Information Model, применяет mapping specification для трансформации сырых полезных нагрузок устройств в их нормализованную форму. Mapping specification версионируется и хранится рядом с Information Model устройства в Vorto Repository, обеспечивая переиспользование по разным узлам развертывания — устройство, шлюз, платформа или приложение. Библиотека сейчас доступна для Java и Node.js. Подробнее о библиотеке Vorto Payload Mapping.
Пример: нормализация промышленных данных с Eclipse Vorto
Для иллюстрации рассмотрим сценарий, где CSV-телеметрия от синхронного двигателя с постоянными магнитами (PMSM) передается в Eclipse Hono MQTT коннектор.
Middleware Vorto Payload Normalization потребляет эти данные из Hono, маршрутизирует их через Vorto Payload Mapping Engine и публикует гармонизированные данные как AMQP топик. Любой AMQP 1.0 подписчик может тогда потреблять стандартизированные данные независимо от исходного устройства, используя digital-twin платформу вроде Bosch IoT Things.
В этом примере мы используем Eclipse Ditto, open-source digital-twin сервис, для приема и хранения нормализованных данных. Vorto Dashboard затем запрашивает Ditto API и презентует информацию, используя предопределенные Vorto-совместимые UI-виджеты.
Полная концептуальная настройка нашего пайплайна маппинга полезной нагрузки устройства.
Если вы хотите наблюдать весь пайплайн маппинга в действии, посетите Vorto Dashboard Demo.
Эта статья дает краткий обзор Payload Mappings. Для исчерпывающего пошагового руководства по конфигурации вашего пайплайна обратитесь к нашему детальному туториалу.
Интернет вещей
- Масштабирование провижининга IoT: безопасные эффективные стратегии для онбординга устройств
- Обеспечение соответствия данных в Интернете вещей
- Умные данные: навигация по следующей границе IoT и Big Data
- Подготовка производственных операций к ИИ с помощью IoT
- IoT в эре Edge: рост, данные, безопасность и стратегия партнерств
- Топ-3 вызова подготовки IoT-данных для промышленного успеха
- Безопасность данных при мобильном сканировании: почему важна обработка на устройстве
- Демократизация Интернета вещей: Next-Gen Satellite IoT приносит универсальную, доступную связность
- Раскрытие ценности данных IoT: безопасные стратегии на основе инсайтов
- Почему прямое подключение устройств — следующий веха в промышленном Интернете вещей