Представлен выпуск EdgeX 2.0, открытой модульной платформы для обеспечения взаимодействия между IoT-устройствами, приложениями и сервисами. Платформа не привязана к оборудованию конкретных поставщиков и операционным системам, и развивается независимой рабочей группой, под эгидой организации Linux Foundation. Компоненты платформы написаны на языке Go и распространяются под лицензией Apache 2.0.
EdgeX umożliwia tworzenie bramek, które łączą istniejące urządzenia IoT i zbierają dane z różnych czujników. Brama zajmuje się organizacją interakcji z urządzeniami, a także przeprowadza wstępną obróbkę, agregację i analizę informacji, działając jako pośrednik między siecią urządzeń IoT a lokalnym centrum zarządzania lub chmurą. Na bramach mogą być również uruchamiane przetwarzacze w formie mikrousług. Interakcja z urządzeniami IoT może być organizowana za pomocą sieci przewodowej lub bezprzewodowej z użyciem sieci TCP/IP oraz specyficznych (nie-IP) protokołów.

Bramy o różnych przeznaczeniach mogą być łączone w ciągi, na przykład brama pierwszego poziomu może rozwiązywać zadania związane z zarządzaniem urządzeniami (system management) i zapewnieniem bezpieczeństwa, natomiast brama drugiego poziomu (serwer fog) przechowuje napływające dane, wykonuje analitykę i oferuje usługi. System jest modułowy, więc podział funkcjonalności na poszczególne węzły jest realizowany w zależności od obciążenia: w prostych przypadkach wystarczy jedna brama, natomiast dla dużych sieci IoT może być wdrożony cały klaster.

В качестве основы EdgeX выступает открытый IoT-стек Fuse, который применяется в шлюзах для IoT-устройств Dell Edge Gateway. Платформа может быть установлена на любое оборудование, включая serwery на базе CPU x86 и ARM, работающие под управлением Linux, Windows или macOS. Проект включает в себя подборку готовых микросервисов для анализа данных, обеспечения безопасности, управления и решения различных задач. Для разработки собственных микросервисов могут использоваться языки Java, Javascript, Python, Go и C/C++. Для разработки драйверов для IoT-устройств и датчиков предлагается SDK.
Główne zmiany:
- Реализован новый 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) для приватного использования, что позволит избежать конфликтов с существующими системами.
Źródło: opennet.ru



