Object Properties in the Raven System
Abstract:
Raven consists of an object-oriented programming language and a runtime system that supports distributed and multiprocessor computing. This paper describes the motivation behind the design of the object property scheme used in the Raven system, the behavioral semantics for each of the properties supported, and schemes by which inter-object dependencies can be described. Raven provides a set of system-defined properties, such as concurrency control and persistence, as well as support for user-defined properties. Raven is distinguishable from similar systems in several fundamental ways: the behavioral semantics of each system supported property is truly orthogonal to those of the others, allowing properties to be combined without side effects; the system allows the seamless integration of user-defined properties into the property scheme; and all properties (even user properties) can be assigned dynamically, in any combination, to objects, even after object creation. Property support is provided automatically by the system---no system calls from the user program are required. This scheme provides a simple yet powerful and flexible system where every object can have those properties required. Raven's design allows both the implementation of simple, efficient objects as well as applications that support robust, distributed atomic transactions.

