Skip to content
Related Articles

Related Articles

Difference Between RMI and DCOM

Improve Article
Save Article
  • Last Updated : 27 Aug, 2020
Improve Article
Save Article

In this article, we will see differences between Remote Method Invocation(RMI) and Distributed Component Object Model(DCOM). Before getting into the differences, let us first understand what each of them actually means.

RMI applications offer two separate programs, a server, and a client. There are some tasks that are performed by the server program i.e. to create some remote objects, to make references to objects, and also to wait for the clients so that they invoke methods on these objects. A client obtains a remote reference to one or more remote objects on a server and invokes methods on them. Basically, RMI provides the mechanism through which the server and client can communicate and pass information back and forth. The RMI consists of three layers:

  • Stub/Skeleton layer
  • Remote Reference layer
  • Transport layer

The relationship among these layers is as shown in the following figure:

DCOM is Microsoft’s solution for Distributed computing. It allows one client application to remotely start a DCOM server object on another machine and invoke its methods. It gives features like language independence, ability to communicate using TCP/IP, UDP, IP, IPX/SPX, and HTTP and static/dynamic invocation of objects. It is best suited for an environment that is Microsoft product-oriented. It includes the following functions:

  • Locating and loading remote classes.
  • Locating remote objects and providing references to them.
  • Enabling remote method calls.

The following table describes the differences:



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.
My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!