This post originated from an RSS feed registered with Java Buzz
by dion.
Original Post: Using AOP to manage multiple products from one base
Feed Title: techno.blog(Dion)
Feed URL: http://feeds.feedburner.com/dion
Feed Description: blogging about life the universe and everything tech
A group of people were talking at No Fluff Just Stuff, and Richard Monson-Haefel brought up using AOP to manage multiple products from one code base.
It can actually make a lot of sense. Imagine having a software product that has:
Express: A bunch of enterprise features are disabled
Standard: fully featured, but none of the hard core enterprise features
Enterprise: Enhanced enterprise features
Then there could be trail editions of the various products.
30 day aspect
To handle a trial period, an aspect could be woven into the code to handle all of the crippling.
For example, WebLogic used to let a few IP addresses to hit the server only. An aspect could track the incoming IPs and block after the allowed number come in (of course, some people just put WLS behind a proxy to trick it! Lots of 127.0.0.1 comes in ;).
This could be reused among all editions of the product.
Throttling aspect
Let's say the Express edition only allows X concurrent uses of feature Y. A simple set of aspects could throttle the features.
Additional behaviour
Additional enhanced behaviour could get weaved into the core.
IBM Cloudscape vs. Apache Derby
There are rumours that IBM uses this technique already. With this, they can add in the enhanced transaction support and other features that make Cloudscape from Derby.