网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

RMI与CORBA之间的区别

更新时间:2026年03月27日   作者:spoto   标签(Tag):

在分布式计算中,用于在不同系统之间传递对象的两种著名技术分别是远程方法调用(RMI)和通用对象请求代理架构(CORBA)。如上所述,RMI和CORBA都能实现远程对象之间的通信,但它们的方式有所不同,它们所支持的语言也各不相同,所使用的架构也有所差异。在本文中,我们将详细探讨RMI和CORBA之间的区别。

RMI究竟是什么?

远程方法调用(Remote Method Invocation,RMI)是一种专用于Java的技术,它使得不同JVM中的对象能够相互通信。RMI应用程序由两部分组成:服务器和客户端。服务器负责部署远程对象,然后等待来自客户端的调用。而客户端则通过获取服务器的远程对象的引用来与这些对象进行交互。

RMI的优势

  • 与Java的无缝集成:RMI是一种基于Java的本地技术,因此可以在Java应用程序中非常轻松地实现其功能。
  • 自动垃圾回收:RMI的对象可以被JVM轻松地处理,从而无需程序员进行内存管理。因此,它们不需要由程序员来负责内存的分配与回收工作。
  • 动态类加载:独立下载的类提供了灵活性,因为客户端可以通过RMI从远程JVM中获取新的类。

RMI的缺点

  • 依赖 Java 语言:RMI仅支持Java语言,因此不适合那些使用其他语言编写的系统。
  • 与JVM的紧密耦合:这很大程度上取决于JVM的实现方式,而JVM的独立性又使得它与其他平台的整合程度较低。

RMI由以下部分组成:三层结构

  • 骨架/骨骼层
  • 远程参考层
  • 传输层

这些层次之间的关系如下所示:

图 – RMI架构

什么是CORBA?

Common Object Request Broker Architecture(CORBA)是一种中间件技术,它的设计目的是实现分布式对象的自由通信。无论这些对象运行在何种底层平台上、使用何种编程语言或操作系统,都可以实现它们之间的自由通信。顾名思义,CORBA可以被看作是一种“软件总线”,即一种能够让不同环境中的对象相互找到并进行通信的通信框架。

CORBA它使用了接口定义语言(IDL),这种语言被用来将接口与实现代码分离。此外,该语言可以在多种平台上实现,包括C++、Python和Java等语言,从而提升了其互操作性。

CORBA架构

CORBA的优势

  • 语言独立性:CORBA的另一个优点在于,它可以使用多种编程语言来编写。不过,与CORBA相比,其他系统的唯一区别在于,CORBA是为不同类型的系统而开发的。
  • 平台独立性:借助CORBA环境获得的虚拟机可以轻松地安装在不同的操作系统和计算机架构上,而无需进行任何额外的添加或删除操作。
  • 强大的安全功能:安全性是其中一个重要的方面;同时,CORBA还提供了许多保护通信安全的方法,而在分布式系统中,确保通信的安全性往往非常重要。

CORBA的缺点/不利之处

  • 没有自动垃圾收集功能:CORBA并不支持自动的垃圾回收机制,这也就导致了在内存管理方面出现一些问题。
  • 复杂的实施过程:据说,CORBA在概念上的复杂性比RMI要高。也就是说,配置和管理CORBA所需的努力要比处理RMI时更多。

RMI与CORBA之间的区别

RMICORBA
RMI是一种专为Java语言设计的技术。CORBA有多种语言的实现方式。
该实现采用了Java接口的方式进行实现。它使用接口定义语言(IDL)来将接口与实现部分分离开来。
RMI对象会被自动回收。CORBA对象不会被自动回收,因为CORBA具有语言独立性。而像C++这样的某些编程语言则不支持自动回收功能。
RMI程序可以从远程的JVM中下载新的类。CORBA并不支持这种代码共享机制。
RMI通过远程引用或值传递来传递对象。CORBA通过引用来传递对象。
Java RMI是一种以服务器为中心的模型。CORBA是一种点对点系统。
RMI将其底层远程通信协议设置为Java远程方法协议。CORBA将其底层远程通信协议设定为互联网Inter-ORB协议。
确定某个对象的具体实现方式的责任,则由JVM来承担。确定对象实现方式的责任在于对象适配器,具体可以是基本对象适配器或可移植对象适配器。

结论

总而言之,RMI和CORBA都是用于分布式计算的优秀技术。不过,这两种技术的使用方式有所不同。 如前所述,RMI模型非常适合那些需要实现远程通信的Java环境。在这种环境中,远程通信需要与其他基于Java的系统进行同步和协作,而“简单性”是此类系统所追求的核心目标。 另一方面,CORBA更适合那些由不同语言和平台构成的分布式系统。 了解这两种方法的优缺点,以及各自的局限性,将有助于开发者做出明智的决策,从而选择最适合项目的解决方案。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料