Архитектура интегрированной в облачную среду системы управления умным домом

Программные продукты и системы /Software & Systems

№ 2 (110), 2015

УДК 004.41; 681.518 Дата подачи статьи: 11.11.14

DOI: 10.15827/0236-235X.110.065-069

АРХИТЕКТУРА ИНТЕГРИРОВАННОЙ В ОБЛАЧНУЮ СРЕДУ СИСТЕМЫ УПРАВЛЕНИЯ УМНЫМ ДОМОМ

П.Л. Николаев, аспирант, npavel89@gmail.com (МАТИ - Российский государственный технологический университет им. К.Э. Циолковского,

ул. Оршанская, 3, г. Москва, 121552, Россия)

В статье описывается гибкая архитектура системы управления умным домом, интегрированной в облачную среду. Данная облачная среда предоставляет пользователям инфраструктуру для удаленного управления исполнительными устройствами и для мониторинга и обработки данных с различных датчиков, которые составляют систему умного дома. В работе приведены преимущества, которые получают конечные пользователи от интеграции своих умных домов в облако. Удаленное управление при этом возможно с мобильных и стационарных устройств либо через Интернет, либо через домашнюю локальную сеть. Представленная архитектура соответствует концепции «Интернет вещей». В статье приводится типовая архитектура аппаратной составляющей системы управления умным домом, состоящая из трех уровней автоматизации. Рассматривается предложенная автором аппаратная схема системы управления умным домом, интегрированной в облако, состоящая из пяти уровней автоматизации. Подробно описываются все компоненты системы управления умным домом (облачный сервер, домашний сервер, контроллер, устройства управления и конечное оборудование) и способы их взаимодействия между собой. Помимо аппаратной составляющей архитектуры системы управления умным домом, рассматривается и программная составляющая. Для взаимодействия устройств управления, облачного и домашнего серверов необходимо применение технологии веб-сервисов. После проведенного анализа выявлено, что предпочтительным вариантом является использование RESTful вебсервиса: запрос и передача данных осуществляются в формате JSON через HTTP-запросы (GET и POST). В данной работе также приводится алгоритм выполнения функции удаленного управления умным домом.

Ключевые слова: умный дом, интеллектуальное здание, Интернет вещей, облачные вычисления, REST.

Под термином «умный дом» (часто встречается и термин «интеллектуальное здание») подразумевают современные офисные и жилые здания, дома, квартиры с единой автоматизированной системой управления и мониторинга всех систем (освещения, микроклимата, безопасности, коммуникационных систем) и сетей. Основные задачи умного дома - прежде всего повышение безопасности и комфорта его обитателей, а также ресурсосбережение. Термин «интеллектуальное здание» более употребителен, когда речь идет о крупных офисных зданиях или многоквартирных жилых домах. А термин «умный дом» больше подходит к частным домам, квартирам или небольшим офисам.

В последние годы резко возросло число мобильных устройств (смартфонов и планшетов) с высокими техническими характеристиками. Кроме того, высокими темпами развивается мобильный Интернет и глубже в нашу жизнь проникают облачные вычисления. Данные тенденции все больше соответствуют концепции «Интернет вещей». Согласно одному из самых цитируемых определений, под понятием «Интернет вещей» (Intemet of Things) подразумевается сеть физических объектов («вещей»), содержащих встроенную технологию, которая позволяет этим объектам измерять параметры собственного состояния или состояния окружающей среды, использовать и передавать эту информацию [1]. Под вещами понимаются персональные компьютеры, мобильные устройства, датчики и управляемые устройства (светильники, жалюзи, системы регулирования микроклимата и т.д.).

Применительно к системам умного дома концепция «Интернета вещей» может быть реализована путем передачи данных с множества используемых в системе датчиков в облако, где они будут обрабатываться и храниться, а также путем передачи команд от пользователя на конечные управляемые устройства. В свою очередь, пользователю будет доступен интерфейс (через браузер или мобильное приложение), предназначенный для мониторинга данных с датчиков, а также для управления устройствами. Таким образом, пользователи получат инструмент удаленного управления и мониторинга своей системы умного дома. Основные преимущества использования облака в системе умного дома следующие:

- в любое время и в любом месте пользователю будет доступна вся информация об обстановке в доме;

