Hello!
Today and for the next two weeks in our hubblog, there is a thematic section - and it is devoted to what has been receiving much attention from the largest corporations (Microsoft, Intel, HP, and others) over the past few years, as well as companies of smaller scale, but with no less interesting projects (for example,
Aura ) - namely the Internet of Things. We will tell you about everything we do.

')
Since Habrahabr has already written several times about how we came to the fact that there are more people on the Internet, how the Internet developed and why everything is so, and in Hubs
Development for the Internet of Things and
DYI there are enough materials to perplex For several months, a person with any training, it was decided, without large introductions, to try to draw some line on where our company is located within the IoT concept, what we do, how we are friends and what we do with our partners (for example,
Arduino and
Canonical ) and show steam have architectural solutions. We do this in order to give a complete understanding of our vision in IoT.
However, without the context is difficult, so a few thoughts about history. A predictable increase in the number of devices (various analytical agencies and corporations periodically give different numbers that are easy to find on the web — usually numbers with 7 zeros) and network traffic from these devices.
The interaction of these devices on the Internet was simply called the Internet of Things. However, this term is not new at all - it was invented
back in the year 99 ; The earlier term is considered to be M2M (Machine-To-Machine, and periodically these two terms are used in the same context), which arose in the telecommunications industry and is tied
to the exchange of data over the network between connected machines . The essence of IoT can be reduced to the same, however, IoT is viewed as a broader concept, within which there are much more tools and technologies than M2M with data exchange and possible mutual control. Standardization M2M engaged
ETSI . M2M = “glue” of the IoT concept.
Why did it happen that only after 15 years did such an active interest arise? What was not enough for the Internet of Things in the 90s to become not just a term around which there were a number of its apologists?
There are many different opinions, and I always ask this question in my speeches. The answers are always different, but basically the distribution can be reduced to the following points:
- Cheap sensors ($ 1.30 => 60c for ten years) - reducing the cost of sensors has led to the ability to make your projects to anyone in almost any conditions.
- Cheap communications (40x for ten years). Network infrastructure (M2M) is a critical component of any IoT project. It is worth getting a delay in the process - and the data may lose meaning. Even a person subjectively perceives a delay in excess of a certain number as unsatisfactory. Systems RT or nRT make even greater demands. In general, the more reliable and wider the communication infrastructure is, the more comfortable it will be for a large amount of data to go to the right recipients on time. More about these problems - from colleagues from ASUS .
- The emergence of smartphones and development platforms. The underlying iron infrastructure is good, but in order for something to truly become mainstream, we need familiar and convenient tools to manage this infrastructure. An example is remote control of a car and a house. You can make several different remotes, and you can use one mobile application.
- Wide network coverage allows you to reach remote locations - for example, factories or even towers.
- IPv6 - with the expiration of the number of addresses in IPv4, the search began for new solutions for addressing objects in the network. Of course, it’s impossible to address all devices via IPv6 - not only for technological reasons, but also for security reasons - but the work is underway.
- The emergence of the cloud has aroused interest in the industrial and hobby community - obtaining cheap resources that can help in the processing of large amounts of data, was also one of the blockers who did not allow to fully deploy IoT projects in the past.
However, whatever the reason, we are already in a situation that requires new solutions and new approaches. It is difficult to name the area in which IoT is inapplicable - here are smart homes, logistic tasks, medicine and everything that now comes with the Connected prefix (including Cars & Cows - about cows and machine learning in the cloud can be viewed in the
plenary report Build from our corporate vice president of machine learning, Joseph Syros). And, even if a specific scenario has already been implemented (for example, the same Connected Cars), then at the moment we see the refinement of existing solutions with the aim of putting them into the concept of the Internet of Things. For example, Microsoft Azure recently opened a program in which you can try the real-time data transfer functionality inside Microsoft Azure Machine Learning (
read more on Habré ). Machine learning is a mature topic, but its implementation as a service and the connection of constantly sending messages about what is happening from devices to it as a data stream in real time makes it possible to automate everything instead of first collecting data and then sending it in a static form .

How do we see all this in Microsoft?

We, abstracting from the underlying “iron”, are looking at the concept of the Internet of Things, starting from what is already there. From improving the efficiency of existing infrastructure. From getting more from what is already there. How do we do it?
We look at the Internet of Things in three perspectives:
- Client (this is about Windows 10)
- Cloudy (this is about Microsoft Azure)
- "Applied" (this is about the Microsoft Band / HoloLens)
They can or not intersect. Below is a closer look at the first two.

