Функционирует при финансовой поддержке Федерального агентства по печати и массовым коммуникациям (Роспечать)

Индустриальный интернет вещей. Модуль 4

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

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

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

Программы: наш пропуск в мир интернета вещей

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



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

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

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

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

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


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

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

Где стоит программа, и что можно делать с ее помощью:

1. В устройстве с микроконтроллером

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

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

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

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

2. В сервере или группе серверов

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Проверьте, насколько хорошо вы усвоили материал:

ПРОВЕРИТЬ СЕБЯ

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.