RMI 和 DCOM 的区别


RMI 和 DCOM 都是用于实现分布式对象计算的技术。RMI 是一种基于 Java 的技术,而 DCOM 则是由微软开发的。尽管它们都是由两家技术巨头为了相同目的而构建的,但在设计、实现和使用方面存在一些显著差异。本文将比较并列出 RMI 和 DCOM 之间的一些区别。

RMI 与 DCOM

分布式对象

要理解 RMI 和 DCOM 之间的区别,有必要了解分布式对象计算,因为这两个术语都属于同一范畴。当我们使用配备了分布式系统软件的计算机网络连接一组自治计算机时,就被称为分布式系统。该系统中的计算机可能位于不同的位置,但用户会体验到一个单一的、集成的计算设施。

分布式对象计算是指分布式系统中的一种技术,其中对象分布在异构网络中。它扩展了面向对象编程系统。

RMI

它是远程方法调用的缩写。它是一种基于 Java 的技术,用于通过允许一个 Java 虚拟机中运行的对象调用另一个 JVM 中运行的对象上的方法来构建分布式应用程序。我们可以跨不同的机器进行通信和共享数据。

RMI 使用客户端-服务器架构,其中客户端是调用远程方法的应用程序,服务器是提供这些方法实现的应用程序。客户端和服务器可以位于同一台机器上,也可以位于通过网络连接的不同机器上。

它由三层组成

  • 存根/骨架层:存根是客户端上的代理对象,代表服务器端上的远程对象。骨架是服务器端上的辅助对象,接收来自存根的请求并调用远程对象上的方法。

  • 远程引用层:它处理对远程对象的引用的创建、删除和管理。

  • 传输层:它提供客户端和服务器之间的底层通信机制。

DCOM

它是分布式组件对象模型的缩写,支持语言无关的通信。其底层协议是对象远程过程调用 (ORPC)。一个应用程序可以通过在另一个系统上使用 ORPC 远程启动和调用 DCOM 服务器对象的​​方法。由于 COM 服务,它在 Windows 平台上被大量使用。

DCOM 实际上是“网络上的 COM”技术的分布式版本。此 COM 规范在二进制级别工作,以允许 DCOM 服务器组件用多种编程语言(如 C++、Java、Object Pascal、Visual Basic 和 COBOL)编写。这些组件可以在任何支持 COM 服务的平台上实现。

DCOM 服务器对象提供对多个接口的支持,并且每个对象都实现了一个名为 IUnknown 的接口,该接口提供基本功能,例如引用计数和查询其他接口。

RMI 和 DCOM 之间的区别

从以上讨论中,我们可以得出以下 RMI 和 DCOM 之间的区别

RMI DCOM
它不能与除 Java 之外的任何其他编程语言一起使用。 它可以与 C++、Java、Object Pascal、Visual Basic 和 COBOL 一起使用。
RMI 使用 Java 远程方法协议 (JRMP)。 DCOM 使用对象远程过程调用 (ORPC)。
由于 Java 虚拟机,它可以支持多个平台。 由于 COM 规范,它仅支持 Windows 平台。
对象名称与其实现的映射由 RMI 注册表处理。 对象名称与其实现的映射由 Windows 注册表处理。
对象引用用于在运行时识别对象。 在这种情况下,使用接口指针。
客户端称为存根,服务器端称为骨架。 客户端存根称为代理,服务器端称为存根。

结论

分布式对象技术正日益流行,因为它们促进了电信、网络应用程序、实时过程控制(如飞机控制系统)等诸多领域的发展。本文对两种最流行的分布式对象技术 DCOM 和 RMI 进行了比较分析。

更新于: 2023年7月19日

170 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告