Выпуск платформы для интернета вещей EdgeX 2.0
6 августа 2021 года
Представлен выпуск EdgeX 2.0, открытой модульной платформы для обеспечения взаимодействия между IoT-устройствами, приложениями и сервисами. Платформа не привязана к оборудованию конкретных поставщиков и операционным системам, и развивается независимой рабочей группой, под эгидой организации Linux Foundation. Компоненты платформы написаны на языке Go и распространяются под лицензией Apache 2.0.
EdgeX позволяет создавать шлюзы, объединяющие имеющиеся IoT-устройства и собирающие данные от различных датчиков. Шлюз занимается как организацией взаимодействия с устройствами, так и выполняет первичную обработку, агрегирование и анализ информации, выступая промежуточным звеном между сетью из IoT-устройств и локальным управляющим центром или облачной инфраструктурой управления. На шлюзах также могут выполняться обработчики, оформленные в виде микросервисов. Взаимодействие с IoT-устройствами может быть организовано по проводной или беспроводной сети с использованием TCP/IP-сетей и специфичных (не-IP) протоколов.
Шлюзы разного назначения могут объединяться в цепочки, например, шлюз первого звена может решать задачи по управлению устройствами (system management) и обеспечению безопасности, а шлюз второго звена (fog-сервер) сохранять поступающие данные, выполнять аналитику и предоставлять сервисы. Система модульная, поэтому деление функциональности на отдельные узлы выполняется в зависимости от нагрузки: в простых случаях достаточно одного шлюза, а для крупных IoT-сетей может быть развёрнут целый кластер.
В качестве основы EdgeX выступает открытый IoT-стек Fuse (Архивная копия от 20 октября 2020 на Wayback Machine), который применяется в шлюзах для IoT-устройств Dell Edge Gateway. Платформа может быть установлена на любое оборудование, включая серверы на базе CPU x86 и ARM, работающие под управлением Linux, Windows или macOS. Проект включает в себя подборку готовых микросервисов для анализа данных, обеспечения безопасности, управления и решения различных задач. Для разработки собственных микросервисов могут использоваться языки Java, Javascript, Python, Go и C/C++. Для разработки драйверов для IoT-устройств и датчиков предлагается SDK.
Основные изменения (Архивная копия от 3 августа 2021 на Wayback Machine):
- Реализован новый web-интерфейс, созданный с использованием фреймворка Angular JS. Из достоинств нового GUI называется простота сопровождения и расширения функциональности, наличие мастера подключения новых устройств, средства для визуализации данных, значительно улучшенный интерфейс для управления метаданными, возможности мониторинга состояния сервисов (потребление памяти, нагрузка на CPU и т.п.).
- Полностью переписал API для работы с микросервисами, который теперь не зависит от коммуникационного протокола, более защищён, хорошо структурирован (использует JSON) и лучше отслеживает обрабатываемые сервисом данные.
- Повышена эффективность и предоставлена возможность создания легковесных конфигураций. Компонент Core Data, отвечающий за сохранение данных, теперь не является обязательным (например, его можно исключить когда нужно только обработать данные от датчиков без необходимости сохранять).
- Повышена надёжность и расширены средства для обеспечения качества предоставления сервиса (QoS). При передаче данных с сервисов устройств ( Device Services, отвечают за сбор данных с датчиков и устройств) в сервисы обработки и накопления данных (Application Services), теперь можно использовать шину сообщений (Redis Pub/Sub, 0MQ или MQTT), не привязываясь к HTTP-протоколу REST и регулируя приоритеты QoS на уровне message broker. В том числе допускается прямая передача данных из Device Service в Application Service с опициональным дублированием в сервис Core Data. Поддержка передачи данных по протоколу REST сохранена, но не используется по умолчанию.
- Реализован универсальный модуль (secret provider) для извлечения секретных данных (пароли, ключи и т.п.) из защищённых хранилищ, таких как Vault.
- Для ведения реестра сервисов и настроек, а также для управления доступом и аутентификацией задействован инструментарий Consul. В API Gateway предоставлена поддержка обращения к API Consul.
- Минимизировано число процессов и сервисов, которым необходимы права root в контейнерах Docker. Добавлена защита от использования Redis в небезопасном режиме.
- Упрощена настройка API Gateway (Kong).
- Упрощены профили устройств, в которых задаются параметры датчиков и устройств, а также сведения о собираемых данных. Профили могут определяться в форматах YAML и JSON.
- Добавлены новые сервисы устройств:
- CoAP (написан на C) с реализацией протокола Constrained Application Protocol.
- GPIO (написан на Go) для подключения к микроконтроллерам и прочим устройствам, включая платы Raspberry Pi, через порты GPIO (General Pin Input/Output).
- LLRP (написан на Go) с реализацией проткола LLRP (Low Level Reader Protocol) для подключения к ридерам RFID-меток.
- UART (написан на Go) с поддержкой UART (Universal Asynchronous Receiver/Transmitter).
- Расширены возможности сервисов приложений (Application Services), отвечающих за подготовку и экспорт данных для их последующей обработки в облачных системах и приложениях. Добавлена поддержка фильтрации данных с датчиков по имени профиля устройства и типу ресурса. Реализована возможность отправки одним сервисом данных к нескольким получателям и подписки на несколько шин сообщений. Предложен шаблон для быстрого создания собственных сервисов приложений.
- Выбираемые номера портов для микросервисов приведены в соответствие с диапазонами, рекомендуемыми организацией IANA (Internet Assigned Numbers Authority) для приватного использования, что позволит избежать конфликтов с существующими системами.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.