【问题标题】:RMI and CORBA Differences?RMI 和 CORBA 的区别?
【发布时间】:2010-12-26 07:37:02
【问题描述】:

我正在准备期末考试,有几个关于 RMI 和 CORBA 的问题。这些是从学习指南中提取的讨论问题,因此没有围绕它们的实际应用上下文。

  1. 为什么 RMI 和 CORBA 基于 TCP?该问题说明要根据调用语义来回答。

到目前为止,我的想法是 TCP 将比 UDP 更可靠,在 RMI/CORBA 中,我们需要网络可靠性。我还在某处读到 TCP 深深嵌入在本机 Java 网络类中。我对这个说法没有信心,因为 CORBA 可以用任何语言实现。

  1. 讨论 RMI 和 CORBA 名称服务之间的区别。

我对这个问题有点困惑,因为到目前为止我所读到的是 RMI 和 CORBA 是融合技术,并且 RMI 可以访问 CORBA 对象。我现在的理解是,名称服务似乎非常相似,任何差异都不值得一提。

  1. 与 CORBA 不同,为什么 RMI 需要显式动态调用?

我什么都没想到。

我意识到我在问三个不同的问题,但它们似乎都相关。

【问题讨论】:

    标签: java rmi corba


    【解决方案1】:

    基于 TCP 的 RMI/CORBA:它们本质上都是分布式对象调用机制,只需在可靠传输之上构建它就更容易了,您不必担心数据被丢弃。如果他们在 UDP 上构建它,他们将不得不有很多其他机制来担心重传和重复等问题。

    RMI/CORBA 名称服务:在这里更深入地了解。 CORBA 名称服务称为 COS Naming,RMI 名称服务称为 JNDI。它们处于不同的架构层次。 JNDI 本质上是一组 API,而 COS 命名既是 API(通过 IDL 表示)又是有线协议定义。
    动态调用。我不确定这个问题的含义。这两种技术本质上都允许您远程调用对象上的方法。

    希望这会有所帮助。

    【讨论】:

    • 需要注意的是,RMI 也可以使用 CORBA 协议
    • 确实如此,不过是后来添加的(在引入它们时就已经存在)
    • -1 - CORBA 不仅仅是一个有线协议。每个服务都在 IDL 中指定,并且 IDL 可以被翻译成多种语言之一的 API……包括 Java。
    • 动态调用是否与 RMI 能够传递新代码(对象)而不仅仅是使用 CORBA 的原始类型有关?
    • 我不这么认为,但你是对的,RMI 可以通过值和引用传递对象,而 CORBA (IIOP) 仅支持通过引用传递对象。
    猜你喜欢
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 2011-07-03
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多