应用架构设计问题

时间:2010-12-17 20:20:21

标签: java architecture java-ee

我在设计基于Java / J2EE Web的应用程序时需要您的建议。以下是它的特点:

  1. 纯粹面向数据库的应用程序(有10个表)。数据库是Oracle。
  2. 三种不同类型的界面/屏幕: 2.1 WebSphere Portlets(6个接口/屏幕) 2.2手持设备(5个接口/屏幕) 2.3 Web应用程序(17个接口/屏幕)
  3. 很少有屏幕只是使用Crystal Reports构建的报告。
  4. 涉及的业务逻辑不多。
  5. 现在我担心的是:

    1. 我应该选择哪种架构为2层或3层?
    2. 我应该使用哪些框架struts / jsf(MVC)?如果有的话?或者我应该在没有任何框架的情况下进行简单的基于POJO的编程。
    3. 最大的问题是打包,我的意思是我不想为我想要开发的每种三种不同类型的接口复制业务和数据库层。您认为EJB是公开DB / Business层的好选择吗?我应该怎么处理这个?
    4. 我应该使用像sitemash这样的特定框架来表示图层吗?
    5. 我应该使用任何特定的数据库层JPA / Hibernate框架,还是应该使用简单的JDBC?
    6. 欢迎任何意见/建议......

      BR SC

2 个答案:

答案 0 :(得分:1)

  

我应该选择哪种架构用于2层或3层?

三层:视图,服务和持久性。

  

我应该使用哪些框架    struts / jsf(MVC)?如果有的话?或者应该    我选择简单的POJO    没有任何框架的编程。

Struts的?不是JSF?不,我推荐Spring,因为它支持Web和门户MVC以及契约优先的Web服务。

  

最大的问题是包装,我    意思是我不想复制    每个的业务和数据库层    三种不同类型的接口    我想发展。你认为EJB    将是暴露的好选择    DB /业务层?我该怎么办?    处理这个?

我不推荐使用EJB。我建议使用基于HTTP的Web服务进行远程处理。

  

我应该使用任何特定的框架    喜欢sitemash进行演示    层

Sitemesh很好,但它不是表示层。

我使用Velocity模板生成直接HTML,然后发送给客户。

  

我应该使用任何特定的框架    对于数据库层JPA / Hibernate或    我应该使用简单的JDBC吗?

十张桌子?那个模式足够小,JPA和Hibernate看起来对我来说太过分了。为持久层创建POJO接口,您可以将实现与客户端隔离。如果您决定需要或想要,请从简单开始并切换它。

答案 1 :(得分:1)

我认为第一个答案有良好的基线。我会回应大多数情绪,但会另外建议jDBI进行数据库访问(请参阅此tutorial);与“原始”JDBC相比,它很好地简化了处理,但不需要任何映射。