# The Doorastha system

### Report B 00-01 May 2000

Writing distributed applications or adapting a centralized program for execution in a distributed environment is difficult, because of the inherent shift of paradigms and semantics. In the ideal case, distribution would just be an implementation detail. Yet with current platforms like RMI or CORBA, distribution is an absolutely non-trivial issue requiring large code changes and additional considerations.
For example, normal'' Java has referential semantics, i.e. objects are accessed through references which are always passed to methods \emph{by-value}. We would certainly like to keep these clear semantics in the case of a distributed application, too. With the standard Java distribution platform (RMI) however, objects used as arguments in a remote method invocation are by default \emph{copied} to the remote site. This obviously will affect the program's semantics, if the programmer is not aware of the difference.
We believe that it is a good approach to develop and test a given application in a centralized (multi-threaded) setting first and then configure and optimize it for a distributed environment. In this paper we present the Doorastha system that allows to configure the program without rewriting it and to preserve Java semantics.

Get the report in PostScript or PDF format.