Децентрализованная система управления программным обеспечением для IoT-устройств | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 22 августа, печатный экземпляр отправим 9 сентября.

Опубликовать статью в журнале

Библиографическое описание:

Морозов, А. Д. Децентрализованная система управления программным обеспечением для IoT-устройств / А. Д. Морозов, П. А. Мартынов, А. П. Чернышова, Т. В. Сиркин. — Текст : непосредственный // Молодой ученый. — 2020. — № 27 (317). — С. 49-52. — URL: https://moluch.ru/archive/317/72332/ (дата обращения: 08.08.2020).



Ключевые слова: децентрализованная система, управление IoT, IOTA, блокчейн, IPFS, управление программным обеспечением.

Введение

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

  1. конфиденциальность
  2. безопасность
  3. доверие
  4. единая точка отказа

Для разработки системы управления программного обеспечения необходимо выбрать распределенную платформу, на которой она будет основана. Все взаимодействия между клиентами и устройствами должны происходить только через нее. Это обеспечит прозрачность всех взаимодействий, а также гарантию того, что никакие данные не могут быть подделаны. Кроме того. необходимо решить проблему распространения обновлений. Совершенно очевидно, что предавать файла внутри распределенного реестра — плохой подход, так как это может увеличить нагрузку на сеть. Поэтому в данной работе предлагается хранить обновления внутри распределенной файловой системы, а в реестр записывать лишь хэш этого файла. Таким образом становится невозможно подменить файл, так как это повлечет изменение хэша, а записи внутри распределенного реестра невозможно изменить.

Компоненты системы

В данной работе была выбрана платформа IOTA по нескольким причинам.

В отличие от блокчейна, в котором транзакции объединяются в блоки, а затем эти блоки верифицируются и добавляются в общую цепочку, в IOTA же используется ориентированный ациклический граф, называемый Tangle. Каждая транзакция должна подтвердить 2 предыдущие. Именно поэтому данная платформа обладает высоким показателям количества транзакция в секундну, так как чем больше транзакций добавляется, тем больше подтверждается. 4.6 для биткоина, 15 для ethereum, 800 IOTA.

Также важным фактором является то, что транзакции в IOTA бесплатные и как следствие не нужно платить комиссию майнерам, что актуально для сети Интернета Вещей.

Отдельно стоит сказать про важную особенность IOTA — MAM канал. Это надежный и зашифрованный протокол передачи данных, работающий поверх транзакций. MAM канал можно сравнить с каналом в СМИ. Канал может быть публичными, на которой могут подписаться все желающие и ограниченным, для доступа к которому нужен ключ

В качестве распределенной файловой системы был выбран IPFS. В данной файловой системы для каждого файла генерируется уникальный хэш. Благодаря этому возможна адресация на основе контента, а не местоположения. Иными словами, мы может быть уверенными в том, что по данному хэшу будет доступен именно запрашиваемый файл. Его подмена невозможна. Так как изменение файла повлечет изменение хэша.

Общая архитектура

Задачу управление программным обеспечением можно разбить на 2 пункта:

  1. Доставка обновления
  2. Применение обновления

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

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

На рисунке 1 приведена общая архитектура системы управление программным обеспечением.

Общая схема архитектуры

Рис. 1. Общая схема архитектуры

IoT devices — это устройства Интернета вещей. Каждое такое устройство представляет собой контроллер(например, таким контроллером может быть Raspberry PI) и какое-то количество датчиков. Будем говорить, что все датчики, одной и той же модели принадлежат одному классу.

Loader — это точка взаимодействия пользователя с системой. Компонент Loader написан на NodeJS и предоставляет пользователю интерфейс командной строки. Пользователь может указать 2 основных параметра — это имя класса, для которого будет послано обновление и файл самого обновления.

Как говорилось выше, в IOTA есть защитный механизм передачи зашифрованных сообщений MAM. Для каждого класса существует свой ограниченный MAM канал, пароль от которого известен устройствам, у которых есть этот класс. Также существует публичный канал, на который подписаны все устройства, в этот канал приходит уведомление о том, что есть обновление для указанного класса.

Отправка обновления

На рисунке 2 приведена схема отправки обновления. Пользователь загружает в IPFS файл обновления, стоит отметить, что загружается не сам файл, а diff — разница между старой и новой версией файла. Это сделано для того, чтобы передавать файлы меньших размеров. IPFS возвращает хэш этого файла. Далее публикуется сообщение в публичный канал о том, что есть обновления для указанного класса. Затем в ограниченный канал класса отправляется хэш файла.

Схема отправки

Рис. 2. Схема отправки

Таким образом, мы можем быть уверены в сохранности и надежности передачи, ввиду 2 факторов:

  1. Любое изменение файла повлечет за собой изменение хэш значения этого файла в распределенной файловой системе IPFS.
  2. Сообщение в MAM канале нельзя изменить

Получение обновления

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

Стоит отметить, что так как сообщения добавляются в Tangle, то устройство может прочитать его в любой момент времени, то есть если устройство по каким-то причинам потеряло соединение с сетью, то как только соединение восстановится, устройство сможет прочитать все сообщения, которые были отправлены в момент его отсутствия в сети и тем самым не пропустит обновление, если обновление было.

Тестирование

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

Тестирование состояло в следующем: были взяты 3, 5 и 10 устройств. На устройства отправлялись обновления. Время измерялось от отправки в public канал сообщения о наличии обновления до принятия файла самым последним устройством, то есть, например, если есть 3 устройства, а какое-то из них получило файл позже всех, то конечным времен считается принятие именно этим устройством. Помимо увеличения числа устройств также увеличивался размер файла обновления

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

