IBM Developer Day | Bengaluru | March 14th Register now
By Anna Gerber | Updated January 3, 2018 - Published December 22, 2017
This article is part of the IoT 301 learning path, an advanced developer guide for IoT.
Any complex IoT system must include device management capabilities in its architecture. IoT devices are often deployed in hostile environments. And, when devices fail, they might need to be retired and removed from those environments or updated so that they can continue to operate in those environments.
Device management helps to protect devices and their data by making it easier to secure and monitor the devices. Device management capabilities allow IoT developers to control IoT devices by performing operations like resetting them to factory defaults or applying updates to patch security issues or fix bugs.
As the number and variety IoT devices deployed increases, and the complexity of your IoT system architecture also increases, managing your IoT devices becomes increasingly challenging.
The key challenges involved with managing and maintaining IoT devices include security, interoperability, constrained devices, scalability, and availability.
Security is an important consideration across all layers of your IoT system. Device management services can make it easier to secure the IoT devices themselves by providing secure device registration and authentication services and by supporting encrypted machine-to-machine (M2M) communication. Read more in my Top 10 IoT Security Challenges article and how implementing device management services in your IoT system can address many of these security challenges.
The devices deployed within an IoT system now and into the future might be of different classes, be produced by a range of manufacturers, and use a range of communication protocols. Device management tools must support managing all of the devices consistently to maintain interoperability across heterogeneous devices. Look for device management services that support standard device management protocols, or which implement protocols and APIs to provide abstractions for managing devices generically in bulk.
IoT devices are often constrained, which means they have limited power, memory, processing capability, or connectivity. (Read more about IoT devices in my IoT hardware guide.) These constraints affect whether the device is capable of being managed remotely, and how effectively it can apply remote operations. If a device is powered by a battery, it is vital that the device be able to communicate with the device manager and perform updates or operations without exhausting the power available. If the power supply is exhausted and then an operation such as a factory reset or firmware update is interrupted, it could result in bricking the device.
Lightweight device management protocols are ideal for IoT devices, as they are designed to be efficient and minimize the amount of processing that needs to be performed by the device itself. These lightweight device management protocols reduce the bandwidth and frequency of communication between the device and the management services so as to conserve device resources.
As more devices are added to the system, device management services need to scale to handle larger numbers of devices that are registering and communicating with the device management service. Device management services need to be able to handle the increased number of routine device management operations that will need to be performed at any given time.
Automation is key to scaling device management for IoT, because it quickly becomes impractical to monitor and manage all of the devices manually. An administrator should only need to step in to intervene if something unexpected happens.
Device management services must be aware of context in order to ensure availability. Device management includes monitoring the current state of devices so that you don’t try to reboot a device while it is in the middle of an update, but also includes broader awareness of the state of the network, awareness of the device’s status and available power, or what the current device usage looks like before performing maintenance operations. Device management services should support synchronizing management operations like firmware updates to minimize disruption.
Many of these device management challenges can be addressed by adopting standard device management protocols or by making use of device management services provided by an IoT platform. (Read more about why you might need to use an IoT platform in your IoT solutions in my previous developerWorks article.)
IoT devices typically perform machine-to-machine (M2M) communication over lightweight connectivity protocols like XMPP (an XML-based chat protocol), CoAP (Constrained Application Protocol), or MQTT (MQ Telemetry Transport). Read more about IoT communication protocols in my connectivity and network protocols guide.
Device management protocols operate over the top of these general connectivity protocols, to support device registration, authentication, querying device capabilities, and performing operations consistently across devices.
Standardized device management protocols that have been applied to IoT devices from the broadband and mobile industries include TR-069, OMA DM and LWM2M:
IoT device management is an area of active standardization, so this area remains quite fragmented. Many IoT reference architectures describe device management features, and most IoT platforms, such as the IBM Watson IoT Platform, implement custom device management services that have been tailored to the requirements of managing IoT devices for use with the specific platform.
Read how to connect a Raspberry Pi as a managed device in this developerWorks recipe.
The IBM Watson IoT Platform Device Management protocol is a lightweight device management protocol that operates over MQTT. The IBM Watson IoT platform supports both managed and unmanaged devices. Managed devices run a device management agent, which includes the logic for connecting to and communicating with the Watson IoT Platform’s device management service.
IoT platforms typically provide APIs and dashboards for their device management. These dashboards and APIs can be used to manage device registration, trigger remote operations, and to monitor, search for, or filter devices (for example, by manufacturer or serial number).
Whether you are considering adopting device management provided by an IoT platform, a standalone service (for example an Eclipse Leshan server), that implements a standard device management protocol, or a combination of device management services, key features to look for include:
Device management services help to automate the management of IoT devices throughout their lifecycle – including provisioning, authentication, configuration, maintenance operations, monitoring, and eventually decommissioning. Device management is a critical component for any scalable, secure and interoperable IoT solution.
After presenting a broad overview of the concepts and skills that IoT developers need, this learning path guides you through…
To be a part of the IoT technological revolution, you’ll need to explore the architectures, designs, and development best practices…
Back to top