Представен е 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++. Предлага се SDK за разработка на драйвери за IoT устройства и сензори.
Основни промени:
- Реализиран е нов уеб интерфейс, създаден с помощта на Angular JS. Предимствата на новия GUI включват лесна поддръжка и разширяване на функционалността, наличието на съветник за свързване на нови устройства, средства за визуализация на данни и значително подобрен интерфейс за управление на метаданни, както и възможности за мониторинг на състоянието на услугите (консумация на памет, натоварване на CPU и т.н.).

- API-то за работа с микросервизи е напълно преработено и вече не зависи от комуникационния протокол, по-сигурно е, добре структурирано (използва JSON) и по-добре проследява обработваните данни от услугата.
- Повишена е ефективността и предоставена е възможност за създаване на олекотени конфигурации. Компонентът Core Data, отговарящ за запазването на данни, вече не е задължителен (например, може да бъде изключен, когато е необходимо само да се обработят данни от сензори без необходимост от запазване).
- Увеличена надежность и расширены инструменты для обеспечения качества предоставления сервиса (QoS). При передаче данных от сервисов устройств (Device Services, отвечают за сбор данных с датчиков и устройств) в сервисы обработки и хранения данных (Application Services) теперь возможно использовать шину сообщений (Redis Pub/Sub, 0MQ или MQTT) без привязки к HTTP-протоколу REST и регулирования приоритетов QoS на уровне брокера сообщений. Кроме того, допускается прямая передача данных от 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) за лична употреба, което ще помогне да се избегнат конфликти с вече съществуващите системи.
Източник: opennet.ru



