TL; DR: The OSGi Alliance was founded in 1999 to improve on the then clunky, yet promising new programming language Java. With Java’s eventual explosion in popularity, OSGi standards have been applied to numerous technologies across a range of industries. That has resulted in reduced development lifecycles that allow enterprises to deliver apps to market with greater agility. The nonprofit’s member companies directly influence the direction and development of OSGi’s specifications and continue to have significant impact on the innovations in software that are powering many of the world’s modular applications.
Anyone who has ever ridden the Carousel of Progress at Walt Disney World could have forecast the rise of smart homes. They’ve been in the making well before Disney’s mid-20th-century utopian dreams of automated washing machines and television sets.
By 2020, revenues in the smart home market are predicted to jump by 64% (an increase of roughly $2.9 billion) due, in large part, to the proliferation of broadband, greater smartphone use, and expanded awareness of energy consumption. Today, modern companies, such as Deutsche Telekom, are bringing smart home technologies and their revenue potential to market through collaboration and innovation.
To create its standardized smart home platform, Deutsche Telekom formed QIVICON, an alliance among top German innovators in the field, which aimed to deliver energy efficiency, security, and convenience solutions to fit within an open ecosystem. Essentially, this platform acts as the foundation and service gateway for home automation. And it was all made possible through OSGi based technologies developed with the latest specifications of the OSGi Alliance.
OSGi is a Java framework for developing and deploying modular applications and libraries and proved to be the perfect solution for QIVICON. Because of the OSGi and Java based system, QIVICON was able to ease the development, deployment, and remote management of applications within the smart home. Ultimately, this resulted in mass market adoption and high customer satisfaction and retention rates.
The OSGi Alliance, founded in 1999, specifies and maintains standards targeted at the Java programming language, helping to enhance its originally limited modularity.
“Java didn’t have a good story for breaking highly complex programs into pieces and keeping those pieces from interfering with one another,” said Dan Bandera, President of the OSGi Alliance. “That’s usually referred to as modularity.”
Improving The Modularity of the Java Interface Since 1999
Java is a widely popular object-oriented programming language that started in 1995. The language was used to program the PC version of the massively popular game Minecraft and is now officially employed in Android’s software development kits.
Unlike other languages, Java apps run in their own securable VM with no need to be recompiled for different architectures. Despite its many advantages, Java experienced a rough start as development pain points — including a lack of modularity — had to be tackled gradually.
“You can think of it as Lego blocks,” Dan said. “You can plug them together — you’ve got different sizes — but the nice thing is that you can take one piece out and put another one in. Java didn’t have that. If you create your applications using good modular design, it becomes much quicker and less expensive to maintain.”
A few years after Java’s emergence, the OSGi Alliance was formed to address Java’s shortcomings. Originally, the OSGi Alliance concerned itself primarily with the development of service gateways. A service gateway is a proxy service required by web applications to provide monitoring and lifecycle management.
“In the early days, we were trying to get into home gateways,” Dan said. “Back in those days, a piece of equipment that could run that software was unfortunately expensive. It was a slow update in the original target market. But the software had multiple markets it could address.”
The vast number of open-source libraries and tools available to Java developers is another contributing factor to its popularity, allowing for broad versatility in a number of applications.
Evolving With the Open-Source Tech Behind Enterprise-Level Software
While originally focused on improving service gateways, OSGi specifications have been implemented in mobile phones, automobiles, and even entertainment systems. In Java, JAR (Java ARchive) files contain all the necessary components for an app to run.
These packages combine many components into a single file for easy distribution. The ability for rapid deployment, as well as its reputation among open-source communities, makes Java arguably the world’s most popular programming language.
“Since we got started in the late 90s, the software world has undergone a seismic shift,” said BJ Hargrave, CTO of the OSGi Alliance. “Probably the biggest overall impact on development has been the massive rise of open-source.”
Open-source software and libraries are widely available and free to use and modify, making it ideal for use in a variety of applications. Further, the communities behind many open-source projects ensure the longevity and innovation of their software.
“Open-source wasn’t always the juggernaut it is today,” BJ said. “Back in the day, software development shops would predominately write all the software themselves or lease libraries from other commercial firms. Today, there’s practically not a single application that doesn’t include open-source libraries.”
The majority of Java applications use several open-source components from Apache, Eclipse, and Maven. OSGi makes it easy to implement many disparate third-party components into a combined functional code by ensuring consistent specifications.
Multiplying the Power of Engineering & Reducing the Dev Lifecycle
OSGi standards offer many benefits to users, including low cost (due to the heavy use of open-source resources), easy deployment, high compatibility, and simplified development cycles.
“If you can apply these tools successfully, you can multiply the force of your engineering team to get more done for less,” BJ said.
Using OSGi specifications for projects ensures modularity and compatibility among components, thus reducing the development process to little more than fitting the right building blocks together. Just as the applications they help create, the implementation of OSGi standards involve several processes corresponding to different software components and attributes.
The OSGi framework encompasses several layers — including bundles, services, service registry, programming lifecycle, modules, security, and execution environments. Bundles may include JAR files, classes, configuration files, and manifest headers.
Guidelines specify that these bundles are capable of dynamic loading and that they explicitly declare any dependencies on external libraries. The services and services registry layers contain a programming interface that dynamically combines bundles.
The modularity layer defines encapsulation and the declaration of dependencies, while the security and execution environment layers limit the functionality of bundles to predefined standards and platforms. Meanwhile, the lifecycle layer loads modules that can be dynamically installed, run, and updated.
OSGi specifications ensure high rates of compatibility among software components and cover every aspect of bundling and development. By easing the burden on engineers, OSGi makes deployment and upgrades much easier, leading to significant reductions in development times.
“For example, a company I work for took a 10 million-line piece of Java code and used OSGi technology to modularize it,” Dan said. “Before, they used to have a release cycle where they added new features and tested them, which was about 18 months to two years.”
According to Dan, after modularizing, the development lifecycle now spans an average of just three months.
Committed to Updating Specifications Based on User Need
Originally conceived to address the shortcomings of Java, the OSGi Alliance has helped improve applications in many industries.
“With the rise of object-oriented and open-source programming, software developers need ways to manage the complexity,” BJ said.
OSGi’s standards — as well as its original focus on modularity and service gateways — stem from the need to simplify software development and ease the burden on engineers. As a result, many industry giants, including IBM, Oracle, and Adobe, as well as Deutsche Telekom, have become members of the OSGi Alliance.
As a pioneer in the Java development field, OSGi is primarily concerned with improving the technology that powers lives. Throughout its 18-year run, OSGi has updated its standards based on evolving user needs. While much of the innovation stems from internal expertise, the Alliance got its start by addressing the major pain points of early Java development.
“All of our work is done by a volunteer army of technical experts driven by their clients’ needs,” Dan said. “We don’t do anything that somebody doesn’t need. You go through the list of members and you see them work together to produce this technology because of a real need they have.”