The Paderborn Remote Method Invocation (PadRMI) Library is a lightweight replacement for Java RMI that supports high-level routing. Imagine a distributed application whose components reside in different private, NAT'ted subnetworks; in each subnetwork, only one special gateway component is accessible from outside through the firewall; thus, remote method invocations between two components in different subnetworks need to be routed via the according gateway components. Using PadRMI, this routing task can be performed efficiently with respect to both running time (no deserialization and re-serialization overhead) and implementation work.
PadRMI has been developed at the Heinz Nixdorf Institute under my lead. Please visit the project website for further information http://padrmi.sourceforge.net/.