RMI和CORBA的区别
远程方法调用(RMI)
RMI应用程序提供两个独立的程序,一个是服务器,一个是客户端。有一些任务是由服务器程序执行的,即创建一些远程对象,对这些对象进行引用,同时等待客户,以便他们调用这些对象上的方法。客户端程序在服务器上获得一个或多个远程对象的远程引用,并对其调用方法。基本上,RMI提供了一种机制,通过这种机制,服务器和客户端可以进行通信并来回传递信息。RMI由三层组成:
- 存根/骨架层
- 远程参考层
- 传输层
这些层之间的关系如下图所示 –
通用对象请求代理架构(CORBA)
CORBA是由对象管理小组开发的标准,以提供分布式对象之间的互操作性。它是世界领先的中间件解决方案。它使信息的交换,独立于硬件平台、编程语言和操作系统。它经常被定义为 “软件总线”,因为它是一个基于软件的通信接口,对象通过它被定位和访问。
RMI和CORBA之间的区别:
RMI | CORBA |
---|---|
RMI是一种Java特有的技术。 | CORBA 有许多语言的实现。 |
RMI使用 Java 接口来实现。 | CORBA使用接口定义语言(IDL)来分离接口和实现。 |
RMI 对象是自动收集垃圾的。 | CORBA 对象不是垃圾收集的,因为它是独立于语言的,有些语言如 C++ 不支持垃圾收集。 |
RMI 程序可以从远程 JVM 下载新的类。 | CORBA 不支持这种代码共享机制。 |
RMI 通过远程引用或通过值传递对象。 | CORBA通过引用来传递对象。 |
Java RMI 是一个以服务器为中心的模型。 | CORBA 是一个点对点的系统。 |
RMI 使用 Java 远程方法协议作为其底层远程协议。 | CORBA使用Internet Inter- ORB协议作为它的基础远程协议。 |
RMI定位一个对象实现的责任落在 JVM 上。 | 定位对象实现的责任落在对象适配器上,无论是基本对象适配器还是可移植对象适配器。 |