- в случае присутствия среди жильцов умного дома людей с ограниченными возможностями через облако можно обеспечить передачу данных с медицинских устройств напрямую лечащему врачу [2];

- сама система умного дома становится более гибкой, намного легче будет интегрировать новые устройства, лишь обеспечив им доступ в Интернет, а не перестраивая всю систему заново;

- через облачный сервер возможно предоставление единого интерфейса управления системами умного дома в случае использования устройств от разных производителей с различными протоколами передачи данных [3].

Данная статья является продолжением работы [3], в которой была затронута тема применения

65

Программные продукты и системы /Software & Systems

№ 2 (110), 2015

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

Аппаратная архитектура системы управления

умным домом, интегрированной в облако

Создание умного дома невозможно без системы управления им (автоматизированной системы управления зданием). При построении системы управления обычно выделяют три уровня автоматизации [4].

1. Уровень управления и мониторинга. На данном уровне обеспечиваются управление и мониторинг всех систем автоматизируемого объекта через специальный графический пользовательский интерфейс, организованный на базе компьютерных средств и специального программного обеспечения.

2. Уровень автоматического управления. Основной компонент данного уровня - контроллер (специализированное устройство, к которому подключаются различные датчики и управляемые устройства). Контроллер предназначен для получения данных с датчиков и для управления исполнительными механизмами (приводы, задвижки, реле) подключенных устройств. Иногда к контроллеру применяется термин «модуль расширения», но только не надо путать его с модулями расширения, предназначенными для подключения к контроллерам с целью увеличения количества портов устройства. Если рассматривать проводные протоколы автоматизации, то количество подключаемого конечного оборудования весьма ограничено. В таком случае для подключения большого количества датчиков и управляемых устройств понадобится множество контроллеров.

3. Уровень конечного оборудования.

Данный уровень включает в себя датчики и управляемые устройства. Датчики предназначены для отслеживания различных параметров (температура, освещенность и т.д.). К ним следует отнести и обычные кнопки, используемые для управления исполнительными устройствами (сигнал с них передается через контроллер). Управляемые устройства -это непосредственно устройства, управление которыми осуществляется системой умного дома (например, устройства освещения, отопления, вентиляции и т.д.).

При внедрении функции удаленного управления системой умного дома через облако автором предлагается добавить один новый уровень (облачный сервер) и разделить уровень управления и мони-

торинга на два (на домашний сервер и устройства управления). На рисунке 1 представлена предлагаемая аппаратная схема системы управления умным домом, интегрированной в облако.

Таким образом, получим следующие уровни автоматизации:

- удаленное управление и мониторинг через мобильные и стационарные устройства;

- обеспечение удаленного управления (облачный уровень); основной компонент - облачный сервер;

- внутреннее управление, мониторинг и связь с облаком; основной компонент - домашний сервер;

- автоматическое управление;

- конечное оборудование.

Рассмотрим подробнее компоненты добавленных уровней автоматизации.

Устройства управления могут быть мобильными и стационарными.

Мобильные устройства - смартфоны или планшеты на мобильных операционных системах Android, iOS или Windows Phone. С мобильных устройств возможны передача команд на облачный сервер, а также получение оттуда информации о состоянии датчиков. Отправка и получение данных могут осуществляться либо через нативное приложение, либо через браузер при заходе на сайт, предоставляющий услуги облачного сервиса. Кроме того, при нахождении пользователя непосредственно в автоматизированном доме можно организовать взаимодействие мобильных устройств по домашнему Wi-Fi или через Blutooth.

Стационарные устройства - персональные компьютеры, ноутбуки. Работа с системой умного дома возможна либо через облачный сервис, либо по локальной сети через домашний сервер.

Облачный сервер предназначен для хранения данных о состоянии датчиков и устройств в БД.

J I

Wi-Fi, Ethernet ^ Домашний

Рис. 1. Схема взаимодействия компонентов системы управления умным домом

Fig. 1. The scheme of components interaction in a smart home management system

---------1-------------------------------------------------------

66

Программные продукты и системы /Software & Systems

№ 2 (110), 2015

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

