The implementation of distributed applications can be based on a multiplicity of technologies, e.g. plain sockets, Remote Procedure Call (RPC), Remote Method Invocation (RMI), Java Message Service (JMS), .NET Remoting, or Web Services. These technologies differ widely in complexity, interoperability, standardization, and ease of use. To achieve the highest efficiency, the use of plain sockets is advisable, whereas highest interoperability and standardization argue for Web Services. Real world applications requirements are a trade-off between efficiency, development costs, usability, reliability, interoperability, and so on. For example, a multimedia streaming application requires high performance to avoid delays, whereas Internet trading platforms depend on high interoperability, reliability and availability. Since Java RMI and .NET Remoting support fast development of highly efficient applications, many developers choose one of these technologies to realize their applications. Besides differences in design, the two technologies offer diverse performance characteristics. This paper has two main contributions: (1) a comparison of the design and architecture of Java RMI and .NET Remoting is presented, (2) an experimental performance analysis with respect to various aspects of both technologies is conducted.
['R. Schwarzkopfx', 'Markus Mathes', 'Steffen Heinzl', 'Bernd Freisleben', 'Helmut Dohmann']
Java RMI versus .NET Remoting Architectural Comparison and Performance Evaluation