Thursday, August 23, 2012

OSGI to use or not to use

What are good reasons to move to an OSGI based infrastructure?
* It solves a real problem in your organization
* Your organization has the skills to support it
* Overall developer efficiency is either improved or not reduced compared to other gains
* Your application requires high availability which OSGI improves for some deployment cases
* Your infrastructure tends to support it

We have not done any prototyping with OSGI yet.  It has been on my "look into list" for a couple years now.  As I started looking into Apache ServiceMix I noted it probably is a good time to start researching more closely.

The number of books which discuss OSGI is increasing and the number of software products which either implement OSGI or work with it is increasing.  The alternative "module" system, project Jigsaw, sounds like it won't make it into Java 8 and may not cover some use cases (although I am not very knowledgeable on it).  If you have the money, maybe something like JRebel would be an alternative which helps with availability it seems.  Some recent new functionality in Apache Tomcat may improve availability as well but we have not tried it;  see the "Parallel deployment" Tomcat information here.

So far, our major need is the ability to minimize downtime especially for regular application updates which normally don't require DB changes.  Also, as we move more toward Web Services and messaging, I see a lot of potential for OSGI to help.  It should help enforce better structuring of code.  Although, if it is like many other things - what you get out is based on what you put in.  Some developers may not put the effort into using effectively.


No comments:

Post a Comment