Object-Orientation FAQ

Subtleware

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

This document was translated by ms2html v1.8 on 04.06.96.