Last week I participated as a panelist to a webcast on IoT maintenance and upgrades; I thought I’d write a post on the subject matter.
The panel was organized in three topics for each of the distinct phases of an IoT project: development, deployment and exploitation in the field of devices.
For the first topic, we look into how IoT devices are built. There are three important design aspects to consider when planning for field maintenance and upgrades of IoT devices:
- Design for maintenance, avoiding monolithic software architecture so developers limit impact of fixes in the whole software and ease maintenance with modular components. This implies selecting a component-driven software development environment and system runtime environment that support modular software construction and update.
- Enabling preventive maintenance, i.e., providing a software runtime environment that is more secure and robust. For instance, an app that crashes does not crash the entire system.
- Enabling corrective maintenance, i.e., selecting a runtime environment capable of firmware updates, but also flexible partial software (component-level) updates. This corresponds to the mobile OS paradigm where once in a while you do the OS update on your smartphone (and need to reboot), but install/update/uninstall apps independently much more often (no reboot). A secure runtime environment is needed to take care of ensuring trusted downloads, authenticating servers, verifying code, executing safely apps, etc.
For the second topic, we look into how to ease maintenance in the field. There are three points of view to take into consideration:
- End customers: Avoid taking the device to the repair shop or waiting for a technician to come.
- Operations/fleet management: Being able to do remote diagnosis and corrective maintenance, knowing that full firmware updates can be very problematic with IoT due to latency and low bandwidth at the edge.
- Manufacturers: Being able to do fixes easily while the development team is probably busy working on another project.
Corrective maintenance involves putting in place tools for remote monitoring, operations management, logging, downloading or uploading software and utilities. With thousands or millions of IoT devices being deployed, operators need to connect them to a web-based platform in order to manage them. Standards like MQTT, CoAP and LWM2M are emerging for connecting and managing a fleet of IoT devices.
For the third topic, we look into how devices are managed. A complete infrastructure in the cloud or with enterprise servers is required for doing three things:
- Data intelligence: Collecting data from devices, storing and presenting it, and doing big data analytics.
- Device management: Provisioning, monitoring, user account management, device administration, over-the-air updates, customer support.
- Software content management: Whether manufacturers/operators want to do full or partial software updates.
Connecting IoT devices to cloud services isn’t easy as operators need to put in place the proper device runtime environment, protocol/network/security strategy, and services in the cloud.
With IoT being new, it’s likely that device manufacturers and service providers are looking for the proper service/killer app. That’s why it’s important to give them the flexibility to ship devices quickly and adjust content/configuration later depending on markets, regions, options subscribed by customer, etc. Manufacturers need the capability for updating the software content (functionality/apps) on the fly upon any kind of evolution — market-driven or technical. This requires a flexible software environment on the device side that adjusts to a fast moving IoT landscape.
View a replay of the panel discussion here.
All IoT Agenda network contributors are responsible for the content and accuracy of their posts. Opinions are of the writers and do not necessarily convey the thoughts of IoT Agenda.