next up previous
Next: Test sets Up: Performance results Previous: Data types used

Protocol implementations

The first RMI tested was Sun's native implementation using the JRMP (Java Remote Method Protocol) protocol. The second protocol tested was Nexus. Although Nexus RMI supports language-interoperability between Java and C++ and HPC++[6], tests were conducted just for Java.

The third protocol used was SOAP RMI, which is an early implementation of RMI based on nanoSOAP, our implementation of a simple SOAPv1.0 serialization and deserialization mechanism. SOAP RMI uses an XML-Schema specification of the server interface to generate the associated stubs and skeletons. A remote object reference is an HTTP URL along with information that uniquely identifies the instance. The stubs and skeletons do not directly interact with the SOAP implementation, but instead use a communication object which is an abstraction that helps hide the underlying implementation of SOAP. This design is useful as it allows run-time insertion of different SOAP implementations. The tests were executed for only up to 10,000 objects. Memory limitations prevented larger test sizes; for example, in Sun RMI the recursion stack depth of around 1000 was a limiting factor. We were able to run bigger sizes only by adjusting the stack size option (-Xss) for the Java virtual machine, which can affect performance.


next up previous
Next: Test sets Up: Performance results Previous: Data types used
SoapTeam: Extreme Computing Lab
2000-08-17