Microsoft та Інтернет Речів Стаття вступна
Сьогодні і на найближчі два тижні у нашому хаброблозі тематична секція — і присвячена вона тому, чому останні кілька років приділяється багато уваги як від найбільших корпорацій (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?

Ми, абстрагуючись від нижчого заліза, дивимося на концепцію Інтернету Речів, відштовхуючись від того, що вже є. Від підвищення ефективності наявної інфраструктури. Від здобуття більше від того, що вже є. Як ми це робимо?
Ми дивимося на Інтернет Речів у трьох перспективах:
- Клієнтська (це для Windows 10)
- Хмарна (це про Microsoft Azure)
- "Прикладна" (це про Microsoft Band/HoloLens)
Вони можуть перетинатися, так і ні. Нижче подивимося докладніше перші дві.


Сьогодні Windows 10 IoT можна встановити на три плати – Raspberry Pi 2, Intel Minnowboard MAX та Qualcomm Dragonboard 410c. Кожна з цих плат призначена для своїх завдань, і, наприклад, людина, яка бажає автоматизувати просте завдання у себе вдома, віддасть перевагу Raspberry Pi 2. В індустрії, яка ближче до Windows Embedded, зацікавляться Minnowboard і Dragonboard.
За ці два тижні буде ще трохи конкретики про те, як це зробити.

Головна ж новина всього цього – 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).
Пізніше ми покажемо архітектуру проекту(ів), які використовують ці та інші сервіси, та багато іншого.