Last week, I was a panelist to a webcast entitled, Considering IoT Maintenance & Upgrades, where I and other industry experts discussed three topics for each distinct phase of an IoT project: development, deployment, and exploitation in the field of devices. Here are the highlights of what we covered:
Development: How IoT devices are built
When planning for field maintenance and upgrades of IoT devices, there are three important design aspects to consider.
- Design for maintenance. Avoid 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.
- Enable preventive maintenance. Provide a software runtime environment that is more secure and robust. For instance, an app that crashes does not crash the entire system.
- Enable corrective maintenance. Select 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.
Deployment: How to ease maintenance in the field
Consider who will be responsible for updates and maintenance and how it can be made more convenient for them.
- End customers want to be able to avoid taking the device to the repair shop or waiting for a technician to come.
- Operations/fleet management wants to be 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 want to be able to perform fixes easily while the development team is 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.
Exploitation: How devices are managed.
A complete infrastructure in the cloud or with enterprise servers is required for doing three things:
- Data intelligence, including collecting data from devices, storing and presenting it, and doing big data analytics.
- Device management, includingprovisioning, monitoring, user account management, device administration, over-the-air (OTA) 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. The IoT being new, it’s likely that device manufacturers and service providers are looking for the proper service and killer app. That’s why it’s important to give them the flexibility to ship devices quickly and adjust content and configuration later depending on markets, regions, options subscribed by customer, etc. Manufacturers need the capability for updating the software content 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.