Subscribe Find out first about new and important news
  • Share via email
  • Subscribe to blog alert

How to manage software updates in the IoT

Manufacturers or service providers have to constantly improve their IoT products to meet the ever-changing needs of the market. This is accompanied by the need to keep firmware, software, and applications on the IoT device up to date. Using a scalable firmware/software over-the-air provisioning service with comprehensive campaign management features seems like the ideal solution. But what are the key characteristics of such an IoT software update system?

The update process in general

When observing the update process from a backend perspective, it quickly becomes apparent that a software update is a relatively domain-independent operation.

Take a small edge sensor as an example: Updating such sensors is a simple process. It involves delivering a software update artifact to the device, which is then subsequently installed via a suitable mechanism for constrained devices.

Olaf Weinmann

Olaf Weinmann has been working for Bosch.IO (formerly Bosch Software Innovations) since 2011, where he was active in the areas of open source, IoT device abstraction, IoT software updates, and IoT device management. Currently, he drives the customer-centric vision and strategy of Bosch IoT Suite as head of IoT device management, data management, and analytics. He studied mathematics and information technology at the University of Konstanz and holds a PhD in mathematics. In his spare time, he enjoys sports, photography, and he loves to tinker around with IoT devices in the context of his smart home.

Automobiles are another example. It’s obvious that a car is a highly complex machine, composed of dozens of updateable ECUs (Electronic Control Units) with complex dependencies. However, in most cases, triggering a backend software update isn’t an elaborate operation. The complex logic for installing the update in the car is contained either within the software update package or is part of the local software update mechanism in the car itself.

Ultimately, the process of updating software is about bringing together a device and a bunch of files. What’s important is that these updates have to be managed in a secure and reliable way on the backend. And this is precisely where a service like Bosch IoT Rollouts comes into play.

Openness as a key feature

A software update system has to be open for any kind of connectivity – this is something we learned early on when it came to our Bosch IoT Rollouts service. That is why Rollouts provides the Direct Device Integration (DDI) API as a standard, off-the-shelf solution. But, it also allows other protocol adapters to be plugged in via the Device Management Federation (DMF) API. On the one hand, this enables the use of standardized device management protocols that cover software update processes such as LWM2M, OMA-DM, and TR-069. On the other hand, it also allows the use of custom protocols.

Depending on the use case, software updates might have to be carried out on disparate data models. A connected sensor might just have a single firmware, while a vehicle has dozens of firmware that have to be rolled out. App-store-like scenarios might also be in play, which means you want to push optional functionality onto a device as part of your business case. That aside, it’s also important to remember that a software update system needs to be tightly coupled to the rest of your IoT landscape.

"Altogether, the system needs to be extensible and flexible."
Olaf Weinmann, Product Owner Bosch IoT Rollouts

Vendor lock-in is a no-go

A software update service deeply integrated with your IoT landscape leads to dependencies on the service provider. This undoubtedly poses a risk. Bosch IoT Rollouts is not only based on but also fully API compatible with the Eclipse Open Source project hawkBit. This reduces the aforementioned risk to a minimum for our customers.

Core functionalities of an IoT software update system

What are the most important features a reliable system for software updates in the IoT should have? The Bosch IoT Rollouts service illustrates what we believe are the core elements.

Infographic illustrating Bosch IoT Rollouts.

What a cloud-ready IoT software update system needs

  • Scalability: The update system has to be scalable – both from a technical and functional standpoint. The update system has to connect millions of devices and ship terabytes of software. Also, rollouts with hundreds of thousands of individual devices have to be managed.
  • Reliability: Software updates are the last line of defense against device faults and vulnerabilities, making reliability a crucial factor.
  • Integration flexibility: The update system needs to connect and integrate directly through various (non-)standardized device management protocols or indirectly through federated device management servers.
  • Security & integrity: There has to be a chain of trust between the software/firmware release manager and the device itself.

The first feature is the device and software repository. Rollouts is focused and specialized on software updates in the IoT, which means it is not a full-blown asset management or device management solution. It only retains the information of the device that is related to software updates. This includes the software update history, information on what version is currently installed, or how Rollouts can reach the device. Depending on the use case, further metadata can be attached to device representations, but are not mandatory.

The second element is artifact content delivery. Depending on the installation, we are able to ship the artifacts directly to the device or via content delivery network providers like AWS CloudFront. This allows artifacts to be shipped on a global scale.

Software update and rollout management is the third feature that is the at the heart of the product. It’s also often referred to as campaign management. It eliminates the need to update devices individually. Instead, it provides an orchestrated and managed approach for software updates on a large scale.

In a scenario that involves millions of devices, nobody wants to be responsible for triggering the update for all devices at the same time. Not only might this cause a problem in respect to technical infrastructure, or the data centers, it’s also risky because errors may occur. A better approach is to start with a small number of devices and then move on from there. This ensures that not all devices are impacted in case a software update problem arises.

Last but not least, a reporting and monitoring function is required to keep track of the update’s rollout and ensure security.

"If you have millions of devices, nobody wants to be responsible for triggering the update for all of them at the same time."
Olaf Weinmann, Product Owner Bosch IoT Rollouts

How different domains can benefit from Bosch IoT Rollouts

As you can see, many aspects have to be considered when providing updates over the air. In addition to functional aspects, the diversity of the IoT landscape must be considered. A cloud-ready IoT software update system should cater to a variety of different domains. Let’s take a look at the different fields of application for Bosch IoT Rollouts:

  • Automotive: In the past, software updates were manually provisioned at car repair shops. By connecting these cars and providing software updates over the air this process can be managed directly and automatically controlled by a cloud solution.
  • Connected Industries: IoT gateways in production environments and embedded software in machines can be updated via a software provisioning service. This eliminates the need to carry out a manual update. A cloud-based campaign management solution enables updates to be timed according to shift and production schedules.
  • Energy: Energy solution providers are increasingly turning to software update tools and services to better manage the millions of households that are now connected to smart meter systems.
  • Consumer Goods: Embedded software of consumer goods can also be updated over the air. These include consumer electronic devices, home appliances, e-bikes, and multimedia systems in cars.
  • Building: Management and control of software updates for security-relevant equipment such as security cameras.
  • Agriculture: Regular software updates for sensors, gateways, and controllers in IoT solutions for the agricultural sector.

More on software updates in the IoT & Bosch IoT Rollouts

Are you looking for a more general introduction to SOTA and FOTA? We've got you covered.

Bosch IoT Rollouts is one of three Bosch IoT Suite services that is available on AWS Marketplace.

Bosch IoT Rollouts is also available on the IBM Marketplace and in the IBM Cloud Catalog.

Find out more about Bosch IoT Rollouts.

Take a look at the documentation to gain an in-depth understanding of what Bosch IoT Rollouts is all about.

A domain-independent back-end framework for rolling out software updates in the IoT: check out the first release of Eclipse hawkBit.