views:

29

answers:

0

Being new to web app dev, I'm currently insecure what architecture would best work for an eCommerce web app including enduser programming where privileged endusers (managers) can declaratively define via a manager online tool

(a) additional enduser roles (like customer types),
(b) categorized products/services,
(c) product prices in dependence of customer type, buy period, quantity and granted discounts

and also manage and monitor the own site entities (customers, sales, revenues, etc).

Managers should be able to preview their specs and finally publish them under a specific site URL (base URL given by the system). Endusers can navigate through the resulting site for gathering information and submitting orders.

My 2 main problems originate from the included declarative enduser programming in the manager tool. I'm currently wondering about:

  1. how and where to render the preview/publication results from the declarative format "on the fly", and
  2. how to provide a flexible pricing mechanism that makes pricing rules management easy.
  • As to (1) one could go with a pure JSF2 Ajax approach (only server-side renderings) or a JSF2+JS(jQuery) Ajax approach (to be more responsive at client side) ... But how may I realize a rendering component, especially when jQuery is involved?
  • As to (2), a rule-based approach is imaginable, but I'm currently not sure if a rules-engine-involving server-side subsystem like JBoss Drools would be (a) too "heavy-weight" for this kind of pricing rules, and (b) inappropriate when taking into account that a client-side "light-weight" rules interpreter version could do the same job (?) and also be reused for interpreting necessary forms controlling rules!
    I guess for the prices' visualization and input an "(editable) hypercube widget"-approach could also be a good thought. (Btw., do someone know about such widgets for JSF2?)

Still hoping that here I can obtain some advice from more experienced JEE developers:
Which JEE architecture would you use to solve the above-stated goal in a good way?

Thank you very much for any suggestions in advance.

Best regards,
Sandro