Our goal of supporting incremental development with statically
typed techniques implies focusing on
distribution transparency. A weaker requirement is location
transparency ([Vinoski93]). We shall however specifically not consider
the techniques involved in providing it: we will simply suppose that
all objects are known through location independent handles (or
surrogates, or ambassadors, or smart pointers: the actual semantics
are not indifferent but are beyond the scope of this paper), and thus
take for granted that location transparent method invocation is
supported. We will, however, come back to the issue of insuring that
these handles are bound to the actual, potentially remote, resources.
We retain the idea of providing
asynchronous communications at the finest level of granularity, i.e.
between objects. Doing so, we preserve the integrity of our model as
the distributed configuration of the system changes during the
development. We will look for a scheme which would allow for static
support, and assist in dead-lock detection and resolution in a way
that would not be invalidated by further development.
Table of contents,
Up: the operation metaphor,
Next: virtual threads of control.