Uploaded by Артур Глызин

1.Экскурсия в бэкенд Интернета вещей Владимир Плизга вер.2

advertisement
Экскурсия в backend
Интернета вещей
Владимир Плизга
Tibbo Systems
✗ Я – Владимир Плизгá
✗ 2011-2021: ЦФТ (Java)
✗ бэкенд Интернет-банков
✗ 2021-⏳: Tibbo Systems (Java)
✗ бэкенд IoT-платформы
Toparvion
toparvion.pro
2
План зоопарка
доклада
★ Примерно так,
только про IIoT
★ А еще про
IoT-платформу
3
http://www.spbzoo.ru/posetitelyam/afisha-meropriyatiya/18-avgusta-leningradskij-zoopark-otprazdnuet-den-rozhdeniya-nam-ispolnitsya-153-goda/
IoT-платформа по частям
1
Fleet Management
Каким его никто не видел
Знакомьтесь!
ЕЕ ЗОВУТ МАЯ
7
И она не одна
Мая
Мура
Шура
Бойка
Жаба
. . .
Cow_6
Cow_7
Cow_N
8
1
Задачи пастуха
✗ Вовремя отвести всех на выпас
✗ Никого не про🐐ять
✗ Вовремя всех собрать и отвести обратно
1
Частный случай Fleet Management’а
9
Дух цифровой
трансформации
Еще недавно здесь
висел обычный
колокольчик
https://taigaiot.com/ixocat
10
Трекер двигательной
активности КРС
★ Масса <300 г
★ Приемник
GPS/ГЛОНАСС
★ Протокол передачи
LoRaWAN 1.0.3 class A
https://taigaiot.com/ixocat
11
LoRaWAN – Long Range Wide Area Network
https://www.itweb.co.za/content/Pero3qZgzRLvQb6m
12
Как получить данные с устройства по LoRaWan
https://lora-alliance.org/wp-content/uploads/2020/11/what-is-lorawan.pdf
13
Вариант архитектуры бэкенда
✗ Платформа/язык – Java
✗ т.к. надо запускаться где попало
AggreGate
✗ Подход – pub-sub
✗ т.к. иначе устанем опрашивать
✗ Прикладной протокол – MQTT
ThingWorx
✗ т.к. (см. далее)
15
MQTT – Message Queuing Telemetry Transport
✗ Работает (в т.ч.) поверх TCP/IP
✗ Специально для полевых устройств
✗ Поддержан в проекте Eclipse Paho (в т.ч. Java)
https://mqtt.org/assets/img/mqtt-logo.svg
16
IoT-платформа по частям
IoT-платформа по частям
1
1 Полиглотность
интеграций
Выбираем хранилище (1/2)
✗ Однотипные данные поступают часто и много
✗ Чтений значительно меньше
✗ Транзакционность и ACID не нужны
⇒ Колоночное NoSQL-хранилище
20
Выбираем хранилище (2/2)
✗ Benchmarking Cassandra Scalability on AWS
— Over a million writes per second (Netflix)
✗ Платформа должна быть “коробочной”
✗ Но масштабирование важно сохранить
⇒
https://upload.wikimedia.org/wikipedia/commons/a/a0/Cassandra_logo.png
21
... it's an unsupported setup. We do not
support embedding C* in a container
(i.e. a JVM not controlled "by us").
IMO, supporting C* in such an environment
will cause other issues.
https://issues.apache.org/jira/browse/CASSANDRA-13396
22
Плюсы развертывания Cassandra в разных вариантах
Embedded
External
★ Только одна JVM
★ Разные JVM
★ Нулевой сетевой лаг
★ Масштабируемость
★ Единство настроек
★ Гибкость настроек
23
Вариант компромисса на примере AggreGate
24
Когда Embedded уже не торт (1/3)
25
Когда Embedded уже не торт (2/3)
26
Когда Embedded уже не торт (3/3)
🧐
27
IoT-платформа по частям
1
1 Полиглотность
интеграций
IoT-платформа по частям
1 Полиглотность
интеграций
1
2
2 Гибкое
хранение
Общая картина
Cow_1
Cow_2
IoT платформа
(Paho @ Java)
LoR
aWA
N
TT
MQ
Mobile UI
Web UI
Базовая
станция
Cow_3
Cow_N
Cassandra
Desktop UI
31
А на самом деле
★ Мобильное приложение
под iOS и Android
★ Бэкенд на AggreGate
★ Обновление координат
каждые несколько минут
https://tumar.winext.kz/
33
Путевые заметки
✗ Важен выбор не языка, а его экосистемы
✗ (не)Критичность данных решает многое
✗ Коровы тоже прыгают
34
2
Интеллектуальный
анализ
машинных данных
ЧАЯНДИНСКОЕ МЕСТОРОЖДЕНИЕ
ЯКУТИЯ
https://www.rogtecmagazine.com/газпром-нефть-начала-разработку-не/?lang=ru
71
Установка
Электроприводного
Центробежного Насоса
★ Служит для откачки
нефти, воды, газа, …
★ Имеет длину до 50 м
http://oilloot.ru/84-oborudovanie-truby-materialy-dlya-nefti-i-gaza/1
25-konstruktsiya-i-tekhnicheskie-kharakteristiki-modulej-uetsn
72
Разновидности обслуживания
Реактивное
обслуживание
Упреждающее Прогностическое
обслуживание обслуживание
74
Причем здесь IoT [платформа]?
Получение
Обработка
ModBus, OPC,
BacNet, SNMP,
COM, MQTT, …
Статистика, ML,
корреляция,
фильтрация, …
Выдача
GUI, e-mail,
PDF, REST API,
SOAP, SMS, …
Удобно делать одним инструментом
76
Как реализуется прогностическое обслуживание
ТТХ
Взять в
работу
Измерения
IoT платформа
(модуль ML)
Наблюдения
Вероятности
поломок
Журналы
работ
Оператор
Учесть
Забить
77
А что под капотом? (AggreGate)
✗ Поддержаны 3 типа задач ML:
✗ регрессия
✗ классификация
✗ обнаружение аномалий
✗ Библиотека Weka
✗ база знаний называется “Weka Wiki”
https://en.wikipedia.org/wiki/File:Weka_(software)_logo.png
81
А если не Java? Как насчёт Python?
✗ Поддерживается библиотека JEP
✗ Java Embedded Python
✗ Работает через JNI и CPython API
✗ потому что важна скорость
✗ Полагается на библиотеку Pandas
https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/
Python-logo-notext.svg/240px-Python-logo-notext.svg.png
83
IoT-платформа по частям
1 Полиглотность
интеграций
1
2
2 Гибкое
хранение
IoT-платформа по частям
1 Полиглотность
интеграций
1
2
2 Гибкое
хранение
3
3 Языковой
интероп
А вот что видят операторы
88
Путевые заметки
✗ Прогностические ТОиР применяются
не от хорошей жизни
✗ Обработка машинных данных – богатая область
для методов ML
✗ ИИ, конечно, хорошо, но Михалыч знает лучше
гибридные модели надежнее
91
4
Нормализация,
или Как связать несвязуемое
Что мы иумеем
✗ Собирать данные с устройств (🐮)
✗ Интеллектуально обрабатывать их (⛽)
✗ Красиво визуализировать (🧐1)
1
Игрушечная линия по производству сахара
demo.aggregate.digital
94
IoT-платформа по частям
1 Полиглотность
интеграций
1
2
2 Гибкое
хранение
3
3 Языковой
интероп
IoT-платформа по частям
1 Полиглотность
интеграций
1
2
2 Гибкое
хранение
3
4
4 Визуализация
3 Языковой
интероп
Недостающее
звено
Хорошо иметь отдельные
“кубики”.
Но как построить из этого,
например, цифровую
шину предприятия? 🤔
98
Ответ: нормализация данных
https://aggregate.digital/ru/technology/architecture/unified-data-model.html
99
Единая модель данных (AggreGate)
✗ Содержит нормализованные данные
✗ Организует данные в контексты
✗ В каждом контексте:
✗ функции
✗ события
✗ переменные
100
Переменная в единой модели – это:
❏ Примитив
❏ Объект
❏ Массив
❏ Таблица
✅
101
Формат таблицы изнутри
★ Содержит список
ее полей с их типами
★ Обеспечивает
валидацию данных
таблицы
https://aggregate.digital/ru/technology/architecture/unified-data-model.html
104
За чей счет банкет?
✗ Транзиентный кэш
✗ RAM (SoftReference)
✗ Персистентный кэш
✗ File / RDBMS / NoSQL
✗ Строковая сериализация
✗ с прозрачным сжатием
105
Дерево контекстов
★ Контекст – логический
контейнер данных от
устройства или ресурса
★ Сильно облегчает
групповые действия
https://aggregate.digital/ru/technology/architecture/unified-data-model.html
106
Распределенная
архитектура
★ Метод
горизонтального
масштабирования
AggreGate
★ Может сочетаться
с отказоустойчивым
кластером
https://aggregate.digital/ru/technology/architecture/distributed-architecture.html
108
IoT-платформа по частям
1 Гибкое
хранение
1
2
2 Полиглотность
ввода/вывода
3
4
4 Визуализация
3 Языковой
интероп
IoT-платформа по частям
1 Гибкое
хранение
1
2
2 Полиглотность
ввода/вывода
5 Нормализация
5
3
4
4 Визуализация
3 Языковой
интероп
4½
Реальные примеры
применения единой модели данных
Переменная
(скаляр)
Содержание газа в воздухе
https://aggregate.digital/ru/customers.html
114
Переменная
(кортеж)
Геопозиция объекта
https://aggregate.digital/ru/customers.html
115
Переменная
(таблица)
Список сетевых интерфейсов
https://aggregate.digital/ru/customers.html
116
Событие
(адрес машины)
Исчерпание зерна в кофемашине
https://aggregate.digital/ru/customers.html
119
Функция
(номер замка)
Управление замком
https://aggregate.digital/ru/customers.html
120
IoT-платформа по частям
1 Гибкое
хранение
1
2
2 Полиглотность
ввода/вывода
5 Нормализация
5
3
4
4 Визуализация
3 Языковой
интероп
IoT-платформа по частям
1 Гибкое
хранение
1
6 Модульность
6
2
2 Полиглотность
ввода/вывода
5 Нормализация
5
3
4
4 Визуализация
3 Языковой
интероп
Путевые заметки
✗ Нормализация – основа гибкости платформы
✗ Избыточность базовых структур данных оправдана
✗ Большинство устройств можно представить в
единой модели данных
123
5
Выводы
Что сейчас было?
✗ Кейсы применения IoT
✗ сельское хозяйство (NoSQL-хранилище)
✗ нефтегазовая промышленность (ML)
✗ Обобщение
✗ единая модель данных (переменные)
126
И что же такое IoT платформа?
✗ Общепринятого определения нет 󰤇
✗ Но есть неплохие попытки его дать:
✗
https://www.gartner.com/en/information-technology/glossary/iot-platforms
✗
https://www.link-labs.com/blog/what-is-an-iot-platform
✗
https://www.softwaretestinghelp.com/best-iot-platforms/
✗ “IoT-платформа – это инструмент, который…
128
… empowering businesses …
by mining valuable insights
from the connected world.”
Victor Polyakov, CEO Tibbo Systems
130
Где узнать больше?
✗ О типах IoT-устройств вообще (англ):
✗ https://www.iot-now.com/world-of-iot/
✗ О значении терминов в IoT (рус):
✗ https://iot.ru/wiki/
✗
О том, что не удалось нагуглить:
✗ Hard: https://iot.stackexchange.com/
✗ Soft: https://stackoverflow.com/tags/iot/
131
Спасибо!
Время для вопросов
Владимир Плизгá
Toparvion
toparvion.pro
⬆ слайды ⬆
aggregate.digital
https://toparvion.pro/event/2022/highload/
133
Credits
Special thanks to all the people who made and
released these awesome resources for free:
✗ Presentation template by SlidesCarnival
135
Download