Device management in Internet of Things
Required expertise : Minimal knowledge on Internet of Things (Yes, Thats it)
Reading time: 15 minutes
Flow: Why DM, what are the features of DM, who are private vendors, who are open source players
my definition of IoT : An art of making useful service or function by inferring information from/about devices, which is possible by connecting to devices and communicating to the application cloud/world.
From definition, there is major different between Internet and IoT and that is , of course things…
So it is essential to control and manage the things connected in the IOT ecosystem. This is generally called as Device management.
What is Device management :
Capability to connect to multiple devices and control, manage, configuration provision, software provision them in remote manner
Why Device management is important for IoT usecases:
Imagine a connected home with smart water and energy management components, This solution may land up in embarrassing situation for the customer if DM is not properly. Water not available when needed due to software update failure.
Security plays a vital role in IoT.
What the expected ideal features of an ideal DM candidate
Monitor the devices
Manage the devices (Bootstrapping, ceritificate rotation)
Update the software
Collect data from sensors
Gather and analyze data
Execute functions/calls in devices
Most importantly, all the above functions need to be carried out “REMOTELY”
Just a short note on each of the items:
Monitor the devices :
In IoT scenarios, it is important to keep checking the health of the devices in continuous manner, like its power status(on/off), connectivity signal strength etc,.
Manage the devices:
Mere monitoring may not help, devices need to be managed as well. There are many functions, out of which bootstrapping and certificate management are important. Bootstrapping is the procedure for the device to get the secret keys and URL for reaching the servers. It’s also useful for re-keying, upgrading security scheme or redirecting your device to another server.
Steps of typical bootstrapping process:
–When device shipped, it has only Standalone Bootstrap credentials
— First device connects to BS server by POST query with BS credentials
— Bootstrap server verifies credentials and put DM server credentials after deleting BS credentials.
— Device sends “put” request to DM server using DM credentials
— DM server responds with “get” details
with put and get, DM session and handshake happens with/without SSL keys.
Advantages of bootstrapping : First verification of OTA updates…(so it may work in case of need) and increases security with two factor authentication.
IoT world is quite complex, hence the parameters will definitely will undergo changes. Hence ideal DM candidate need to allow the remote configuration of devices
Any firmware upgrade happens, then that need to be applied on all devices. DM has to support this feature
Collect data from sensors: Device management may itself collects the data from devices
Execute functions: Few times, DM is expected to run the remote commands on the devices.
Why DM is difficult for IoT:
Scale of the devices : The number of devices to be connected is very huge.
Variations in the devices: Different categories/models/vendors
Criticality of the services: IoT touches almost critical parts of life (Like the example figure above,it even impacts regualar day to day life)
Eclipse Kura MQTT
Eclipse Leshan (Java) Server – On CoAP
Eclipse Wakaama (C Based) Server and client On CoAP
Eclipse Paho MQTT
Though there are many proprietary vendors, Open source development plays an equally important role in IoT edge/device management.
Eclipse (Supported by Intel,Sierra wireless, Eurotech) is the major contributor.
Leshan and Wakamma supports CoAP protocols while Kura and Paho uses MQTT protocols.
For testing purposes, I had downloaded Wakaama server and client. I installed client on Raspberry PI and server on my ubuntu(14.02) laptop. Steps are clearly documented in readme files and smooth experiment.
Find attached screenshot.
Wakaama client connected to Leshan server component.
# There are many IoT platforms available, however critical parameter to be looked upon is their device management capabilities
# There are different protocols used for communication by different vendors
# There are equally good opensource platforms(evolving) available to explore
# Depending upon the specific needs of IoT usecase, multiple combinations can be worked upon
# Bootstrapping and provisioning are the key components of device management & to be verified during evaluation
# IoT is not about small usecases and PoCs, it has to support large scale of dump devices (For example, city lights) from different manufacturers, different form factors etc., so support for Open source is key requirement.