代码之家  ›  专栏  ›  技术社区  ›  cetnar

JavaEE部署模式资源

  •  0
  • cetnar  · 技术社区  · 16 年前

    我正在寻找有关JavaEE应用程序部署模式的书籍/在线资源。特别是我想知道当使用远程接口时何时使用本地接口的模式(需要多少节点?)。关键问题是对EJB和WAR使用单个EAR(EJB和WAR)或单独的节点。

    我发现的资源有点过时,它们集中在 EJB2 design patterns .我对EJB3、Spring或Seam等新技术感兴趣。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Arjan Tijms Mike Van    13 年前

    首先,对于像WebSphere这样的应用服务器,您可以有一个EAR,其中包含一个(或多个)WAR和一个(或多个)EJB JAR,每个WAR和JAR可以部署到不同的服务器上。因此,这不一定是关于有多少个耳朵的问题,部署模式是一个单独的问题。您可能会决定生成两个耳朵,但这并不是JavaEE规范所强制的。

    第二,在开发时,您确实需要决定您的EJB是否应该公开一个远程可调用的接口。这首先是一个设计决策。适合本地调用的API不一定适合远程调用。例如,一个非常细粒度的API可能会产生过多的消息开销——如果我们 公开远程api之后,我们倾向于使用粗粒度api。

    第三,EJB3.0并没有从根本上改变有关远程部署模式是否合适的体系结构和设计决策。EJB3.0提供了一个比EJB2简单得多的编程模型。x、 因此,我们需要编写的代码/XML要少得多,但就由此产生的部署模式而言,在网络上的处理或字节流方面,实际情况并没有发生变化。作为一名Spring或Seam开发人员,我不能确定Spring或Seam会说同样的话,但我的猜测是,诸如远程或非远程之类的基本架构决策将与技术无关。

    那么,是什么力量促使您将Web和EJB部署到不同的层呢?

    共定位:简单,故障模式少,减少网络覆盖。

    DitDistributed EJB/WAR:独立的可伸缩性(您可以独立地向Web层或EJB层添加更多处理能力),支持多个客户端,相同的业务逻辑可以向其他客户端公开(这也可能导致可伸缩性需求),独立的维护版本(Web补丁不会干扰EJB)。

    推荐文章