Разработка сущностей программы - Разработка модуля программируемых сценариев взаимодействия устройств в рамках интеграционной платформы интернета вещей
При начале разработки после выбора технологического стэка необходимо определить сущности, с набором свойств, которые будут использоваться при дальнейшей разработке. В данном случае доменная модель, описывающая объекты в предметной области, будет анемичной, то есть, не содержать никакой бизнес-логики, управлением и валидацией объектов будут соответствующие модули, сама доменная модель просто описывает объекты и их свойства.
На Рисунке 15 изображена UML диаграмма классов, относящихся к описанию сценария в разрабатываемом модуле.
Рисунок 15. UML диаграмма классов сценария взаимодействия устройств
Для опиcания одного устройства была создана сущность Device, у которой есть уникальный идентификатор Id и название - Name. Уникальный идентификатор является идентификатором, используемым в платформе для упрощения взаимодействия устройств и отсутствия необходимости создания дополнительных свойств. Чтобы избежать повторения используемых идентификаторов в различных платформах, добавим к идентификатор префикс, соответствующий краткому названию интеграционной платформы. Таким образом мы сможем сразу определить в какой интеграционной платформе зарегистрировано данное устройство, а также обеспечим уникальность идентификатора в модуле, так как в рамках одной платформы идентификаторы будут точно уникальными. Имя загружается из интеграционной платформы. Если оно отсутствует, в этом поле дублируется значение идентификатора.
Следующей сущностью является Event, описывающее событие, пришедшее с устройства и на которое будет происходить подписка в начальном узле. Id генерируется самим модулем, с помощью средств NodeJS. DeviceId - устройства задается пользователем при создании сценария, это то устройство, на которое происходит подписка. EventType - тип сообщения, которое мы ожидаем от платформы. Этот тип зависит от конкретного устройства и платформы. Соответственно, можно создавать несколько сценариев, слушающие различные события с одного устройства. Time - время совершения события, необходимо для логгирования. IsProcessed - поле булевого типа, обозначающее одно из двух состояний события: было ли оно обработано или нет. Data - небольшой объект для хранения данных, пришедших вместе с событием. Взяв пример с датчиком температуры, в Data придет Текущее значение температуры с датчика.
Ключевой сущностью является Node - эта сущность обозначает узел в сценарии взаимодействия. Безусловно у Node есть Id идентификатор, уникальный для модуля. За название, данное модулю пользователем, отвечает поле Name. У Node также есть поле NodeType, обозначающее тип этого узла. Это поле может быть одним из трех типов:
- - Start - входной узел; - Intermediate - промежуточный узел; - End - выходной узел.
Также, в случае, если это промежуточный узел или выходной узел, у Node непустое поле PrevNode - ссылка на предыдущий узел.
В случае, если потребуется обработка данных или ветвление процесса выполнения, у сущности Node есть свойство Func, которое является функцией на языке JavaScript, которая выполнится, когда выполнение сценария перейдет к текущему узлу.
У Node может быть несколько следующих узлов, поэтому поле NextNodes является массивом. Если в поле Func не присутствует условия выбора следующего Node, то будет выбран первый узел из массива. Пришедшая в узел информация из предыдущего узла или из внешнего сервиса хранится в поле CurrentData - это любой JSON объект. В функции, в поле Func, можно использовать CurrentData.
Если текущий узел имеет тип Start, то у него есть ссылка на событие, по которому началось выполнение сценария. Это ссылка находится в поле IncomingEvent.
Если текущий узел имеет тип End, то у него есть ссылка на команду, которую следуют выполнить для завершения выполнения сценария. Эта ссылка находится в поле OutcomingEvent.
Обобщающей сущностью для сценария является Scenario. Как и у всех остальных сущностей, у этого объекта присутствуют поля Id и Name. Также у этого объекта есть ссылка на стартовый узел StartingNode, с которого начинается выполнение сценария. Как было заявлено при разработке требований, у сценария должен присутствовать статус. На данный момент у сценария есть поле Status, значением которого может быть одно из двух:
- - Active, означающее, что текущий сценарий активен и событие в стартовом узле должно слушаться; - Inactive, означающее, что текущий сценарий не активен и событие в стартовом узле НЕ должно слушаться.
Похожие статьи
-
В программе присутствуют следующие основные модули: - PlatformManager - DeviceManager - ScenariosManager - ScenarioEngine - ExportManager - ImportManager...
-
На текущий момент AMQP 1.0 официально поддерживается всеми сервисами Azure, которые являются частью шлюза соединения. Microsoft сориентировался на этом...
-
Для реализации вышеописанных пользовательских историй опишем функциональные требования, на которые будет опираться процесс разработки. Во-первых, самый...
-
Разработка интеграционных платформ началась одновременно с исследованием и развитием Интернета Вещей. Это происходило по той причине, что сама концепция...
-
Предметная область IoT (Интернет вещей) - это сеть физических объектов - устройств, транспортных средств, зданий и других вещей со встроенной...
-
В рамках работы над разработкой модуля программируемых сценариев взаимодействия была подробно изучена и описана предметная область Интернета Вещей, ее...
-
Домашнее использование чаще всего представляет из себя набор сенсоров, собирающих информацию об индивидах, которые напрямую владеют этой сетью. Это могут...
-
С целью выбора платформы для внедрения программного модуля необходимо сравнить интеграционные платформы Интернета вещей с помощью определенных критериев....
-
IoT Hub новый сервис, предоставляемый в рамках набора сервисов Azure. Этот сервис предоставляет двустороннее взаимодействие между устройствами и облачной...
-
Для определения наиболее актуальных функциональных требований необходимо полностью рассмотреть предлагаемые в научном сообществе решения по...
-
Несмотря на то, что к IoT Hub можно подключиться напрямую, используя протоколы HTTP или AMQP), Microsoft также предоставляет разные SDK для разных языков...
-
Одним из самых важных начальных этапов при разработке ПО является выбор технологического стека, с помощью которого будет происходить разработка продукта....
-
С эксплуатационной точки зрения удобно рассматривать то, как устройства в IoT соединяются и "общаются" друг с другом, говоря о технических моделях...
-
История и основные парадигмы Следующий виток развития информационных технологий находится вне области настольных компьютеров. В парадигме Интернета Вещей...
-
Разработка требований к программному модулю При разработке программного модуля следует опираться на требования и спецификации, определенные для...
-
Проблема безопасности С подключением все большего количества устройств к интернету возникает больше возможных уязвимостей с точки зрения безопасности....
-
Существуют различные методы формирования и дальнейшего представления пользовательских требований в визуальном или текстовом виде. Проанализировав...
-
Соединение устройств и IoT Hub основано на TLS (Transport Layer Securiy, безопасность транспортного уровня). Таким образом все сообщения, посылаемые по...
-
Работа программы представлена на рисунке 2.3 Рис. 2.3 Кодирование и тестирование программы Программа кодировалась на языке Си++, используя библотеку Qt5x...
-
Данный курсовой проект посвящен разработке модели программно-аппаратной защиты информации на предприятии. Проблема защиты информации на предприятии...
-
Выбор мобильной платформы и изучение инструментов разработки - Исследование алгоритмов
Практическая реализация алгоритмов, представленных в предыдущих пунктах, предполагает: 1) Выбор мобильной платформы; 2) Изучение соответствующей среды...
-
3.1 Описание программного модуля Jadex - это агент, ориентированный на собственный механизм принятия решений, взаимодействуя с XML и Java файлами,...
-
Среда объектно-ориентированного программирования Delphi Delphi - это комбинация нескольких важнейших технологий, высокопроизводительный компилятор в...
-
Как отмечалось, основной тенденцией интегральной микроэлектроники является повышение степени интеграции микросхем. Наряду с этим возрастает и...
-
После загрузки ANSYS Workbench будет выведено основное окно программы (рис. 2.9), состоящее в свою очередь из нескольких окон. Каждое из окон может быть...
-
Лингвистический процессор GATE GATE представляет собой инфраструктуру для разработки и развертывания компонентов программного обеспечения, которые...
-
Даталогическое проектирование - Банки и базы данных. Системы управления базами данных
Даталогической моделью БД называется модель логического уровня, построенная в рамках конкретной СУБД, в среде которой проектируется БД. Описание...
-
Требования к функционированию программы Модуль функционирует в следующих режимах: Ш подготовка исходных данных; Ш заключение договора с клиентом; Ш...
-
Постановка задачи на разработку программного обеспечения Для того чтобы предлагаемая схема была интегрирована в САПР, который не имеет функции интеграции...
-
Для того, чтобы строить диаграммы в соответствии с рисунком 2.7, необходимо реализовать алгоритм соединения двух объектов линией. Для отображения линии...
-
Параметры микропроцессорного комплекта (чипсета) в наибольшей степени определяют свойства и функции материнской платы. Ранее большинство чипсетов...
-
Оперативная память Оперативная память (RAM - Random Access Memory память со случайным доступом) - это массив кристаллических ячеек, способных хранить...
-
Каждая СУБД имеет особенности в представлении структуры таблиц, связей, определении типов данных и т. д. которую необходимо учитывать при проектировании....
-
Спецификация сегментов сети - Разработка локальной сети для ОАО "Корпорация Монстров"
Для сети предприятия была выбрана топология - Fast Ethernet (IEEE 802.3u) со скоростью передачи 100 Мбит/с. т. к. она обладает следующими достоинствами:...
-
Введение, Общие сведения о локальных сетях - Разработка локальной сети для ОАО "Корпорация Монстров"
Общие сведения о локальных сетях Локальный сеть вычислительный сервер Локальная Сеть (локальная вычислительная сеть, ЛВС) - это комплекс оборудования и...
-
Завершив выбор схемы работы системы и общего принципа работы ее частей и выбрав тип базы данных, следует перейти к выбору языка программирования....
-
Следующим этапом, когда документация найдена, источники изучены, а другие решения проанализированы, является реализация автоматизированной системы...
-
Информационно - измерительные системы: структура и состав Постоянное совершенствование и развитие средств измерений необходимо для промышленного...
-
После выполнения задачи по Подбору и анализу литературы, настало время поиска и сравнительного анализа уже существующих решений задачи контроля...
-
Оптимизатор - Разработка программного средства, позволяющего оптимизировать SQL-скрипты
Задача оптимизатора в рамках данной дипломной работы - исправлять части SQL-кода, которые могут приводить к дополнительным тратам памяти и ресурсов. На...
Разработка сущностей программы - Разработка модуля программируемых сценариев взаимодействия устройств в рамках интеграционной платформы интернета вещей