Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Using OSGi as an Architectural Asset

Using OSGi as an Architectural Asset

Piero Campanelli has written a blog post on the benefits of using OSGi as an architectural asset to promote component oriented software development in organizations. Recent InfoQ coverage has talked about using OSGi with Spring and OSGi as a base for the next generation of application servers.

Among the benefits he details are:

  • True Component Development - While simple in concept, componentized software can be difficult in practice. The structure of OSGi addresses issues such as dependency tracking, version tracking, and service binding.
  • Secure Development Across Teams - The OSGi microkernel style inforces rules to keep components and extensions isolated and controlled.
  • Standard Management of Company Projects - If all projects are broken down into OSGi components they are easily reused. The example of the the Eclipse repository is given.
  • Version Tracking - OSGi provides versioning support to address the question of Can I integrate with this library? Does it conflict with this version of another library?
  • Architect Designer Assistance - The rules in OSGi allow architects to easily determine if build dependencies are broken without having to run the entire build.

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Will OSGi help me?

    by Markus Harnvi,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Our software is a Java web application. Administrators can upload XML files containing descriptions of user interfaces and logic. The XML describes something like small applications executed in a runtime environment that is the web application.

    When the XML files get executed (by a user selecting a certain ?sub application?) the runtime will instantiate the needed Java objects and load different kinds of templates and resources. They will mostly use code from the core runtime, but sometimes an XML file calls for custom code, that needs to be provided separately. Ideally the administrators should be able to supply additional jar files containing logic and resources, without the need to restart the web application.

    We let users outside of our organization develop extension and reference those from their XML files. Sometimes extensions has dependencies on third party libraries. We sometimes end up with a situation where two extensions require different versions of a dependecy. ?Jar hell?.

    An analogy would be a set of Excel workbooks requiring different DLL:s.

    Will OSGi apply to our situation? Will we be able to add new classes and resources to a running application? Will we be able to handle conflicting dependencies?

  • Re: Will OSGi help me?

    by Olaf Bergner,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Regarding your fears of being trapped in jar hell: yes, OSGi can definitely help you. Being able to deploy different versions of the same jar simultaneously is exactly one of the strongholds of OSGi.

    HTH and cheers,


Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p