Internet of Microsoft Things (Recovered)
The Internet of Things is one of the most popular topics in the tech press today, and I discussed in a previous article how IoT, Big Data and Artificial Intelligence (AI) are converging to create the perfect technology storm that will change the way we do business and live our personal lives.
Because the IoT is such a big deal right now, it makes sense that most of the major tech companies are finding a way to get into the act. Cisco announced early this year that the company was investing another $1.4 billion in its IoT strategy with the purchase of Jasper Technologies. Google invited university researchers to participate in their IoT Technology Research Award Pilot, although BI Intelligence reported recently that their IoT division’s projects, such as NEST, are struggling.
Nonetheless, the IoT is a lucrative – albeit highly competitive – market, and it’s no surprise that Microsoft has gone “all in” by partnering with Raspberry Pi, Intel and Qualcom, and by giving both its newest operating system, Windows 10, and its cloud services, Azure, built-in support for IoT.
One Windows to rule all the things
Windows 10 is Microsoft’s most ambitious operating system to date, and it’s the basis of Microsoft’s “One Windows” philosophy, the goal of which – according to CEO Satya Nadella in 2014 – is to “streamline the next version of Windows from three operating systems into one single converged operating system for screens of all sizes.”
The One Windows concept is an exciting one. It means the same apps (referred to as universal apps for this reason) will run on different types of devices. Previously, Windows “metro” apps wouldn’t run on Windows Phone devices, despite their similarities in appearance. Now, apps that are built on the UWP (Universal Windows Platform), formerly the Windows 8 Runtime platform, can be easily ported between PCs, tablets and phones with just one API and one app distribution package (AppX). Apps for all of the “device families” are installed from the Windows Store.
Universal apps that use only the core APIs will run on any device family (types of devices). There are specialized SDKs that can add features for a particular device family. These extensions won’t work on other device families. It’s up to developers to decide whether to make their apps run on multiple (or all) device families or limit the apps to just one device family. Windows.Universal is the default target device family in the app package manifest file when developing the app with Microsoft Visual Studio.
Apps that run on all types of devices make sense because so many users now have multiple devices and they have a better user experience when the app is the same on their desktop or laptop machine as it is on their tablets and phones. Cloud services can sync settings and data across the different devices to make for a seamless user experience.
It's important to understand that the One Windows initiative doesn’t mean Windows will no longer come in “editions,” contrary to what some technical news headlines might have proclaimed. In fact, right up front we have two different operating systems: The Windows 10 client and Windows Server. Looking just at Windows 10 for the moment, you’ll find Microsoft’s documentation shows six editions available: Home, Pro, Enterprise, Education, Mobile and Mobile Enterprise. These are all designed to run on what we think of as standard computing devices: desktop systems, laptops and convertibles, tablets and smart phones.
Windows 10 IoT editions
What that web site referenced above doesn’t mention is the successor to Windows CE/Windows Embedded, the version of Windows intended for limited purpose devices. This iteration is now called Windows IoT, because it’s intended to run on the many “things” that connect to the Internet and aren’t traditional computers, tablets or phones.
The device families mentioned above, each of which has unique features and characteristics that can be targeted by developers with the UWP API extensions, consist of:
- Desktop device family
- Mobile device family
- Xbox device family
- IoT device family
- IoT headless device family
Apps can use adaptive code to detect the family of a particular device and use the features that are unique to that device family. As you can see, we have not just one but two device families that include the “things” on the IoT. We’ll talk more about the difference between headless and “headed” IoT devices later in this article, in our discussion of Windows 10 IoT Core edition.
Windows 10 IoT is not just one edition, but three: Windows 10 IoT Enterprise, Windows 10 IoT Enterprise Mobile and Windows 10 IoT Core. Each is designed to run on a different type of device form factor. The first is the most robust, and the last is the most basic and minimalist, but all are capable of running universal apps and share the same device management stack, which means organizations’ IT personnel can use the same management tools to configure and control all their Windows-based IoT devices regardless of device type.
Windows 10 IoT editions and other editions of Windows 10 are intended to interoperate with one another whether communicating from sensor-to-device, device-to-cloud or device-to-device. They are also designed to work with Microsoft’s Azure IoT services, including the Azure IoT suite, which we’ll examine in more detail later in this article. But first, let’s look at each of the Windows 10 IoT editions:
- Windows 10 IoT Enterprise. This edition of Windows 10 IoT can run on full-fledged computer systems and industry devices in many vertical markets (healthcare, retail, and so forth). It can run both universal apps and classic (legacy) Windows desktop applications so you have ultimate flexibility. It also supports all of Windows 10’s enterprise grade security mechanisms such as BitLocker, Secure Boot, Device Guard, advanced lockdown, etc.
- Windows 10 IoT Enterprise Mobile. As the name implies, this edition of Windows 10 IoT is made for more mobile line-of-business devices and includes native support for barcode scanners and other peripherals that would commonly be used with such devices.
- Windows 10 IoT Core. This edition was created for smaller, lower cost single-application devices. It still runs universal apps and supports the same development and management tools as its more robust siblings. Microsoft even provides a free SKU of Windows 10 IoT Core to device makers (no royalty fee). The only difference between the free SKU and the OEM licensed SKU, called Windows 10 IoT Core Pro, is that the free one automatically updates when connected to the Internet and with the Pro version, you can control the update schedule and process.
To complicate matters further, Windows IoT Core (both the free and Pro versions) can be run in either of two modes:
- Headed mode. The OS runs a default startup app that can run interactive universal apps. This single app runs when the device starts up. Background apps (without a UI) can also launch at startup.
- Headless mode. There is no graphic user interface in this mode. Apps are not interactive. When these are not needed, you can save on system resources by configuring headless mode.
To change from headed to headless mode or vice versa, you can use PowerShell’s setbootoption tool. You can download the Windows 10 IoT Core Dashboard application to obtain information about your headless device.
Azure IoT Services and Suite
The Azure IoT Suite is a set of tools with which you can monitor your IoT devices, capture and analyze the information and use it discover patterns and correlations that will provide better insight into your business processes. It’s built on the Azure cloud infrastructure, which in turn is built upon the Security Development Lifecycle (SDL), and operates in conjunction with the Microsoft Operational Security Assurance process and Cyber Defense Operations Center, putting device security and cloud security at the forefront of Azure IoT technology engineering.
The suite provides customers with pre-configured solutions that make it easy for companies to get started with their IoT projects even if they’re new to IoT, and simplifies the process of connecting many different types of IoT devices, running different operating systems, thanks to its open design. These tools are also designed to help organizations integrate IoT with their existing business systems.
The suite focuses on effective remote monitoring of IoT “things” to give you more insight into their operation so that you can practice preventative maintenance and respond instantly if problems arise. The data collected can help you to head off expensive equipment failures and the resultant downtime that can negatively impact your business’s bottom line. Azure IoT suite uses the streaming data from your IoT device sensors to analyze and make sense of the information and deliver alerts to you or even initiate maintenance or repair events automatically.
Microsoft’s IoT services provide you with a framework for planning and implementing your remote monitoring projects, based on the needs of your organization and the IoT devices you will be using. They walk you through the steps involved:
- Identifying the business objective and targeting the business processes so you can define your high-level criteria
- Profiling, mapping and categorizing the assets – sensors and actuators, automation equipment, robotic equipment – according to type, location, operating system, data type, connection protocols and so forth
- Determine whether/what additional components and devices may be needed and assess integration and development that will be required
- Plan end-to-end security
- Create data profiles (type, size, location, communication frequency, etc.) to help you understand your data
- Develop rules regarding conditions that will trigger alerts and what actions are to occur in response
- Implement changes to the business process and integrate the solution with your back-end systems and applications
- Use insight from real-time visibility to improve operations on an on-going basis
Microsoft’s IoT services are also designed to helped companies through the process of setting up predictive maintenance projects that are tailored to the circumstances and goals of your individual company, based on proven core principles. They walk you through the steps involved:
- Identifying your target outcome
- Identifying the sources of data relevant to your outcome
- Capturing that data
- Combining all the diverse data by connecting data from different sources into a consistent system
- Normalizing the data
- Modeling and testing to pinpoint unanticipated patterns using machine learning and stack-rank models
- Validate the models by applying them to live, streaming data under real-world conditions
- Integrate the model into operations
- Adjust, improve and optimize the process based on ongoing observation and insights gained from machine learning and advanced analytics
The Internet of Things is, according to most predictions, the Next Big Thing. Microsoft has obviously recognized this and is getting into IoT in a big way. The current IoT focus with Windows 10 and Azure IoT Suite is likely only the beginning. Expect to see bigger investments in IoT from Microsoft and the other tech giants in the future as they all battle to be number one in this hot market.