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

Ожидается, что к 2020 году в мире будет около 50 млрд объединенных в сеть вещей, а возможности адресации RFID и IPv6 позволяют практически без ограничений идентифицировать в Сети любую вещь. Очевидно, что в этом случае потребуются особые подходы к обработке и хранению получаемых данных, однако овчинка стоит выделки — чем больше объектов Интернета вещей смогут между собой осмысленно взаимодействовать, тем больше, в соответствии с законом Меткалфа [1], пользы будет приносить эта сеть.

Может показаться, что главное в Интернете вещей — это компактные сенсоры и устройства управления объектами реального мира, однако это только одна из составляющих, и далеко не самая важная. Намного сложнее понять, как все устройства будут между собой взаимодействовать, и предложить реальные сценарии, способные облегчать человеку жизнь. Например, включение лампочки со смартфона может показаться веселым развлечением, однако пока это менее удобно, чем пользование обычным выключателем. Чтобы все эти соединенные сенсоры и устройства приносили пользу, им необходимо научиться делать выводы из полученных данных, принимать решения самостоятельно или с минимальным вмешательством человека. Например, приборы контроля отопления в доме вместе с датчиками присутствия могут узнать, когда хозяева обычно возвращаются домой, и включать отопление к этому времени, а в остальное время экономно расходовать энергию. Главная часть Интернета вещей, как полагают в Microsoft, — это умное облако, способное накапливать и обрабатывать большие объемы данных. Ясно, что лавина показателей, поступающих от сенсоров, существенно превосходит те объемы данных, с которыми приходилось иметь дело раньше, поэтому облачные системы, предназначенные для обслуживания Интернета вещей, должны обеспечивать высокую пропускную способность, а также быстро реагировать на определенные ситуационные шаблоны в данных ( например, уметь по показаниям температурных датчиков распознать пожар в здании и инициировать эвакуацию). В экосистему Интернета вещей включены различные клиентские устройства: смартфоны, планшеты и т. д., которые, с одной стороны, обеспечивают интерфейс с пользователями, а с другой — способны накапливать интересные данные о поведении своего владельца. Microsoft предлагает специально для Интернета вещей ряд облачных технологий, позволяющих развертывать инфраструктуру для сбора и анализа данных, используемую в проектах для Интернета вещей (см. рисунок):

  • Event Hub (концентратор событий), служащий для сбора больших объемов данных, поступающих от различных сенсоров;
  • Stream Analytics (потоковая аналитика), позволяющая определять запросы на «живых» потоках данных, поступающих из Event Hubs, благодаря чему можно реализовать их предварительную обработку «на лету» и организовать реакцию на события;
  • Azure ML — технология машинного обучения, позволяющая обучить некоторую модель на имеющихся данных, а затем обеспечить доступ к ней в виде веб-сервиса для формирования предсказаний или выводов;
  • Azure HD Insight — кластерная технология обработки больших объемов данных, получения различных срезов данных и агрегированных значений с помощью алгоритмов типа MapReduce;
  • Облачная платформа Microsoft Azure, обеспечивающая хранение больших объемов данных различных форматов (реляционные СУБД Azure SQL, квазиструктурированные таблицы Azure Storage, СУБД NoSQL).

 

Архитектура типичного проекта для Интернета вещей
Архитектура типичного проекта для Интернета вещей

 

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

Для сбора данных от устройств можно использовать канал концентратора событий, аккумулирующий показания со всех сенсоров. Этот канал является частью Azure Service Bus и может быть создан в панели управления условиями подписки на Azure. Помещение данных в концентратор событий — это простой вызов сервиса по протоколу REST и соединению HTTPS. Если же вместе с датчиком применяется микроконтроллер, не поддерживающий HTTPS-шифрование, то допускается использовать для него специальный, но менее защищенный шлюз на базе WebAPI, который также может быть развернут в облаке.

