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.