




Research Assistants: P. A. Muckelbauer, G. Rodriguez-Rivera, G. Baumgartner, and L. Cheng
Sponsors: SUN Microsystems, The National Security Agency (NSA)
The Renaissance team is involved with constructing a distributed object-oriented multiprocessor operating system purely designed and implemented with object-oriented techniques. This provides application programs with transparent access to system and remote objects distributed throughout a network of machines. The current implementation runs on the Sun SPARC family of machines and on the Encore Multimax multiprocessor.
We feel that object-oriented programming is an ideal approach to use in the construction of distributed systems. Object-oriented design techniques and programming stress modularity and data encapsulation through narrow and rigidly defined interfaces as a way of achieving low coupling between individual software components. Coupling measures the interdependencies between components. Low coupling is a desirable feature for systems because it increases the degree to which components can be modified, updated or replaced without affecting users of the component. Unfortunately, object-oriented interfaces are usually only accessible and enforced through specific languages or homogeneous systems. This severely limits the degree to which disjoint, unrelated components can interact in a multilingual, distributed environment.
Renaissance is focusing on overcoming these limitations. In particular, we are building a system which provides the ability for unrelated applications written in a variety of programming languages to obtain access to objects distributed throughout a network of machines and implemented in a variety of manners. To achieve our goals we create a first class description of an object's interface which has a runtime realization and is independent of any programming language or system. We provide translators for this description into a variety of languages and systems. These descriptions are used to generate language-specific interfaces to remote objects dynamically at runtime. The descriptions also allow flexible but complete interface specification providing both increased encapsulation and documentation.
For more information, please see http://www.cs.purdue.edu/Renaissance




