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.
[1]
Matjaz B. Juric,et al.
Java 2 distributed object middleware performance analysis and optimization
,
2000,
SIGP.
[2]
Jason Maassen,et al.
An efficient implementation of Java's remote method invocation
,
1999,
PPoPP '99.
[3]
Matjaz B. Juric,et al.
Object serialization analysis and comparison in Java and .NET
,
2003,
SIGP.
[4]
Matjaz B. Juric,et al.
Java RMI, RMI tunneling and Web services comparison and performance analysis
,
2004,
SIGP.
[5]
Don W. Browning.
Net Remoting
,
2010
.
[6]
Michael Philippsen,et al.
A more efficient RMI for Java
,
1999,
JAVA '99.
[7]
Denis Caromel,et al.
A High Performance Java Middleware with a Real Application
,
2004,
Proceedings of the ACM/IEEE SC2004 Conference.
[8]
Jason Maassen,et al.
Efficient Java RMI for parallel programming
,
2001,
TOPL.
[9]
Jason Maassen,et al.
Ibis: an efficient Java-based grid programming environment
,
2002,
JGI '02.