Web Services Contraptions @ Sun

The soul...
The feeds...
The stats ...
The links...
Friday Jul 23, 2004

A few thoughts on Java RMI and .NET Remoting

Some interesting differences between RMI and Remoting:

  • The concept of mobile code in Remoting and RMI is somewhat different - while RMIClassLoader allows to obtain the code for a single class, the smallest unit of deployment in .NET (and this is not limited to Remoting or mobile code) is the assembly. So, if you want dynamically linkbyte code to a running CLR, you have to use Fusion and load the entire assembly. However, the System.Reflection (and System.Refelction.Emit) classes allow for good intraspection and assembly handling.
  • There are no dynamic proxies in Remoting out of the box: While there have been some attempts to provide like functionality (see e.g. the Dynamic Proxy implementation for Apache Castle at http://cvs.apache.org/viewcvs.cgi/avalon-sandbox/avalon-net/DynamicProxy/) there is no whole hearted commitment (yet?) to support JDK 5.0 or even skeleton-like dynamic proxies 'out-of-the-box'.