OSGi's target platform was originally mobile or embedded systems, but today OSGi is being used for enterprise applications. Is it right for you? Two main requirements for enterprise OSGi are distributed computing support and multilanguage compatibility. Although the OSGi specification is not bound to a specific programming language, Java is the preferred implementation choice. OSGi, however, isn't Sun Microsystems' preferred solution for Java modularity. Rather, Sun backs its own Java Specification Request (JSR) 277: Java Module System, which appears to significantly overlap OSGi. While there's no official statement to this effect from Sun, it appears the company is leaning in the direction of building overlapping technology rather than adopting and improving on OSGi. Sun voted against JSR 291, which is simply a reference to the OSGi core specification version R4.1, but the specification request still passed--an indication that there's significant momentum here.
While OSGi is growing in popularity, the buzz is still relatively quiet. But whether or not Sun changes its view, as OSGi begins to support basic enterprise IT requirements, we expect its popularity to grow. That's because OSGi fills an important void in enterprise software and offers to IT significant benefits that aren't available in other technologies. While mainstream adoption of OSGi may be a few years out, its momentum cannot be denied. There's much potential for the use of OSGi in the enterprise to build an ecosystem around runtimes, much the way its use in the Eclipse platform built an ecosystem around development tools.
TOTAL ECLIPSE: A HISTORY
In 2003, the Eclipse Foundation began searching for a way to better modularize its Eclipse open development platform. The Eclipse Foundation converged on OSGi and decided to use it as the run-time component model for its Eclipse 3.0 release. The Eclipse Foundation developed an implementation of the OSGi R4 core framework specification, code-named Equinox. When Eclipse 3.0 was released in June 2004, OSGi became the platform on which thousands of developers would launch software. Incidentally, an ecosystem around development tools was formed. The adoption of OSGi by Eclipse was a significant milestone--it placed OSGi on many software vendors' radar.
Today, OSGi has become the platform of choice for many software vendors. The majority of Java Enterprise Edition application servers support or plan to support the technology, for example. In addition, many open source initiatives have already begun to integrate OSGi into their server-side frameworks. This trend certainly will facilitate adoption of OSGi in the enterprise. For the first time, we might have one software component model that allows for the convergence of embedded, desktop, and enterprise software development. It's about time.
Erik Pieczkowski is an InformationWeek and NWC.com contributing editor and an enterprise architect with Synegen. His architecture experience ranges from the design and development of high-performing, message-driven systems to building and deploying scalable SOAs. Write to him at [email protected]