Distributed, Shared and Persistent Objects: A Model for Distributed Object-Oriented Programming

Wang Xu, 1994

Distributed programs typically involve many interacting distributed processes and require the sharing of data among those processes. Such sharing is usually achieved by the remote access of shared data or by copying shared data between cooperating processes. Existing systems and languages usually treat the remote processes and the shared data of various types separately and differently. Describing and programming a distributed system at such a low level is not desirable and we propose unifying all the entities in a distributed system by using a uniform object model. All distributed entities, whether process or data, shared or non-shared, persistent or non-persistent are represented as objects.

In distributed object-oriented programming, the programming paradigm is interacting distributed objects rather than distributed data. We have established an object model for distributed, shared and persistent objects. The model introduces the distributed object context, which represents an object environment in which distributed objects are manipulated. Object activities and their states are also introduced in the model to describe the dynamic behaviours of distributed objects. the concept of orthogonal persistence is integrated in our model to support persistent object sharing.

Object protection is essential for object sharing. A security mechanism is designed for access control of shared distributed objects. This mechanism, called the private access channel, provides the same level of fine grained object-based security as the capability scheme.

A novel two-level garbage collection algorithm has also been designed and implemented to reclaim distributed garbage. It makes use of the local garbage collector (no matter what algorithm it uses) and deals with the distributed garbage efficiently.

This thesis presents an object model as a key to all the issues and ideas behind our research effort towards better distributed computing. A prototype of a distributed object-oriented programming system that conforms to our object model was implemented and is also described in the thesis. It is a distributed and persistent Smalltalk-80, called DPS system. The purposes of DPS system are to demonstrate the model, refine its details and provide an object-oriented platform for building applications that are intended to be used by a group of people who would like to use computers for communication and sharing information.