2010-08-18 72 views
2

作为新的网页应用开发,我目前没有安全感什么架构就像为电子商务Web应用程序最好的工作,包括最终用户编程,其中特权终端用户(经理)可以通过声明经理在线工具定义架构:如何在Java EE + JSF2中实现这个Web应用程序? [修订]

(一)额外的最终用户角色(如客户类型),
(二)分类的产品/服务,
(三)产品价格在客户类型的依赖,购买期限,数量和授予折扣

,还可以管理并监督自己的实地(客户,销售,收入等)。

经理应该能够预览他们的规格和最后发布他们在一个特定的站点URL(由系统给定的基础URL)。最终用户可以浏览生成的网站以收集信息并提交订单。

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

  1. 如何以及在何处渲染从“对飞”的声明格式预览/出版成果,
  2. 如何提供灵活的定价机制,使得定价规则管理容易。
  • 由于:(1)一个可以与纯JSF2的Ajax方法(仅服务器端渲染)或JSF2 + JS(jQuery的)Ajax方法去(是在客户端更敏感).. 。但是我怎么才能实现一个渲染组件,特别是当涉及到jQuery时?对于(2),基于规则的方法是可想而知的,但是我目前还不确定像JBoss Drools这样的涉及规则引擎的服务器端子系统是否(a)太“重量级” (b)考虑到客户端的“轻量级”规则解释器版本可以完成相同的工作(?)并且可以重复使用以解释必要的表格控制规则,因此不适用这种定价规则!
    我想为价格的可视化和输入一个“(可编辑的)超立方体小部件” - 方法也可以是一个好主意。 (顺便说一句,不要有人知道这样的小部件JSF2?)

仍然希望,在这里我可以从经验更丰富的Java EE开发人员获得了一些建议:
你会使用哪个Java EE架构来解决上文以一种好的方式说明目标?

回答

1

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

您可能想要存储数据?然后,一个数据库层是必需的,这可能是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/

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

Netbeans为EE 6提供了捆绑的glassfish 3的下载,易于安装和使用。

祝你好运!