IoT devices have a much more restricted connectivity, less local resources as compared to desktops, laptops and phones. They also lack a UI in many cases. Remote device management also requires devices to be provisioned for a device management service that adds a further challenge to this setup.
Azure IoT DM is primarily designed for devices that have restrictions on the resources and connectivity. This makes Azure IoT DM a very attractive option for the remote device management for IoT devices.
Device Management in Windows 10 is based on the Configuration Service Provider (CSP) model which is a Windows interface that allows reading and modification of settings of a specific feature of the device. The CSPs boost the level of abstraction and present a consistent interface that is friendly for all the editions of Windows, including IoT.
Windows IoT Core + Azure IoT Hub: Perfect Union
Azure IoT Hub provides features that enable device and back-end developers to build good device management solutions. Device Management in Azure IoT brings its base from the concepts of device twin and direct methods. IoT Hub has a device twin (JSON Documents like metadata, configurations etc.) for each device that gets connected to it. It holds the reported properties that reflect the current state of the device and the desired properties that represent the expected configuration of the device.
Direct methods let the back-end send a message to any connected device and receive a response. These two concepts of direct methods and device twin can be used in the best way to provide support to the business logic of your IoT solution and also to implement the device management operations.
The first step to manage an IoT through Azure IoT Hub involves registering the IoT device with a unique device identity and an authentication key. The key needs to be securely stored on the device to avoid duplication of device identity. After provisioning the device with Azure IoT Hub credentials, it becomes easier to manage Windows 10 Core devices as it does not require any additional enrolment or configuration.
Using Windows IoT Azure DM Client Library
- Standalone device management client
- Integrated device management client
In a number of scenarios the capabilities of the standalone device management are insufficient. The main purpose of the integrated device management is to address such cases. It is a .NET library, called the IoTDMClientLib, which links to the IoT app. This library allows your app to share device identity and helps in some common device management operation.
You would need to build the IoTDMClientLib project to integrate the device management to your app. This produces the IoTDMClientLib.dd which you will reference in your app.
The end-to-end solution
The client running on the device and the back-end component running in the cloud are the two parts to the entire device management solution. The back-end component consists of the Azure IoT Hub that acts as the entry point into the cloud for the devices, with the other Azure services that support data storage, analytics, web services etc.
The best feature is that you can use existing tools like DeviceExplorer to trigger direct method calls and device twin changes for your devices.
However, the Windows IoT Azure DM Client Library is still in beta phase and will keep on getting more and more advanced. This could be the next big thing in the Azure and IoT field and revolutionize the way your business operates.