什么是 RMI、IIOP 和 RMI-IIOP?

RMI-IIOP 和其他同类技术背后的一些基本概念。

RMI

使用 RMI,您可以用 Java™ 编程语言来编写分布式程序。RMI 易于使用,您无需学习单独的接口定义语言 (IDL),并且可以从 Java 固有的“一次编写,到处运行”中获益匪浅。客户端、远程接口和服务器完全采用 Java 编写。RMI 将 Java 远程方法协议 (JRMP) 用于远程 Java 对象通信。要获取编写 RMI 程序的快速介绍,请参阅 RMI 教程 Web 页面:https://docs.oracle.com/javase/tutorial/rmi/,其中描述了编写简单的“HelloWorld”RMI 程序。

RMI 缺乏与其他语言的互操作性,由于它使用非标准通信协议,因此无法与 CORBA 对象进行通信。

IIOP、CORBA 和 Java IDL

IIOP 是 CORBA 的通信协议。它定义通过 CORBA 客户端与服务器之间的连线发送位的方式。CORBA 是由对象管理组 (OMG) 开发的标准分布式对象体系结构。远程对象的接口在平台无关接口定义语言 (IDL) 中进行说明。实现从 IDL 到特定编程语言的映射,将该语言绑定到 CORBA/IIOP。

Java Standard Edition CORBA/IIOP 实现被称为 Java IDL。 与 IDL 到 Java (idlj) 编译器一起,Java IDL 可用于定义、实现和访问 Java 编程语言中的 CORBA 对象。

Java IDL Web 页面:Java IDL (CORBA),提供了一个良好的以 Java 为中心的 CORBA/IIOP 编程视图。要获取编写 Java IDL 程序的快速介绍,请参阅“入门:Hello World”Web 页面:Java IDL 入门

RMI-IIOP

以前,Java 程序员必须针对分布式编程解决方案在 RMI 和 CORBA/IIOP (Java IDL) 之间进行选择。现在,通过遵循一些限制(请参阅在 IIOP 上运行 RMI 程序时的一些限制),RMI 服务器对象可以使用 IIOP 协议,并与任何语言编写的 CORBA 客户端对象进行通信。该解决方案被称为 RMI-IIOP。 RMI-IIOP 结合了 RMI 的易用性与 CORBA 的跨语言互操作性。