[comp.lang.c++] A Modular and Open Object-Oriented Database System

thatte@csc.ti.com (Satish Thatte) (09/15/90)

             A MODULAR AND OPEN OBJECT-ORIENTED DATABASE SYSTEM

On 30 August 1990, Texas Instruments Incorporated, Dallas, TX was awarded
a three year contract (Contract No. DAAB07-90-C-B920) to develop a modular
and open object-oriented database system.  The contract is funded by
DARPA/ISTO and is being managed by the U.S. Army, CECOM, Fort Monmouth,
N.J.  The contract is being executed at TI's Information Technologies
Laboratory, Computer Science Center, Dallas, TX.

INTRODUCTION

Complex applications, such as Computer-Aided Design, Computer-Aided
Manufacturing (CAM), Computer-Aided Software Engineering (CASE), Command,
Control, Communications, and Intelligence (C3I), and knowledge-based
expert systems, can derive benefits from object-oriented programming:
abstraction, modularity, extensibility, and reuse.  However,
object-oriented languages do not provide direct support for storing,
sharing, and reusing persistent objects.  Today's relational databases
provide some help but, since they do not provide data models that match
those in programming languages, considerable code must be developed to
translate information between the relational and object-oriented worlds
(the "impedance mismatch" problem). Various proposed object extenstions to
the relational data model do not address the impedance mismatch problem
between a host object-oriented programming language and an extended
relational data model.  Further, today's relational databases are usually
implemented as monolithic black boxes with internal interfaces that are
not public.  Special needs frequently arise that cause designers to
reimplement special purpose systems at great expense.  This contract is
aimed at addressing these problems.

The goal of the contract is to develop technology for building a modular
and open object-oriented database system, called Open OODB.  It will be
arrived at through the consensus of the DARPA community.  The system will
have a modular architecture which will allow the addition of new modules,
the deletion of unneeded modules, and the substitution of modules with
user unique modules.  Open OODB will be designed to support applications
written in object-oriented languages, initially C++ and Common Lisp Object
System (CLOS).

REQUIREMENTS

Under this contract, TI will design an open and modular object-oriented
database system.  The word "open" will be interpreted as follows: all
modules of Open OODB will have non-proprietary well-documented interfaces.
 These modules can be changed or replaced to improve performance or vary
functionality.  The Open OODB System will provide a persistent language
model that matches the data model used by object-oriented programming
languages, initially C++ and CLOS. This will solve the "impedance
mismatch" problem described above; provide a seamless interface between
persistence objects and application programs; and provide important
benefits like strong typing at the application database interface.  To
avoid the problem with reuse of monolithic systems, the architecture of
Open OODB will be modular.  Database designers and administrators will be
able to add, replace, or remove modules as needed.  Modularity will
encourage incremental improvement.

A major thrust of the contract will be to develop consensus on
specifications of OODB modules and interfaces.  TI will solicit inputs
from OODB research community, OODB implementors (prototype builders and
commercial vendors), and OODB users (application developers, such as CAD,
CAM, hypermedia, expert systems, CASE) to help develop the consensus. 
Such consensus is essential for developing standards in the rapidly
evolving field of OODBs.  Without such consensus and eventual standards,
the OODB field will remain fragmented, preventing it from reaching its
full potential.  Similarly, proprietary specifications and subsystems
(such as proprietary object models, compilers, storage servers) will also
hurt the OODB community.    TI will complete an implementation conforming
to the consensus on Open OODB in support of C++ and CLOS applications.  TI
will distribute  Open OODB within the DARPA community.

To ensure that the specifications of Open OODB are of lasting value, that
the Open OODB modules are useful to the DARPA community, and to accelerate
agreement within the OODB research community, TI will conduct four
workshops.  These workshops will serve to gain acceptance for an open,
modular object-oriented database design specification and to obtain
consensus on key module interface specifications (e.g., Object Management
Module, Extended Transaction Module, Change Management System Module, and
object Query Module).  Attendees will include key researchers, application
developers, end users, and DARPA/DoD representatives (approximately 30). 
They will have expertise in OODB and conventional databases,
object-oriented programming languages, or in application areas such as
Computer-Aided Design, Software Computer-Aided Design, or
Computer-Integrated Manufacturing.  These workshops are described below.

