lotus

previous page: 9.3) Persistence (Commercial Systems - Interfaces - Object-oriented Databases And Vendors)
  
page up: Object-Oriented Technology FAQ
  
next page: 9.3) Synchronicity (Commercial Systems - Interfaces - Object-oriented Databases And Vendors)

9.3) Subtleware (Commercial Systems - Interfaces - Object-oriented Databases And Vendors)




Description

This article is from the Object-Oriented Technology FAQ, by Bob Hathaway rjh@geodesic.com with numerous contributions by others.

9.3) Subtleware (Commercial Systems - Interfaces - Object-oriented Databases And Vendors)

Connecting C++ with Relational Databases

Subtleware for C++ (Subtleware) is a software development toolset which
openly automates C++ connectivity to relational databases by providing:

* A C++ pre-processor that automatically generates the code necessary
to read and write C++ objects to a relational database.

* A schema mapper that defines C++ classes from relational database
schema, and

* A class library that simplifies C++ application access to existing
relational data,

SUBTLEWARE INCREASES PROGRAMMER PRODUCTIVITY

Subtleware vastly simplifies the coding necessary for C++ to work with
relational databases:

* It jump starts application development by generating C++ class
definitions from relational database schema.

* It speeds application development by eliminating the need to
write hundreds of lines of database mapping code per class.

* It dramatically reduces application maintenance time by eliminating
the need to modify the database mapping code with each C++ class
definition change.

As a result, C++ application developers can focus on what brings value to
their organization, application development; and, C++ application
development projects can reduce their development costs as well as speed
their time-to-market.

SUBTLEWARE IS DESIGNED TO BE OPEN

* Subtleware adds value to your C++ development environment!
Subtleware fits into your existing C++ development environment by
working with your preferred C++ design tools, compilers, and class
libraries. No Subtleware-specific design tools are necessary.

* Subtleware works directly with your existing C++ class definitions!

* Subtleware adds value to your relational database systems!
Your C++ applications can work concurrently and share data with
your other relational database applications. Subtleware makes your
existing relational database into a powerful OODBMS.

* Subtleware library source code and generated code is freely
available! No run-time fees are imposed.

SUBTLEWARE IS WIDELY AVAILABLE

Subtleware runs on a wide range of computing platforms:
* PC's running Windows 3.x, Windows NT, OS/2, and DOS.
* Unix workstations, including Sun and HP.

Subtleware supports a variety of database interfaces:
* ANSI SQL * ODBC
* Oracle * Sybase
* Watcom * Informix (planned 8/95)
* Ingres (planned 10/95)
* ODMG (planned 12/95)

Subtleware supports virtually all C++ 2.x and 3.x compilers, including:
* Borland C++
* Microsoft Visual C++
* HP C++
* SunPro C++

SUBTLEWARE IMPROVES SOFTWARE QUALITY

Subtleware generates well-documented, bug-free code. Furthermore,
Subtleware code generation can be customized for your application
requirements. Using Subtleware greatly increases the reliability and
reusability of your applications.

SUBTLEWARE OPTIMIZES APPLICATION PERFORMANCE

Subtleware generates static SQL code that can be linked directly into your
application or packaged as a DLL or shared library. Subtleware does not
require the use of high-overhead, run-time modules for managing your
persistent objects.

SUBTLEWARE PROVIDES RUN-TIME FLEXIBILITY

Subtleware offers dynamic SQL capabilities for performing run-time
specified data access.

SUBTLEWARE MAXIMIZES APPLICATION PORTABILITY

Subtleware is database independent. Your applications use the same
Subtleware API no matter which underlying database is being used.
Changing your database simply entails linking in another Subtleware
database support module to your application.

TECHNICAL DETAILS

The Subtleware pre-processor converts C++ classes to relational database
schema:

C++ Class ------> Subtleware Pre-Processor -----> Relational Database Schema

The Subtleware SQLExec facility simplifies C++ access to existing
relation data:

C++ Code <-------------> Subtleware SQLExec ----------> Legacy Data

The Subtleware schema mapper converts relational database schema to
C++ classes:

Relational Schema -----> Subtleware Schema Mapper ------> C++ Class

OBJECT MODEL SUPPORT

Subtleware supports encapsulation, inheritance, containment, and polymorphism.
A C++ class is mapped to a table in a relational database. Each member
data variable (local, inherited, or contained) is mapped to a column in
the database table.

ASSOCIATION SUPPORT

Subtleware provides a set of Subtle Pointer classes for persisting one-to-
one relationships between objects. Each Subtle Pointer class offers a
unique set of behavior regarding pointer chasing and referential
integrity constraints. Subtle Pointers "swizzle" associations into in-
memory pointers, speeding object traversal.

COLLECTION SUPPORT

Subtleware provides a set of Subtle Collection classes for persisting N-
to-many relationships between objects. Each Subtle Collection class
offers a unique data structure abstraction.

CONCURRENCY CONTROL SUPPORT

Subtleware utilizes the data locking mechanisms of the underlying
relational database. Concurrency is specified by the database isolation
level or locking protocol in-use.

TRANSACTION SUPPORT

Subtleware supports transaction commit and rollback support. When a
transaction is committed, all Subtleware database operations are
performed. When a transaction is rolled back, all Subtleware database
operations are ignored.

DEVELOPMENT TOOL SUPPORT

Subtleware supports all major C++ compilers and development
environments. Subtleware works with any C++ development tool that
generates or uses C++ header files (class definitions) and offers
customized integration with Cadre's OT for Rumbaugh, allowing
developers to go straight from an object model to a running C++
application.

FOR MORE INFORMATION

Subtle Software, Inc.
7 Wells Ave
Newton, MA 02159
U.S.A.

Voice: (617) 558-4100
Fax: (617) 558-4103
email: subtle@world.std.com
URL: http://world.std.com/~subtle/info.html

 

Continue to:













TOP
previous page: 9.3) Persistence (Commercial Systems - Interfaces - Object-oriented Databases And Vendors)
  
page up: Object-Oriented Technology FAQ
  
next page: 9.3) Synchronicity (Commercial Systems - Interfaces - Object-oriented Databases And Vendors)