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.
- Difference between COM and DCOM
- Difference between CORBA and DCOM
- Difference between RPC and RMI
- Difference between RMI and CORBA
- How to run Java RMI Application
- Calculator Using RMI(Remote Method Invocation) in Java
- Difference and similarities between HashSet, LinkedHashSet and TreeSet in Java
- Difference between Stop and Wait protocol and Sliding Window protocol
- Similarities and Difference between Java and C++
- Difference between Yaacomo and and XAP
- Difference between VoIP and and POTS
- Difference and Similarities between PHP and C
- Difference between Time Tracking and Time and Attendance Software
- Difference Between Single and Double Quotes in Shell Script and Linux
- Difference between ++*p, *p++ and *++p
- Difference Between DOS and Windows
- Difference between Scanner and BufferReader Class in Java
- Difference between User Level thread and Kernel Level thread
- What’s difference between The Internet and The Web ?
- Difference between Priority Inversion and Priority Inheritance
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.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.