Wednesday, March 04, 2009

Java SCA 2.0-M1 release post at InfoQ


The Apache Tuscany team announced the release of 2.0 M1 of the Java Service Component Architecture (SCA) project. SCA defines a technology neutral component and assembly model for business application developers to focus on implementing the business logic and composing them into business solutions without worrying about the technology concerns. The latest version of SCA is being standardized at OASIS as part of Open Composite Service Architecture(Open CSA).

Labels: ,

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.