[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CMU Common Lisp



  >>Date: Mon, 17 Jun 91 16:44:20 EDT
  >>From: Rob.MacLachlan@LISP-PMAX2.SLISP.CS.CMU.EDU
  >>Subject: Re: CMU Common Lisp 
  >>
  >>
  >>We'd really like to have a persistent OODB for CMU CL.  It seems useful
  >>enough that we'd been making vague plans to implement one in the future.
  >>But we don't currently have any manpower to devote to that project.
  >>
  >>However, we can help you with interfacing to CMU CL, and can offer general
  >>suggestions about Common Lisp interfaces.
  >>
  >>There does seem to be a lot of interest out there in implementing
  >>persistent Lisp systems.  When I posted some suggested directions for Lisp
  >>development to comp.lang.lisp, the suggestion of adding persistence
  >>generated the most interest.  But the interest was generally fairly
  >>academic; I didn't see anyone else who has the practical orientation that
  >>you do.
  >>
  >>At CMU, the Camelot project did some work on interfacing CMU CL to its
  >>distributed transaction processing system, since it wanted to be able to
  >>claim that it was a multi-language system.
  >>
  >>Can you point me to some info on what you are doing?
  >>
  >>  Rob

Sure.  I've attached the announcement of the DARPA Open OODB contract and a set
of questions and answers about the project that was published in the March 1991
ACM SIGMOD Record.  At the end there is a questionaire that you can fill out
and send to us if you'd like to participate or receive periodic information
about the project.  In particular, I'm looking for people to review the Common
Lisp language binding that I'm in the process of putting together.

Also, we're in the process of updating our bibliography to include the latest
project documents.  I'll send you a copy in a couple of days.

Steve Ford
Computer Science Center
Texas Instruments
Net: ford@csc.ti.com
Tel: (214) 917-7432

-------------------------------------------------------------------------------

             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
Texas Instruments                     Texas Instruments
Computer Science Center               Computer Science Center
P.O. Box 655474, M/S 238              P.O. Box 655474, M/S 238
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

-------------------------------------------------------------------------------

	       A Modular and Open Object-Oriented Database System

			        Satish M. Thatte
		      Information Technologies Laboratory
			 Texas Instruments Incorporated
			    P.O. Box 655474, M/S 238
			      Dallas, Texas 75265

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 administered 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, Texas.  So far, we have received an
outstanding response from interested parties (database research community, OODB
application developers, OODB builders) to our contract award announcement.
This communication is a collection of most commonly asked questions and answers
to them.

			     Questions and Answers

Q:  What is a modular and open OODB?

A: It is an OODB based on a modular architecture to support applications
written in object-oriented programming languages, initially C++ and Common Lisp
Object System (CLOS).  Example modules are: Persistent Object Store, Object
Manager, Trasaction Manager, Change Manager, Object Query Processor.  Module
interfaces will be fully documented and published.  The architecture will be
open in the sense that modules can be replaced with other modules, and new
modules that are compliant with the Open OODB architecture can be added.
Modules that are not needed for an application can also be deleted, supporting
a "pay-as-you-need" philosophy.  This is in sharp contrast with most database
systems, which have proprietary, closed, and monolithic architectures.


Q:  What are the main objectives of Open OODB?

A: 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.  However, 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 extensions 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.

An important objective of the contract is to develop technology for building a
modular and open object-oriented database system.  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.
The word "open" will be interpreted as follows: all modules of Open OODB will
have well-documented interfaces.  These modules can be changed or replaced to
improve performance or vary functionality.

Q:  Can you give us more technical information on Open OODB?

A: Open OODB will be implemented on a standard Unix platform (e.g., Sun SPARC)
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.  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.


Q:  Why concentrate on only persistent C++ and CLOS?

A: C++ and CLOS are two popular object-oriented languages being used today.
Both C++ and CLOS are candidates for ANSI standardization effort.  Development
of a yet another object-oriented language to support persistence and database
amenities is outside the scope of this contract.  C++ and CLOS represent our
initial choice of object-oriented languages.  We believe that the Open OODB
architecture would allow us to support other object-oriented languages in the
future.  Many of the Open OODB modules, such as the storage system, will be
common to C++ and CLOS clients.

We believe that Persistent (X), where X = C++ and CLOS at the present time,
will not be limited to a "niche" market.  Just take a look at how rapidly C++
is gaining popularity; large number of production applications in C++ already
exist.  We would like to emphasize that Open OODB is not limited to Persistent
(X); it will also support transactions, queries, and change management (schema
evolution and version control) for Persistent (X) objects.


Q: Why start from a language-based instead of a language-independent
object model?

A: We believe that there is a good potential of reaching consensus on
Persistent (X), where X = C++ and CLOS.  Several proposals have been made to
develop language-independent object-oriented data models; some of them are
ground-up efforts and some are extensions to the relational data model.  None
of these object data models have achieved any critical mass.  We do not believe
that the community is ready to reach a consensus on a language-independent
object data model.  Moreover, even if such a consensus develops, it will not
address the impedance mismatch problem between a host object-oriented
programming languages and a language-independent object data model.  People
will not simply stop using C++ and other popular object-oriented languages,
just because a language-independent object data model seems to gain momentum.
This does not mean that the development of language-independent object data
models is not a noble goal; in fact, it is highly desirable, but its role will
be complementary to that of Persistent (X).  We believe that both approaches
can co-exist and complement each other.


Q:  Can you tell us about the process that you will use to execute the project?

A: A major thrust of the contract will be to develop consensus on
specifications of OODB modules and interfaces.  TI will solicit inputs from
DARPA database 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.  At DARPA and CECOM requests, TI will distribute
the specifications of Open OODB and software implementing those specifications
within the DARPA community (up to 25 sites).

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 DARPA 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
(scheduled on March 13-15, 1991 at Dallas, TX).  A "Call for Participation"
invitation has been sent to over 100 invitees who had responded to our initial
contract award announcement over electronic networks.  Final attendees will be
selected based on the position papers submitted and directives from DARPA/ISTO
and CECOM, subject to the limitation of 30 attendees.

Module Interface Validation Workshop: Obtain DARPA community review of the
preliminary Module Interface Specification for each Open OODB module (scheduled
3Q 1991).

Interim Design Review Workshop: Obtain DARPA community review of the revised
Module Interface Specification for each Open OODB module (scheduled 3Q 1992).

Final Program Review Workshop: Obtain DARPA community review of the final
Functional Architecture Specification and final Module Interface Specification
documents (scheduled 2Q 1993).


Q:  What is the schedule for the Open OODB contract?

A: Phase I of Open OODB (September 1990 - March 1991) will focus on the overall
architecture of an OODB and will result in a Preliminary Architecuture
Specification.

Phase II (March 1991 - December 1991) will focus on module specification.

Phase III (January 1992 - December 1992) will result in module implementations
and a demonstration that the modules work together.  Distribution to sites for
"government purposes" (as defined in the contract) will occur after this phase.

Phase IV in 1993 is an evaluation and consistency phase which will result in a
Final Report, including the Final Architecture and Module Interface
Specifications.

One workshop is associated with each phase as described earlier.  Dates in the
above schedule are approximate.


Q:  What is the level of funding?

A:  The contract award is for $ 2.6 million over the three year period.


Q:  How many people at TI are working on the contract?

A: We cannot reveal that information in compliance with the company policy.


Q:  What role will TI's Zeitgeist OODB play in Open OODB?

A: TI has invested its own substantial research effort on its Zeitgeist OODB.
Many of the same people that have worked on Zeitgeist OODB will also work on
Open OODB.  Wherever appropriate, portions of the existing technology base are
expected to be reused when designing and implementing the Open OODB system.


Q:  Does TI have a plan to productize Open OODB?

A:  As a company policy, TI  does not reveal its future product plans.  


Q:  How will TI distribute Open OODB software?

A: The Government shall have the right to distribute to a maximum of 25 sites
and to permit up to 100 government, academia, or corporate users to use the
Open OODB software for Government Purposes only.  the Government may modify and
compile any source code furnished as it sees fit so long as the use of such
modified or compiled source code is consistent with Government Purpose License
Rights.


Q: What is the relationship of Open OODB to X3/SPARC/DBSSG/OODBTG, OMG, and
other standardization efforts?

A: Well before the DARPA contract award, the Zeitgeist OODB project at TI has
been active in the OODB Task Group, an X3 study group to determine whether and
what standards should emerge for OODBs.  We are coeditors of the OODBTG Final
Report, including the Recommendations for Standards section, due in mid 1991,
and of the OODBTG OODB Reference Model, which provides dimensions of
comparisons for OODB systems.  In addition, we drafted the Survey of Vendors
and organized the first of the two OODBTG workshops, held at the SIGMOD '90
Conference in Atlantic City in May, 1990.

In addition, we have been active in Object Management Group and in OMG OODB SIG
(Special Interest Group).  We participated in drafting the Object Management
Architecture that is the backbone of OMG's Standards Manual.

DARPA Open OODB project plans to remain synchronized with both groups.  We will
adopt the OODBTG OODB Reference Model as a base document.  Any revisions
suggested by our work will be provided to OODBTG for consideration.  Our OODB
Requirements Document, a Phase I deliverable, will complement OODBTG and OMG
work and make it easier for application developers and OODB developers to
communicate their common requirements and coverage.  Our Phase I OODB
Architecture Document will provide a roadmap of how an OODB can be viewed by
OMG either as a "foreign tool" (a complete service) or as a collection of
services using the OMG Object Request Broker for communication.  Finally, our
Phase II deliverables will provide detailed descriptions of the modules of an
OODB.  They will be useful in comparing different approaches to Persistent C++
and Lisp, Transactions, Object Queries, Change Management, and other Open OODB
modules.


Q:  How can I participate in the DARPA Open OODB effort funded at TI?

A: If you have not already done so, please send the following e-mail message to
Dr.  Satish Thatte, Program Manager.  You will be kept informed based on the
response you provide.

----------------------------------------------------------------------

To: Thatte@csc.ti.com

Cc: key@csc.ti.com,ford@csc.ti.com

Yes, I am interested in the DARPA-funded Open OODB project at Texas Instruments.
Here is the information you requested.

                               Location Information 

Name:
Title:
Organization:
Postal address:
E-mail address:
Telephone number:
Fax number:

                                Interest Profile

Please answer by placing an "X" against your interests.

 General Interest:  receive periodic "news letter" on Open OODB progress from TI
                               Interested?    Yes --    No --    Maybe --

 Consensus building: discuss and critique Open OODB specifications and design 
                     (mostly by e-mail)
                               Interested?    Yes --    No --    Maybe --

 Workshop participation: Participate in DARPA Open OODB workshops 
                         (subject to TI and DARPA approval, and space limitation)
                               Interested?    Yes --    No --    Maybe --

 Application development on Open OODB: Develop applications on DARPA Open OODB
                               Interested?    Yes --    No --    Maybe --
                         (If yes, please indicate what applications you are interested
                          in implementing on top of DARPA Open OODB).

 Modules for Open OODB: Develop modules that can be plugged in DARPA Open OODB
                               Interested?    Yes --    No --    Maybe --
                         (If yes, please indicate what kind of modules)

 Other areas of interests: Please describe briefly.

 
-----------------------------------------------------------------------------------