This is a very timely discussion indeed…  I had a recent discussion with 
several others in the jclouds community about how interesting it would be to 
rework Cloudstack on an osgi component model.  So it seems this is not just a 
fantasy?  ;-)  I would love to help with this effort so I will happily 
participate in the discussion.

Addressing some of your specific requests inline below…

--  
Chris Custine


On Tuesday, May 29, 2012 at 10:29 PM, Alex Huang wrote:

> CloudStack is built as a product with modularity enforced by interfaces. It 
> had its own component management via ComponentLocator. While that framework 
> made it easy for a small group of developers to work together, it has 
> outlived its usefulness. Now that we are expecting more developers to join 
> Apache CloudStack, we're looking for the next component framework to scale 
> code development. This framework needs to manage the following:
> - life cycles of the components
> - enforce boundaries between components
> - easily allow components to be upgraded/downgraded
> - database upgrades for the component
>  
> The most successful of such an application is Eclipse, which uses framework 
> defined by OSGi. We're planning to use that for our component framework.  
>  
> I like to gather opinions about
>  
> 1. Whether to use OSGi or there should be other frameworks to consider?
Personally, I would absolutely love to see osgi explored.  We have been using 
osgi with great success for ServiceMix for several years and have learned 
volumes about the ins and outs.  For a controlled server environment like 
Cloudstack, I think it would be ideal.  There are some learning curves, and 
some extra work involved, but the rewards are plenty.
  
> 2. If OSGi, whether to use Equinox or Apache Felix?
>  
>  

I am biased having been involved with Felix and Karaf for many years, but I 
would encourage you to look at Karaf and Felix as a base for the container 
(eplained more below).  You will get assistance from within the Apache 
community by way of Karaf, Felix, and several other projects that also use 
these frameworks (Geronimo, Camel, Sling, probably many others now) and those 
projects will mutually benefit from input and contributions via Cloudstack.
  
> 3. The tool to help integrate the OSGi framework into tomcat (Sling?)
>  
>  

I recommend considering an inversion of this and instead look at hosting your 
web server inside the osgi container (or something along these lines).  In this 
way, agents and servers could be modularized similarly.  You can certainly use 
an osgi framework to provide modularity embedded in a standalone java app or 
Tomcat, but I think you will find a lot of rewards in bootstrapping your jvm 
with osgi as a container (see Karaf, ServiceMix et al).
  
> 4. Anything we can use to upgrade/downgrade database versions?
>  
>  

Not exactly sure what you are asking here, but if you mean DB migration, I 
can;t think of anything osgi related that applies here so I think you will have 
to roll your own solution.
  
>  
> Please let me know your feedbacks.
>  
> --Alex  

Reply via email to