SAP has recently joined the OSGi Alliance (http://www.osgi.org/) as a Full Member to contribute to the further development and adoption of OSGi, the Open Services Gateway Initiative. Frank Mittag, who is working at the office of the CTO, has joined the OSGi Alliance’s Board of Directors to represent SAP.
About OSGi and the OSGi Alliance
The OSGi Alliance is a non-profit organization comprised, besides SAP, of companies such as BEA, Deutsche Telekom, Oracle, Sony-Ericsson, IBM, Motorola, Nokia, Siemens and Sun.
OSGi lets developers build and connect components to form a system, providing what can be characterized as a highly dynamic, lean SOA implementation in a single Java VM.
Implementations of the OSGi standard are called OSGi framework. Some of the key features that such frameworks provide are:
Dynamic Component Model
OSGi applications are always component based; the components in OSGi are called bundles. The OSGi specification defines how components (both their classes and needed resources such as images or documentation) are packaged and how their dependencies are managed. These bundles may be installed, updated and removed at any point in time, allowing users to dynamically change the system at runtime.
The OSGi specification also includes means to register services with the framework and also get service implementations offered by other bundles. The services are defined by Java interfaces, no OSGi-specific restrictions apply.
Because of the highly dynamic nature of OSGi systems, the traditional event listener model, where every party interested in a particular event registers a listener with the event source, is not a good choice because both the event source and each of the listeners may go away or come at any time. To cope with this, OSGi defines an Event Admin Service which uses the publish/subscribe pattern. This means that event publishers can publish events to this service and the service takes care of notifying each subscriber that is interested in this event type, i.e. the publisher and the subscriber don’t directly talk to each other and therefore the dynamic nature of OSGi systems is not an issue.
There are several application models in use today: Applets, Midlets, and Symbian applications are examples. OSGi includes a more generic application model, which abstracts from the other models and allows applications to be managed regardless of their specific type.
OSGi defines all aspects of a bundle, including its lifecycle. OSGi frameworks provide well-defined ways to start, stop, install, update and remove bundles at any point in time. With this OSGi creates a highly dynamic environment for the bundles.
OSGi defines several runtime environments and allows specifying a required environment for each bundle. This environment defines exactly which classes and services are available for use. The framework therefore makes a guarantee to each and every bundle it starts that everything the bundle needs to run is available.
Both commercial and free implementations of the OSGi standard are available, for example by the Eclipse Foundation (http://www.eclipse.org/equinox), the Apache Software Foundation (http://felix.apache.org/), ProSyst (http://www.prosyst.de/) or Makewave (http://www.knopflerfish.org/). Their OSGi frameworks run on a wide variety of devices. Initially designed to be embedded into home gateways they today run on PDAs, on mobile phones, in cars as well as in J2EE application servers. Of course regular PCs can also run OSGi frameworks.
To cater to the needs of these diverse platforms, the OSGi Alliance has established Expert Groups for certain areas. Currently, there are four Expert Groups who are driving the development and advancement of the specification in their specific areas of expertise.
Core Platform Expert Group
The CPEG works on the core of OSGi, i.e. the basis for the work of all other expert groups. They provide the basic APIs that are needed on every platform.
Enterprise Expert Group
The EEG works on OSGi in large scale systems. This includes topics such as extensions to the OSGi service model to work in distributed environments, potentially including non-Java services, or bundle dependency resolution.
Mobile Expert Group
The MEG works on enhancing OSGi for mobile devices such as PDAs or mobile phones by creating new specifications and APIs that are needed on such devices. One example of such a specification is the Mobile Management Tree which extends the Device Management Tree with mobile-specific configuration options such as ring tones.
Vehicle Expert Group
The VEG works on tailoring and extending OSGi to meet vehicle-specific needs. Similar to the MEG, the VEG creates new specifications and APIs that are vehicle-specific and works with other expert groups to ensure that their specifications are in line with vehicle-specific requirements.
OSGi at SAP
If you are a SAP developer using Java you have already used OSGi, even though you may not know it. The popular IDE Eclipse, on which the NetWeaver Developer Studio is built, runs on an OSGi framework called Equinox (http://www.eclipse.org/equinox). Eclipse plugins are essentially OSGi bundles with some extensions.
As OSGi is naturally a kind of lightweight microkernel for Java based runtimes it could be used in all areas where such a runtime is needed. This includes server kernel, middleware, runtimes for laptops or embedded systems, and even mobile applications. Several groups have investigated this option, however there is still no product running on an OSGi runtime.
For a tutorial in how to develop your own bundles and use what OSGi has to offer, check out Neil Bartlett’s Blog (http://neilbartlett.name/blog/osgi-articles).
There is also an episode of Software Engineering Radio (http://www.se-radio.net/podcast/2007-12/episode-80-osgi-peter-kriens-and-bj-hargrave) on OSGi. For the episode the SE-Radio team interviewed Peter Kriens, the OSGi Alliance’s technical director and BJ Hargrave, the OSGI Alliance’s CTO. The web site for the podcast contains several useful links, e.g. to tutorials.
And of course the website of the OSGi Alliance (http://www.osgi.org/) is also a good place to look for more information.
EclipseCon und OSGi DevCon 2008
If you are an Eclipse fan you should also notice that the annual Eclipse Conference (EclipseCon) and OSGi developer conference (OSGi DevCon) take place at the same time and at the same location.
If you have any questions about OSGi in general or OSGi at SAP please contact me.