ВВЕДЕНИЕ
1. ПОТОКОВАЯ ОБРАБОТКА ДАННЫХ
1.1. Основные определения
1.2. Обзор инструментов (фреймворков) потоковой обработки данных
1.3. Выводы и выбор фреймворка
2. ВВЕДЕНИЕ В APACHE NIFI12
2.1. Описание Apache NiFi и его возможностей 12
2.2. Основные концепции NiFi
2.3. Преимущества NiFi
2.4. Архитектура NiFi
2.5. Кластер Apache NiFi
2.6. Безопасность в Apache NiFi
3. ЗАПУСК КЛАСТЕРА APACHE NIFI В РАЗЛИЧНЫХ ОКРУЖЕНИЯХ
3.1. Запуск в виртуальной среде
3.2. Запуск кластера на граничных устройствах
3.3. Рекомендации запуска NiFi на Raspberry Pi
4. ДИНАМИЧЕСКОЕ ФОРМИРОВАНИЕ КЛАСТЕРА APACHE NIFI
4.1. Обнаружение устройств в локальной сети
4.2. Выбор способа поиска устройств
4.3. Возможности Apache Zookeeper для создание кластера
4.3. Программа для обнаружение и подключение устройств к кластеру
4.4. Формирование списка кандидатов кластера
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
По прогнозам CISCO, к 2020 году общее число подключенных к интернету устройств достигнет 50 млрд [1]. Объем трафика устройств передающих информацию в центрально место или облако будет только расти. Если принять, что среднее подключенное к сети устройство к 2020г. будет выдавать в 10 раз больше данных (например, 100 МБ на устройство ежемесячно в сравнении с текущими 10 МБ ежемесячно), то для 50 млрд. устройств объем данных вырастет до 50 трлн. ГБ [2].
Быстрый рост и распространение технологий Интернета вещей и Всеобъемлющего Интернета представляются неизбежными [1]. Возникают задачи, как обрабатывать все эти данные и понимать их. В связи с этим растет потребность в анализе потока данных на границе сети [52], так как многократный рост трафика может оказать негативное влияние на архитектуры сетей, к которым подключатся огромное количество различных IoT устройств [2]. Чтобы извлечь из этого максимальную пользу, необходимо обрабатывать и анализировать данные, которые генерируют все эти объекты, в реальном времени. Для такого рода приложений, работающих в реальном времени и генерирующий больший объем трафика, необходима новая распределенная модель, в которой функционал облачных вычислений, сетевого взаимодействия и хранения спускается с облака на землю, на самую границу сети [52][53], формируя новый слой - туманных вычислений [52].
Туманные вычисления решают ряд самых распространенных сегодня проблем, среди которых [52]:
• высокая задержка в сети;
• трудности, связанные с подвижностью конечных узлов;
• потеря связи;
• высокая стоимость интернет трафика.
Туманные вычисления не требуют использование мощных серверов, которые требуются в облачных технологиях. В основном, такие вычисления выполняются на маломощных и рассредоточенных устройствах вроде тех, что в последнее время стали использоваться в автомобилях, городских системах, электроснабжении — в целом, практически всюду. Без необходимости эти устройства не обмениваются данными с облаком [52].
Интернет вещей способствует сдвигу архитектуры к границе сети, приближая аналитику, обработку и даже приложения к источникам данных и делая возможным в реальном времени реагировать на информацию поступающую в реальном времени [53][54][55].
Актуальность данной работы обусловлена необходимостью высокоуровневого подхода к управлению взаимодействия Интернета вещей и обработки данных на устройствах находящихся ближе к источнику данных [48][49], включая мобильные устройства [50], с возможностью объединения и распределения обработки данных на границе сети, обеспечивающие пользователям доступ в реальном времени к данным, прогнозам и трендам [51].
Основной целью данной работы является разработка подходов к кластерной потоковой обработки данных при взаимодействии Интернета Вещей и реализация решений на основании данных подходов.
Объектом исследования является процесс создания и разработки кластерной потоковой обработки данных для Интернета Вещей в парадигме Туманных вычислений.
Предметом исследования является платформа для кластерной обработки потоковых данных для Интернета Вещей.
Для достижения поставленной цели необходимо решить следующие задачи:
1. Обзор и анализ существующих решений и инструментов.
2. Определить среду разработки и инструменты.
3. Настроить среду разработки для симуляций и тестирования платформы.
4. Разработка решений для кластерной потоковой обработки и их проверка на различных устройствах.
В рамках данной работы были получены следующие результаты:
• Созданы автоматизированные скрипты провизии для создания кластера ApacheNiFi на основе виртуальных машин.
• Проверена работоспособность кластера ApacheNiFi на граничных устройствах сети.
• Написана программа агент, выполняющая поиск существующего кластера в сети или его создания с нуля.
• Результаты работ опубликованы на github [37][57]
• Опубликована статья на habrahabr.ru [58]
В связи с тем, что целью данной работы была проверка возможности кластерной потоковой обработки на граничных устройствах для Интернета Вещей, то были упрощены многие процедуры, такие как политика безопасности, разграничение прав доступа, которые обязательно надо учитывать в последующих этапах работы над данной темой.