next up previous
Next: Common middleware services Up: Distribution middleware Previous: CORBA

RMI and DCOM

 

We regard RMI and DCOM as two important implementations in this layer, although DCOM is more or less an architecture specification designed to be language-independent. RMI is a Java based implementation enabling developers to create distributed Java-to-Java applications. A complete specification can be found in [6]. DCOM is primarily implemented on Windows platforms, and specified by Microsoft [4]. RMI architecture is much like a simplified version CORBA structure, while DCOM is quite different as showed in Figure 6 below.

  
Figure 6: DCOM architecture

Sun Java RMI is a built-in native ORB in Java language. It supports making method invocations on remote objects. From practical programming point of view, developing distributed applications in RMI is simpler than developing with sockets since there is no need to design a protocol, which is an error-prone task. In RMI, the developer has the illusion of calling a local method from a local class file, when in fact the arguments are shipped to the remote target and interpreted, and the results are sent back to the callers. The underlying protocol for RMI is Java Remote Method Protocol (JRMP).

Microsoft DCOM is often called ``COM on the wire''. It supports remote objects by running on a protocol called Object Remote Procedure Call (ORPC). A DCOM client calls into the exposed methods of a DCOM server by acquiring a pointer to one of the server object's interfaces. The client object then starts calling the server object's exposed methods through the acquired interface pointer as if the server object resided in the client's address space. Since the COM specification is at the binary level it allows DCOM server components to be written in diverse programming languages like C++, Java, Object Pascal (Delphi), Visual Basic and even COBOL. As long as a platform supports COM services, DCOM can be implemented on the platform. However, it is practically not available except Windows systems.


next up previous
Next: Common middleware services Up: Distribution middleware Previous: CORBA

Henry Xiao
Wed Mar 30 17:14:20 EST 2005