The effort to deliver a distributed Open Services Gateway Initiative solution got a boost this week when backers of the technology demonstrated their latest work at the OSGi Community Event.
Eric Newcomer, CTO at Iona Technologies, and David Bosschaert, a principal engineer at Iona, presented the “first ever” public demonstration of Distributed OSGi at the event held June 11-12 in Berlin.
Although OSGi started life in the embedded space, it has rapidly been adopted in the enterprise ever since it was chosen as the underlying platform for Eclipse. The OSGi framework specification forms the basis of the Eclipse Runtime. And there are about a thousand commercial products and open-source projects that use OSGi technology.
Meanwhile, embedded systems for automobiles, trains, home automation, factories, smart phones, airport kiosks and multimedia continue to gain in power. As they do, many application developers are turning to OSGi technology for its dynamic update capabilities and ability to successfully incorporate heterogeneous devices.
Yet, as this trend plays out it also increases demand for integration between this explosion of embedded computing applications and back-office systems, Newcomer told eWEEK in an interview. This is one big area in which OSGi for the enterprise is already starting to generate significant interest, and drives requirements for a standard for distributed OSGi, he said.
Today the OSGi standard describes how services communicate only within a single JVM (Java virtual machine). “To meet requirements for enterprise computing scenarios, the OSGi standard needs to include distributed computing capabilities,” Newcomer said. “The OSGi Enterprise Expert Group, of which I’m co-chair, has been developing requirements and designs for enterprise features for about 18 months. These will be input to the specification process for the next major release of OSGi.”
In a blog post following the Distributed OSGi demonstration in Berlin, Newcomer wrote: “The goal of distributed OSGi is to extend the OSGi framework for distributed computing capabilities by configuring an existing distributed computing software system (such as Web services, CORBA, or Eclipse ECF [Eclipse Communication Framework]) behind an OSGi service. The demo showed a Web services solution using Apache CXF as the distribution software, but the design should work with any distributed computing system.”
The Distributed OSGi effort also seeks to enable “a service running in one OSGi framework to invoke a service running in another, potentially remote, OSGi framework (meaning a framework in a JVM),” Newcomer wrote. As the current OSGi standard only defines how services talk to each other only within a single JVM, “extensions are needed to allow services to talk with each other across multiple JVMs-thus the requirements for distributed OSGi on which the design is based,” he said.
In addition, Newcomer said the Distributed OSGi group did not want to invent a new distributed computing system because so many already exist. However, “the design introduces some new OSGi properties to identify a service as remote and a discovery service through which a local service can find a remote service and obtain the metadata necessary to interact with that remote service,” Newcomer said in his blog.
“The design is intended to support any communication protocol and data format (with some constraints of course, having to do with the use of Java request/response interfaces as the service contract). Another goal of the design is to allow services in an OSGi framework to interact with services external to OSGi, both as client and server.”
Another very important part of the enterprise activity around OSGi is the standardization of the Spring mapping to OSGi, also called Spring Dynamic Modules, Newcomer said. SpringSource is leading this effort, while Iona is leading the Distributed OSGi effort, together with Siemens. Siemens has been leading the distributed discovery part of the design, he said. Also several of the enterprise computing requirements have produced design documents describing modifications and extensions to the OSGi core. These will also be part of the next major version, he said.
All of the Distributed OSGi designs are based on requirements produced by the EEG (Enterprise Expert Group) of the OSGi Alliance, and are discussed and progress through that committee and the CPEG (Core Platform Expert Group) committee, Newcomer said. Members include Iona, Siemens, SpringSource, IBM, Oracle/BEA, Red Hat, Sun Microsystems, ProSyst, Makewave, JWay, Tibco, aQute and invited experts Jan Rellermeyer from the University of Zurich and Richard Hall, who is the Apache Felix project lead.
“We hope to be able to publish the code to Apache and publish a draft of the design doc this summer, perhaps in August, after we have a chance to formally review the initial implementation with the EEG membership, and get their blessing (no doubt there will be some changes as well since this is just the start),” Newcomer said in his blog.