2009-08-19 90 views
2

我正在设计一个系统,其中有2个节点:1个节点与提供JSP页面的Web服务器,并将请求转发到另一个节点中的Web服务。在这个其他节点中,这些Web服务将请求转发到业务逻辑层,然后与DBAcccess层进行交互。Jboss为3层客户端服务器体系结构

JBoss是否适合这种布局?我必须部署2副本的JBossAS,每个节点一个?

感谢

回答

1

你有两个节点,意思是两个独立的机器? [在WebSphere-land中常见的单词“节点”有另一个含义,只是检查我们使用的是相同的术语。]

第一个节点需要执行servlet和JSP。 Java EE服务器这样做,JBoss执行Java EE,所以这是对JBoss的合理使用。您可以使用其他Java EE服务器,但是您所说的一点没有理由避免JBoss。这是一个副本。

第二个节点,WebServices和一些业务逻辑和一些数据库访问。 Java EE再次做这些事情。还有其他选择,但是如果你已经知道JBoss,那么为什么不呢?如果您在节点1中使用JBoss,我不会在节点2中选择不同的Java EE服务器。[我没有在此层中使用非Java EE解决方案的经验 - 毫无疑问,Spring afficionados可以发表评论。]因此,如果在这里使用Java EE,然后是另一个实例JBoss。

这导致了问题为什么分离节点?其中一个原因可能是允许您单独扩展Presentation和Business层。因此,从长远来看,你可能不止有两个JBoss实例。

强烈的建议:从一开始就设计,你可能想要以这种方式进行缩放。非常容易(例如)创建巨大的Http会话,这些会话在群集中效果不佳。

0

这是一种什么地方实施“商业逻辑层”

跟踪检查列表,如果你有大部分回答“是”使用EJB(又名JBoss的),否则想简单的老问题Java代码上的DataAccessLayer上的Bean。

  • 您的业务模糊或动态更改规则。
  • 您不确定数据库或产品是否可以在生命周期中更改数据库引擎。
  • 可扩展性对你来说意味着什么。
  • 您的产品需要通过接口(不通过网络)向第三方组件公开功能。
  • 您的数据库没有很好的功能来实现复杂的业务逻辑(例如德比 - 速度快但受到限制)。
0

感谢您的回答!让我稍微解释一下这个项目。

我们正在为一位客户开发地理信息系统,他询问主要功能是根据某些业务逻辑公开CSV文件处理的一组Web服务。客户还要求我们构建一个Web前端来使用此服务(尽管他们(Web服务)可能会被其他应用程序使用)。他们还告诉我们,这两台服务器可能位于不同的节点/机器中。数据库访问区域出现了另一个限制:2台服务器在2个数据库上运行,这2台服务器也可能位于不同的物理机器中,共产生4个节点!

因此,我的问题是如果在2台服务器中使用JBoss或Spring AS的2个实例是合理的,并且这2种技术中的哪一种最适合它。

+0

因此,服务JSP页面的服务器节点使用一个数据库,而业务逻辑/ Web服务节点使用另一个数据库?将所有数据库访问放在一个地方避免“模型腐败”或代码重复是不是更好的设计? – mjn 2009-11-13 17:10:41

相关问题