Difference Between RMI and DCOM

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.

Attention reader! Don’t stop learning now. Get hold of all the important Java and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.