Support has been growing for the OSGi framework, a module system for Java that many hope will lead to more hot-pluggable application runtimes. Eclipse is currently working on an open source SOA platform built on top of Equinox, its own implementation of OSGi. Vendors like RedHat JBoss, Oracle and TIBCO have been working the framework into their products in recent years. But where is OSGi headed in the enterprise?
Not long ago I had a chance to speak with Peter Kriens of the OSGi Alliance, who has been working on the OSGi Enterprise Specification. He said the theme of the enterprise spec is to bring OSGi in line with Java EE specifications, specifically JTA, JPA, JMX, JNDI and the Web container.
Generally speaking, OSGi is in the early adopter phase at the enterprise level. Kriens said OSGi solves problems an enterprise might run into when applications get very large, and most enterprises probably aren’t quite to that point yet. He said there is a solid foundation for working with Java EE, but the ease of use still needs a bit of work.
While it may be a while before OSGi is ready for the enterprise, vendors have been steadily embracing it.
“All major Java EE application servers have used OSGi as their core platform,” sad Kriens, “WebSphere, WebLogic, SAP, JBoss, Jonas and so on.”
OSGi was designed to create applications out of components that were not necessarily designed to work together. The original model was a residential gateway that would run code for many different service providers. Though this model seems to exist in many application models, Kriens said, OSGi adds the unique aspect that these components can actually discover each other and collaborate. This is where modularity becomes important, he said.
“The OSGi service model significantly simplifies the design of large systems,” Kriens said. “The size of today’s applications has made it clear that the existing model of the classpath does not scale to today’s needs; there are just too many things that can go wrong without getting any warning until it is too late.”