Домашний сервер предназначен для получения команд от облачного сервера и их дальнейшей передачи на контроллеры, а также передачи в обратном порядке данных с датчиков, поступающих на контроллер. Через домашний сервер также обеспечивается управление системой умного дома по локальной сети как с самого домашнего сервера или другого домашнего компьютера, так и с мобильных устройств по Wi-Fi и Bluetooth. В роли домашнего сервера можно использовать обычный персональный компьютер или тонкий клиент.

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

Программная архитектура системы управления умным домом, интегрированной в облако

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

1. Серверная часть облака: веб-сервер, БД, скрипты для обработки и передачи данных.

3. Серверное домашнее приложение. Комплектация аналогична серверной части облака.

4. Клиентское домашнее приложение. Комплектация аналогична клиентской части облака.

5. Мобильное приложение.

6. Программа для контроллера.

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

Для обеспечения взаимодействия в сети Интернет различных приложений и узлов существует технология веб-служб (веб-сервисов). В основном применяются два способа реализации веб-служб: протокол SOAP и архитектурный стиль REST. SOAP представляет собой протокол обмена структурированными сообщениями в формате XML в распределенной вычислительной среде [5]. REST является архитектурным стилем, при котором взаимодействие компонентов распределенного приложения в сети Интернет осуществляется посредством HTTP-запросов (в основном GET или POST) [6]. Для обозначения веб-сервисов, реализуемых с использованием HTTP и принципов REST, применяется термин «веб-сервис RESTful» [7]. Стиль REST по сравнению с протоколом SOAP обладает целым рядом преимуществ, главные из которых следующие.

• Кэширование. Для запроса данных в REST-архитектуре используются GET-запросы. В этом случае ресурсы, возвращаемые в ответ на запрос GET, можно кэшировать множеством разных способов, что увеличивает скорость и масштабируемость [6].

• Функциональная совместимость. Для некоторых языков и сред до сих пор нет инструментальных средств SOAP. Для REST требуется только доступность библиотеки HTTP для большинства операций [6]. Встраивание REST-сервисов в Интернет-сервис - относительно простой процесс по сравнению с усилиями, необходимыми для развертывания инфраструктуры и кода с целью поддержания SOAP-коммуникаций [8].

• Время обработки запросов в архитектуре REST гораздо меньше, чем при обработке сообщений, передаваемых через SOAP, соответственно при передаче больших объемов данных возрастает энергоэффективность системы умного дома [9].

Web-иктерфейс для управле... X

Рис. 2. Веб-интерфейс для управления системой умного дома и ее мониторинга

Fig. 2. A web interface for management and monitoring of a smart home system

67

Программные продукты и системы /Software & Systems

№ 2 (110), 2015

Как уже было сказано, REST-архитектура - это осуществление HTTP-запросов. Два основных HTTP-запроса - это GET и POST.

Метод GET предназначен для получения ресурса с указанным URL. Получив запрос GET, сервер должен прочитать указанный ресурс и включить код ресурса в состав ответа клиенту. URL ресурса может указывать на исполняемый код программы, который при соблюдении определенных условий должен быть запущен на сервере. В этом случае клиенту возвращаются данные, сгенерированные в процессе выполнения кода [10].

Метод POST предназначен для передачи данных на сервер [10].

В данном случае запрос GET будет использоваться для запроса данных о состоянии устройств, входящих в систему умного дома. В свою очередь, передача управляющих команд будет осуществляться посредством POST-запроса.

Для передачи данных через HTTP-запросы и получения ответа необходим легкий и удобный формат обмена данными. Как правило, передача данных в веб-службах осуществляется в одном из текстовых форматов: XML и JSON. В [11] проведено сравнительное исследование этих двух форматов. Установлено, что передача данных в формате JSON осуществляется намного быстрее, чем в формате XML. Кроме того, данные, представленные в формате JSON, гораздо легче обрабатывать. Также в большинстве современных языков программирования присутствует поддержка этого формата. JSON-текст представляется в одной из двух структур: объект - неупорядоченный набор пар ключ/значение, массив - упорядоченная коллекция значений [12].

