OSGi – the next Java Middleware technology

I think the Java developers (especially server side developers) have started looking at OSGi as the next-generation Java Middleware technology. This may not come as a surprise because of the adoption of OSGi by the JEE server vendors and Java (server, desktop and embedded Java) community in general.

OSGi technology:

  1. Enforces better componentization (separation of concerns) than most existing techniques in JEE (Using one classloader per bundle).
  2. Provides versioning of components and the ability to deploy multiple versions of the same components in the same VM, unlike JEE.
  3. Unless you use one ”component” for your entire application/product, OSGi enforces SOA for components using dynamic services (or “Extensions”/”Extension points” for those wanting to use the old Eclipse standard).
  4. Enforces loose coupling of components (using a publish/find/bind service model).
  5. Forces the resolution of application dependency problems (requiring explicit declaration of dependencies between components).
  6. OSGi ”fixes” Application server hot-deployment functionality (ability to deploy/undeploy software components without requiring the Server/JVM).
  7. There are multiple opensource OSGi implementations available:
  8. OSGi implementations are quite stable with many applications/servers using or running on them.
  9. The OSGi implementations generally have a small footprint (With OSGi Jars that are less than 500 kb).
  10. OSGi has proven itself in the embedded and desktop application world too. The open source Eclipse IDE has been based on OSGi since 2004.

Technorati Tags: , , ,

About admin

I am Shashi Velur. I live in Austin, TX with my wife and daughter. I consider myself an experienced Enterprise Software Developer/Architect. The views expressed are mine alone and do not necessarily represent the views of my current and any of my previous employers.
This entry was posted in Java, OSGi and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>