【问题标题】:Differen between CORBA and RMICORBA 和 RMI 的区别
【发布时间】:2013-03-04 16:21:05
【问题描述】:

除了inoutinout存在的问题,我很清楚CORBA和RMI的区别。

CORBA 使用 IDL 语言描述接口,定义的方法中的参数有关键字:inoutinout。它们的含义如下:

  • in:参数从操作的调用者传递给对象。
  • out:参数从对象传递给调用者。
  • inout:参数双向传递。

我的问题:为什么关键字(inoutinout)在 CORBA 中是必需的,而在 JAVA/RMI 中却不是必需的。

【问题讨论】:

  • RMI中只有参数。
  • Java中只有in参数。

标签: java rmi corba


【解决方案1】:

这只是一个设计决定。它们设计的主要区别在于 CORBA 被设计为独立于平台和编程语言,而 RMI 是专门为 Java 编程语言设计的。

许多编程语言都有自己的方式来表达inoutinout 参数方向,在这些语言中,CORBA IDL 有其直接的等价物。在其他语言(例如 Java)中,这些构造必须使用复杂的包装结构来实现。

Java 编程语言没有outinout 参数(虽然可以通过创建简单的值包装类来实现),所有参数都通过值(对于值类型)或引用传递in (对于参考类型)。而且由于 Java 本身不支持语言级别的参数方向,因此在 RMI 中也没有必要这样做。

【讨论】:

    【解决方案2】:

    但在 JAVA/RMI 中不是必需的。

    它们在 Java 中不可用,更不用说 Java RMI。设计师决定通过价值传递一切。

    【讨论】:

    • 这些关键字在 IDL 中不是可选的。如果您在 IDL 接口中编写具有参数的函数,则必须指定 in、out 或 inout。
    猜你喜欢
    • 2010-12-26
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 2011-07-03
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多