Описание основных модулей программы - Разработка модуля программируемых сценариев взаимодействия устройств в рамках интеграционной платформы интернета вещей
В программе присутствуют следующие основные модули:
- - PlatformManager - DeviceManager - ScenariosManager - ScenarioEngine - ExportManager - ImportManager - LoggingManager - BluemixConnectionManager - AzureIotConnectionManager - Repository - SyncManager - JSONWriter
Repository - инкапсулирует логику хранения и чтения данных с жесткого диска, а также доступ к скаченным с платформ данных об устройствах. Содержит основные методы для получения текущих настроек платформ и настроенных сценариев.
Данные, напрямую относящиеся к модулю программируемых сценариев, записываются и считываются в JSON файл, лежащий на жестком диске на сервере. Записью на жесткий диск занимается модуль JSONWriter, который вызывается модулем Repository.
SyncManager - основной модуль синхронизации данных в платформах и текущим выполнением программы. Для корректной настройки сценариев необходимо знать актуальные устройства, подключенные к платформам. Задача SyncManager загружать в память метаданные о текущих устройствах, событиях и допустимых командах.
SyncManager напрямую с платформами не общается, подключение к конкретным платформам делегируется соответствующими менеджерами подключения. В рамках этой работы были созданы 2 менеджера - BluemixConnectionManager и AzureIotConnectionManager, которые подключаются к IBM Bluemix и Azure IoT Hub соответственно. В BluemixConnectionManager используются библиотеки Ibmiotf и Passport-ibmid-oauth2, а в AzureIotConnectionManager - Azure-cli, Azure-iothub и Azure-iot-device.
PlatformManager отвечает за CRUD (Создание, Чтение, Редактирование, Удаление) операции, связанные с платформами.
DeviceManager отвечает за CRUD операции, управление событиями и командами.
ScenariosManager - отвечает за CRUD операции над сценариев. Сценарий представляет собой JSON объект, состоящий из тех сущностей, что были рассмотрены в предыдущем разделе. При сохранении сценария происходит проверка на корректный порядок узлов (есть хотя бы один входной и узел и все ветки узлов сценария заканчиваются выходными узлами), корректность параметров устройств и платформ: у SyncManager запрашиваются актуальные данные об устройствах и платформах. Если все корректно, сценарий сохраняется. В случае ошибки, возвращается тип ошибки и небольшое сообщение с описанием. Также через этот модуль происходит выставление свойства Scenario Status.
ScenarioEngine - основной модуль программы. При старте приложения или при сохранении сценария в ScenarioManager этот модуль вычитывает все сценарии, находящиеся в статусе активный. Далее смотрит на начальные узлы и события, которые должны стартовать сценарий. Раз в 10 секунд происходит поллинг соответствующих платформ на появление новых событий по заданным типам и устройствам.
В случае, если событие, необходимое для сценария действительно выполнилось, ScenarioEngine стартует соответствующий сценарий, передавая управление стартовому узлу и передавая в него данные, пришедшие вместе с событием.
Далее пытается выполниться функция, находящаяся в поле Func. После выполнения управление передается в NextNode. Если NextNode типа Intermediate алгоритм действий повторяется. Если NextNode типа End, выполняется команда, находящаяся в поле OutcomingAction. После ее завершения выполнение сценария заканчивается.
Основной и единственной функцией LoggingManager является логирование всех операций, происходящих в модуле. Логируются сообщений о старте модуля, вычитывании данных о текущих сценариях с файла, подключении к различным интеграционным платформам, создание и редактирование сценариев, старт выполнения сценария, завершение сценария и отправка команды на устройство. Также логируются все ошибки, происходящие в системе. Такое логгирование необходимо для того, чтобы в случае, если модуль не отработает в каком-то сценарии, можно было понять, что предшествовало данному событию, какую ошибку выдало приложение, чтобы понять как исправить дефект. Возможно, пользователь некорректно настроил сценарий, а также возможно, что где-то в коде присутствует ошибка. Источник проблемы можно исследовать.
ExportManager занимается тем, что выгружает всю доменную модель в один файл. Это необходимо либо для создания резервной копии, из которой в случае потери мастер данных можно будет восстановить работоспособность системы в неизменном виде, либо для клонирования системы на новую машину.
Задача ImportManager считать всю доменную модель из файла, и полностью восстановить состояние системы. Есть много различных методов для разрешения конфликтов, в том числе и методом слияния. Но в рамках упрощений в данной работе было принято решение, что файл, загружаемый через ImportManager является мастер данными, т. е. необходимо удалить всю существующую доменную модель и заменить ее моделью из файла.
Похожие статьи
-
При начале разработки после выбора технологического стэка необходимо определить сущности, с набором свойств, которые будут использоваться при дальнейшей...
-
Для реализации вышеописанных пользовательских историй опишем функциональные требования, на которые будет опираться процесс разработки. Во-первых, самый...
-
Разработка интеграционных платформ началась одновременно с исследованием и развитием Интернета Вещей. Это происходило по той причине, что сама концепция...
-
На текущий момент AMQP 1.0 официально поддерживается всеми сервисами Azure, которые являются частью шлюза соединения. Microsoft сориентировался на этом...
-
Домашнее использование чаще всего представляет из себя набор сенсоров, собирающих информацию об индивидах, которые напрямую владеют этой сетью. Это могут...
-
Несмотря на то, что к IoT Hub можно подключиться напрямую, используя протоколы HTTP или AMQP), Microsoft также предоставляет разные SDK для разных языков...
-
Предметная область IoT (Интернет вещей) - это сеть физических объектов - устройств, транспортных средств, зданий и других вещей со встроенной...
-
Одним из самых важных начальных этапов при разработке ПО является выбор технологического стека, с помощью которого будет происходить разработка продукта....
-
IoT Hub новый сервис, предоставляемый в рамках набора сервисов Azure. Этот сервис предоставляет двустороннее взаимодействие между устройствами и облачной...
-
С целью выбора платформы для внедрения программного модуля необходимо сравнить интеграционные платформы Интернета вещей с помощью определенных критериев....
-
В рамках работы над разработкой модуля программируемых сценариев взаимодействия была подробно изучена и описана предметная область Интернета Вещей, ее...
-
Для определения наиболее актуальных функциональных требований необходимо полностью рассмотреть предлагаемые в научном сообществе решения по...
-
С эксплуатационной точки зрения удобно рассматривать то, как устройства в IoT соединяются и "общаются" друг с другом, говоря о технических моделях...
-
Проблема безопасности С подключением все большего количества устройств к интернету возникает больше возможных уязвимостей с точки зрения безопасности....
-
История и основные парадигмы Следующий виток развития информационных технологий находится вне области настольных компьютеров. В парадигме Интернета Вещей...
-
Разработка требований к программному модулю При разработке программного модуля следует опираться на требования и спецификации, определенные для...
-
Существуют различные методы формирования и дальнейшего представления пользовательских требований в визуальном или текстовом виде. Проанализировав...
-
Соединение устройств и IoT Hub основано на TLS (Transport Layer Securiy, безопасность транспортного уровня). Таким образом все сообщения, посылаемые по...
-
Исходным объектом для применения МЮ является материальное тело (в общем случае - область, занимаемая сплошной средой или полем), которое разбивается на...
-
Лингвистический процессор GATE GATE представляет собой инфраструктуру для разработки и развертывания компонентов программного обеспечения, которые...
-
3.1 Описание программного модуля Jadex - это агент, ориентированный на собственный механизм принятия решений, взаимодействуя с XML и Java файлами,...
-
Оценка стоимости разработки программного обеспечения, или, в частности информационной системы, - один из самых важных, сложных и в то же время неизбежных...
-
Выбор мобильной платформы и изучение инструментов разработки - Исследование алгоритмов
Практическая реализация алгоритмов, представленных в предыдущих пунктах, предполагает: 1) Выбор мобильной платформы; 2) Изучение соответствующей среды...
-
Основные понятия баз данных. Цели использования баз данных - Разработка базы данных
В широком смысле слова база данных (БД) - это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области. Для удобной...
-
Завершив выбор схемы работы системы и общего принципа работы ее частей и выбрав тип базы данных, следует перейти к выбору языка программирования....
-
Система мониторинга социальных сетей предоставляет исследователю возможность собрать интересующие его упоминания в социальных сетях по какой-либо...
-
Базовые понятия информации - Компьютерные и сетевые технологии
Информация компьютер математический сеть Мы начинаем первое знакомство с величайшим достижением нашей цивилизации, стоящем в одном ряду с изобретением...
-
Для того, чтобы строить диаграммы в соответствии с рисунком 2.7, необходимо реализовать алгоритм соединения двух объектов линией. Для отображения линии...
-
Описание устройства, технические характеристики, необходимое программное обеспечение в ООО "ЖБК №9" Чтобы не потратить деньги на оборудование,...
-
Основные термины теории баз данных - БД (База данных) - совокупность специальным образом организованных данных, хранимых в памяти вычислительной системы...
-
Введение - Разработка программы для реализации редактора временных графов синхронизации
Математическое моделирование дискретно-событийных динамических систем является относительно молодым направлением науки теории управления. Разработка...
-
К основным характеристикам принтеров можно относятся: - ширина каретки, которая обычно соответствую бумажному формату А3 или А4; - скорость печати,...
-
Запоминающее устройство (ЗУ) на основе регистров процессорной памяти и кэш-памяти процессора - это внутренняя память процессора. Регистры служат...
-
Как показали результаты моделирования, корпус Kyocera KD-PB1D79 полностью отвечает требованиям ТЗ. Устройство работает в заданном диапазоне температур -...
-
Дальнейшим развитием локальных средств разработки программ, являются интегрированные программные среды разработчиков. Основное назначение инструментария...
-
Для проверки соответствия требованиям ТЗ, была поставлена задача разработки 3-D модели корпуса Kyocera KD-PB1D79 при помощи системы AutoCAD. В этой части...
-
После загрузки ANSYS Workbench будет выведено основное окно программы (рис. 2.9), состоящее в свою очередь из нескольких окон. Каждое из окон может быть...
-
Устройства для параметрического частотного сжатия речи получили название вокодеров. Вокодер (от англ. voice - голос и coder - кодировщик голоса)...
-
Основные принципы Первая и главная идея, лежащая в основе объектно-ориентированного подхода такова: программная система представляется в виде множества...
-
В связи с выросшей потребностью в доступе к сети Интернет в настоящее время встает вопрос в грамотной организации сети, способной обрабатывать большие...
Описание основных модулей программы - Разработка модуля программируемых сценариев взаимодействия устройств в рамках интеграционной платформы интернета вещей