Improving Polymorphism and Concurrency in Common Object Models
Files
TR Number
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Most common object models of distributed object systems have a limited set of object-oriented features, lacking the advanced features of polymorphism' (an abstraction mechanism that represents a quality or state of being able to assume different forms) and
concurrency' (the ability to have more than one thread of execution in an object simultaneously). The lack of support for advanced features is a serious limitation because it restricts the development of new components and limits reuse of existing of components that use these advanced features. As a result, wrappers must be used that hide the advanced features or components must be re-implemented using only the features of the common object model.
In this dissertation, a new direction of research centered on a subset of object-oriented languages, specifically statically typed languages, is considered. One of the major drawbacks of existing distributed object systems is that they cater to a broad domain of programming languages including both object-oriented as well as non object-oriented languages. Mapping an object model into a non object-oriented language is a complex task and it does not appear natural to a native language user.
The interoperable common object model (ICOM) proposed in this dissertation is an attempt to elevate common object models (with the advanced features of polymorphism and concurrency) closer to the object models of statically typed object-oriented languages. Specific features of the ICOM object model include: remote inheritance, method overloading, parameterized types, and guard methods. The actor model and reflection techniques are used to develop a uniform implementation framework for the ICOM object model in C++ and Modula-3. Prototype applications were implemented to demonstrate the utility of the advanced features of the ICOM object model.
The main contributions of this dissertation are: design and implementation of a powerful common object model, an architecture for distributed compilation, and an implementation of a distributed object model using the actor model.