Привет!
Сегодня и на ближайшие две недели в нашем хаброблоге тематическая секция — и посвящена она тому, чему последние несколько лет уделяется много внимания как от крупнейших корпораций (Microsoft, Intel, HP и др.), так и компаний меньшего масштаба, но с не менее интересными проектами (например, Aura) — а именно Интернету Вещей. Мы расскажем обо всём, что делаем.
Поскольку на Хабрахабре уже несколько раз писали о том, как мы пришли к тому, что вещей в интернете стало больше людей, как интернет развивался и почему все так, а в хабах Разработка для Интернет Вещей и DYI достаточно материалов для того, чтобы озадачить себя на несколько месяцев человеку с любой подготовкой, было принято решение без больших вступлений попытаться подвести некоторую черту под тем, где находится наша компания внутри концепции IoT, что мы делаем, как мы дружим и что делаем с нашими партнёрами (например, с Arduino и Canonical) и показать пару архитектурных решений. Делаем мы это для того, чтобы дать цельное понимание нашего видения в IoT.
Однако без контекста сложно, поэтому немного мыслей о предыстории. Случился давно предсказуемый многими быстрый рост количества устройств (разные аналитические агентства и корпорации периодически приводят разные цифры, которые легко найти в Сети — обычно это цифры с 7 нулями) и сетевого трафика от этих устройств.
Взаимодействие этих устройств в Интернете назвали просто — Интернет Вещей. Однако термин этот совсем не нов — его придумали еще в 99 году; более ранним же термином считается M2M (Machine-To-Machine, и периодически эти два термина используют в одном контексте), возникший в телекоммуникационной индустрии и привязанный к обмену данными по сети между подключенными машинами. Суть IoT можно свести к тому же, однако на IoT смотрят как на более широкое понятие, внутри которого заключено гораздо больше инструментов и технологий, нежели в М2М с обменом данными и возможным взаимоуправлением. Стандартизацией М2М занимается ETSI. M2M = «клей» концепции IoT.
Почему же так получилось, что только по прошествии 15 лет возник такой активный интерес? Чего не хватило для того, чтобы Интернет Вещей в 90-х стал не просто термином, вокруг которого было некоторое количество его апологетов?
Есть много разных мнений, и я на своих выступлениях всегда задаю этот вопрос. Ответы всегда разные, но в основном распределение можно свести к следующим пунктам:
Тем не менее, какой бы ни была причина, мы уже находимся в ситуации, которая требует новых решений и новых подходов. Сложно назвать область, в которой IoT неприменим — здесь и умные дома, и задачи логистического плана, и медицина и всё то, что сейчас идет с приставкой Connected (включая Cars & Cows — про коров и машинное обучение в облаке можно посмотреть в пленарном докладе Build от нашего корпоративного вице-президента по машинному обучению Джозефа Сироша). И, даже если конкретный сценарий уже реализован (например, те же самые Connected Cars), то на данный момент мы видим доработку существующих решений с целью укладывания их в концепцию Интернета Вещей. Например, в Microsoft Azure недавно открылась программа, в которой можно попробовать функциональность передачи данных в реальном времени внутрь Microsoft Azure Machine Learning (почитать на Хабре подробнее). Машинное обучение — тема зрелая, однако реализация его как сервиса и подключение постоянно отправляющих сообщения о происходящем с устройств к нему в качестве потока данных в реальном времени дает возможность это все автоматизировать вместо того, чтобы сначала собирать датасет, после чего в статическом виде отдавать в эксперимент.
Как же мы видим все это в Microsoft?
Мы, абстрагируясь от низлежащего «железа», смотрим на концепцию Интернета Вещей, отталкиваясь от того, что уже есть. От повышения эффективности существующей инфраструктуры. От получения больше от того, что уже есть. Как мы это делаем?
Мы смотрим на Интернет Вещей в трёх перспективах:
Они могут как пересекаться, так и нет. Ниже посмотрим подробнее на первые две.
Начнем с клиентской. В экосистему Интернета вещей включены различные клиентские устройства: смартфоны, планшеты и т. д., которые, с одной стороны, обеспечивают интерфейс с пользователями, а с другой – способны накапливать интересные данные о поведении своего владельца. Со стороны Microsoft ситуация выглядит следующим образом — новая операционная система Windows 10 будет иметь специальные редакции, предназначенные для использования с небольшими устройствами. Редакция IoT уже вышла, и в сообществе стали появляться статьи о том, как и для чего ее можно использовать. В то же время начали возникать вопросы о том, что будет с этой редакцией в дальнейшем — так как в наличии есть факт об отсутствии поддержки различного оборудования, в том числе Wi-Fi и некоторым образом USB и Onboard камер. Здесь необходимо уточнить, что версия IoT активно дорабатывается, и поддержка всех популярных сценариев будет реализована. Разумеется, не все может быть сделано сразу — отчасти из-за того, что нужно еще посмотреть, действительно ли данный сценарий будет востребован, отчасти из-за активного тестирования, которое проходит внутри Microsoft (у нас в компании есть множество сотрудников, активно принимающих участие в программе тестирования — и тестирование каждой сборки обычно занимает немало времени) — отсюда отсутствие части необходимых компонентов. Поэтому сейчас — самое лучшее время для того, чтобы сообщить нам, что вы бы хотели видеть в Windows 10 IoT.
Сегодня Windows 10 IoT можно установить на три платы — Raspberry Pi 2, Intel Minnowboard MAX и Qualcomm Dragonboard 410c. Каждая из этих плат предназначены для своих задач, и, например, человек, желающий автоматизировать простую задачу(-и) у себя дома, предпочтет Raspberry Pi 2. В индустрии, которая ближе к Windows Embedded, заинтересуются Minnowboard и Dragonboard.
За эти две недели будет еще немного конкретики о том, как это сделать.
Помимо Windows 10 IoT, достаточно незаметно проходит очень важная, на мой взгляд, новость о поддержке AllJoyn внутри Windows 10. AllJoyn — популярный протокол взаимодействия, который уже стал де-факто стандартом в индустрии. На следующей неделе выйдет статья от непосредственных разработчиков AllJoyn из компании Akvelon (Иваново). Вкратце же суть AllJoyn можно свести к тому, что это фреймворк и соответствующий инструментарий с открытым исходным кодом, нужный для того, чтобы реализовать взаимодействие приложений, устройств и пользователей через WiFi и Bluetooth вне зависимости от типа устройств. При этом AllJoyn не находится «в себе», это проект, участие в котором принимают серьёзные игроки.
Главная же новость всего этого — AllJoyn будет интегрирован в Windows 10.
Вот, в принципе, и всё, что касается нашей клиентской стороны Microsoft IoT. Если вы занимаетесь Embedded — посмотрите на Windows 10 (многие наши клиенты и интеграторы уже делают это), если вы хотели бы в Visual Studio писать приложения, которые будут работать на плате — делайте это :) Не забывайте при этом, что Windows 10 IoT в превью. Если у вас есть замечания или то, что вы хотели бы видеть — обязательно пишите нам.
Также мы на следующей неделе напишем материал о тех сотрудничествах, которые мы заключили — например, с Arduino и Canonical :)
Перейдем ко второй вертикали — облачной. В облаке мы гораздо дольше — наша облачная платформа недавно отпраздновала пятилетний юбилей, и развитие ее под руководством Скотта Гатри идет семимильными шагами. Однако не всё так просто — для того, чтобы строить IoT-проекты на Microsoft Azure, нужно выбирать правильные инструменты. Не все из тех, что есть сейчас, инструментов, подходят для IoT — и совершенно нормально будет, если та же очередь Service Bus Queue не выдержит напора сообщений с десятков тысяч устройств — не предназначена она для такого :) Специально для задач сбора сообщений в очередь мы сделали Event Hubs. И так далее.
Посмотрим на картинку.
На картинке я попытался собрать все релевантные для IoT сервисы, которые сейчас доступны для использования в реальном бизнесе. При этом направление может быть как слево направо (сообщения передаются, приходя в итоге в какой-либо инструмент вывода), так и справа налево (когда пользователь, используя кнопку на веб-сайте, инициирует выполнение команды на конечном устройстве — например, датчике или спринклере).
Поскольку одного рецепта для проекта IoT нет, архитектура каждого проекта рассматривается отдельно, и можно использовать как несколько сервисов, так и какой-то один — например, для хранения сообщений.
Вкратце же по сути самых релевантных сервисов:
Позже мы покажем архитектуру проекта(-ов), которые используют эти и другие сервисы, и многое другое.
Спасибо!
Помимо этого, много интересных ссылок, так или иначе могущих быть связанными с Интернетом Вещей, можно найти в дайджестах компании FlyElephant за авторством m31.
Windows 10 IoT — с чего начать
Сегодня и на ближайшие две недели в нашем хаброблоге тематическая секция — и посвящена она тому, чему последние несколько лет уделяется много внимания как от крупнейших корпораций (Microsoft, Intel, HP и др.), так и компаний меньшего масштаба, но с не менее интересными проектами (например, Aura) — а именно Интернету Вещей. Мы расскажем обо всём, что делаем.
Поскольку на Хабрахабре уже несколько раз писали о том, как мы пришли к тому, что вещей в интернете стало больше людей, как интернет развивался и почему все так, а в хабах Разработка для Интернет Вещей и DYI достаточно материалов для того, чтобы озадачить себя на несколько месяцев человеку с любой подготовкой, было принято решение без больших вступлений попытаться подвести некоторую черту под тем, где находится наша компания внутри концепции IoT, что мы делаем, как мы дружим и что делаем с нашими партнёрами (например, с Arduino и Canonical) и показать пару архитектурных решений. Делаем мы это для того, чтобы дать цельное понимание нашего видения в IoT.
Однако без контекста сложно, поэтому немного мыслей о предыстории. Случился давно предсказуемый многими быстрый рост количества устройств (разные аналитические агентства и корпорации периодически приводят разные цифры, которые легко найти в Сети — обычно это цифры с 7 нулями) и сетевого трафика от этих устройств.
Взаимодействие этих устройств в Интернете назвали просто — Интернет Вещей. Однако термин этот совсем не нов — его придумали еще в 99 году; более ранним же термином считается M2M (Machine-To-Machine, и периодически эти два термина используют в одном контексте), возникший в телекоммуникационной индустрии и привязанный к обмену данными по сети между подключенными машинами. Суть IoT можно свести к тому же, однако на IoT смотрят как на более широкое понятие, внутри которого заключено гораздо больше инструментов и технологий, нежели в М2М с обменом данными и возможным взаимоуправлением. Стандартизацией М2М занимается ETSI. M2M = «клей» концепции IoT.
Почему же так получилось, что только по прошествии 15 лет возник такой активный интерес? Чего не хватило для того, чтобы Интернет Вещей в 90-х стал не просто термином, вокруг которого было некоторое количество его апологетов?
Есть много разных мнений, и я на своих выступлениях всегда задаю этот вопрос. Ответы всегда разные, но в основном распределение можно свести к следующим пунктам:
- Дешевые сенсоры ($1.30=>60c за десять лет) — снижение стоимости сенсоров привело к возможности делать свои проекты любому человеку в практически любых условиях.
- Дешевые коммуникации (40x за десять лет). Сетевая инфраструктура (М2М) — критически-важный компонент любого проекта IoT. Стоит получить задержку в процессе — и данные могут потерять смысл. Даже человек субъективно воспринимает задержку, превышающую некоторое число, как неудовлетворительную. Системы же RT или nRT предъявляют еще большие требования. В общем, чем надежнее и шире будет коммуникационная инфраструктура, тем комфортнее будет большому количеству данных ходить по нужным адресатам вовремя. Подробнее про эти проблемы — у коллег из ASUS.
- Появление смартфонов и платформ для разработки. Низлежащая «железная» инфраструктура — это хорошо, но для того, чтобы что-то действительно стало мейнстримом, нужны привычные и удобные инструменты для управления этой инфраструктурой. Пример — удаленное управление машиной и домом. Можно сделать несколько разных пультов, а можно использовать одно мобильное приложение.
- Широкое сетевое покрытие позволяет дотянуться до удаленных локаций — например, заводов или даже вышек.
- IPv6 — с истечением количества адресов в IPv4 начался поиск новых решений для адресации объектов в сети. Разумеется, что все устройства адресовать по IPv6 не получится — и не только по технологическим причинам, но и по причинам безопасности — однако работа идет.
- Появление облака вызвало интерес в индустриальном и хоббистском сообществе — получение дешёвых ресурсов, которые могут помочь в обработке большого количества данных, оказалось в том числе одним из блокеров, которые не позволили полноценно развернуть IoT-проекты в прошлом.
Тем не менее, какой бы ни была причина, мы уже находимся в ситуации, которая требует новых решений и новых подходов. Сложно назвать область, в которой IoT неприменим — здесь и умные дома, и задачи логистического плана, и медицина и всё то, что сейчас идет с приставкой Connected (включая Cars & Cows — про коров и машинное обучение в облаке можно посмотреть в пленарном докладе Build от нашего корпоративного вице-президента по машинному обучению Джозефа Сироша). И, даже если конкретный сценарий уже реализован (например, те же самые Connected Cars), то на данный момент мы видим доработку существующих решений с целью укладывания их в концепцию Интернета Вещей. Например, в Microsoft Azure недавно открылась программа, в которой можно попробовать функциональность передачи данных в реальном времени внутрь Microsoft Azure Machine Learning (почитать на Хабре подробнее). Машинное обучение — тема зрелая, однако реализация его как сервиса и подключение постоянно отправляющих сообщения о происходящем с устройств к нему в качестве потока данных в реальном времени дает возможность это все автоматизировать вместо того, чтобы сначала собирать датасет, после чего в статическом виде отдавать в эксперимент.
Как же мы видим все это в Microsoft?
Мы, абстрагируясь от низлежащего «железа», смотрим на концепцию Интернета Вещей, отталкиваясь от того, что уже есть. От повышения эффективности существующей инфраструктуры. От получения больше от того, что уже есть. Как мы это делаем?
Мы смотрим на Интернет Вещей в трёх перспективах:
- Клиентская (это про Windows 10)
- Облачная (это про Microsoft Azure)
- «Прикладная» (это про Microsoft Band/HoloLens)
Они могут как пересекаться, так и нет. Ниже посмотрим подробнее на первые две.
Начнем с клиентской. В экосистему Интернета вещей включены различные клиентские устройства: смартфоны, планшеты и т. д., которые, с одной стороны, обеспечивают интерфейс с пользователями, а с другой – способны накапливать интересные данные о поведении своего владельца. Со стороны Microsoft ситуация выглядит следующим образом — новая операционная система Windows 10 будет иметь специальные редакции, предназначенные для использования с небольшими устройствами. Редакция IoT уже вышла, и в сообществе стали появляться статьи о том, как и для чего ее можно использовать. В то же время начали возникать вопросы о том, что будет с этой редакцией в дальнейшем — так как в наличии есть факт об отсутствии поддержки различного оборудования, в том числе Wi-Fi и некоторым образом USB и Onboard камер. Здесь необходимо уточнить, что версия IoT активно дорабатывается, и поддержка всех популярных сценариев будет реализована. Разумеется, не все может быть сделано сразу — отчасти из-за того, что нужно еще посмотреть, действительно ли данный сценарий будет востребован, отчасти из-за активного тестирования, которое проходит внутри Microsoft (у нас в компании есть множество сотрудников, активно принимающих участие в программе тестирования — и тестирование каждой сборки обычно занимает немало времени) — отсюда отсутствие части необходимых компонентов. Поэтому сейчас — самое лучшее время для того, чтобы сообщить нам, что вы бы хотели видеть в Windows 10 IoT.
Сегодня Windows 10 IoT можно установить на три платы — Raspberry Pi 2, Intel Minnowboard MAX и Qualcomm Dragonboard 410c. Каждая из этих плат предназначены для своих задач, и, например, человек, желающий автоматизировать простую задачу(-и) у себя дома, предпочтет Raspberry Pi 2. В индустрии, которая ближе к Windows Embedded, заинтересуются Minnowboard и Dragonboard.
За эти две недели будет еще немного конкретики о том, как это сделать.
Помимо Windows 10 IoT, достаточно незаметно проходит очень важная, на мой взгляд, новость о поддержке AllJoyn внутри Windows 10. AllJoyn — популярный протокол взаимодействия, который уже стал де-факто стандартом в индустрии. На следующей неделе выйдет статья от непосредственных разработчиков AllJoyn из компании Akvelon (Иваново). Вкратце же суть AllJoyn можно свести к тому, что это фреймворк и соответствующий инструментарий с открытым исходным кодом, нужный для того, чтобы реализовать взаимодействие приложений, устройств и пользователей через WiFi и Bluetooth вне зависимости от типа устройств. При этом AllJoyn не находится «в себе», это проект, участие в котором принимают серьёзные игроки.
Главная же новость всего этого — AllJoyn будет интегрирован в Windows 10.
Вот, в принципе, и всё, что касается нашей клиентской стороны Microsoft IoT. Если вы занимаетесь Embedded — посмотрите на Windows 10 (многие наши клиенты и интеграторы уже делают это), если вы хотели бы в Visual Studio писать приложения, которые будут работать на плате — делайте это :) Не забывайте при этом, что Windows 10 IoT в превью. Если у вас есть замечания или то, что вы хотели бы видеть — обязательно пишите нам.
Также мы на следующей неделе напишем материал о тех сотрудничествах, которые мы заключили — например, с Arduino и Canonical :)
Перейдем ко второй вертикали — облачной. В облаке мы гораздо дольше — наша облачная платформа недавно отпраздновала пятилетний юбилей, и развитие ее под руководством Скотта Гатри идет семимильными шагами. Однако не всё так просто — для того, чтобы строить IoT-проекты на Microsoft Azure, нужно выбирать правильные инструменты. Не все из тех, что есть сейчас, инструментов, подходят для IoT — и совершенно нормально будет, если та же очередь Service Bus Queue не выдержит напора сообщений с десятков тысяч устройств — не предназначена она для такого :) Специально для задач сбора сообщений в очередь мы сделали Event Hubs. И так далее.
Посмотрим на картинку.
На картинке я попытался собрать все релевантные для IoT сервисы, которые сейчас доступны для использования в реальном бизнесе. При этом направление может быть как слево направо (сообщения передаются, приходя в итоге в какой-либо инструмент вывода), так и справа налево (когда пользователь, используя кнопку на веб-сайте, инициирует выполнение команды на конечном устройстве — например, датчике или спринклере).
Поскольку одного рецепта для проекта IoT нет, архитектура каждого проекта рассматривается отдельно, и можно использовать как несколько сервисов, так и какой-то один — например, для хранения сообщений.
Вкратце же по сути самых релевантных сервисов:
- Event Hub (концентратор событий) – сбор больших объемов данных от различных сенсоров.
- Stream Analytics (потоковая аналитика), позволяющая определять запросы на «живых» потоках данных, поступающих из Event Hubs, за счет чего можно реализовать их предварительную обработку «на лету» и организовать реакцию на события.
- Azure ML – технология машинного обучения, позволяющая обучить некоторую модель на имеющихся данных, а затем обеспечить доступ к ней в виде веб-сервиса для формирования предсказаний или выводов;
- Azure HD Insight – кластерная технология обработки больших объемов данных, получения различных срезов данных и агрегированных значений с помощью алгоритмов типа MapReduce.
- Облачная платформа Microsoft Azure – технологии хранения больших объемов данных различных форматов (реляционные СУБД Azure SQL, квазиструктурированные таблицы Azure Storage, СУБД NoSQL).
Позже мы покажем архитектуру проекта(-ов), которые используют эти и другие сервисы, и многое другое.
Спасибо!
Полезная и интересная литература
- adexchanger.com/data-driven-thinking/first-party-data-will-transform-the-internet-of-things
- iot-analytics.com/20-internet-of-things-companies
- hbr.org/2014/10/the-internet-of-things-will-change-your-company-not-just-your-products
Помимо этого, много интересных ссылок, так или иначе могущих быть связанными с Интернетом Вещей, можно найти в дайджестах компании FlyElephant за авторством m31.
Windows 10 IoT — с чего начать
Анонсы
- По следам WinHEC
- Microsoft brings Windows 10 to Makers
- Developing for the Windows 10 Device Platform
Главные ресурсы
Релевантные доклады с Build 2015
- Internet of Things Overview
- Windows for Makers- Raspberry Pi 2, Arduino and More
- AllJoyn: Building Universal Windows Apps that Discover, Connect, and Interact with Other Devices and Cloud Services Using AllJoyn
- Building Consumer and Enterprise Device Solutions with Windows 10 IoT
Статьи о Windows 10 IoT Raspberry Pi 2 от сообщества
- Setting up Windows 10 for IoT on your Raspberry Pi 2
- Windows 10: How to use IoT extension for Raspberry Pi 2 (part 1) (part 2)
- Windows 10 for Raspberry Pi 2
- Raspberry Pi and Windows IoT Core – Push Buttons and Relays
- Windows 10 IoT Core, UWP and Raspberry Pi 2–The Switched Blinking Light Demo
- A nice 7 inch Touch Display for Windows 10 Raspberry Pi 2
- AllJoyn on Raspberry Pi (Raspbian) and Windows 10
- Windows 10 IoT Core–Network Enabling the Blinking LED Demo with AllJoyn
- Windows 10 IoT GPIO Samples
- Windows 10 IoT Core on Raspberry Pi 2 – Adafruit Sensor data to Event Hubs
- Windows 10, UWP, Raspberry PI 2, AllJoyn and Lightbulb Demo
- Windows 10 на Raspberry Pi 2, первые впечатления от vovs