Dear Drools community:
Being new to rule-based systems, I've read some introductory materials on this paradigm's concepts where I was led to some rule engine Java implementations, your product seeming the most interesting to me at the moment.
Concerning RBMSs, in general, and Drools, in particular, I currently cannot figure out how to derive an architecture for my app scenario.
Maybe some more experienced Drools users can help me further giving me some architectural hints and/or pointing me to the right documents or examples to get started.
My app scenario is basically the following:A JavaEE eCommerce *web* app for selling products and service subscriptions. It will support enduser roles like 'Customer' and 'Staff' (including 'Customer Manager', 'Products Manager', 'Marketing Representative', ...).
- Customer Managers define customer types (groups), probably create customer accounts on their behalf, assign customers to groups, and manage the accounts via a *responsive* WebUI. Typically, customer accounts will be created by the customer endusers themselves during the online shop's ordering process.
- Product Managers specify structured product categories, then product types (=dyn. record schema), and finally the concrete products. They are also permitted to
(**) bundle products to Product Packages, optimally via some inner-package inclusion and exclusion rules, and
(***) specify some inter-"package-or-product" selectibility rules (e.g., "Package A can (can't) be ordered
together with Package B", etc).
- Marketing Representatives first also can perform (**),(***) and further assign target customer groups for these packages (e.g., "Package A is only visible/selectable for "Customers.PREMIUM"). Then and mainly, they assign prices for individual products and packages, for each of the defined customer group -- probably also considering other dynamically defined pricing parameters like purchase datetime, quantity, customer-negotiated prices, etc. I guess, here pricing rules (decision tables) would be very appropriate, wouldn't they?
- Finally, Customers browse an Online Catalog or Ordering/Subscription Form which do respect the packaging, pricing, and selectivity rules in their presentation logic.
My actual unclarities are:
- Will Drools be appropriate for such a *web* app, or too heavy-weight for it?
- How would a working/optimal architecture look like? ...
(a) ... Especially when you have some rules governing the data in the backend (on the server) and some corresp. rules governing the presentation (on the client to realize the *responsive* WebUI)? (please, see also (b))
(b) Do I really need a mechanism that "derives" client-side (ui/form) presentation rules from server-side data-relative biz rules?
How could this be realized? -- I guess I'll need some JavaScript/jQuery Rule Engine -- Which one could be used?
- Is there some examples that treat comparable problems and can help with this scenario? (-- As I guess that such a scenario is not very uncommon!?!)
I would really appreciate any architectural hints from more experienced users very much.
[Info: the planned techs are: JavaEE 6 (JSF 2, JPA 2) or, alternatively, Spring 3 with Spring MVC 3. Google Web Toolkit 2 could also be an option for the front-end]
Thank you a million for your help in advance.
Best regards
Sebastien