BROWSE BY TECHNOLOGY



RTC SUPPLEMENTS


TECHNOLOGY CORE

Windows 10 and the Internet of Things

Windows 10 and the Internet of Things

With the explosive growth of the Internet of Things and the Internet of Everything, millions of devices are connecting every day. The arrival of Windows 10 IoT has brought ease of use and ubiquitous connectivity to IoT. This alone warrants becoming familiar with IoT goals, concepts, software and hardware in the context of the new Windows 10 IoT.

BY JO SUNGA AND ANDREW CHOU, ADVANTECH

  • Page 1 of 1
    Bookmark and Share

Article Media

While Microsoft undoubtedly deserved kudos for its all-out effort to create a new OS that embraced the reality of touch and tablets while still taking the old legacy Windows along for the ride, it was an impossible task and few were happy with Windows 8/8.1. Windows 10 couldn’t happen soon enough. It will be a while until it catches up to the universally loved Windows 7, but Microsoft’s new OS enjoyed a good reception and initial brisk adoption.

How does all of this affect the world of embedded systems? And how does it tie into the Internet of Things, this paradigm that promises not billions but trillions of value generated over the next decade or so? No one has a totally reliable crystal ball, but for now Microsoft’s belief in IoT is such that the company has, in essence, replaced the term “embedded” with “IoT.” 

Yes, it’s true. Whereas in the past, Microsoft’s streamlined special-purpose operating systems carried names such as Windows XP Embedded, Windows Embedded Handheld, or Windows Embedded Standard, from now on everything that once was “embedded” is now Windows 10 IoT. That doesn’t mean there won’t be different flavors like there used to be with versions like Windows Embedded 8.1 Pro or Windows Embedded 8.1 Industry or Retail. There are still different versions, but they are now grouped according to devices and “things” rather than markets and industries served, and they are all part of Windows 10 IoT.

So that brings up two questions. What has changed in the Windows versions formerly known as “embedded”? And since an embedded operating system remains an embedded operating system by any other name, why did Microsoft replace it with “IoT” in the first place? 

The former we’ll discuss in some detail. The latter simply reflects the new realities of computing and connectivity. While there were once dozens or hundreds of mainframes, thousands of mini computers, and hundreds of millions of PCs, research firms predict that there will be hundreds of billions of “connected things” within the next five years. Why not reflect that in a new name? So IoT it is, though we’re already hearing other terms like IoYT‚ the Internet of Your Things, or IoE, the Internet of Everything that also includes people and processes in addition to things.

But now let’s consider how Windows 10 is different from the versions that came before. The most important change is that with Windows 10, Microsoft offers what it calls a “unified core” that brings together conventional Windows, Windows Phone, Windows on Devices and even the Xbox. That doesn’t mean there’s just one Windows that runs on every type of device. That wouldn’t make sense given the vast variety of computing devices and their massive discrepancy of purpose, size and resources (Figure 1). 

Figure 1
Microsoft Windows 10 for IoT is based on a common core that is the foundation for all versions and then differentiated in versions by adding features and services that are appropriate to the target devices.

So instead, the concept of Windows 10 is that of a common core with each family of devices then adding features to that core. On top of the Windows core is the universal Windows platform with a single API interface. Applications have a single binary that can run on any device. This means that the code developers write for every device instead of having to write different code for different devices. There are, of course, family-specific capabilities (extensions for desktop, phone, Xbox, etc.), but those don’t invalidate the binaries on other devices. That said, how is Microsoft grouping these different versions of Windows 10 IoT? 

Windows 10 IoT Groupings

Anything that needs a desktop (not the physical kind, the desktop on the screen) or desktop apps and also still needs to be able to run Win32 in addition to the new universal apps needs Windows 10 IoT Enterprise. This replaces Windows Embedded 8.1 Industry/Retail. It’s the full version of Windows 10, but includes advanced lockdown features. It supports the x86 architecture, requires a minimum of 1GB of RAM and 16GB of storage, and available SKUs include Windows 10 IoT versions for Retail and Thin Client, Tablet, and Small Tablet.

Windows 10 IoT Enterprise is what most embedded systems developers will want for projects such as ATMs, medical devices, information kiosks, point of sale systems, tablets, etc.

Anything that needs a “modern” (formerly known as “metro”) shell and must run mobile apps needs Windows 10 IoT Mobile Enterprise. This replaces Windows Mobile and Windows Embedded Handheld. The x86 and ARM architecture are supported here, and resource requirements include a minimum of 512MB RAM and 4GB storage. Windows 10 IoT Mobile Enterprise also includes advanced lockdown features and there is no activation requirement. This is an embedded direct-only option meant for smartphones and small tablets.

Windows 10 IoT Mobile Enterprise is, finally, a worthy, modern successor to the old Windows Mobile and Embedded Handheld that have seen continued use long past their shelf life because there simply was no feasible upgrade path once Microsoft introduced the consumer-oriented Phone edition a few years ago. 

Getting to the Core

