Введение 4
1. Постановка задачи 7
2. Обзор 8
2.1. Существующие решения 8
2.2. Используемые технологии 12
3. Архитектура разработанного решения 15
4. Редактор для отрисовки моделей сценариев 17
5. Генератор сценариев 19
6. Апробация 22
Заключение 24
Список литературы 25
В современном мире набирает популярность концепция Интернета вещей (Internet of Things) [15, 17], что обусловлено растущим числом подключаемых к Интернету устройств [9]. Концепция заключается в том, что можно настраивать совместную работу различных гаджетов, которые оснащены встроенными технологиями для взаимодействия друг с другом или с внешней средой, объединяя их в единую систему с помощью различных технологий передачи данных.
Примером применения такой концепции является «умная теплица», которая должна самостоятельно, без непосредственного участия ее владельца, реагировать на изменения внешней среды. Пользователь может установить в своем парнике и подключить к системе необходимые датчики и актуаторы (исполнительные устройства), а затем создавать сценарии их работы. Например, для того, чтобы закрывать/открывать окна в момент, когда сенсоры передают определенные значения влажности земли, температуры воздуха внутри теплицы или для того, чтобы по заданному расписанию поливать почву.
Уже существуют системы подобного рода, которые позволяют описывать сценарии для «умных теплиц». Но эти системы либо требуют подключения строго определенного ряда приборов и не позволяют подключить другое оборудование, либо подразумевают наличие навыков программирования у владельца парника.
Для того, чтобы даже неподготовленный пользователь смог задавать нужные ему сценарии, необходимо создавать специальное программное обеспечение, ключевая роль в котором отводится системе, предназначенной для установки правил взаимодействия приборов, подключенных к теплице. Нужно предоставить возможность задавать требуемые функции даже пользователям, не знакомым с программированием.
Для этих целей подходит визуальное программирование - способ задавать программу путем манипулирования графическими примитивами вместо применения текстовых языков. Данный подход позволяет упростить представление объектов, которыми приходится оперировать конечному пользователю при разработке сценария, заменяя код наглядными абстракциями, что облегчает обучение языку и его использование.
Элементы системы и функции при определении правил работы приборов теплицы в таком случае должны представляться в виде блоков. Пользователь размещает блоки на сцене редактора создаваемого программного обеспечения, рисуя в соответствии с желаемым результатом модель, по которой в дальнейшем с помощью генератора системы должен быть создан код программы, отрабатывающей задуманный сценарий.
Генерации кода по визуальной модели в общем случае препятствует семантический разрыв, который не позволяет модели, являющейся по определению упрощением моделируемого объекта, содержать всю необходимую информацию для порождения кода. Но в случае ограниченной области применения языка, что характерно и для «умной теплиц», такое преобразование в программный код возможно благодаря заранее известным характеристикам предметной области. Данный подход называется предметно-ориентированным моделированием (Domain Specific Modeling), а язык, на котором создается модель, в таком случае является предметно-ориентированным языком, то есть создается для конкретной задачи, и в совокупности с методом его применения и средствами инструментальной поддержки, такими как редактор модели, генератор кода, средство проверки ограничений, представляет собой так называемое DSM1-решение [8].
Работа в области визуального моделирования проводится в Санкт- Петербургском государственном университете на кафедре системного программирования и включает в себя работу над проблемами предметноориентированного моделирования, которая ведется наравне с разработкой инструментальных технологий быстрого создания DSM-решений, так называемых DSM-платформ. Примерами таких платформ являются среда QReal [16], на основе которой создана технология визуального программирования роботов, а также находящаяся в стадии активной разработки система REAL.NET2 [12] - набор конфигурируемых и переиспользуемых компонентов для создания предметно-ориентированных визуальных языков.
Новая платформа REAL.NET нуждается в апробации, которая проводится путем создания на ее основе визуальных языков и сопутствующих инструментов [13]. Тестированием REAL.NET может послужить решение с ее помощью актуальной задачи создания графической технологии для управления теплицей.
В ходе данной работы были получены следующие результаты.
• Спроектирована архитектура прототипа графической технологии управления «умной теплицей» и нового визуального языка.
• Реализован редактор на основе редактора системы REAL.NET для построения пользователем модели сценария работы теплицы.
• Реализован генератор с помощью библиотеки RX.NET и шаблонов T4, преобразующий созданную модель в сценарий на языке C#.
• Проведена апробация прототипа.
Основные результаты работы были доложены на конференции ’’Современные технологии в теории и практике программирования” [11]. Результат работы доступен по ссылке [14].