架构:如何在Java EE + JSF2中实现这个Web应用程序? [修订]

时间:2010-08-18 21:52:00

标签: architecture dynamic java-ee jsf-2

作为网络应用程序开发人员的新手,我目前不安全哪种架构最适合电子商务网络应用,包括最终用户编程,特权最终用户(经理)可以通过经理在线工具进行声明性定义< / p>

(a)其他最终用户角色(如客户类型),
(b)分类产品/服务,
(c)产品价格取决于客户类型,购买期限,数量和授予的折扣

还管理和监控自己的网站实体(客户,销售,收入等)。

管理员应该能够预览他们的规范,最后在特定的网站URL(系统提供的基本URL)下发布。最终用户可以浏览生成的网站,以收集信息和提交订单。

我的两个主要问题源于管理器工具中包含的声明式最终用户编程。我现在想知道:

  1. 如何以及在何处以“动态”和
  2. 呈现声明格式的预览/发布结果
  3. 如何提供灵活的定价机制,使定价规则管理变得容易。
    • 至于(1)可以采用纯JSF2 Ajax方法(仅服务器端渲染)或JSF2 + JS(jQuery)Ajax方法(在客户端更具响应性)......但我怎么可能实现渲染组件,特别是涉及jQuery时?
    • 对于(2),基于规则的方法是可以想象的,但我目前还不确定像JBoss Drools这样的规则引擎涉及的服务器端子系统是否(a)过于“重量级”这种定价规则,以及(b)考虑到客户端“轻量级”规则解释器版本可以执行相同的工作(?)并且还可以重复用于解释控制规则的必要形式!
      我想对于价格的可视化和输入“(可编辑的)超立方体小部件”-approach也可能是个好主意。 (顺便说一下,有人知道JSF2的这些小部件吗?)

    仍然希望在这里我可以从更有经验的Java EE开发人员那里获得一些建议: 您将使用哪种Java EE架构以良好的方式解决上述目标?

1 个答案:

答案 0 :(得分:1)

主要关注的是为上面隐含提到的不同架构元素选择组件。一种非常常见的方法是将您的应用分层并以更概念化的方式开始您的设计,之后您可以开始评估不同的实施技术并确定最适合您需求的方法。

您可能想存储数据?然后db-tier是nessecary,这个的候选者可能是Hibernate或JPA2。

如果您喜欢在其他上下文中使用开发的业务逻辑而不是webb-app(可重用性),例如提供Web服务或类似工具,最好创建一个封装代码的单独业务层在已定义的方法中(通常与业务流程匹配)。通过这种方式,您可以为不同的消费者使用相同的逻辑,即webb应用程序和webb服务。 EJB和SessionBeans是该领域的常见解决方案。

表示层的一种现代方法是使用ManagedBeans和JSF2 / facelets的组合,并且为了避免自己发明所有表示组件,您可以使用像IceFaces / PrimeFaces / Richfaces这样的组件库。 JSF组件库通常依赖于jQuery并将其捆绑在一起。

总而言之,你可能需要:

表示层 - JSF2 / ManagedBeans和一个组件库,如PrimeFaces,IceFaces,RichFaces等。(http://www.primefaces.org/)

业务逻辑层 - EJB SessionBeans是一项功能强大的技术(http://download.oracle.com/javaee/6/tutorial/doc/http://seamframework.org/

持久层 - Hibernate / JPA2,JPA2捆绑在oracle的EE 6下载中。

Netbeans为EE 6提供了一系列易于安装和使用的glassfish 3下载。

祝你好运!