You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@ace.apache.org by Mickael Marrache <mi...@gmail.com> on 2012/07/24 13:50:20 UTC

Licensing model

Hi,

Company A wants to sell an application server to companies B and C. The
application server consists of multiple bundles. For each company, many
application servers may be installed on different nodes. So, on each node,
I think there would be one Apache Felix instance and the bundles that
compose the application server installed on it.

But, for each application server installation, some bundles are provided
following a license. For example, company B may have bought a license to
use a certain bundle of the application server, that provides a particular
service. Company C may have bought a more expensive license, therefore
using the same bundle as B plus another bundle that provides another
service.

So, I need a way to differentiate the nodes (i.e. a node belongs to a
particular customer). I also need a way to control which bundles are
installed/used on a certain node following certain license information.

Is it possible using Apache Ace? If yes, is it enough mature to be used in
production?

Thanks,
Mickael

Re: Licensing model

Posted by Marcel Offermans <ma...@luminis.nl>.
Hello Mickael,

Sorry for not getting back to you sooner.

On Jul 24, 2012, at 13:50 , Mickael Marrache wrote:

> Company A wants to sell an application server to companies B and C. The
> application server consists of multiple bundles. For each company, many
> application servers may be installed on different nodes. So, on each node,
> I think there would be one Apache Felix instance and the bundles that
> compose the application server installed on it.

Yes. ACE can manage an OSGi framework if you install the "management agent" bundle in this framework (this is called a "target" in ACE). You can either do that with a startup script, or we have a version of Felix that "embeds" this management agent.

> But, for each application server installation, some bundles are provided
> following a license. For example, company B may have bought a license to
> use a certain bundle of the application server, that provides a particular
> service. Company C may have bought a more expensive license, therefore
> using the same bundle as B plus another bundle that provides another
> service.

Using the features and distributions of ACE, you can group certain bundles and configuration files together to form such licenses. You can then associate a distribution (or more of them) with a target (= an OSGi framework with management agent).

So for this example, you might have one "base" distribution with the plain application server, and some "extra" distributions with the licensed add-ons.

> So, I need a way to differentiate the nodes (i.e. a node belongs to a
> particular customer). I also need a way to control which bundles are
> installed/used on a certain node following certain license information.

Targets (nodes) can be tagged with custom tags. It would therefore be easy to add a "customer=Foo" to a target to associate it with a customer. You can then create a custom "association" between a distribution and "any target that has the customer=Foo tag".

> Is it possible using Apache Ace? If yes, is it enough mature to be used in
> production?

We are using it in production in the Amazon Cloud. We are using trunk now, and we are working hard on getting a "1.0" release done. There definitely are still some rough edges though.

Greetings, Marcel