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:
Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course.
- 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: 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.