Microsoft и Интернет на нещата Уводна статия
Днес и през следващите две седмици в нашия хъбблог има тематичен раздел - и той е посветен на това, което през последните няколко години получи много внимание както от най-големите корпорации (Microsoft, Intel, HP и др.), така и от по-малки компании, но с не по-малко интересни проекти (например Aura) - а именно Интернет на нещата. Ще разкажем за всичко, което правим.

Тъй като Habrahabr вече писа няколко пъти за това как стигнахме до факта, че има повече хора в интернет, как се разви интернет и защо всичко е така, а в хъбовете за развитие на интернет на нещата и DYI има достатъчно материали, за да се озадачите за няколко месеца на човек с всякакъв опит, беше решено без големи въведения да се опитаме да начертаем някаква линия под това къде се намира нашата компания в рамките на концепцията на IoT, какво правим, как се сприятеляваме и какво правим с нашите партньори (например с Ar duino и Canonical) и показват няколко архитектурни решения. Правим това, за да дадем холистично разбиране на нашата визия в IoT.
Без контекст обаче е трудно, така че малко помислете за предисторията. Има бързо нарастване на броя на устройствата, отдавна прогнозирани от мнозина (различни аналитични агенции и корпорации периодично дават различни числа, които лесно се намират в мрежата - обикновено това са числа със 7 нули) и мрежовия трафик от тези устройства.
Взаимодействието на тези устройства в Интернет беше просто наречено Интернет на нещата. Този термин обаче не е никак нов - той е измислен още през 99 г.; по-ранният термин се счита за M2M (Machine-to-Machine, и периодично тези два термина се използват в един и същи контекст), възникнал в телекомуникационната индустрия и е свързанс обменамрежови данни между свързани машини. Същността на IoT може да се сведе до същото, но IoT се разглежда като по-широко понятие, което съдържа много повече инструменти и технологии от M2M с обмен на данни и възможен взаимен контрол. M2M е стандартизиран от ETSI. M2M = "лепило" на концепцията за IoT.
Защо се случи така, че едва след 15 години имаше такъв активен интерес? Какво не беше достатъчно на Интернет на нещата през 90-те години да не се превърне просто в термин, около който имаше редица негови апологети?
Има много различни мнения и аз винаги задавам този въпрос в изказванията си. Отговорите винаги са различни, но основно разпределението може да се сведе до следните точки:
Но каквато и да е причината, вече сме в ситуация, която изисква нови решения и нови подходи. Трудно е да се назове област, в която IoT не е приложим - тук са умните домове, и задачите на логистичния план, и медицината, и всичко, което сега идва с префикса Connected (включително Cars & Cows - можете да видите за кравите и машинното обучение в облака в пленарния доклад на Build от нашия корпоративен вицепрезидент за машинно обучение Джоузеф Сирош). И дори ако вече е реализиран конкретен сценарий (например същите свързани автомобили), тогава в момента виждаме усъвършенстване на съществуващите решения, за да ги вместим в концепцията за Интернет на нещата. Например, наскоро беше отворена програма в Microsoft Azure, в която можете да опитате функционалността за прехвърляне на данни в реално време в Microsoft Azure Machine Learning (прочетете повече на Habré). Машинното обучение е зряла тема, но внедряването му като услуга и свързването с непрекъснато изпращане на съобщения за случващото се от устройства към него като поток от данни в реално времеВремето дава възможност да се автоматизира всичко това, вместо първо да се събере наборът от данни и след това да се даде на експеримента в статична форма.

Как виждаме всичко това в 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 СУБД).
По-късно ще покажем архитектурата на проекта(ите), които използват тези и други услуги и много други.