Приведем пример сообщения в формате JSON, которое передает команду для отключения светильника: {"id': "1_1_1", "value": "off'}. В этом примере данные передаются как объект, в роли которого выступает светильник. Параметр id означает уникальный номер устройства в системе, а value - значение, в которое нужно установить устройство. Для передачи команд сразу для нескольких устройств следует использовать массив, например [{"id": " 1_1_1", "value": "off'}, {"id': "1_1_2", "value": "off”}]. В первых фигурных скобках указаны параметры первого устройства, во вторых - второго. Массивы удобно использовать для получения данных с множества датчиков. Например, данные с температурных датчиков в формате JSON: [{"id": "1_1_4","value": "24.7"}, {"id": "1_2_3", "value": "25.2"}, {"id": "1_3_2", "value": "24.1"}].

Таким образом, для организации взаимодействия облачного и домашнего серверов и мобильных устройств управления будем использовать RESTful веб-сервис, где запросы и передача данных будут осуществляться в формате JSON через HTTP-запросы.

Алгоритм выполнения функции удаленного управления

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

1. Установление соединения с облачным сервисом с мобильного или веб-приложения.

2. Авторизация пользователя на облачном сервисе. Открытие сессии.

3. Проверка подключения системы управления умным домом к облачному сервису.

4. Загрузка графического пользовательского интерфейса для управления умным домом.

5. Отправка запроса на облачный сервер о состоянии систем умного дома (получение данных с датчиков и передача информации о состоянии управляемых устройств). Запрос о состоянии систем осуществляется в течение всей сессии. В зависимости от типов отслеживаемых параметров устанавливается разное время для разных систем. Например, данные с температурных датчиков можно запрашивать раз в 30 минут, а данные о состоянии светильников - раз в несколько секунд.

6. Отправка команды для управления устройствами, входящими в систему умного дома. Получение ответа о выполнении команды.

7. Протоколирование событий на облачном сервере при каждом запросе.

8. Закрытие сессии.

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

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

Литература

1. Найдич А. «Интернет вещей» - реальность или перспектива? URL: http://compress.ru/artide.aspx?id=24290 (дата обращения: 13.10.2014).

2. Baoan Li, Jianjun Yu. Research and application on the smart home based on component technologies and Internet of Things. Procedia Engineering, 2011, vol. 15, pp. 2087-2092.

3. Николаев П.Л. Применение облачных технологий в системах умного дома // Молодой ученый. 2014. № 13. С. 37-39.

4. Практика применения систем автоматизации и диспетчеризации в гостиничных комплексах. URL: http://www.stroim-

68

Программные продукты и системы /Software & Systems

№ 2 (110), 2015

hotel.ru/files/pdf/metodology/metod/11.pdf (дата обращения:

20.10.2014) .

5. SOAP. Версия 1.2. Часть 0: учебник для начинающих.

URL: http://www.w3.org/2002/07/soap-translation/russian/part0.

html (дата обращения: 24.10.2014).

6. Фландерс Дж. Введение в службы RESTful с использованием WCF. URL: http://msdn.microsoft.com/ru-ru/magazine/ dd315413. aspx (дата обращения: 24.10.2014).

7. И М.Х., Дун Ф.В. Создаем Web-сервисы RESTful при помощи Spring 3. URL: http://www.ibm.com/developerworks/ru/ library/wa-spring3webserv/index.html (дата обращения:

24.10.2014) .

8. Маквитти Л. REST как альтернатива SOAP. URL: http://www.ccc.ru/magazine/depot/07_01/read.htmL0502.litm (дата обращения: 24.10.2014).

9. Yazar D., Dunkels A. Efficient Application Integration in

IP-based Sensor Networks. In First ACM Workshop On Embedded Sensing Systems For Energy-Efficiency In Buildings (BuildSys), Berkeley, California, 2009. URL: http://dunkels.com/adam/

yazar09efficient.pdf (дата обращения: 25.10.2014).

10. Интеграция и взаимодействие в сети Веб. URL: http://www.intuit.ru/studies/courses/485/341/lecture/8211 (дата обращения: 25.10.2014).

11. Nurseitov N., Paulson M., Reynolds R., Izurieta C. Comparison of JSON and XML Data Interchange Formats: A Case Study. 22nd Intern. Conf. on Computer Applications in Industry and Engineering 2009 (CAINE-2009), 2009, pp. 157-162.

12. Введение в JSON. URL: json.org/json-ru.html (дата обращения: 25.10.2014).

DOI: 10.15827/0236-235X.109.065-069 Received 11.11.14