Концентратор событий собирает показания со всех датчиков, которые затем структурируются и размещаются в хранилище Azure Table Storage для последующего анализа. Поскольку данных много, достаточно хранить сведения лишь за определенный период времени, которые еще не были проанализированы. Для анализа можно использовать кластерную технологию HD Insight на базе Apache Hadoop; например, для получения предсказаний о времени прихода владельцев домой можно использовать алгоритмы машинного обучения, а затем агрегировать результаты и получить вывод о том, когда надо включать отопление в квартире.

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

Для Интернета вещей очень актуальна возможность анализа данных и получения «умных» выводов, которые позволяют улучшить жизнь пользователя. Частично такие алгоритмы заложены в саму систему в виде обратной связи, но некоторые решения могут приниматься только человеком. Для исследования данных, в том числе визуального, имеется ряд технологий, интегрированных в MS Excel; одна из них — сервис PowerBI, позволяющий агрегировать большие объемы данных и представлять их в удобном виде. В нашем примере можно наносить трехмерный график температур на карту местности или группировать потребление энергии по отдельным домам и кварталам.

На стороне клиента  в решении  по управлению отоплением работает Windows 10, способная управлять широким спектром устройств — от смартфонов и планшетов до настольных компьютеров и системы совместной работы Surface Hub с большой диагональю дисплея. Эта ОС может работать на достаточно компактных одноплатных системах типа Raspberry Pi 2 или Intel Minnowboard MAX, которые могут стать основой домашних интеллектуальных систем, подключаемых к Интернету вещей. При этом разработчику доступны все приложения платформы Windows, а разработка таких приложений ведется с помощью известных инструментов из Visual Studio с использованием технологий C#/XAML, HTML/JS и др.

На Windows 10 имеет смысл реализовать приложения для показа статистики, организации контроля вручную и настройки параметров системы отопления. Такое приложение может быть установлено из магазина Windows на смартфоны, компьютеры и даже на игровую приставку Xbox One. С другой стороны, это же приложение можно сделать явной составной частью дома в виде встроенной в стену сенсорной панели, позволяющей управлять основными устройствами в квартире так же, как мы управляем светом с помощью привычных выключателей. В этом случае управляющий панелью компьютер Raspberry Pi может использоваться для сбора данных с сенсоров, а также для прямого взаимодействия с другими устройствами.

Устройства Интернета вещей должны уметь взаимодействовать между собой независимо от платформы, а для этого необходим согласованный и открытый протокол, поддерживаемый всеми вещами. Одним из решений является спецификация AllJoyn, создаваемая в рамках альянса AllSeen Alliance, в который, кроме Microsoft, входят компании Qualcomm, Cisco, LG, Electrolux, Canon, D-Link, Honeywell и др. Поддержка протокола AllJoyn устройствами на базе Windows 10 означает, что разработчики приложений смогут реализовывать различные сценарии взаимодействия с окружающими устройствами. Спецификация AllJoyn имеет все шансы получить широкое распространение в ближайшее время и стать стандартом де-факто, что позволит устройствам и приложениям на базе Windows 10 прозрачным образом интегрироваться в единую экосистему устройств от различных производителей.

Продвижению Интернета вещей будут способствовать открытые стандарты и интероперабельность, которые дадут возможность встраивать технологии Microsoft в уже существующие решения, работающие на широком диапазоне платформ. Использование Microsoft Azure позволит в среде Интернета вещей быстро настроить конфигурацию по сбору, обработке и аналитике данных, причем новые технологии из серии Self-Service BI (Azure ML, PowerBI) делают область машинного обучения доступной не только для профессионалов, но и для конечного пользователя.

***

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

Литература

  1. Боб Меткалф. Закон Меткалфа сорок лет спустя после рождения Ethernet // Открытые системы.СУБД. — 2014. — № 1. — С.44–47. URL: http://www.osp.ru/os/2014/01/13039684 (дата обращения: 31.05.2015).

Дмитрий Сошников (dmitryso@microsoft.com) — технологический евангелист, Microsoft (Москва).