【问题标题】:Is there any JavaEE architecture where business logic layer is dedicated?是否有专门用于业务逻辑层的 JavaEE 架构?
【发布时间】:2014-12-31 18:47:12
【问题描述】:

假设像这样一个经典的 3 层 JavaEE 架构

  • JSF / JSP / Servlets (Web)
  • EJB(商务)
  • 数据库(持久性)

所有JavaEE tutorial 示例都显示了不同容器中的 web 和 biz 层,但在同一个 JavaEE 服务器中。

在任何情况下,将 EJB 分开,在它们自己的机器上是有优势的吗?在这种情况下,假设他们将通过 RMI 与 Web 层进行通信,是否有任何类型的 JavaEE 容器可以管理 EJB 而不是 JSP 和 servlet?

【问题讨论】:

  • 我确定存在“a”情况。我认为主要项目比我工作的要大得多,所以我不能告诉你什么时候切换到使用多个容器。不过,如果你不得不问,我会说你不必担心。

标签: java jakarta-ee ejb n-tier-architecture


【解决方案1】:

在任何情况下,将 EJB 分开放置在它们自己的机器上会有优势吗?

有时,特定的非功能性需求会决定您的应用设计。 例如,安全性:为了达到一些安全规范,业务层必须驻留在不直接暴露于 Internet 的更安全的服务器中。

可用性:如果您的业务层公开了一些由与 Web 服务器不同的客户端使用的服务,并且这些服务提供了某种任务关键型功能,那么它们可能需要在 24/7 的服务器上运行。

我不确定从“优势”的角度思考是否是看待这种解耦架构的正确方式。 我认为这更像是一个价格(翻译成更复杂的设计),如果你需要达到这种要求,你必须付出代价。

有没有管理 EJB 但不管理 JSP 和 servlet 的 JavaEE 容器?

是的,例如OpenEjb

【讨论】:

  • 是的,很好的例子。此外,您可能有n webservers 和m 集群EJB 服务器用于水平扩展。如果您的业务方法“繁重”,您可能需要比 Web 前端更多的 EJB 实例,因此您可能需要 n < m
猜你喜欢
  • 2016-08-12
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 2017-01-10
  • 2010-12-07
  • 1970-01-01
  • 2021-10-18
  • 2010-12-18
相关资源
最近更新 更多