THE ARCHITECTURE OF A SMART HOME MANAGEMENT SYSTEM INTEGRATED INTO THE CLOUD ENVIRONMENT NikolaevP.L., Postgraduate Student, npavel89@gmail.com (MATI - Russian State Technological University name K.E. Tsiolkovsky,

Orshanskaya St. 3, Moscow, 121552, Russian Federation)

Abstract. The article describes a flexible architecture of a smart home management system integrated into the cloud environment. This cloud environment provides users with the infrastructure for remote control actuators and for monitoring and processing of data from different sensors that form the system of smart home. The paper presents the benefits for end users from integration of their smart houses into the cloud. The remote control is possible with mobile and stationary devices either via Internet or home LAN. The presented architecture corresponds to the concept of the “Internet of things”. The article presents the typical hardware architecture of a smart home management system consisting of three levels of automation. Then the author offers the hardware scheme of a smart home management system integrated into the cloud and consisting of five levels of automation. The paper describes in detail all components of a smart home management system (the cloud server, the home server, the controller, control devices and terminal equipment) and ways of their interaction with each other. In addition to the hardware component of the smart home management system architecture, the article also considers its software. For the interaction of control devices, cloud and home servers it is is necessary to apply web-services technology. The carried out analysis has revealed that the preferable option is to use a RESTful web service: a request and data transmission are carried in JSON via HTTP-requests (GET and POST). This paper also provides the execution algorithm of remote management function for smart home system.

Keywords: smart home, intelligent building, Internet of things, cloud computing, REST.

References

1. Naydich A. “Internet veshchey” - realnost ili perspektiva? [“Internet of things” - reality or a perspective?] Available at: http://compress.ru/article.aspx?id=24290 (accessed October 13, 2014) (in Russ.).

2. Li Baoan, Yu Jianjun. Research and application on the smart home based on component technologies and Internet of Things. Procedia Engineering. 2011, vol. 15, pp. 2087-2092.

3. Nikolaev P.L. Application of cloud technologies in smart home systems. Molodoy ucheny [Young Scientist]. 2014, no. 13, pp. 37-39 (in Russ.).

4. Praktika primeneniya sistem avtomatizatsii i dispetcherizatsii v gostinichnykh kompleksakh [The Practice of Applying Automation and Control Systems in the Hotel Complexes]. Available at: fhttp://www.stroimhotel.ru/files/pdf/me-todology/metod/11 .pdf (accessed October 20, 2014) (in Russ.).

5. SOAP. Versiya 1.2. Chast 0: uchebnik dlya nachinayushchikh [SOAP. Version 1.2 Part 0: Tutorial for Beginners]. Available at: http://www.w3.org/2002/07/soap-translation/russian/part0.html (accessed October 24, 2014) (in Russ.).

6. Flanders J. An Introduction to RESTful Services with WCF. Available at: https://msdn.microsoft.com/en-us/magazine/dd315413.aspx (accessed: October 24, 2014).

7. Yi M.H., Dong F.W. Build RESTful web services using Spring 3. Available at: http://www.ibm.com/developer-works/webservices/library/wa-spring3webserv/index.html (accessed October 24, 2014).

8. MacVittie L. REST as alternative for SOAP. Networks and Communication Systems. 2007, no. 1. Available at: http://www.ccc.ru/magazine/depot/07_01/read.htmr/0502.htm (accessed October 24, 2014).

9. Yazar D., Dunkels A. Efficient Application Integration in IP-based Sensor Networks. The 1st ACM Workshop On Embedded Sensing Systems For Energy-Efficiency In Buildings (BuildSys). Berkeley, California, 2009. Available at: http://dunkels.com/adam/yazar09efficient.pdf (accessed October 25, 2014).

10. Integratsiya i vzaimodeystvie v seti Web [The Integration and Interaction in the Network Web]. Available at: http://www.intuit.ru/studies/courses/485/341/lecture/8211 (accessed October 25, 2014) (in Russ.).

11. Nurseitov N., Paulson M., Reynolds R., Izurieta C. Comparison of JSON and XML Data Interchange Formats: A Case Study. The 22nd Int. Conf. on Computer Applications in Industry and Engineering 2009 (CAINE-2009). 2009, pp. 157162.

12. The introduction to JSON. Available at: http://json.org/index.html (accessed October 25, 2014).

69