I wanted to start a conversation regarding the long term architecture of Rave. I'm primarily interested in how Rave will ultimately be able to be deployed.
Currently, as you know, Rave is built and deployed as a series of three web apps, ROOT (mostly Shindig), portal (main rave features) and wookie (I'm not counting demogadgets). This model has it's advantages since all you have to do upgrade is replace a war file since it's all self contained. However, this model also has some drawbacks. In a perfect world it would be great if Rave could support multiple deployment models. My personal preference would be to see Rave be able to be deployed modularly in an OSGi container (Rave services advertised as OSGi services, etc). This would give a lot of freedom for interacting with Rave programmatically, for scaling, for incremental upgrades and supporting plug-n-play services (JPA vs JCR for example). In looking at the system it wouldn't be horribly difficult to convert it to deploy modularly into an OSGI container but I also realize there are going to be people who want a standard WAR distribution. I didn't have any brilliant ideas of how to structure things to support both as different build options but I wanted to raise the idea anyway and see if others had any thoughts. Do others see a need to have a more modular deployment model in their use of Rave? Have there been other discussions around this already? Thanks, Chris