If the above two requirements do not apply, then it’s Windows 10 IoT Core which supports both x86 and ARM, runs universal apps and drivers, but does not have a Microsoft shell or Microsoft apps.

Windows 10 IoT Core, once codenamed “Athens,” is by far the most “things”-oriented flavor of Microsoft’s new embedded -- make that IoT -- lineup. It’s for small, dedicated x86 or ARM devices that do not need a conventional Windows shell and may or may not have screens. Examples are edge sensors, IoT gateways, HMI devices and the like. Windows 10 IoT Core has Universal App and driver support, needs a minimum of 256MB of RAM (512MB for devices with displays) and 2GB of storage, and there is no activation requirement. 

There are a number of things that are unique to Windows 10 IoT Core. Among them are headless, policy-managed operation with background apps to handle long-running tasks, retain full control, and manage process life cycles. There’s an API for bus access (GPIO, I2C, SPI, USB, HID, custom), an API for system settings (power state, radio control, Bluetooth, Wi-Fi), and overall a rich API set, albeit a smaller one than classic Windows. Migration tools are available for the porting of existing code to 10 IoT Core. But, and that’s a big “But,” Core can’t run legacy Win32 apps. This means very limited backward compatibility with Windows CE or Windows Embedded, but a large number of Win32 and .Net APIs are available in Windows 10 IoT Core, and migration tools are available.

As far as configuring the Windows 10 IoT OS for a certain project or device, it’s a matter of using the Windows Image Configuration Designer (ICD) to create and build a Windows image that is then customized with universal apps, drivers and configuration and lockdown settings.

“Lockdown” is crucial in IoT systems. Since IoT systems require an extra layer of security and a totally predictable user experience, Lockdown includes input filters (intercepting key strokes that could lead to unpredictable or unwanted results), AppLocker and Layout Control (so nothing can be changed), a Shell and App Launcher (so that the interface is always exactly the same), Write Filters and Overlays (so that nothing can be written to or changed that shouldn’t), USB Filter (so that USB keys can’t be used unauthorized), and Dialog and Notification Filters (so that unexpected pop-ups can’t halt operation).

Note that not all versions of Windows 10 IoT have the same lockdown features. Headless Windows 10 IoT Core devices, for example, only need the USB filter as they do not have Windows shells and may not have displays or other input mechanisms. Windows 10 IoT Mobile includes all types of lockdown features except Write filters and overlays. All of them are part of Windows 10 IoT Enterprise.

 You may have noticed that we said that activation was not required in certain systems. That’s because conventional activation of Windows can be disruptive, and it’s certainly not something most IoT devices would want to unexpectedly encounter. As a result, there is no activation for Mobile and Core versions of Windows 10 IoT. For Enterprise versions, activation can be handled both online and offline, and it’s designed not to get in the way. 

 Security is a massive issue in our ever-more connected world, and one that becomes exponentially greater as millions of IoT devices are added every week and month. Device identity, shared data and customer data all present unique challenges that are handled via TPM/secure boot, TPM-based key storage, and industrial-grade device encryption, respectively.

Why Upgrade?

One thing a lot of developers will ask themselves is why they should upgrade to Windows 10 IoT. Many had less than satisfactory experiences with upgrading in the past, and may assume a wait-and-see attitude. 

The first argument for upgrading is that Windows 10 is to Windows 8/8.1 as Windows 7 was to the ill-fated Windows Vista. Microsoft learned from its mistakes and fixed most of what needed fixing.    

The second argument is that Windows 10 IoT is simply too attractive to ignore. There’s the full interoperability and the familiar user experience. There’s the fact that it runs all Win32/Win7/Win8 apps, but there is also the new unified tool set for the Universal Application platform, allowing apps to work not only on desktops and tablets, but also on Xbox One, Windows Phone, and even the new Surface Hub 80-inch display. There’s better security with advances in biometrics and the use of face recognition, there’s DirectX12, and much more. The difference to earlier versions of Windows embedded is that Windows 10 IoT offers a converged platform for devices with enterprise-grade security. Windows 10 IoT is also far better equipped to handle connectivity for the ever more important machine-to-machine and machine-to-Cloud scenarios that make the Internet of Things so compelling in the first place.

What speaks against it? There’s the issue with legacy Win32 apps that Windows 10 IoT Core can’t handle. And many developers are not familiar yet with the new universal SDK. 

Overall, even doubters should consider the new realities of the Internet of Things. The days when an OS was designed to handle no more than an individual PC and basic online connectivity are gone. The Cloud plays a major role in the IoT concept, and that’s reflected in Windows 10 IoT. 

“The Cloud,” of course, is anything but a cloud. It is made up of server and storage farms out there that are very much on solid earth. But regardless of the fluffy name, the Cloud is where a tremendous, and rapidly growing, amount of data is stored, processed and passed on. That’s where the Azure part of Windows 10 IoT comes in. Azure is Microsoft’s Cloud solution, initially announced in 2008 and introduced in 2010 as Windows Azure (Figure 2). 

