Interaction paradigms for distributed object-oriented programming
Abstract
Current trends in large-scale distributed programming on a network of workstations are experiencing a paradigm shift into object-orientation. This is primarily driven by the need for modular, compact, portable and reusable code. This thesis describes the design of a strongly typed distributed object-oriented programming language Pragati and within its framework, ‘interaction spaces’-a new distributed programming abstraction. A prototype implementation for a network of workstations is discussed.
A distributed Pragati application is composed of concurrently and cooperatively executing distributed objects in an object space spread across workstations. Each distributed object consists of a number of concurrent agents manipulating shared resources encapsulated by it. The principal paradigms of object interaction are: synchronous and asynchronous agent invocations, future datatypes for asynchrony, shared resources of distributed objects for intra-object data sharing, interaction spaces or ispaces for inter-object interactions and finally interactions via distributed exceptions in response to abnormal situations. Apart from these features, Pragati supports subtyping and type parameterization. The design of Pragati reflects the challenges of integrating conflicting requirements-in particular, the support for object interactions and distribution transparency.
Pragati’s ispaces capture a variety of distributed object interactions-aiding transparent data migration across workstations. An ispace is a distributed shared memory abstraction, implemented using entry consistency protocols as a means to reduce network latencies. When a distributed object is embedded within an ispace, the ispace inherits the object’s behaviour and therefore the ispace’s behaviour can be customized. Multiple active ispaces within a distributed program substantially reduce the need for coordination chores that occur when an application is programmed in most distributed languages.
An overview of the thesis is as follows: After surveying the state of the art of distributed object-oriented languages, we introduce Pragati through examples highlighting ispaces and other features. Next, we compare and contrast Pragati with its contemporaries. We then describe a prototype implementation of Pragati. The Pragati compiler translates Pragati programs into a subset of C++ and calls of the Pragati runtime system-implemented for a network of VAXstation 2000 workstations. We highlight the performance of object interactions with a set of feature-specific benchmark programs. The thesis concludes with a discussion on how ispaces are useful for distributed object-oriented programming as well as the scope for future work on Pragati.

