SANTA CLARA, Calif.—These are big times for the technology known as the Open Services Gateway Initiative framework, as the Eclipse Foundation has adopted it and several other large enterprise vendors and users have followed suit.
The story of OSGi is a saga reminiscent of so many in the computer industry. Indeed, the OSGi technology is marked by periods of innovation, cool usage and mainstream adoption, but also by conflict, politics, competing corporate agendas and controversy. Theres even a weapons of mass destruction angle.
OSGi was established in 1999 to specify an industry standards Java application platform that would allow multiple applications to securely run in a single JVM (Java Virtual Machine). And the programs could share resources such as data, functionality and threads.
Moreover, the OSGi Service Platform provides technology that allows applications to be constructed from small, reusable and collaborative components.
Application areas for OSGi range from use as a service platform on embedded devices to plug-in mechanisms for larger programs. The initial goal of OSGi was the embedded market, but it has evolved from there.
“We think the industry momentum around OSGi is really starting to take off, and in 2007 it will be a key part of the technology stack,” said Mike Milinkovich, executive director of the Eclipse Foundation, which is holding its annual EclipseCon conference here March 5-8. “Its the best application component model that has a chance of competing with .Net.”
The Eclipse plug-in model is based on OSGi. And OSGi will be heavily represented at EclipseCon this year, as the OSGi Developer Conference 2007 is taking place concurrent with EclipseCon.
“OSGi is mature, its been around since 1999 in the embedded world, and is widely adopted,” said Richard Nicholson, CEO of Paremus, a London-based maker of software for SOAs (service-oriented architectures). “In the last 18 months there has been significant interest, support and commitment to OSGi in the enterprise software world with BEA [SOA360], IBM [WebSphere, Lotus], Oracle [Fusion], Red Hat [JBoss] and Spring [Interface21] all using or committing to using it.”
For Paremus, OSGi is one of the key standard initiatives the companys products use, the other being SCA (Service Component Architecture), Nicholson said. “OSGi provides us with a lightweight, dynamic, component life cycle allowing us to provide true pluggable vendor-independent component or service reuse, and to deliver on the next-generation application server SOA promise,” Nicholson said.
The Paremus OSGi-based solution, Infiniflow, features individual services that are defined as OSGi bundles.
Paremus, BEA Systems, IBM, Oracle and Siemens are all talking about OSGi at the show. Moreover, Paremus will present a talk on Newton, its open-source project based on OSGi.
In January, Paremus teamed with Gatespace Telematics of Gothenberg, Sweden, the provider of Knoplerfish, an open-source OSGi service platform, to launch the OSGi4Enterprise initiative. This initiative offers support for Eclipse Equinox, Apache Felix and Knoplerfish—three open-source-based OSGi implementations.
“OSGi directly addresses the core issue of complexity in the enterprise by allowing composite applications to be dynamically assembled in a coherent fashion, whilst also enabling effective code reuse,” Nicholson said.
Eclipses Milinkovich is not the only one who sees 2007 as a big year for OSGi, particularly in the enterprise. Rod Johnson, founder of the Spring Framework and CEO of Interface21, in Kent, U.K., said, “Spring OSGi is going to be very big in 2007.”
In an interview with eWEEK, Johnson said, “OSGi provides a sophisticated solution for modularization, hot deployment and replace, and versioning. This has always been lacking in J2EE [Java 2 Enterprise Edition]. There is much demand for this functionality in a server-side environment, and in the last few months theres been a groundswell of interest in OSGi in the enterprise.”
In addition, Johnson said, “We believe that Spring and OSGi [are] a match made in heaven. Spring is the most capable component model available; OSGi is the most capable solution for managing coarse-grained modules, but has traditionally been hard to use. Put the two together and you get the simplicity, POJO [plain old Java objects] approach, enterprise focus and huge mindshare of Spring combined with the dynamic power of OSGi.”
Interface21 founded the Spring OSGi project to achieve this integration, and the company is aiming for a release around the time of the JavaOne conference in May, according to Johnson. “We are working closely with the OSGi community and partners including BEA, Oracle and IBM,” he said. “Interface21 has joined the OSGi Alliance, and we are working to define the Spring/OSGi bindings as part of OSGi Release 5.”
“While OSGi is growing in importance, it is not yet an unavoidable specification, but it is slowly getting there,” said Sacha Labourey, chief technology officer at the JBoss division of Red Hat. “While Eclipse is making a substantive use of OSGi as its kernel, the IDE space is very much to the server side; consequently, judging the success of OSGi on the server by looking at the success of Eclipse is not adequate.”
JBoss has been working on its next-generation MC (micro-container) for quite some time now, and it will be first used in JBoss Application Server 5.0, Labourey said.
That release is a POJO-based that provides a feature set that goes beyond the OSGi features, he said. “On top of that MC, we then map various personalities, such as JMX [Java Management Extensions] and … OSGi—which is currently in development. The reason for that architecture is that requirements stay, but standards come and go; hence, we need to make sure the foundation on which we base our platforms remain specification-agnostic to better morph into other personalities, whenever needed. At this point, we support of OSGi mostly because we want to have an easy and portable way for our users and ISVs to provide extensions to JBoss.”
Moreover, Labourey said, “we would be more than happy to standardize the features our micro-container has that OSGi doesnt, including at the OSGi Alliance,” of which JBoss is a member.
BEAs mSA (microService Architecture) Backplane is an OSGi-based infrastructure that consists of about 100 different OSGi bundles.
“The OSGi specification is an important standard for IBM, since it has been sorely missing from Java,” said BJ Hargrave, a senior technical staff member at IBM and an OSGi fellow and chief technology officer of the OSGI Alliance. “Were already seeing a huge demand in the community for the OSGi capabilities and are leveraging them in our own products. This is mature, robust and tested technology. With the adoption of the OSGi technology by Eclipse, IBM is able to take advantage of the OSGi capabilities in many of our products that are based upon Eclipse such as Lotus Expeditor, Lotus Sametime, WebSphere Application Server, Tivoli Provisioning Manager and the entire Rational Software Delivery Platform.”
“OSGi is a dynamic system that can be updated on the fly,” said Daniel Schellhoss, executive vice president at ProSyst Software, of Cologne, Germany. “New services, applications and even the framework components can be updated or added to while the system is running. All of the components can be dynamically loaded from a variety of sources, including Web pages, content servers or insertable media. This allows dynamic injection of new services behind the scenes while the system continues to function.
“Being a company that is offering both commercial OSGi framework implementations as well as open-source products and a complete set of development services, support and training on top of it, OSGi is what we do for living,” Schellhoss added. “We help our customers, which are device manufacturers, service providers or enterprise software companies, to make their products a success. There are products out there in the market from Philips, Motorola, Siemens, among many others that run the ProSyst OSGi framework.”
Eric Newcomer, CTO of IONA Technologies, of Waltham, Mass., said his company is using OSGi as part of the Eclipse SOA Tools Platform Project.
“We have two levels of interest: one thats consistent with the most popular use of OSGi, which is for deployment,” Newcomer said. “Eclipse plug-ins are delivered using OSGi bundles, and this has proven the usefulness of OSGi in large software projects.”
However, “the other part of OSGi were interested in is not as well-adopted, and that is its capability to become a run-time container, or execution environment.”
In particular, said Newcomer, “we feel OSGi has the potential to offer an alternative to JEE [Java Enterprise Edition], especially when customers do not need all of the features and functions of a JEE application server. Right now JEE is kind of like a big box of rocks—you get everything inside whether you need it or not, and you have to sort through and pick out the stuff you really need. With OSGi you would have the capability to select and configure a more customized run-time for your specific purpose. And in the specific case of SOA, I think its been pretty clearly established by now that JEE is overkill.”
So a large part of IONAs interest in OSGi “is that it provides a kind of configurable microkernel architecture that we think has a lot of potential to become a cheaper, better, less complex container for SOA infrastructure than JEE,” Newcomer said.
Jeff McAffer, a senior technical staff member of IBM Rational and head of the Eclipse Equinox project, which implements OSGI, said, “Three years ago Eclipse had a proprietary run-time. It was somewhat like the OSGi design but static and had a coarser-grained dependency mechanism. At that time the community was pushing Eclipse to be a rich-client platform and that required changes at the run-time level. In addition, we wanted a run-time that had a community and standards around it rather than trying to sell yet another component model. We also wanted a run-time that was more dynamic. After evaluating various run-times of the day, we adopted OSGi.”
Indeed, not only has Eclipse benefited from OSGi, but the Eclipse adoption of the technology put OSGi on the map, McAffer said.
Today OSGi is central to Eclipse, he said. “It is the base run-time for Eclipse. Every time you see someone running Eclipse you are seeing someone running Equinox, our OSGi framework implementation,” he said. “That means OSGi is on millions of developer desktops and in millions more RCP applications. IBM has adopted Equinox as the base run-time for WebSphere Application Server 6.1. BEA is reportedly taking a similar path.”
McAffer said he is particularly interested in new work just starting in the area of provisioning. The Eclipse Update Manager has served well as the mainstay for provisioning Eclipse-based systems, he said.
“However, the world has evolved around Update Manager with the move to OSGi, Eclipse as an RCP, server-side Eclipse, dynamic behaviors, etc.,” he said. “It is time for a review and rework. To facilitate that effort we have started an Equinox incubator work area for provisioning and have been discussing participation with various teams and companies.”
The work area has been seeded with some initial implementations of OSGi deployment-related specifications as well as some prototype code the Equinox team developed, McAffer said. “We are seeking to push beyond the current OSGi and Update Manager approaches and create a provisioning framework for Eclipse and OSGi-based systems,” he said. “This framework would then be used to address the wildly different provisioning scenarios that seem to naturally occur in enterprises today. Coincidentally OSGi has started an Enterprise Expert Group, and we look forward to working there to create and implement applicable standards.”
The U.S. Army, meanwhile, is using OSGi as the run-time on which its Cyrano software for helping to find weapons of mass destruction is based. And Adobe Systems has used OSGi as the underlying technology in its Version Cue embedded client/server tool set.
However, despite the widespread adoption of OSGi, there is controversy. Sun Microsystems was a founding member of the OSGi Alliance in 1999, even granting the organization the power to set Java standards—a capability typically held by the JCP (Java Community Process). Yet, now Sun has instituted a JSR (Java Specification Request) known as JSR 277 that is aimed at creating a new component model for Java 7. JSR 277 competes with JSR 291, the OSGi specification.
In a blog post from October, Peter Kriens of the OSGi Alliance wrote: “JSR 277 takes a simplistic view of the world, ignoring many real life problems: consistency, optionality, split packages, etc.” Moreover, he said, “I do not doubt that this specification will end up in Java 7, but it will further fragment the Java world for no technical reason. Not only is this specification impossible to implement on J2ME [Java 2 Micro Edition] any time soon, it will also leave the many OSGi adopters out in the cold.”
Paremus Nicholson said that OSGi, currently going through JSR 291, “already exists, is mature and works well. So splitting the standard by introducing a whole new approach in JSR 277 wont, in our opinion, help anybody and probably wont succeed given the other big JVM producers—IBM, BEA and soon Apache—are active supporters of OSGi and the OSGi Alliances Enterprise Expert Group.”
And OSGi can also run on a wide range of Java environments, including the stripped-down JVMs in mobile phones and devices and earlier JVM versions, Nicholson said.
JSR 277 will only work on future JVM versions, “so were talking some way off, maybe three to five years, for adoption, by which time OSGi will be everywhere,” Nicholson said. “On the other hand, JSR 277 could help if it focuses on adding JVM-level support for OSGi and by factoring the JVM libraries into OSGi bundles—most of them currently ship in a huge monolithic jar—like Harmony, Apaches JVM project.”
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.