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.