在这篇文章中,我们来看看远程方法调用(RMI)和分布式组件对象模型(DCOM)之间的区别。在讨论这些区别之前,让我们首先了解它们各自的实际含义。

RMI应用程序提供两个独立的程序,一个是服务器,一个是客户端。有一些任务是由服务器程序执行的,即创建一些远程对象,对对象进行引用,并等待客户,以便他们调用这些对象的方法。客户端在服务器上获得一个或多个远程对象的远程引用,并对其调用方法。基本上,RMI提供了一个机制,通过这个机制,服务器和客户端可以进行通信并来回传递信息。RMI由三层组成 –

  • 存根/骨架层
  • 远程参考层
  • 传输层

这些层之间的关系如下图所示 –

DCOM是微软的分布式计算的解决方案。它允许一个客户端应用程序远程启动另一台机器上的DCOM服务器对象并调用其方法。它的特点是语言独立,能够使用TCP/IP、UDP、IP、IPX/SPX和HTTP进行通信,以及静态/动态调用对象。它最适合于面向微软产品的环境。它包括以下功能:

  • 定位和加载远程类。
  • 定位远程对象并提供对它们的引用。
  • 启用远程方法调用。

DCOM

下表描述了这些区别 –

RMI DCOM
在RMI中,每个服务器对象都实现了java.rmi.Remote接口。 在DCOM中,每个对象都实现了IUnknown。
RMI使用JRMP作为其底层远程协议。 DCOM使用对象远程过程调用作为其底层远程协议。
一个对象的名字到它的实现的映射是由RMIRegistry处理的。 一个对象名称到其实现的映射由注册表处理。
定位对象实现的责任落在JVM身上。 定位对象实现的责任在于服务器控制管理。