Functional Architecture Validation Workshop: Obtain DARPA community review
of the requirements and preliminary Functional Architecture Specification.

Module Interface Validation Workshop: Obtain a critical review of the
preliminary Module Interface Specification for each Open OODB module.

Interim Design Review Workshop: Provide a critical review of the revised
Module Interface Specification for each Open OODB module.

Final Program Review Workshop: Review the final Functional Architecture
Specification and final Module Interface Specification documents.

OPEN OODB MODULES

TI will design and implement an open, modular object-oriented database
system, called Open OODB, that can be used by the DARPA community.  It
will be implemented on a standard Unix platform (e.g., Sun 4) to support
both C++ and CLOS applications.  Open OODB will be designed using standard
software (e.g., Unix, C++, CLOS, SQL, and the X Window System), and
off-the-shelf language processors and storage servers. It will include an
Application Programmer's Interface (API) to support C++ and CLOS
applications that require persistent object management facilities
(persistence, queries, transactions, change management). The majority of
the modules will be implemented in C++ for portability.  The Open OODB
system will be a working and usable system.  Open OODB will have the
following major modules:

Persistent Object Store Module: Manage persistent objects and type
information, a "get/put" interface for retrieving and storing objects in
their persistent disk-resident form, and physical organization controls
for clustering and prefetching.

Transactional Store Module: Interface from the Persistent Object Store
Module to a backend long term, recoverable, typeless storage facility that
supports an atomic distributed commit service.

Persistent Object Management Module: Provide seamless access to persistent
C++ and CLOS objects, via object faulting, and base-level support for
query processing, for change management, and for extended transactions.

Extended Transaction Module: Support cooperative work that builds on the
lower level transactions in the Transactional Store Module to provide
nested transactions, long transactions, and a check-in/check-out facility
for persistent objects.

Change Management System Module: provide support for versions and
configurations of objects.

Object Query Module: Support set-oriented queries on objects.  Complex
objects, objects identify, inheritance, and behavioral queries are
supported by this module.  The query optimizer will be open to allow
extensions like semantic optimization, cooperative response, materialized
views, and user-supplied indices.

Data Dictionary Module: Provide run-time access to object schema
(type/class) definitional information.

Hypermedia Interface: Interface to an existing Hypermedia Interface Module
to provide a way to browse, link, query, and change user-defined objects,
demonstrating how a next-generation User interface Toolkit/Management
System can couple with Open OODB.

The Open OODB architecture will provide a framework for suppliers of these
and future modules to plug in and out the modules.  This will allow the
builders as well as users of OODB technology to build a customizable OODB
based on a "pay-as-you-need" philosophy.


FURTHER INFORMATION

TI is seeking community inputs that will help develop consensus on Open
OODB specifications, interfaces, and modular and open architecture in
support of C++ and CLOS applications.  TI expects these inputs to come
from database researchers, OODB implementors (prototype builders and
commercial vendors), people involved in OODB standardization processes,
and application developers planning to use OODB technology.

If you are interested in helping form consensus on Open OODB, or would
like to be kept informed about the progress on Open OODB work, please
contact either Dr. Satish Thatte (Program Manager) or Dr. Craig Thompson
(Principal Investigator).

Dr. Satish Thatte                     Dr. Craig Thompson
Computer Science Center               Computer Science Center
Texas Instruments                     Texas Instruments
Dallas, TX 75265                      Dallas, TX 75265

Phone: 214 995-0340                   Phone: 214 995-0347
Fax: 214 995-0304                     Fax: 214 995-0304
E-mail: Thatte@csc.ti.com             E-mail: Thompson@csc.ti.com
Bob Peterson                Compuserve: 70235,326          Expressway Site,
Texas Instruments           Internet: peterson@csc.ti.com   North Building,
P.O. Box 655474, MS238      Landline: (214) 995-6080         2nd Floor,
Dallas, Texas, USA 75265                                      CSC Aisle C3