gpt4 book ai didi

java - 当您可以实现 Web 服务 (SOA/REST) 时,用 RMI 实现 EJB 仍然有用吗?

转载 作者:搜寻专家 更新时间:2023-10-30 20:58:09 24 4
gpt4 key购买 nike

这听起来可能类似于 this ,但事实并非如此。

我对 EJB 和 RMI 比较了解,而且我在 SOA 下使用 Web 服务也有一段时间了。我想知道为什么使用 EJB 在 RMI 下公开远程接口(interface)而不是发布 Web 服务(SOA/REST,但主要是 SOA)是有用的。我不是在问哪个更好,我只是想知道一个很好的理由,说明为什么我更愿意通过 Web 服务实现具有远程接口(interface)的 EJB。

我浏览了很多网页,但似乎都过时了。到目前为止,我所知道的是,在与 Java 遗留系统集成时,EJB 公开远程接口(interface)仅比 WS 更好。如果我想管理事务,我可以使用本地接口(interface)实现 EJB。我也不认为选择 EJB 而不是 RMI 比 Web 服务接口(interface)更有效。

我说的对吗?有什么我想念的吗?

非常感谢。

最佳答案

EJB 更好,如果

  • 你需要执行多次调用,这些调用应该一次完成交易(理论上我们有交易网络服务,但不是每个实现都提供它们),(有状态的)EJB 在事务管理方面大放异彩。几乎任何时候你需要状态 EJB 都会比 Web 服务更好;
  • 您需要性能 - 网络服务很慢——他们使用通过 HTTP 推送的 XML/JSON,RMIEJB 使用的 IIOP 协议(protocol)效率更高;
  • 您需要连接到一些遗留系统,该系统使用过时的 Java Web 服务规范(丑陋的 Axis 1.0 东西,与 JAX-WS 不兼容)将所有内容与 Web 服务连接起来可能是一场噩梦,处理不兼容的 WSDL 定义,奇怪的肥皂信封。 EJB 向后兼容,旧的 EJB 2 可以毫无问题地连接到 EJB 3.1;
  • 现代 EJB (EJB 3.X) 可以通过添加两个或三个简单注释将其接口(interface)公开为 JAX-WS SOAP/WSDL 服务或 JAX-RS REST 服务

为什么 (REST) Web 服务如此流行呢? EJB 只能连接到另一个 Java 应用程序。大多数现代富互联网应用程序都是用 JavaScript 编写的,因此将它们与任何后端连接的唯一方法是使用某种 Web 服务(通常是 REST + JSON)。对于此类应用程序,EJB 毫无用处。

关于java - 当您可以实现 Web 服务 (SOA/REST) 时,用 RMI 实现 EJB 仍然有用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10198286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com