Java RMI和DCOM的区别
RMI和DCOM都是用于实现分布式对象计算的技术。RMI是基于Java的技术,而DCOM则由Microsoft开发。虽然它们都是由两大技术巨头为同一目的构建的,但在设计、实现和使用方面存在一些显著的差异。本文将对RMI和DCOM进行比较并列出一些区别。
RMI vs DCOM
分布式对象
要理解RMI和DCOM之间的差异,有必要了解分布式对象计算,因为这两个术语都属于同一范畴。当我们使用具备分布式系统软件的计算机网络连接多台自治计算机时,这被称为分布式系统。这个系统的计算机可以位于不同的位置,但用户将体验到一个集成的计算设施。
分布式对象计算这个术语指的是一种在异构网络上分布对象的技术。它扩展了面向对象的编程系统。
RMI
RMI是远程方法调用的缩写。它是一种基于Java的技术,用于通过允许运行在一个Java虚拟机中的对象调用在另一个JVM中运行的对象的方法来构建分布式应用程序。我们可以在不同的机器之间进行通信和共享数据。
RMI使用客户端-服务器架构,其中客户端是调用远程方法的应用程序,服务器是提供这些方法实现的应用程序。客户端和服务器可以位于同一台机器上,也可以位于通过网络连接的不同机器上。
它包括三个层次
- 存根/骨架层 :存根是客户端上表示服务器端远程对象的代理对象。骨架是服务器端上的一个辅助对象,接收来自存根的请求并调用远程对象的方法。
- 远程引用层 :它处理对远程对象的引用的创建、删除和管理。
- 传输层 :它提供客户端和服务器之间的低级通信机制。
DCOM
DCOM是分布式组件对象模型的缩写,支持语言无关通信。它的底层协议是对象远程过程调用(ORPC)。应用程序可以使用ORPC在不同系统上远程启动和调用DCOM服务器对象的方法。它主要在Windows平台上使用,因为它基于COM服务。
DCOM实际上是“通过网络的COM”的分布式版本。这个COM规范在二进制级别上工作,允许使用多种编程语言(例如C++、Java、Object Pascal、Visual Basic和COBOL)编写DCOM服务器组件。这些组件可以在任何支持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进行了比较分析。