<body bgcolor="#ffffff" background="https://img.web.de/v/p.gif" class="bgRepeatYes" style="background-repeat: repeat;  background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: verdana,geneva; font-size: 9pt; padding-left: 0px;"><div style="min-height: 200px; background-image: url(https://img.web.de/v/p.gif); background-repeat: repeat; background-color: #ffffff; font-family: verdana,geneva; font-size: 9pt; padding-left: 0px;"><span style="font-size: 9pt;"><span style="font-family: verdana,geneva;"><span style="background-color: transparent;"><span style="color: #000000;"><span style="color: #000000;"></span></span></span></span></span>Dear Drools community:<br /><br />Being new to rule-based systems, I've read some introductory materials on this&nbsp; paradigm's concepts where I was led to some rule engine Java implementations, your product seeming the most interesting to me at the moment. &nbsp;<br /><br />Concerning RBMSs, in general, and Drools, in particular, I currently cannot figure out how to derive an architecture for my app scenario. <br />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.<br /><br /><span style="text-decoration: underline;">My app scenario is basically the following:</span><br /><br />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', ...). <br /><br />
<ul>
<li>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.<br /><br /></li>
<li>Product Managers specify structured product categories, then product types (=dyn. record schema), and finally the concrete products. They are also permitted to<br />&nbsp; <span style="color: #ff0000;">(**)</span> bundle products to Product Packages, optimally via some inner-package inclusion and exclusion rules, and<br />&nbsp; <span style="color: #ff0000;">(***)</span> specify some inter-"package-or-product" selectibility rules (e.g., "Package A can (can't) be ordered <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; together with Package B", etc).<br /><br /></li>
<li>Marketing Representatives first also can perform <span style="color: #ff0000;">(**)</span>,<span style="color: #ff0000;">(***)</span> 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?<br /><br /></li>
<li>Finally, Customers browse an Online Catalog or Ordering/Subscription Form which do respect the packaging, pricing, and selectivity rules <b>in their presentation logic</b>.</li>
</ul>
<i><b><br /></b></i><span style="text-decoration: underline;">My actual unclarities are:</span><br /><ol>
<li>Will Drools be appropriate for such a *web* app, or too heavy-weight for it?<br /><br /></li>
<li>How would a working/optimal architecture look like? ... <br />(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))<br /><br />(b) Do I really need a mechanism that "derives" client-side (ui/form) presentation rules from server-side data-relative biz rules? <br />&nbsp; &nbsp;&nbsp; How could this be realized? -- I guess I'll need some JavaScript/jQuery Rule Engine -- Which one could be used? <br /><br /></li>
<li>Is there some examples that treat comparable problems and can help with this scenario?&nbsp; (-- As I guess that such a scenario is not very uncommon!?!)</li>
</ol><br />I would really appreciate any architectural hints from more experienced users very much. <br />[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]<br /><br />Thank you a million for your help in advance.<br /><br />Best regards<br />&nbsp;&nbsp; Sebastien<br /><br /><br /></div>&nbsp;&nbsp;<br><br><table cellpadding="0" cellspacing="0" border="0"><tr><td bgcolor="#000000"><img src="https://img.web.de/p.gif" width="1" height="1" border="0" alt="" /></td></tr><tr><td style="font-family:verdana; font-size:12px; line-height:17px;">Neu: WEB.DE De-Mail - Einfach wie E-Mail, sicher wie ein Brief!  &nbsp;&nbsp;&nbsp;<br>Jetzt De-Mail-Adresse reservieren: <a href="https://produkte.web.de/go/demail02"><b>https://produkte.web.de/go/demail02</b></a></td></tr></table>
</body>