Abstract
Mobile code offers several capabilities such as bandwidth-efficient communication, disconnected operation, and support for dynamic and flexible systems. Nevertheless, mobile code based programming paradigms have difficulty in flowing from research activities to commercial systems. The main reason seems to be the lack of integration between the language support for mobility and a familiar programming environment. This paper addresses this issue and describes the basic functionalities of MobileRMI, a toolkit that extends Java RMI with mechanisms for creating and moving remote objects across different address spaces. A key feature of MobileRMI is the automatic updating of remote references to mobile objects, necessary to support remote method invocation even in the presence of object mobility. The extensions to Java RMI only affect the semantics of the remote reference layer, while leaving both the transport layer and the bytecode generation process unchanged.