Figure 2
Microsoft Azure acts as a Cloud platform and infrastructure for building and managing applications and services for both Microsoft-specific and third party software and systems.

A special Azure IoT Suite has been available since September 2015. The purpose of the Azure IoT Suite, which of course works well with Windows 10 IoT, is to integrate all Azure capabilities designed to help businesses connect, manage and analyze all of their “things.” This may include finished applications targeting common IoT business scenarios such as remote monitoring, asset management and predictive maintenance, with the promise to simplify deployment and facilitate scaling of solutions to millions of “things” over time.

It’s important to understand the difference between Microsoft Windows 10 IoT and Microsoft’s Azure IoT Suite. Whereas the former will most likely become the basis for the development of Internet of Things components at every level, Azure itself is simply a service that Microsoft offers. It’s an impressive service for sure. Azure Event Hubs store data from assets and sensors; the Azure DocumentDB non-relational Cloud-based database and Azure HDInsight Hadoop can process giant data sets; Azure Stream Analytics deals with streaming data; Azure Notification Hubs send OS-agnostic mobile-push notifications. And there are Azure Machine Learning (ML) that provides Cloud-based predictive analytics, and the Microsoft Power BI self-service analytics tool. 

While the IoT paradigm has been a hot topic for a while, leading embedded system vendors realized that the Cloud infrastructures lagged behind and didn’t meet customer expectations for Cloud connection, hindering IoT implementation. In response, Advantech developed WISE-PaaS (Platform as a Service) with the goals of a) seamless sensor information gathering and transmission, b) remote management of smart devices, c) comprehensive protection for data, systems, and transmissions, d) big data analytics and machine learning modules, and e) open API/SDK and protocols conforming to industry standards. 

Advantech’s WISE-PaaS has a WISE-Cloud Partner Alliance program that includes an IoT development starter kit, SDK/Protocols, consulting and technical training services, co-marketing and 180 day Microsoft Azure service. Advantech is working with Microsoft’s Azure IoT and Windows 10 IoT teams to integrate Advantech WISE-PaaS with Azure features and modules.

Now comes the time to discuss some standards and concepts you’ll come across when dealing with IoT issues. 

There is, for example, AllJoyn in sensor data communication (Figure 3). AllJoyn is an open source system originally developed by Qualcomm, and now administered and promoted by the AllSeen Alliance that lets compatible devices and apps find each other and communicate with each other. An example would be the sensor in a motion-activated light switch that tells the light bulb that no motion has been detected and it’s okay to turn off now. The overall idea is to have a variety of universal AllJoyn extensions as well as AllJoyn gateway agents in the software stacks of routers and IoT gateways to facilitate sensor data communication as well as easy setup, security, and ongoing support.

Figure 3
AllJoyn is an open source project that lets connected devices from different manufacturers communicate via a common software framework and a set of system services. Devices can find each other and cooperate across network boundaries of brand, product category and connection type.

 AllJoyn, by the way, doesn’t need Internet access to work. AllJoyn-enabled devices, services and applications and services can communicate over Wi-Fi, LAN, power lines or other transport services regardless of OS and without the need for being connected to the Internet. As of Fall 2015, the AllJoyn initiative includes over 170 member companies, and AllJoyn is implemented in Windows 10.

Another is AMQP, which stands for Advanced Message Queuing Protocol. AMQP is an open standard wire-level application layer protocol for message-centric middleware. Anything that can create and interpret messages that conform to the AMPQ data format works with any other compliant tool or device, regardless of the implementation language used.

Finally, there’s the hardware. Embedded systems have been around for a long time, and a good number of them were connected. In the IoT, everything is connected, in real time and not via batch uploads, sneakernet, or USB sticks. On its own, any one piece of data isn’t terribly valuable, but if those formerly isolated data points are collected, filtered, and passed on for processing and analysis, a big picture emerges and allows for real time, intelligent feedback and management. The problem is that perhaps 85% of current systems are legacy technologies that do not share data between themselves, let alone the Cloud. It takes new IoT-centric hardware working with new IoT-enabled software to make it all work.  

On the hardware side that includes the wireless sensor network level with sensor “mote” edge devices that communicate via standard protocols. There is the embedded IoT gateway level that shares, filters, and transports data. And there are the intelligent systems and networking that, in cooperation with the Cloud, manage and analyze data and turn it into analytics action.

As of now, there are just four Microsoft Global IoT Partners in the world. Advantech is one of them, fully supporting Windows 10 IoT with a range of IoT gateway solutions, IoT wireless modules, wireless IoT nodes, the WISE-PaaS platform, and IoT design-in services.

If the experts are right about the Internet of Things and the Internet of Everything, trillions of dollars are at stake. That alone warrants taking Windows 10 IoT seriously, peculiar name change or not. And it warrants becoming familiar with IoT goals, concepts, software and hardware. As a reader of RTC Magazine, chances are you’re already well on your way.

 

 

 

Advantech

Irvine, CA

 

(949) 420-2500

www.advantech.com