Выпуск платформы для интернета вещей EdgeX 2.0
Представлен выпуск EdgeX 2.0, открытой модульной платформы для обеспечения взаимодействия между IoT-устройствами, приложениями и сервисами. Платформа не привязана к оборудованию конкретных поставщиков и операционным системам, и развивается независимой рабочей группой, под эгидой организации Linux Foundation. Компоненты платформы написаны на языке Go и распространяются под лицензией Apache 2.0.
EdgeX позволяет создавать шлюзы, объединяющие имеющиеся IoT-устройства и собирающие данные от различных датчиков. Шлюз занимается как организацией взаимодействия с устройствами, так и выполняет первичную обработку, агрегирование и анализ информации, выступая промежуточным звеном между сетью из IoT-устройств и локальным управляющим центром или облачной инфраструктурой управления. На шлюзах также могут выполняться обработчики, оформленные в виде микросервисов. Взаимодействие с IoT-устройствами может быть организовано по проводной или беспроводной сети с использованием TCP/IP-сетей и специфичных (не-IP) протоколов.
Шлюзы разного назначения могут объединяться в цепочки, например, шлюз первого звена может решать задачи по управлению устройствами (system management) и обеспечению безопасности, а шлюз второго звена (fog-сервер) сохранять поступающие данные, выполнять аналитику и предоставлять сервисы. Система модульная, поэтому деление функциональности на отдельные узлы выполняется в зависимости от нагрузки: в простых случаях достаточно одного шлюза, а для крупных IoT-сетей может быть развёрнут целый кластер.
В качестве основы EdgeX выступает открытый IoT-стек Fuse, который применяется в шлюзах для IoT-устройств Dell Edge Gateway. Платформа может быть установлена на любое оборудование, включая серверы на базе CPU x86 и ARM, работающие под управлением Linux, Windows или macOS. Проект включает в себя подборку готовых микросервисов для анализа данных, обеспечения безопасности, управления и решения различных задач. Для разработки собственных микросервисов могут использоваться языки Java, Javascript, Python, Go и C/C++. Для разработки драйверов для IoT-устройств и датчиков предлагается SDK.
Основные изменения:
Реализован новый 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), отвечающих за подготовку и экспорт данных для их последующей обработки в облачных системах и приложениях. Добавлена поддержка фильтрации данных с датчиков по имени профиля устройства и типу ресурса. Реализована возможность отправки одним сервисом данных к нескольким получателям и подписки на несколько шин сообщений. Предложен шаблон для быстрого создания собственных сервисов приложений. Добавлен сервис LLRP inventory для сопоставления данных, поступающих от ридеров RFID-меток, с информацией из систем инвентаризации.
Выбираемые номера портов для микросервисов приведены в соответствие с диапазонами, рекомендуемыми организацией IANA (Internet Assigned Numbers Authority) для приватного использования, что позволит избежать конфликтов с существующими системами.
Источник: http://www.opennet.ru/opennews/art.shtml? num=55591
© OpenNet