Flexible Bindings for Fine-Grain, Distributed Objects in distributed systems
Résumé
We examine the issues of referencing and binding to objects in large-scale distributed systems. Flexible binding mechanisms are necessary to support large-scale, long running systems and applications. To assist object-oriented programs there is a need for cheap, fine-grain references, supporting objects of arbitrary type and distributed garbage collection. Support for large-scale systems includes referencing fragmented objects (groups) and federation of heterogeneous addressing mechanisms. Our object model separates logical objects from their representation atoms, binding a reference connects its source to an actual target atom, invocation calls a procedure of the bound atom. The primitive reference operations are duplication, binding, unbinding, redirecting and invoking target. Binding may cause type-checking, instantiation of an atom and linking of the atom's class. To support programmer-defined policies, the target object may redirect the reference to any of its atoms, particularly at bind time. We specify a general (but simple) binding protocol that supports the above mechanisms, actual implementations can be derived from it, trading off completeness for performance.