OSGi Alliance Reaching Universal Middleware Goal
June 1, 2007 —
OSGi might not roll off the tongue, but in a little more than eight years of life it has become a quiet contender for the title of most important technology of the decade. Anyone who uses Eclipse uses OSGi technology, since it provides the component model for the framework. OSGi began in 1999 as the Open Services Gateway initiative, but the OSGi Alliance now describes its mission as the creation of a market for “universal middleware.” In fact, a Java-based ecosystem has grown up around OSGi, thanks to the alliance’s efforts.
BJ Hargrave, senior technical staff member at IBM and CTO of the OSGi Alliance, outlined the technology’s role. “It’s an enhancement to Java,” he explained, “that deals with some issues that Java itself doesn’t handle. Those are things like modularity, versioning, and basically, providing a structured class loader environment for people to deploy their applications into.”
Although OSGi originally began its life as JSR 8, a dynamic component model aimed at service gateways, it turned out that the principles were applicable far beyond the original vision, and what was once thought of as a nifty tool for developing networked embedded systems is now a powerful part of development for desktop and enterprise applications.
Hargrave pointed to OSGi’s roots in the embedded device segment as an advantage for enterprise developers tired of bloated, do-everything frameworks, saying, “Because of that heritage, it’s lean and mean.”
But what is it, really? Essentially, the OSGi Service Platform is a virtualized SOA that resides in the memory of networked systems. The OSGi architecture rests on five core capabilities. The first is a management facility for the application and component life cycle. Then comes a secure execution facility based on standard Java code protection features, with additional OSGi-specific security added.
Third, the OSGi Service Platform was specifically designed for unattended operation, so remote management capabilities were essential; CIM (Common Information Model) and SNMP are two of the management protocols that can be used with the OSGi platform.
Another goal of the OSGi component model was to provide for the use of commercial, off-the-shelf software; among the various OSGi Alliance members, the organization claims to have implemented every common protocol as an OSGi bundle.
The final capability of simplified deployment is possible because the OSGi Service Platform smoothes over the underlying platform differences; the composition of an application or service can be changed dynamically.
Hargrave explained that OSGi’s approach solves a number of issues with application support. “People deploy Java code all the time, and it’s often very awkward to deal with it, because of packaging and versioning issues. Another strength of OSGi is that it lets me deploy versions of the same package into the same VM.” Enterprise software vendors see the value of that capability, because it gives them more control over the upgrade path, he added.