Tuesday, March 03, 2009

A Closer Look - OSGi Enablement for Tuscany 2.0

As mentioned in the recent Apache Tuscany SCA 2.0 M1 Announce, Tuscany is moving to support running in an OSGi enabled environment. What exactly does that mean and what are the benefits?

As Tuscany is implemented in the 1.x release, all dependencies are included in one monolithic runtime, a giant sea of classes, all loaded at startup time by a single Java Virtual Machine. There can be versioning problems, dependency clashes, and support problems in this environment (luckily developers take care of this for you.)

With the Tuscany 2.x releases, dependencies are loaded and enabled by the OSGi Dynamic Module System for Java. This unleashes the capability for managed runtimes that can include all or part of a dependency tree. Dependencies can be included and enabled as needed. Runtimes can have modules with different version numbers.

In summary, OSGi enablement:
* Provides modularity for Tuscany to formalize the SPI contracts and enforce the package dependencies across modules.
* Provides versioning and isolation so that Tuscany extensions can depend on different versions of the same library.
* Provides dynamic lifecycle for extensions, to install, uninstall, start, and stop a module.
* Enable Tuscany to work with OSGi environment such as JEE application servers, Eclipse RCP or Spring DM (see http://www.infoq.com/news/2008/11/osgi-in-the-enterprise)

With this OSGi enablement, Tuscany can run in the following environments:
* Java SE with embedded OSGi runtime such as Eclipse Equinox and Apache Felix.
* Inside Eclipse development environment.
* Maven Surefire plugin for testing.
* External OSGi runtime such as Eclipse or Felix Shell.
* Other environment such as JEE (Web Container, EJB container).

Read more about it on the Apache Tuscany site or stayed tuned to this blog.

0 Comments:

Post a Comment

<< Home