Интернет вещей
Тема 4: Безопасность и будущее интернета вещейУрок 1: Как обрабатываются данные
- Видео
- Тренажер
- Теория
В этом модуле вы узнаете:
- - какие программы и операционные системы используются в интернете вещей;
- - почему эти программы часто не похожи на привычное нам ПО;
- - что такое платформа и почему она играет ключевую роль в нашей сети;
- - как решить, какая из программ будет обрабатывать наши данные.
Какие программы нам нужны
Чтобы управлять интернетом вещей, нужно установить ПО на каждый элемент сети. Разберемся с основными видами этих программ.
Какие бывают программы. Если мы хотим видеть что-то на личном компьютере, понятно, что для этого нам нужно настольное приложение, его мобильная версия или веб-интерфейс. Но чтобы данные дошли к нам в нужном и готовом виде, программы должны стоять и на других элементах нашей цепочки компьютеров.
На уровне устройства нужен алгоритм— это небольшая по объему программа-инструкция для стоящего в нем микроконтроллера: обычно мощность и память невелики, и записать туда что-то, кроме базовых правил для передачи данных, сложно.
На уровне серверов— производительных компьютеров, которые выделяются для работы с данными без участия человека, — мы можем развернуть операционную систему с набором собственных приложений для управления сетью и платформу— набор программ для обработки и хранения всех наших данных.
Что умеют эти программы
Возможности ПО прямо зависят от возможностей “железа” и источника питания. Поэтому самые сложные и интересные программы будут “крутиться” на серверах — у них много памяти, и они бесперебойно работают от сети.
Где стоит программа |
Что можно делать с ее помощью |
Устройство с микроконтроллером |
Наш алгоритм может анализировать, стоит ли устройству реагировать на события внешней среды, а также запускать отправку данных по расписанию. Алгоритмы пишут на обычном компьютере, а затем загружают на устройство. Например, автономный детектор дыма можно запрограммировать так:
При каждом запуске программа потребляет энергию, так что если устройство питается от батареи, объем и сложность алгоритма прямо влияют на скорость разряда аккумулятора. |
Сервер или группа серверов |
Операционная система хранит и поддерживает логику управления всей нашей сетью. Во многом это то же выполнение алгоритмов-инструкций, но в большем масштабе: сервер может анализировать сложную информацию и данные с множества устройств, а также принимать решения по правилам на основе всей этой информации — например, отдавать команды группам устройств или оповещать людей, если сработали сразу несколько датчиков в разных местах. Чаще всего на серверах стоят известная операционная система Linux и нужные приложения к ней. Платформа— это набор дополнительных программ, которые также работают на серверах и помогают:
Платформы размещают локально или “в облаке”, то есть либо ставят серверы у себя, либо арендуют в удаленном дата-центре. Первый вариант иногда надежнее, второй позволяет быстро наращивать мощности для работы ПО. Часто выбор платформы зависит от поставщика программ, с которым уже работает бизнес. Готовые платформы предлагают и крупные западные компании (Microsoft, IBM, SAP), и российские игроки (Tibbo, “Райтек”) — последние могут доработать свои решения под ваши задачи. |
Компьютер пользователя - ноутбук, смартфон или ПК |
Приложения могут использоваться для просмотра информации и работы с данными (для этого они обращаются к платформе), а также отправки команд — их функциональность прямо зависит от того, как устроена наша сеть и какие возможности дает ПО на серверах и устройствах. |
Где обрабатываются данные с датчиков
Программы для работы с информацией стоят как на микроконтроллере, так и на сервере. Значит, мы можем поделить задачи между ними. Разбираемся, как это сделать.
Сервер может обрабатывать огромные объемы информации — он не ограничен в вычислительных мощностях и питается от сети. Но наши устройства часто ограничены: иногда по времени, которое они могут проводить в эфире, передавая данные; чаще — из-за расхода энергии, который резко увеличивается при частой отправке сигнала. Всегда отправляя данные для обработки на сервер, мы рискуем слишком быстро посадить батареи устройств и забить радиоэфир. А иногда нам попросту не нужно хранить всю информацию на сервере.
-
Если мы хотим реагировать только на определенные события, чаще выгоднее обрабатывать данные с датчика прямо на устройстве. Алгоритм микроконтроллера в состоянии справиться с простыми вычислениями и определить, соответствует ли параметр условиям для отправки.
Например, если температура не вышла за допустимый предел, микроконтроллер сам сделает вывод, что посылать сигнал серверу не нужно, и наоборот. Главное, чтобы операции, которые мы доверяем микроконтроллеру, были предельно простыми и выполнялись с небольшим объемом данных.
-
Если мы хотим серьезно анализировать данные и работать с их большими объемами, то лучше делать это на сервере. Например, он может сопоставить сигналы с нескольких устройств и сделать вывод или отчет на основе всей массы их сообщений.
Часто задачи, связанные с обработкой данных на сервере, не требуют оперативной реакции на события, которые фиксирует устройство, но требуют заметных затрат энергии и вычислительных мощностей.
Как самому разобраться, где лучше обработать данные
Посмотрите, как устроена и что делает система интернета вещей в вашем случае. Найдите ответы на вопросы, представленные ниже. Решение станет очевидным.
-
Насколько сложный алгоритм обработки данных нужен?
Если мы хотим обработать 1 параметр с 1 датчика, то справится простой алгоритм на уровне микроконтроллера. Если мы хотим работать с несколькими устройствами или анализировать большой по объему поток данных, то реализовать сложный алгоритм их обработки лучше на сервере.
-
Какой объем данных и с какой скоростью мы должны передавать?
Канал передачи информации в нашей системе имеет свою ширину и зависит от возможностей конкретной технологии (см. модуль 3). Где-то мы сможем отправлять сигналы лишь с задержкой и довольно небольшими порциями, — тогда логично предобрабатывать данные на микроконтроллере. Где-то мы можем организовать потоковую передачу больших объемов информации, и их лучше будет обработать на сервере.
-
Как быстро мы должны реагировать на поступившую информацию?
Отправка, обработка на сервере, ответ — все эти вещи требуют пусть минимального, но времени. Если мы хотим отправлять команду на актуатор практически без задержки, лучше анализировать данные на уровне микроконтроллера.
-
Как работа с данными будет влиять на заряд устройства?
Если оно питается от батарей, стоит сократить время активной работы микроконтроллера и все сложные расчеты проводить на сервере.