【问题标题】:RMI - JRMP vs IIOPRMI - JRMP 与 IIOP
【发布时间】:2011-05-03 09:33:18
【问题描述】:

我知道 JRMP 会为每个调用请求打开一个新套接字。 此外,IIOP 可以为多个请求共享一个打开的套接字。

如维基百科所述:

术语 RMI 的使用可能仅表示编程接口,也可能表示 API 和 JRMP,而术语 RMI-IIOP(阅读:RMI over IIOP)表示将大部分功能委托给支持 CORBA 实现的 RMI 接口.

我的论文中的一个问题是,我不得不说该陈述是否真/假

RMI 服务器为多个调用请求共享一个套接字。

此时,考虑到它是一个 JRMP 还是一个 IIOP 服务器,这个问题是被探测的还是有歧义的。 我是否可以假设如果问题仅说明 RMI ,那么在这种情况下它会暗示它是 JRMP 服务器而不是 IIOP 服务器?

我希望我已经说清楚了。

【问题讨论】:

  • 不,这样假设是不安全的。这个问题模棱两可。
  • 另外,您是否考虑过 JBoss 使用的池化 RMI 调用程序?

标签: java rmi


【解决方案1】:

我知道 JRMP 打开了一个新套接字 对于每个调用请求。

不,它没有。 RMI 客户端使用连接池。

如维基百科所述:

术语 RMI 的使用可能仅表示编程接口,也可能表示 API 和 JRMP,而术语 RMI-IIOP(阅读:RMI over IIOP)表示将大部分功能委托给支持 CORBA 实现的 RMI 接口.

我认为该陈述具有误导性,并已更正。新的措辞表明,术语“RMI”可以指 API 或任何实现,包括 JRMP、IIOP、JERI、JBoss Remoting,...,而“RMI-IIOP”专门指 RMI超过 IIOP。

RMI 服务器共享一个套接字 多个调用请求。

该声明模棱两可,具有误导性,并且依赖于实现。

我可以安全地假设如果 问题仅说明 RMI ,然后 在这种情况下,这意味着它是一个 JRMP 服务器而不是 IIOP 服务器?

没有。但在这种情况下,它没有任何区别。

【讨论】:

    【解决方案2】:

    不,RMI 可以共享套接字或根据 RMI 客户端实现的需要创建它们。如此笼统的说法是不正确的。

    【讨论】:

    • @Pavitar:但这个答案是不正确的。它根本不这样做。
    • 您的回答是“不[它不会共享套接字]”,并且“它 [我的重点]为每个请求创建一个新的客户端套接字”。正如您在评论中正确指出的那样,这取决于实现。所以“不”和“将”都是不正确的。它可能。但它不会。 14 年来,我从未见过这样的 RMI/JRMP 或 RMI/IIOP(或 RMI/JERI)实现
    • 而且它依赖于 RMI client 实现,而不是服务器。
    • @Mikaveli RMI 连接池在客户端实现。这是唯一可能实现的地方。想想看。然后,如果您不同意,请提供您自己的参考。我的参考是 java.rmi: The Guide to Remote Method Invocation in Java, Pitt & McNiff,2001,但后来我确实写了。
    • community.jboss.org/wiki/Invokers JRMP 调用程序为它在客户端向服务器发出的每个请求创建一个新的客户端套接字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多