CORBA和RMI之间的区别

时间:2013-03-04 16:21:06

标签: java rmi corba

我清楚地知道CORBA和RMI之间的区别,除了存在inoutinout的问题。

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

Java编程语言没有outinout参数(尽管可以通过创建一个简单的值包装类来实现),所有参数都按值传递in(对于值类型)或通过引用(对于引用类型)。由于Java本身不支持语言级别的参数方向,因此没有必要在RMI中使用它。

答案 1 :(得分:0)

  

但在JAVA / RMI中没有必要。

它们不适用于Java,更不用说Java RMI了。设计师决定按价值传递一切。