OSGi for IoT solutions: a perfect match
Billions of connected devices, a multitude of communication protocols, and a wide variety of different domains – the IoT is a very diverse, multifaceted field. This complexity has to be considered when developing IoT applications. Moreover, the IoT ecosystem is constantly evolving: New devices, applications, and features emerge while others become obsolete. This creates a challenging environment for companies and developers alike.
In face of such diversity, interoperability and the ability to share data across solutions is crucial. With a standards-based approach, OSGi aims to achieve precisely that. The most important goals of OSGi? Reduce complexity, ensure future-proof IoT solutions, and provide a common framework accessible to all developers.
Modularity and abstraction reduce complexity in the IoT
The OSGi Alliance specifies a general-purpose framework called the OSGi framework. While this framework has many facets, two aspects are crucial in the IoT context: its modularity and the abstraction layer.
The OSGi framework follows a modular service architecture, which means applications are modularized in different bundles, thus enabling the sharing of services across different applications. Splitting an application into bundles helps save resources and maintain the code. Additionally, it makes updating parts of an application easier. You don’t have to check the complete application to make modifications; you simply update a specific bundle. Using the OSGi framework also allows developers in different parts of the world to collaborate more effectively. Thanks to its modular structure, it can integrate the individual code of different people smoothly.
When it comes to companies, the OSGi framework allows them to start small and at the same time ensure that their solutions are future-proof. They can always add new features and evolve their solutions over time. What’s more, they are able to align their solutions with the varied and ever-changing needs of their customers. In short, the framework allows companies to manage the complexity that comes with IoT solutions.
The other crucial part is the abstraction layer. It allows you to abstract devices from their communication protocols. Simply put, developers don’t have to deal with the peculiarities of the different protocols. The device abstraction layer consolidates the different protocols into one interface within the OSGi framework.
All this sounds great? Then let’s take a look at what the real world has to say about OSGi.
OSGi use cases in the IoT
Founded in 1999, OSGi originally stood for Open Services Gateway initiative, and focused on interoperability in connected homes. However, over the years it became apparent that its scope was much broader. Today, the OSGi Alliance specifies a general-purpose framework that is being used in embedded devices, enterprise application services like IBM WebSphere as well as the Eclipse IDE.
The smart home market is extremely diverse, with many different players offering their own solutions. These solutions are mostly targeted at specific tasks and use cases. While one product might facilitate automation, you might need a completely different one when it comes to monitoring specific aspects of your home and yet another one when dealing with security. This can be seen as a plus: By focusing on a specific task, companies can ensure that their products satisfy their customers’ needs.
The problem, however, is that many of these products are proprietary. Most of the time, users need specific apps to interact with their devices. What’s even worse is the fact that if there is no central gateway, users have to rely on a variety of apps to operate their devices.
An exemplary use case of OSGi in smart homes is QIVICON by German telecommunications company Deutsche Telekom. This platform brings together a wide variety of smart home devices from different brands under one technical roof. In other words, Deutsche Telekom is developing an ecosystem that allows partners to participate. They define and provide a base architecture that all the partners can use. The connectivity to the devices is taken care of and the partners receive a software development kit, so that they can develop their own applications. QIVICON also comes with the parts required for remote and device management as well as software provisioning, using the Bosch IoT Remote Manager and Bosch IoT Gateway Software.
In this context, the OSGi framework helps connect devices that use different communication protocols. In addition, it provides a common basis for developers. They can create applications on top of the framework that work with all the devices on the QIVICON platform, allowing you to control the lights in your house or change the temperature, for example.
OSGi’s modular structure also makes it possible to address specific parts of the platform. Let’s say there is an update that is targeted at ZigBee devices. In this case you don’t have to roll out an update to the entire platform – you just update the software bundle that deals with ZigBee devices, without affecting the other partners in the QIVICON ecosystem.
A major challenge many manufacturers face are long innovation cycles. Machines are often in use for decades and it takes a lot of effort and resources to make them meet Industry 4.0 requirements. Many machines are therefore not yet connected, thus creating a huge demand for retrofit solutions.
This is a problem Bosch Rexroth wants to solve with their IoT Gateway software, which can be used to connect already installed machines as well as new machines. A standardized connectivity layer based on OSGi helps make the different technologies interoperable. Having built their own Java applications on top of the OSGi framework, Bosch Rexroth can provide services like predictive maintenance or data analytics. For instance, you can monitor the status of a machine and measure the temperature development with a CISS sensor. Thanks to OSGi, the IoT gateway software allows you to correlate the status and temperature information with each other and subsequently draw conclusions. Bosch Rexroth also provides an SDK so that developers can create applications to suit their specific needs.
An industry that benefits from OSGi is connected cars. In this context, it facilitates vehicle-to-vehicle and vehicle-to-infrastructure communication. There are various applications that depend on sensor information in this domain. Bosch Automotive Aftermarkets, for instance, makes use of OSGi not only for pay-as-you-drive insurance use cases but also for leasing companies.
OSGi can also be leveraged in the health sector. Medical appliance providers could use OSGi gateways to connect to their devices – for example, infusion pumps. It would help them monitor how the pumps are used in hospitals and optimize maintenance processes based on the insights gained. OSGi would also provide a standardized way to roll out software updates to these devices.
More transparency for less complexity in the IoT
In a field as diverse as IoT, interoperability is crucial. With its standards-based approach, OSGi aims to achieve precisely that. It greatly simplifies the lives of developers as well as businesses by reducing the complexity of the process and taking into account the realities of IoT solution development.
However, software today is so complex that open standards alone might not suffice. A combination of open standards and open source in order to implement IoT standards could be the key to promoting rapid adoption of IoT technology. This combination brings together the best of both worlds; developers as well as companies joining forces to build IoT solutions.