Результаты тестирования

Рис. 3. Результаты тестирования

Литература:

  1. Sabrina Sicari, Alessandra Rizzardi, Luigi Alfredo Grieco and Alberto Coen-Porisini Security privacy and trust in Internet of Things: The road ahead. Computer networks, vol. 76, pp. 146–164, 2015.
  2. Ala Al-Fuqaha, Mohsen Guizani, Mehdi Mohammadi, Mohammed Aledhari, Moussa Ayyash Internet of Things: A Survey on Enabling Technologies, Protocols, and Applications.: IEEE Communications Surveys & Tutorials (Volume: 17, Issue: 4, Fourthquarter 2015)
  3. Lee, J. Patch Transporter: Incentivized, Decentralized Software Patch System for WSN and IoT Environments. Sensors 2018, 18, 574–608.
  4. Nachiket Tapas, Yechiav Yitzchak, Francesco Longo, Antonio Puliafito, Asaf Shabtai P 4 UIoT: Pay-Per-Piece Patch Update Delivery for IoT Using Gradual Release Sensors (Basel). 2020 Apr 10;20(7):2156.
Основные термины (генерируются автоматически): IOTA, IPFS, MAM, устройство, программное обеспечение, обновление, файл, публичный канал, распределенная файловая система, локальная задача.


Ключевые слова

блокчейн, децентрализованная система, управление IoT, IOTA, IPFS, управление программным обеспечением

Похожие статьи

Создание хранилища данных для распределённой системы

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

Мультиагентная система поддержки принятия решений по...

Обоснована целесообразность и перспективность разработки СППР оперативного развертывания, обновления многокомпонентных распределенных информационных веб-систем на основе мультиагентных технологий.

Программно-аппаратные средства защиты автоматизированных...

Программно-аппаратные средства защиты автоматизированных систем от несанкционированного доступа.

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

Hadoop и метод доступа к хранилищу MRIJ | Статья в журнале...

BigData, MapReduce, облачные вычисления, NoSQL. Все эти понятия стали популярными в последние годы. И все они связаны с распределенной обработкой больших объемов данных. Hadoop — одна из самых популярных open-source систем для обработки больших объемов...

Обзор решений в области распределенных вычислений

В статье предлагается подход к классификации систем распределенных вычислений и обзор представителей разных классов.

Самыми ранними проектными системами распределенных вычислений были

Каждый узел хранит локально информацию о ресурсах своих соседей.

Распределенные информационные системы: особенности...

Масленников, Е. В. Распределенные информационные системы: особенности применения и построения / Е. В. Масленников.

Cloud системы хорошо ориентированы на Web-сервисы и справляются как с большими задачами, так и с большим количество мелких задач...

Резервное копирование данных в локальной вычислительной сети

Система резервного копирования — комплекс программного и аппаратного обеспечения, которая копирует данные на носителе для их

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

Применение простой стеганографии при передаче файлов...

В файловой системе NTFS файл может быть связан не только с основными данными, но и с одним или несколькими дополнительными потоками данных. При этом дополнительный поток может быть произвольного размера, в том числе может превышать размер основного файла.

Современные системы автоматизированного динамического...

Статья посвящена исследованию трех современных систем автоматизированного динамического анализа вредоносных файлов: CuckooSandbox, Anubis и DRAKVUF. Показано значение подобных систем в области изучения функциональности вредоносных программ.

Похожие статьи

Создание хранилища данных для распределённой системы

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

Мультиагентная система поддержки принятия решений по...

Обоснована целесообразность и перспективность разработки СППР оперативного развертывания, обновления многокомпонентных распределенных информационных веб-систем на основе мультиагентных технологий.

Программно-аппаратные средства защиты автоматизированных...

Программно-аппаратные средства защиты автоматизированных систем от несанкционированного доступа.

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

Hadoop и метод доступа к хранилищу MRIJ | Статья в журнале...

BigData, MapReduce, облачные вычисления, NoSQL. Все эти понятия стали популярными в последние годы. И все они связаны с распределенной обработкой больших объемов данных. Hadoop — одна из самых популярных open-source систем для обработки больших объемов...

Обзор решений в области распределенных вычислений

В статье предлагается подход к классификации систем распределенных вычислений и обзор представителей разных классов.

Самыми ранними проектными системами распределенных вычислений были

Каждый узел хранит локально информацию о ресурсах своих соседей.

Распределенные информационные системы: особенности...

Масленников, Е. В. Распределенные информационные системы: особенности применения и построения / Е. В. Масленников.

Cloud системы хорошо ориентированы на Web-сервисы и справляются как с большими задачами, так и с большим количество мелких задач...

Резервное копирование данных в локальной вычислительной сети

Система резервного копирования — комплекс программного и аппаратного обеспечения, которая копирует данные на носителе для их

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

Применение простой стеганографии при передаче файлов...

В файловой системе NTFS файл может быть связан не только с основными данными, но и с одним или несколькими дополнительными потоками данных. При этом дополнительный поток может быть произвольного размера, в том числе может превышать размер основного файла.

Современные системы автоматизированного динамического...

Статья посвящена исследованию трех современных систем автоматизированного динамического анализа вредоносных файлов: CuckooSandbox, Anubis и DRAKVUF. Показано значение подобных систем в области изучения функциональности вредоносных программ.

Задать вопрос