Table of Contents:
- Principal Investigator.
- Productivity Measures.
- Summary of Objectives and Approach.
- Detailed Summary of Technical Progress.
- Transitions and DOD Interactions.
- Software and Hardware Prototypes.
- List of Publications.
- Invited and Contributed Presentations.
- Honors, Prizes or Awards Received.
- Project personnel promotions obtained.
- Project Staff.
- Misc Hypermedia URL.
- Keywords.
Principal Investigator.
- PI Name: Gary E. Lindstrom
- PI Institution: University of Utah
- PI Phone Number: 801-581-5586
- PI Fax Number: 801-581-5843
- PI E-mail Address: lindstrom@cs.utah.edu
- PI URL Home Page: http://www.cs.utah.edu/~gary/
- Grant Title: Mach Shared Objects
- Grant/Contract Number: N00014-91-J-4046
- R&T Number: R&T 4331818---01
- Reporting Period: 1 Oct 93 - 30 Sep 94
Productivity Measures.
- Number of refereed papers submitted not yet published: 1
- Number of refereed papers published: 7
- Number of unrefereed reports and articles: 3
- Number of books or parts thereof submitted but not published: 0
- Number of books or parts thereof published: 1
- Number of project presentations: 2
- Number of patents filed but not yet granted: 0
- Number of patents granted and software copyrights: 2
- Number of graduate students supported >= 25% of full time: 4
- Number of post-docs supported >= 25% of full time: 0
- Number of minorities supported: 0
Summary of Objectives and Approach.
- Objectives: The commonality of Unix-based open systems has greatly
advanced software portability, sharing and interoperability. The MSO
project is elevating that commonality through construction of an
object manager (OM) layered on modern operating systems. Our OM is
based on system server concepts, presenting a standardized
interface to C++ and Common Lisp (CL) programs. The MSO approach to
persistence emphasizes (i) generality of source language support, (ii)
portability and heterogeneity, (iii) data evolution, (iv) distributed
implementation and access, and (v) the representation of software
components as objects managed through a pervasive system service.
- Approach: The MSO OM focuses on efficient management and sharing
of modules as computational resources, including system and user libraries,
data schemata, class implementations, and persistent objects. This is
achieved through OMOS (Object/Meta Object Server), which provides
comprehensive module definition, combination and mapping. These capabilities
are exploitable in O-O languages through abstractions for object naming, data
type management, persistence, modularity, distribution, and shared object
mutation control. Compiler and platform heterogeneity are obtained through
system-generated objects describing module types. The Alpha_1 CAGD/CAM system
constitutes the MSO OM's primary validation vehicle. Alpha_1 is a demanding
test case, due to its code size, versatility, and existing hand-crafted
methods for persistence and data evolution.
Detailed Summary of Technical Progress.
The MSO project is in its final six months of funding.
Architectural design and prototyping of all major software components
have been completed. These components include (1) the OM itself, (2)
C++ and Common Lisp language embeddings, and (3) the OMOS module
manipulation server.
- The MSO OM architecture has been finalized, and
major components prototyped (see pubs.
3, 11). Two symbolic object
referencing interfaces have been constructed: (i) an NFS-based
interface providing portability, distribution, and Unix file-like
semantics, and (ii) a direct interface providing transaction control
over shared object mutation.
-
Our two language embeddings have been architected and prototyped (C++:
pub. 8; CL: pubs.
4,
7,
9). Each thoroughly supports persistence as
an orthogonal language extension, i.e. persistence is conferred
per-instance on any datatype, through reachability. The C++ system
exploits portability and heterogeneity through read-only analysis of
source files by a preprocessor. The CL system provides fully general
persistence by routing all references through an indirection table.
- The logical organization of OMOS is being re-engineered to exploit a
general language processor framework (pubs. 5, 6 12), OMOS's manipulation of modules is
being extended to provide semantically-sensitive adaptive linking within a
newly ARPA-funded operating system (OS) reorganization project ("Fast and
Flexible Mach-Based Systems"; pubs. 1, 2, 10).
Transitions and DOD Interactions.
- Brian Boesch of ARPA/CSTO visited the project on Nov. 8, 1993, and
was briefed on applications of MSO tools to flexible system software
modularization.
- David Hislop of ARO visited on March 9, 1994, and was briefed on
the MSO approach to software component management.
- Michael S. Saboe of HQ Army Materiel Command visited on
April 14, 1994, and was briefed on implications of MSO technology for
legacy software system maintenance and re-engineering.
- Edward Thompson, Director of ARPA/SISTO, visited on September 8, 1994,
and was briefed on MSO accomplishments and completion plans under current
funding.
Software and Hardware Prototypes.
- Goofie
is a preprocessor for C++ class declarations which
generates dossiers describing each class seen. These
dossiers can be linked into applications to provide polymorphic object
manipulation capabilities. The current version allows storing and
retrieving objects from a persistent object store. Future
enhancements will include a run-time type information system (RTTI),
and remote procedure call (RPC).
- An alternative approach to C++ dossier generation
has been prototyped through modification of the GNU C++
compiler. In contrast to the preprocessor based technique just described,
this approach requires less user source code compliance.
In addition, specialized run-time
support can be introduced, such as maintenance of a heap map permitting
object boundary resolution of addresses internal to an object, and dynamic
loading of objects of previously unknown subclasses ("dynamic
inheritance hierarchy expansion").
- OMOS -
An Object/Meta-Object Server
is an active object server which manages executable
programs and their components as a set of composable objects.
Besides replacing the traditional services of a linker, OMOS
is able to provide dynamic object loading, shared libraries,
program analysis, and custom application construction.
- UCL+P is a persistent superset
of Common Lisp which maintains Lisp
semantics across the storage/retrieval of values. Persistence features
include concurrent atomic transactions, transparent
demand loading and storing of values.
The implementation of UCL+P
relies on extensive low-level modifications to the Utah Common Lisp compiler
and run-time system, the latter being modified to route all object references
through a relocation vector.
List of Publications.
- Douglas B. Orr, Robert Mecklenburg, Peter J.
Hoogenboom, Jay
Lepreau, "Dynamic
Program Monitoring and Transformation Using the OMOS Object Server", In
"The Interaction of Compilation Technology and Computer Architecture, Kluwer
Academic Publishers, Lilja and Bird, editors
- Bryan Ford, Jay Lepreau, "Microkernels Should
Support Passive Objects", Proc. International Workshop on Object Oriented
Operating Systems, IEEE Computer Society, Asheville, NC, December 9--10, 1993,
Luis-Felipe Cabrera and Norman Hutchinson, editors, pp. 226-229
- Douglas B. Orr, Robert Mecklenburg, Ravindra
Kuramkote, "Strange
Bedfellows: Issues In Object Naming Under Unix", Proc. International
Workshop on Object Oriented Operating Systems, IEEE Computer Society,
Asheville, NC, December 9--10, 1993, Luis-Felipe Cabrera and Norman
Hutchinson, editors
- James H. Jacobs,
Mark R. Swanson, Robert R. Kessler, "Persistence is
Hard, Then You Die! or Compiler and Runtime Support for a Persistent Common
Lisp", University of Utah
Computer Science Department Technical Report UUCS-94-003, January 1994
- Guruduth Banavar, Gary Lindstrom, "The Design of Meta-Architectures
For Object-Oriented Languages", Proc. Third Golden West International
Conference on Intelligent Systems, Las Vegas, NV, June 1994
- Guruduth Banavar, Gary Lindstrom, Douglas Orr, "Type-safe Composition of Object
Modules", In "Computer Systems and Education: In honour of Prof. V.
Rajaraman," Tata McGraw Hill Publishing Company, Limited, Bangalore India, N.
Balakrishnan, T. Radhakrishnan, D. Sampath and S. Sundaram, editors, pp.
188-200, June 22-25, 1994
- James H. Jacobs,
Mark R. Swanson. "Syntax and Semantics of a Persistent
Common Lisp", Proc. of the 1994 ACM Conference on Lisp and Functional
Programming, Orlando, FL, June 1994
- Robert
Mecklenburg,
Charles Clark, Gary
Lindstrom, Benny Yih, "A Dossier Driven Persistent Objects
Facility", Proc. of the USENIX Association C++ Conference, April 1994,
Cambridge, MA, pp. 265-281
- James H. Jacobs,
"UCL+P --- A
Persistent Common Lisp", PhD dissertation, University of Utah Computer Science Department,
August 1994
- John B. Carter, Bryan Ford, Mike Hibler, Ravindra Kuramkote,
Jeffrey Law, Jay Lepreau,
Douglas B. Orr, Leigh
Stoller, Mark R. Swanson,
"FLEX: A Tool for
Building Efficient and Flexible Systems", Proc. Fourth Workshop on
Workstation Operating Systems, IEEE Computer Society, Napa, CA, October
1993
- Sudheer Thakur, "An Empirical Study of Persistent
Object Stores", Master of Science thesis, University of Utah Computer
Science Department, December 1993
- Guruduth Banavar, Gary Lindstrom, "Modular Language
Processors As Framework Completions" University of Utah Computer Science
Department Technical Report UUCS-93-026, October 1993
Invited and Contributed
Presentations.
- Gary Lindstrom gave a presentation entitled "The Architecture of a
Persistent C++ System" at the ARPA Persistent Object Bases Program
workshop, Madison WI, May 23, 1994
- Gary Lindstrom presented the position paper "Module
Management As A System Service", at
Session IV-B Systems and Applications
of the OOPSLA '93 Workshop on Object-Oriented Reflection and Metalevel
Architectures, October 1, 1993 (reviewed in OOPSLA '93 Addendum to the
Proceedings, p. 125).
Honors, Prizes or Awards Received.
- Gary Lindstrom served on the program committee of the
1994 International Conference on Computer Systems and Education (in honor
of V. Rajaraman)
- Gary Lindstrom served as an External Doctoral Thesis Examiner for
the McGill University Faculty of Graduate Studies and Research
- Robert Kessler continued service as Co-Editor-In-Chief of
Lisp and Symbolic Computation Journal
- Robert Kessler served as General Chair
of the 1994 Lisp and Functional Programming Conference
-
Jay Lepreau is serving as Program Chair for the Operating System
Design and Implementation (OSDI) conference, to be held November 1994
in Monterey, CA
- Charles F. Clark completed his IBM Graduate Fellowship, and defended
his PhD dissertation
entitled The Dynamic Expansion of Class Hierarchy on
August 5, 1994
- James H. Jacobs defended his PhD dissertation entitled
UCL+P: A Persistent Common Lisp on May 20, 1994
Project Personnel Promotions Obtained.
Project Staff.
- Principal Investigators:
Gary Lindstrom,
Robert R. Kessler and
Richard Riesenfeld
- Faculty Participants
Robert Mecklenburg and
Mark R. Swanson
- Research Staff:
Jeff Law,
Jay Lepreau and
Leigh Stoller
- Graduate Research Assistants:
Guruduth Banavar,
Charles Clark,
Terry Critchlow,
James H. Jacobs,
Ravindra Kuramkote,
Douglas B. Orr and
Benny Yih
- Project Secretary:
Loretta Cruse
Misc Hypermedia.
- Mach Shared
Objects home page
- A complete list of MSO publications
- The quad
chart supporting this report
Keywords.
- Persistence
- Object management
- Class descriptor objects ("dossiers")
- Modules as objects
- Portable shared libraries