Some of the most difficult questions to answer when designing a distri
buted application are related to mobility: what information to transfe
r between sites and when and how to transfer it. Network-transparent d
istribution, the property that a program's behavior is independent of
how it is partitioned among sites, does not directly address these que
stions. Therefore we propose to extend all language entities with a ne
twork behavior that enables efficient distributed programming by givin
g the programmer a simple and predictable control over network communi
cation patterns. In particular, we show how to give objects an arbitra
ry mobility behavior that is independent of the object's definition. I
n this way, the syntax and semantics of objects are the same regardles
s of whether they are used as stationary servers, mobile agents, or si
mply as caches, These ideas have been implemented in Distributed Oz, a
concurrent object-oriented language that is state aware and has dataf
low synchronization. We prove that the implementation of objects in Di
stributed Oz, is network transparent. To satisfy the predictability co
ndition, the implementation avoids forwarding chains through intermedi
ate sites. The implementation is an extension to the publicly availabl
e DFKI Oz 2.0 system.