Let's start with the client. The Internet of Things ecosystem includes various client devices: smartphones, tablets, etc., which, on the one hand, provide an interface with users, and on the other hand, are capable of accumulating interesting data about the behavior of its owner. On the Microsoft side, the situation is as follows - the new Windows 10 operating system will have special editions designed for use with small devices. IoT editors have already been released, and articles have begun to appear in the community about how and for what it can be used. At the same time, questions began to arise about what will happen with this edition in the future - because there is a fact about the lack of support for various equipment, including Wi-Fi and in some way USB and Onboard cameras. Here it is necessary to clarify that the IoT version is being actively developed, and support for all popular scripts will be implemented. Of course, not everything can be done right away - partly due to the fact that we still need to see if this scenario will really be in demand, partly because of the active testing that is taking place inside Microsoft (we have many employees in the company who actively participate in the testing program - and testing each assembly usually takes a lot of time) - hence the lack of some of the necessary components. Therefore, now is the best time to tell us what you would like to see in Windows 10 IoT.

Today, Windows 10 IoT can be installed on three boards - Raspberry Pi 2, Intel Minnowboard MAX and Qualcomm Dragonboard 410c. Each of these boards are designed for their own tasks, and, for example, a person who wants to automate a simple task (s) at home will prefer Raspberry Pi 2. In an industry that is closer to Windows Embedded, Minnowboard and Dragonboard will be interested.
During these two weeks there will be some more specifics on how to do this.
In addition to Windows 10 IoT, quite imperceptibly, the very important, in my opinion, news of
AllJoyn support within Windows 10 passes. AllJoyn is a popular interoperability protocol that has already become the de facto standard in the industry. Next week there will be an article from the AllJoyn developers directly from Akvelon (Ivanovo). In short, the essence of AllJoyn can be reduced to the fact that it is a framework and the corresponding open source toolkit needed to realize the interaction of applications, devices and users via WiFi and Bluetooth, regardless of the type of devices. At the same time, AllJoyn is not “in itself”, this is a project in which
serious players take part.

The main news of all this - AllJoyn will be integrated into Windows 10.

That's basically all that concerns our client side Microsoft IoT. If you are engaged in Embedded - look at Windows 10 (many of our clients and integrators already do this), if you would like to write applications in Visual Studio that will work on the board -
do it :) Don't forget that Windows 10 IoT is in preview If you have any comments or what you would like to see -
please contact us .
Next week we will also write material about the cooperation we have concluded - for example, with Arduino and Canonical :)
Let's move to the second vertical - cloudy. In the cloud, we are much longer - our cloud platform has recently celebrated its fifth anniversary, and its development under the leadership of Scott Guthrie is leaps and bounds. However, not everything is so simple - in order to build IoT-projects on Microsoft Azure, you need to choose the right tools. Not all of the tools that are available now are suitable for IoT - and it will be perfectly normal if the same Service Bus Queue does not withstand the pressure of messages from tens of thousands of devices - it is not intended for this :) Especially for the tasks of collecting messages into a queue we made event hubs. And so on.
Look at the picture.

In the picture I tried to collect all the services relevant for IoT that are now available for use in the real business. In this case, the direction can be either left to right (messages are transmitted, eventually coming to any output tool) or from right to left (when a user, using a button on a web site, initiates the execution of a command on the target device, for example, a sensor or sprinkler). ).
Since there is no single recipe for an IoT project, the architecture of each project is considered separately, and you can use both several services and some one - for example, to store messages.
Briefly, in fact, the most relevant services:
- Event Hub (event hub) - collecting large amounts of data from various sensors.
- Stream Analytics (streaming analytics), which allows you to define requests for live data streams coming from Event Hubs, so you can pre-process them on the fly and organize reactions to events.
- Azure ML is a machine learning technology that allows you to train some model on the available data, and then provide access to it as a web service to generate predictions or conclusions;
- Azure HD Insight is a cluster technology for processing large amounts of data, obtaining various data slices and aggregated values ​​using MapReduce type algorithms.
- Microsoft Azure cloud platform - storage technologies for large amounts of data in various formats (relational DBMS Azure SQL, quasistructured tables Azure Storage, DBMS NoSQL).
Later we will show the architecture of the project (s) that use these and other services, and much more.
Thank!
Useful and interesting literature
In addition, many interesting links that can be related to the Internet of Things in one way or another can be found in the
FlyElephant company
digests written by
m31 .
Windows 10 IoT - where to startAnnouncements
Main resources
Relevant reports from Build 2015
Windows 10 IoT Raspberry Pi 2 community articles