With RMI, it is possible to not only do remote invocations (as the name implies) but also to pass objects by value between nodes, i.e. your task would not implement Remote
and be passed by reference but implement Serializable
and be passed by value. For the receiver to be able to handle what it gets, there is the RMIClassLoader.
See http://code.nomad-labs.com/2010/03/26/an-improved-rmi-tutorial-with-eclipse/ or http://www.javaworld.com/jw-12-1998/jw-12-enterprise.html?page=1 for examples.