Header Header

Remote Method Invocation

We built a Remote Method Invocation (RMI) implementation on top of Ibis. RMI is described here. Ibis boosts RMI performance using several optimizations, especially to avoid the high overhead of runtime type inspection that current RMI implementations have. Earlier projects (e.g., Manta) applied similar optimizations by writing parts of the runtime system in native code (C instead of Java), giving up Java's high portability. The philosophy behind Ibis is to try to obtain good performance without using any native code, but allow native solutions to further optimize special cases. For example, a Grid application developed with Ibis can use a pure-Java RMI implementation over TCP/IP that will run "everywhere". However, when the application runs on, say, a Myrinet cluster, the RMI runtime system can request Ibis to load a more efficient communication implementation for Myrinet that partially uses native code.