java - 是否有专门的业务逻辑层的JavaEE架构?

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

假设像这样的经典三层 JavaEE 架构

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

全部JavaEE tutorial示例显示了不同容器中的 Web 层和业务层,但位于同一个 JavaEE 服务器中。

是否存在将 EJB 单独放置在自己的机器中具有优势的情况?在这种情况下,假设他们要通过 RMI 与 Web 层通信,是否有任何类型的 JavaEE 容器可以管理 EJB 而不是 JSP 和 servlet?

最佳答案

Is there any situation where there is an advantage to keep the EJBs apart, in their own machine?

有时,具体的非功能性需求可以决定您的应用设计。 例如,安全性:为了实现一些安全规范,业务层必须驻留在更安全的服务器中,而不是直接暴露在互联网上。

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

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

is there any kind of JavaEE container that manages EJBs but not JSP and servlets?

是的,例如OpenEjb .

关于java - 是否有专门的业务逻辑层的JavaEE架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26742593/

相关文章:

java - 如何为java创建具有多个文件目录的Makefile

java - 即使字符串看起来相同, String.contains(astring) 也不返回 true

java - 如何使用 MockMvc 的构造函数注入(inject)测试 Controller

eclipse - 在eclipse中调试zk项目返回 "Source not found."错误

java - 统计Hibernate中多对多表中ID的出现次数

java - 同时从多个线程调用 shell 脚本

java - 当主键为 UUID 时,JPA 2 合并是插入而不是更新

java - 使用 EJB 的 Swing 应用程序

jakarta-ee - 在不同机器上具有层的 Netbeans Java EE 项目

java - Eclipse 项目的 PlantUML 图