Интернет вещей

Тема 4: Безопасность и будущее интернета вещей

Урок 1: Как обрабатываются данные

  • Видео
  • Тренажер
  • Теория
Заметили ошибку?

В этом модуле вы узнаете:

  • - какие программы и операционные системы используются в интернете вещей;
  • - почему эти программы часто не похожи на привычное нам ПО;
  • - что такое платформа и почему она играет ключевую роль в нашей сети;
  • - как решить, какая из программ будет обрабатывать наши данные.

Какие программы нам нужны

Чтобы управлять интернетом вещей, нужно установить ПО на каждый элемент сети. Разберемся с основными видами этих программ.

Какие бывают программы. Если мы хотим видеть что-то на личном компьютере, понятно, что для этого нам нужно настольное приложение, его мобильная версия или веб-интерфейс. Но чтобы данные дошли к нам в нужном и готовом виде, программы должны стоять и на других элементах нашей цепочки компьютеров.

На уровне устройства нужен алгоритм— это небольшая по объему программа-инструкция для стоящего в нем микроконтроллера: обычно мощность и память невелики, и записать туда что-то, кроме базовых правил для передачи данных, сложно.

На уровне серверов— производительных компьютеров, которые выделяются для работы с данными без участия человека, — мы можем развернуть операционную систему с набором собственных приложений для управления сетью и платформу— набор программ для обработки и хранения всех наших данных.

Что умеют эти программы

Возможности ПО прямо зависят от возможностей “железа” и источника питания. Поэтому самые сложные и интересные программы будут “крутиться” на серверах — у них много памяти, и они бесперебойно работают от сети.

Где стоит программа

Что можно делать с ее помощью

Устройство с микроконтроллером

Наш алгоритм может анализировать, стоит ли устройству реагировать на события внешней среды, а также запускать отправку данных по расписанию. Алгоритмы пишут на обычном компьютере, а затем загружают на устройство.

Например, автономный детектор дыма можно запрограммировать так:

  • отправлять сообщение на пульт оператора и самостоятельно запускать актуатор на включение системы пожаротушения, если датчик уловил сильное повышение температуры и снижение прозрачности воздуха;
  • если изменения не зафиксированы, раз в 24 часа отправлять сообщение об уровне заряда батареи.

При каждом запуске программа потребляет энергию, так что если устройство питается от батареи, объем и сложность алгоритма прямо влияют на скорость разряда аккумулятора.

Сервер или группа серверов

Операционная система хранит и поддерживает логику управления всей нашей сетью. Во многом это то же выполнение алгоритмов-инструкций, но в большем масштабе: сервер может анализировать сложную информацию и данные с множества устройств, а также принимать решения по правилам на основе всей этой информации — например, отдавать команды группам устройств или оповещать людей, если сработали сразу несколько датчиков в разных местах.

Чаще всего на серверах стоят известная операционная система Linux и нужные приложения к ней.

Платформа— это набор дополнительных программ, которые также работают на серверах и помогают:

  • создавать любые отчеты, визуализировать данные, объединять их с другой важной информацией, отправлять результат конечным пользователям по запросу или расписанию;
  • хранить данные в исходном и обработанном виде, получать доступ к ним в любой момент;
  • строить прогнозы на основе собранных данных;
  • и даже работать с цифровыми копиями объектов, на которых установлены устройства, — теперь, если мы хотим что-то проверить, достаточно запустить математическую модель: она поможет “заглянуть в будущее” и спрогнозировать результат от изменений.

Платформы размещают локально или “в облаке”, то есть либо ставят серверы у себя, либо арендуют в удаленном дата-центре. Первый вариант иногда надежнее, второй позволяет быстро наращивать мощности для работы ПО. Часто выбор платформы зависит от поставщика программ, с которым уже работает бизнес. Готовые платформы предлагают и крупные западные компании (Microsoft, IBM, SAP), и российские игроки (Tibbo, “Райтек”) — последние могут доработать свои решения под ваши задачи.

Компьютер пользователя - ноутбук, смартфон или ПК

Приложения могут использоваться для просмотра информации и работы с данными (для этого они обращаются к платформе), а также отправки команд — их функциональность прямо зависит от того, как устроена наша сеть и какие возможности дает ПО на серверах и устройствах.

Где обрабатываются данные с датчиков

Программы для работы с информацией стоят как на микроконтроллере, так и на сервере. Значит, мы можем поделить задачи между ними. Разбираемся, как это сделать.

Сервер может обрабатывать огромные объемы информации — он не ограничен в вычислительных мощностях и питается от сети. Но наши устройства часто ограничены: иногда по времени, которое они могут проводить в эфире, передавая данные; чаще — из-за расхода энергии, который резко увеличивается при частой отправке сигнала. Всегда отправляя данные для обработки на сервер, мы рискуем слишком быстро посадить батареи устройств и забить радиоэфир. А иногда нам попросту не нужно хранить всю информацию на сервере.

  • Если мы хотим реагировать только на определенные события, чаще выгоднее обрабатывать данные с датчика прямо на устройстве. Алгоритм микроконтроллера в состоянии справиться с простыми вычислениями и определить, соответствует ли параметр условиям для отправки.

    Например, если температура не вышла за допустимый предел, микроконтроллер сам сделает вывод, что посылать сигнал серверу не нужно, и наоборот. Главное, чтобы операции, которые мы доверяем микроконтроллеру, были предельно простыми и выполнялись с небольшим объемом данных.

  • Если мы хотим серьезно анализировать данные и работать с их большими объемами, то лучше делать это на сервере. Например, он может сопоставить сигналы с нескольких устройств и сделать вывод или отчет на основе всей массы их сообщений.

    Часто задачи, связанные с обработкой данных на сервере, не требуют оперативной реакции на события, которые фиксирует устройство, но требуют заметных затрат энергии и вычислительных мощностей.

Как самому разобраться, где лучше обработать данные

Посмотрите, как устроена и что делает система интернета вещей в вашем случае. Найдите ответы на вопросы, представленные ниже. Решение станет очевидным.

  1. Насколько сложный алгоритм обработки данных нужен?

    Если мы хотим обработать 1 параметр с 1 датчика, то справится простой алгоритм на уровне микроконтроллера. Если мы хотим работать с несколькими устройствами или анализировать большой по объему поток данных, то реализовать сложный алгоритм их обработки лучше на сервере.

  2. Какой объем данных и с какой скоростью мы должны передавать?

    Канал передачи информации в нашей системе имеет свою ширину и зависит от возможностей конкретной технологии (см. модуль 3). Где-то мы сможем отправлять сигналы лишь с задержкой и довольно небольшими порциями, — тогда логично предобрабатывать данные на микроконтроллере. Где-то мы можем организовать потоковую передачу больших объемов информации, и их лучше будет обработать на сервере.

  3. Как быстро мы должны реагировать на поступившую информацию?

    Отправка, обработка на сервере, ответ — все эти вещи требуют пусть минимального, но времени. Если мы хотим отправлять команду на актуатор практически без задержки, лучше анализировать данные на уровне микроконтроллера.

  4. Как работа с данными будет влиять на заряд устройства?

    Если оно питается от батарей, стоит сократить время активной работы микроконтроллера и все сложные расчеты проводить на сервере.