在本文中,我们将看到远程方法调用(RMI)和分布式组件对象模型(DCOM)之间的区别。在讨论差异之前,让我们首先了解它们各自的实际含义。
RMI应用程序提供两个独立的程序,一个服务器和一个客户端。有一些任务由服务器程序执行,即创建一些远程对象,引用对象,以及等待客户端以便他们调用这些对象上的方法。客户端获取对服务器上一个或多个远程对象的远程引用,并调用它们的方法。基本上,RMI 提供了服务器和客户端可以通过它来回通信和传递信息的机制。 RMI 由三层组成:
- 存根/骨架层
- 远程参考层
- 传输层
这些层之间的关系如下图所示:
DCOM是 Microsoft 的分布式计算解决方案。它允许一个客户端应用程序远程启动另一台机器上的 DCOM 服务器对象并调用它的方法。它提供了语言独立性、使用 TCP/IP、UDP、IP、IPX/SPX 和 HTTP 进行通信的能力以及对象的静态/动态调用等特性。它最适合面向 Microsoft 产品的环境。它包括以下功能:
- 定位和加载远程类。
- 定位远程对象并提供对它们的引用。
- 启用远程方法调用。
下表描述了差异:
RMI |
DCOM |
---|---|
In RMI every server object implements java.rmi.Remote interface. | In DCOM every object implements IUnknown. |
It uses JRMP as its underlying remoting protocol. | It uses Object Remote Procedure Call as its underlying remoting protocol. |
The mapping of an object name to its implementation is handled by the RMIRegistry. | The mapping of an object name to its implementation is handled by the Registry. |
The responsibility of locating object implementations falls on JVM. | The responsibility of locating object implementations falls on Server Control Management. |