Update 17 Nov 07
- Added Newton Project
- Added Osxa Project
As InfoQ reported this summer, there is an increasing interest in OSGi and its related projects. I have created a table summarizing the status of OSGi in the field of Open Source community. Starting from available open source container, I searched about projects exploiting OSGi and their level of adoption of this technology
There are several levels for OSGi adoption. At the minimum level a project’s team can package its artifacts as OSGi bundles with the goal of deploying them across an OSGi compatible container. At the maximum level a project’s team can strategically adopt OSGi as the component architecture using programming model and services offered by the platform.
A project starting from scratch could exploit OSGi at its maximum level while an existing project could start adopting its features incrementally. In both cases benefits are evident: dependency tracking between components, version tracking, standard deployment format and many more. If your code is monolithic and bad modularized you have to fight against a lot of large refactoring before OSGi-enabling it.
OSGi standard is quite aged (first version was release on 1999) but it seems that only in the last months it is becoming a consolidated platform to build systems. As you can see from the following table several projects have adopted a whole OSGi architecture while many other successfully projects are starting experimenting and/or discussing about it.
I divided table in four categories:
- OSGi open source containers
- Projects exploiting an OSGi-based Architecture
- Projects supporting OSGi deployment
- Projects experimenting OSGi
Having surveyed several projects, it is possible I made some errors. So feel free to signal any incoherence in my classification, any error or any extension that I have forgotten
OSGi open source containers
| Project | Description |
| Eclipse Equinox | Eclipse Equinox is the reference implementation of OSGi R4 specification. It is also the implementation that lies beneath the Eclipse microkernel. |
| Knopflerfish Open source | Knopflerfish is an implementation of OSGi R4 maintained and sponsored by Makewave (ex Gatespace Telematics) which has several developers assigned to develop and maintain it. |
| Apache Felix | Apache Felix is an implementation of OSGi R4 made by the Apache Software Foundation. Actually this is an ASF incubator project. Its initial codebase was provided by the Oscar OSGi implementation by ObjectWeb |
| OSXA Osgi | Osxa is a service platform inspired by OSGi specification. At the moment it is not R4 Compliant and - intentionally - it does not implement the full specificationOsxa has been used in production environment since Q4/2005 in a major ecommerce application |
Projects exploiting an OSGi-based Architecture
| Project | Description |
| Eclipse Consortium | Eclipse consortium has created a lot of successful projects. Each of these projects now runs on top of an OSGi container. This is a direct validation proof of the maturity of OSGi component model.Some of these projects based on OSGi are: various flavors of Eclipse IDE, Eclipse RCP for building rich client applications, Embedded and device development tools and all applications based on RCP.You can easily browse the Eclipse foundation website to find how many projects have been spreaded. (You can also add to this list commercial products sold by IBM such as ex-Rational development tools which are all based on the Eclipse microkernel) |
| EasyBeans 3 EBJ Container | This is the first EJB 3.0 Container implementation completely available as standard OSGi bundles.EasyBeans/OSGi requires an OSGi R4 container to work and it has been tested on the Felix and Equinox platforms. |
| Nuxeo Runtime | Nuxeo 5 is an innovative, standards-based, open source framework for ECM (Enterprise Content Management) applications.Nuxeo Runtime is the underlie component model for Nuxeo and it is based on OSGi. Nuxeo Runtime also offers a flexible extension/plugin system for any Java / Java EE application. |
| Newton | Newton is a distributed component framework in which the components can be simple POJOs or wrappers around components based on other modelsNewton describes distributed systems using the emerging SCA standard and it provides a highly dynamic SCA implementation. It makes use of OSGi for wiring up composites within a single JVM and Jini technology for tracking and wiring up dependencies between composites in different JVMs. |
| JPOX | JPOX is a free and fully compliant implementation of the JDO 1.0 and 2.0 specifications, providing transparent persistence of Java objects. In addition JPOX is extensible utilizing the OSGi standard plugin mechanism and providing many extension points where you can enhance your persistence capabilities even further |
| SIP Communicator | SIP Communicator is an application that allows you to do audio/video conversations over the Internet through the SIP protocol, as well as chat with your friends using some of the most popular instant messaging protocols such as SIP/SIMPLE, Jabber, AIM/ICQ, MSN, Yahoo, IRC and others. SIP Communicator 1.0 and later, are all based on the OSGI architecture and using the Apache Felix implementation |
| Touchbase | Touchbase is an application framework designed to provide the building blocks necessary for creating modern communications and productivity tools.Built on the OSGi microkernel specification, touchbase is a “plug-n-play” architecture for application development, which also alleviates the need for you to build many of your own service components. |
Projects supporting OSGi deployment
| Project | Description |
| Eclipse Orbit | This is an interesting project whose goal is to provide a repository of OSGi bundled versions of third party libraries that are approved for use in one or more Eclipse projects.At the moment ORBit repository contains following bundles |
| Spring OSGi Integration | Goal of this project is to enable construction of Spring applications that run in an OSGi framework.Applications written in this way provide better separation of modules, the ability to dynamically add, remove, and update modules in a running system, the ability to deploy multiple versions of a module simultaneously (and have clients automatically bind to the appropriate one), and a dynamic service model. |
| Apache Derby | Apache Derby is an embedded relational database management system. Derby component can be deployed on an OSGi environment.In this case project’s team built an OSGi-bundled version of the component. |
| Apache Muse | The Apache Muse Project is a Java-based implementation of the WS-ResourceFramework (WSRF), WS-BaseNotification (WSN), and WS-DistributedManagement (WSDM) specifications.Applications built with Muse can be deployed in both Apache Axis2 and OSGi environments |
| Felix Repository of OSGi Bundles | There was a discussion on OSGi related mailing lists about the creation of a repository of OSGi version of consolidated and well-knows used opensource libraries. There is no a clear idea on how to proceed in this direction. Apache Felix incubator project started investigating in the creation of a repository of Apache Commons libraries |
Projects experimenting OSGi
| Project | Description |
| Jonas V5 Application Server | There is a proposal/plan for release 5 on ObjectWeb Wiki that aims to develop an OSGi based Version of the Jonas Application Server |
| Apache Cocoon | Cocoon Team is experimenting about OSGi adoption. More details can be found at the following wiki page |
| Apache Directory Server | Goal of the project is the construction of an enterprise directory server platform (and its components) where other Internet services snap in to store their data within the directory so they may be managed using LDAP. The ApacheDS is scheduled to offer OSGi capability in the 1.1 release |
| Apache Tuscany | The aim of the Apache Tuscany project is to create, as a community, a robust infrastructure that simplifies the development of SOA-based systems. Actually there is under analysis an initial implementation of an OSGi binding for exposing SCA services as OSGi services. |
| Apache Geronimo | Apache Geronimo is a J2EE Server from the Apache Software Foundation. From a plan found on Wiki an OSGi packaging of Geronimo is between priorities of 1.2 release |






Post a Comment