InfoQ

News

IBM, BEA and JBoss adopting OSGi

Posted by Charles Humble on Feb 19, 2008 09:00 AM

Community
Java
Topics
Application Servers
Tags
OSGi

Founded in 1999 by a number of vendors including Ericsson, IBM, Oracle and Sun Microsystems the OSGi Alliance manages and develops the OSGi specification. That specification is a component model that defines component packaging, life-cycle management and service registration for Java environments. Applications or components (coming in the form of bundles for deployment) can be remotely installed, started, stopped, updated and uninstalled without requiring a reboot. Life cycle management is done via APIs which allow for remote downloading of management policies. Initially focused on the mobile and embedded space, OSGi has been used in large desktop applications, most notably the Eclipse IDE, and a recently formed OSGi Enterprise Expert Group is looking to extend the OSGi specification to support the needs of Enterprise Java vendors and developers.

OSGi is already seeing adoption in the Java EE space as vendors look for ways to make their application server products more modular and flexible. IBM's WebSphere 6.1, for example, has been completely re-packaged as a set of OSGi bundles. The WebSphere application runtime classes are now loaded by a network of several class loaders since each OSGi bundle is loaded separately by its own class loader. These are connected to the extensions class loader (and to the rest of the class hierarchy) via an OSGi gateway class loader.

The Open Source Java EE application server JOnAS has undergone a similar OSGi based refactoring to WebSphere for its version 5 release. JOnAS itself is now implemented as a set of OSGi bundles, with technical services (EJB, Mail, etc.) implemented as OSGi services. The new server architecture allows new services to be added, and JOnAS provided services can also be replaced by alternative service implementations. Services can be started, stopped and re-configured at runtime.

Both BEA and JBoss look to be following a similar path. Back in 2006 BEA announced plans to revamp its middleware products around a new microService Architecture (mSA). The plan involves rebuilding the various products of WebLogic Server and BEA's other portal and middleware products using the OSGi standard. Two of BEA's key products - WebLogic Event Server and WebLogic Real Time Server are already using mSA, and the forthcoming WebLogic 10.3 release will also use the architecture. JBoss' R&D are working on an OSGi based class loader initially for the JBoss runtime (services) Ales Justin notes in an interview with Mark Newton. JBoss are also re-engineering their existing Microcontainer to integrate OSGi and have three employees as members of the OSGi Enterprise Expert Group.

Modularisation has clearly become a central theme for many JEE application server vendors even where, as in the case of the Sun backed GlassFish server, OSGi is not being used. Whilst these changes are largely invisible to developers they do signify a marked shift in the way in which vendors are thinking about their Java EE products. Enterprise Java developers and architects are likely to see some impact from OSGi before too long too since, Justin notes, the OSGi Enterprise Group is looking at OSGi support for key components of the Java EE specification including EJB, JSP and JSF.

Microcontainer by Javid Jamae Posted Feb 19, 2008 10:21 AM
Re: Microcontainer by Ryan Slobojan Posted Feb 19, 2008 11:47 AM
Has Jboss already changed the kernel architecture into OSGi in AS5? by guo xuexu Posted Feb 20, 2008 4:01 AM
Re: Has Jboss already changed the kernel architecture into OSGi in AS5? by Ales Justin Posted Mar 2, 2008 5:38 AM
  1. Back to top

    Microcontainer

    Feb 19, 2008 10:21 AM by Javid Jamae

    Boss are also re-engineering their existing Microcomputer to integrate OSGi and have three employees as members of the OSGi Enterprise Expert Group.
    I think that should be "Microcontainer" not "Microcomputer".

  2. Back to top

    Re: Microcontainer

    Feb 19, 2008 11:47 AM by Ryan Slobojan

    Hi Javid, Thank you very much - I've fixed that typo. Ryan Slobojan

  3. Ales said:"This effort is made a lot easier thanks to the fact that JBoss Microcontainer (MC) already has all of the OSGi core features". does that mean jboss has changed MC architecture?

  4. If you mean from MicroKernel to Microcontainer, then yes. :-) Microcontainer is a complete rewrite of our kernel. But we still support the legacy stuff (services as MBeans), as one of the component models in new MC. If you mean if we had to change anything to adopt the OSGi in MC, then the answer is no. :-) OK, there was a small change in how the new deployers interacted with MC, but all the rest, the core, has been left intact. Giving us nice confirmation that our architectural decisions were good.

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.