Integral to the representation of "everything as an object" is the concept of proxies. A proxy is an object which stands in for something else. It may take the form of a remote reference to a remote object, a CORBA- style stub, or the conceptualization of CICS server data and CICS transaction programs as an object. It may represent a remote object, an object in a different language, or even a persistent object. Regardless, from the proxy holder's viewpoint, the proxy is the object and can be stored in variables, passed as arguments and sent the messages specified in its related interface.
Remote references are proxies which identify particular objects in particular object spaces (location) and explain (indirectly) how to get a message to that object. While you can treat them as you would normal objects, the increased message latency will make users aware of which references are local and which are remote. When tuning a distributed application you can test whether an object reference is local or remote using the sstIsRemote protocol.
For the most part, the differences among reference types supported in SST are hidden from you. However, with respect to object identity, differences are exposed. Smalltalk is a referential language. Other than a few objects (for example, SmallIntegers, Booleans) all objects are accessed by reference and even some referenced objects are truly values in that they cannot be modified (for example, Floats). SST attempts to maintain these semantics as much as possible but in some cases it is impossible. There are two kinds of references you are likely to encounter: transient references and symbolic references.