IoT – Device management
|Theme of the Blog:
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)
- Configure parameters
- 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.
Configure devices:
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
Update software:
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)
- Regulation compliance
- Performance issues
Who are the potential private/proprietary vendors
Intel (Windriver) EMS
Sensinode (ARM) Nanoservice
Prosyst (Bosch) M2M Toolkit
Opensys OneAgent
Digi – idigi Device cloud
Eurotech – ESF (MQTT)
Axeda(PTC)
Let me provide little overview on each of them
Sensinode has Nanoservice platform for edge management
LWM2M protocol used for DM using REST like APIs.
ProSyst(Bosch) has M2M toolkit which uses opensource OSGi bundles
It uses Java OSGi bundling to provide M2M services
Detailed building blocks of Prosyst is explained in this diagram
Eurotech – ESF
Eurotech follows MQTT protocol and built Everywhere Service platform
ESF uses Intel Atom processor and supports OSGi bundles as well.
EC (everywhere cloud) is the application platform from Eurotech
Axeda(PTC)
Axeda uses AMMP protocol (Adaptive machine messaging protocol) and supports multiple agents.
Who are the leading open source players
Eclipse Kura MQTT
Eclipse Leshan (Java) Server – On CoAP
Eclipse Wakaama (C Based) Server and client On CoAP
Eclipse Paho MQTT
Equinox/Apache Felix
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.
Conclusion :
# 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.
Nice compilation. A good read .