|
|
|
| United States Patent | 5542078 |
| Link to this page | http://www.wikipatents.com/5542078.html |
| Inventor(s) | Martel; Paul A. (Fitchburg, MA);
Harris; Craig S. (Acton, MA) |
| Abstract | A method and apparatus for accessing and effectively integrating non-object
oriented data stores with object applications. An integrating environment
is implemented wherein an application using a distributed object database
and object database management system (ODBMS) is provided with an
interface to external data stores in a manner so as to effect location
transparency. The application, accessing data via the ODBMS, can
manipulate data in foreign data stores which include external data that is
mapped and converted into objects for use by object applications. A
storage management application program interface ("SM API"), effects a
functional interface for handling objects, referencing objects,
implementing iteration and indexing of objects, and implementing object
transaction and cache handling. The SM API is part of a modular
architecture that includes an external storage manager which implements
classes that provide the foundation for engaging external data stores, and
which maps and converts external data into objects that can be manipulated
by an application using the ODBMS. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5542078 |
|
|
Object oriented data store integration environment for integration of
object oriented databases and non-object oriented data facilities |
|
|
|
|
|
| Publication Date |
July 30, 1996 |
|
|
|
|
|
| Filing Date |
September 29, 1994 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5388264 Tobias, II 707/103R Feb,1995 |      Your vote accepted [0 after 0 votes] | | 5386564 Shearer 707/101 Jan,1995 |      Your vote accepted [0 after 0 votes] | | 5327559 Priven
Jul,1994 |      Your vote accepted [0 after 0 votes] | | 5291583 Bapat 717/137 Mar,1994 |      Your vote accepted [0 after 0 votes] | | 5291593 Abraham 707/103R Mar,1994 |      Your vote accepted [0 after 0 votes] | | 5265206 Shackelford 719/316 Nov,1993 |      Your vote accepted [0 after 0 votes] | | 5206951 Khoyi 719/315 Apr,1993 |      Your vote accepted [0 after 0 votes] | | 5193180 Hastings
Mar,1993 |      Your vote accepted [0 after 0 votes] | | 5187786 Densmore 707/3 Feb,1993 |      Your vote accepted [0 after 0 votes] | | 5187787 Skeen 719/314 Feb,1993 |      Your vote accepted [0 after 0 votes] | | 5187790 East 719/316 Feb,1993 |      Your vote accepted [0 after 0 votes] | | 5170466 Rogan 715/530 Dec,1992 |      Your vote accepted [0 after 0 votes] | | 5161223 Abraham
Nov,1992 |      Your vote accepted [0 after 0 votes] | | 5161225 Abraham
Nov,1992 |      Your vote accepted [0 after 0 votes] | | 5157777 Lai 711/202 Oct,1992 |      Your vote accepted [0 after 0 votes] | | 5142674 Barker 707/10 Aug,1992 |      Your vote accepted [0 after 0 votes] | | 5136712 Perazzoli, Jr. 718/104 Aug,1992 |      Your vote accepted [0 after 0 votes] | | 5129083 Cutler 707/103R Jul,1992 |      Your vote accepted [0 after 0 votes] | | 5129084 Kelly, Jr. 718/104 Jul,1992 |      Your vote accepted [0 after 0 votes] | | 5125091 Staas, Jr. 718/101 Jun,1992 |      Your vote accepted [0 after 0 votes] | | 5113522 Dinwiddie, Jr. 713/375 May,1992 |      Your vote accepted [0 after 0 votes] | | 5093914 Coplien 717/129 Mar,1992 |      Your vote accepted [0 after 0 votes] | | 5079695 Dysart
Jan,1992 |      Your vote accepted [0 after 0 votes] | | 5008853 Bly
Apr,1991 |      Your vote accepted [0 after 0 votes] | | 4989132 Mellender 717/139 Jan,1991 |      Your vote accepted [0 after 0 votes] | | 4953080 Dysart 707/103R Aug,1990 |      Your vote accepted [0 after 0 votes] | | 4943933 Miyamoto 706/50 Jul,1990 |      Your vote accepted [0 after 0 votes] | | 4864497 Lowry 707/102 Sep,1989 |      Your vote accepted [0 after 0 votes] | | 4853843 Ecklund 707/203 Aug,1989 |      Your vote accepted [0 after 0 votes] | | 4525780 Bratt 711/163 Jun,1985 |      Your vote accepted [0 after 0 votes] | | 5175848 Dysart 707/103R Dec,1969 |      Your vote accepted [0 after 0 votes] | | 5185885 Dysart 707/100 Dec,1969 |      Your vote accepted [0 after 0 votes] | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
What is claimed is:
1. Apparatus for integrating non-object structured data, stored in an
external data store having an external data store interface, with at least
one object application which processes object data structures through an
ODBMS application interface, comprising:
a storage manager mechanism responsive to said ODBMS application interface
and said external data store interface, including,
a first interface, between said ODBMS application interface and said
storage manager mechanism, said first interface comprising a plurality of
first interface constructs including objects, references, indices,
extensions and transactions, and facilitating handling of said plurality
of first interface constructs for communicating with said ODBMS
application interface to transfer object data structures between said
storage manager mechanism and said at least one object application;
an integral mapping mechanism responsive to said first interface and
receiving at least some of said plurality of first interface constructs,
said mapping mechanism mapping said at least some of said plurality of
first interface constructs to a plurality of second interface constructs
to effect transformation of object data structures to non-object
structured data for storage in said external data store and to effect
transformation of non-object structured data to object data structures for
use by said at least one object application; and
a second interface between said mapping mechanism and said external data
store, said second interface comprising said plurality of second interface
constructs and facilitating handling of said plurality of second interface
constructs for communicating with said external data store interface to
transfer non-object structured data between said storage manager mechanism
and said external data store.
2. The apparatus of claim 1 wherein said external data store is at least
one relational database.
3. The apparatus of claim 1 wherein said storage manager mechanism includes
a repository storing information for mapping said at least some of said
plurality of first interface constructs to at least some of said plurality
of second interface constructs.
4. The apparatus of claim 3 wherein said repository includes schema
information describing the structure of data stored in said external data
store.
5. The apparatus of claim 2 wherein said second interface communicates
directly with said external data store and said plurality of second
interface constructs includes a key construct which identifies a
particular record in said external data store.
6. The apparatus of claim 2 wherein said second interface communicates
directly with said external data store and said plurality of second
interface constructs includes a typemap construct which defines the
transformation between non-object structured data and object data
structures.
7. The apparatus of claim 2 wherein said second interface communicates
directly with said external data store and said plurality of second
interface constructs includes a typemap construct which defines the
transformation between non-object structured data and object data
structures, and a key construct which identifies a particular record in
said external data store.
8. The apparatus of claim 7 wherein each said typemap construct includes
key layout information for constructing a respective key construct from
key data stored in said external data store.
9. The apparatus of claim 7 wherein each said typemap construct includes
object layout information used in constructing a respective object from
object layout data stored in said external data store.
10. The apparatus of claim 3 wherein said repository includes a database
management system managing the information in said repository. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
FIELD OF THE INVENTION
The present invention relates to computer databases, and more particularly
to integration of object oriented databases and non-object oriented data
facilities.
BACKGROUND OF THE INVENTION
Various means and methodologies exist presently for persistent storage of
data for use in computer system applications. Known database management
systems (DBMS's) facilitate storage of data in non-volatile storage, e.g.
disks, tapes, etc, for use even after the program that used or generated
the data is terminated ("persistence"). In addition to persistence, DBMS's
fundamentally provide "concurrency control" so users of data can share a
database without interfering with each other or compromising the integrity
of data, and "recovery" features to protect and restore data integrity
upon system (hardware or software) failures. DBMS "query" facilities
enable users to access the large volumes of data within a database by
specifying some particular characteristic or field within data records,
while "security" features are typically built into DBMS's to limit access
to some data. Known DBMS's support "schema management" for describing
properties of, and relationships between, data in a database.
With the evolution of DBMS technology, fundamental functionality as
described hereinbefore has been maintained and expanded while data
complexity and processing performance requirements have increased. A type
of data management technology applied in commercial data processing known
as "relational" DBMS, is modeled to be relatively simplistic in that all
data is organized as though it is formatted into tables, with the table
columns representing the table's fields or domains and the table rows
representing the values of the table's fields or domains. Data is
logically organized as tables but is not necessarily physically stored as
such. The relational database user does not need to know how the database
is physically constructed and can access and update data via a language
interface or "structured query language" (SQL).
The relative complexity of data associated with science and engineering
problem solving, and the evolution of complex data structures and data
entities modeled on real-world objects led to the development of a new
generation of DBM's known as "object DBM's" (ODBM's) or "object oriented
DBM's" (OODBM's). ODBM's do not conform to the relational model but
provide virtually the same fundamental functionality (i.e. persistence,
concurrency control, recovery, security, query facilities and schema
management) for storing and manipulating object entities. Object entities
or "objects", are complex data structures which model real-world entities,
and are associated in classes and identified with their informational
features (attributes) and functional features (behaviors). Objects are
effected using object oriented programming (OOP) languages such as C++ and
Smalltalk. By defining complex, specialized data structures or objects
that model real-world entities, program development is made easier and
more natural as the level of abstraction of data is raised to a point
where applications can be implemented effectively in the same terms in
which they are described by the users of the application. Objects are more
readily classifiable into types, which are easily related to one another
in subtype/supertype hierarchies. OOP languages permit the programmer to
flexibly define data types so as not to be constrained by limited
predefined types. OOP language types can be associated in classes which
can "inherit" attributes and/or behaviors from other classes. Complex
object data structures and types are not supported by the relational DBMS
model, but by ODBM's which facilitate direct storage and manipulation of
objects, without the need to map them into tables.
Relational DBM's and Object DBM's co-exist presently, with little
likelihood that one will completely displace the other. Each type of DBMS
(i.e. Relational and Object) is best suited for respective particular
applications, e.g. Relational for the predefined data types of business
data processing such as in the insurance and banking industries; and
Object for the extensible data structures modeled on real-world entities
such as used in computer-aided design and computer-aided software
engineering. However, with the considerable investment associated with
existing relational data stores, and the continuing evolution toward and
appreciation for object applications, there exists a need for integrating
object and relational technologies.
The need for integration of relational and object data typically will arise
in situations where new object oriented applications are implemented to
take advantage of aspects of object oriented programming in a context
where data was/is managed according to the relational model. Known means
of integrating object programming with a relational database include doing
a manual, programming intensive conversion of all the relational data in
the relational DBMS to object data, that is readily accessible to the
object oriented programs. However, in addition to the significant efforts
required for such conversion, there typically are non-object oriented
application programs that continue to require access to the relational
data. Thus, disadvantageously, it may be necessary to have redundant data
stores resulting in duplicative resources and greater overhead.
Additionally the task of updating and maintaining the Relational and
Object versions of the DBMS creates difficulties in that updates must be
substantially simultaneously coordinated and may have to be replicated in
disparate environments. Even if the entire collection of existing programs
that access the relational database are rewritten in an object oriented
programming language, such a mode of conversion is an expensive,
complicated and time consuming endeavor.
Standardized import/export facilities are known which permit importation of
data in a predictable input format into an object database. The
import/export facility is a program, implementation of which requires
knowledge of the schema or format of the relational data. Additionally,
the relational data elements must be mapped to objects within an ODBMS
which are to be managed by the ODBMS which consequently manages the mapped
relational data elements. Such facilities, however, lack flexibility in
that a predefined format is required for representing data that is to be
passed between relational and object environments. While the import/export
facility effectively acts as a translation mechanism, there must be rigid
adherence to the predefined format in which the relational data is
maintained, otherwise it cannot be mapped to objects and managed by the
ODBMS.
Translation techniques in the form of SQL Gateways are known which allow
object language programs to retrieve relational data from a relational
database in a form approximating objects rather than tables. A programmer
must know the organization or schema of the particular data required and
is typically limited to use of the data in a format very close to its
original relational format. The programmer uses an object oriented
programming language to implement a SQL statement or request that acts on
the tables of a relational database. The SQL Gateway converts OOP language
statements into SQL statements and converts table rows or relational data
into objects. Such a mechanism requires the application programmer to be
cognizant of and accommodate the technology differences between the
relational and object database systems. The programmer must write
application code to use the SQL Gateway which requires an understanding of
the SQL, and the relational and object oriented paradigms. Gateways do not
provide unified access to disparate relational data stores through a
single consistent application program interface.
Further, while Gateways provide effective conversion between objects and
relational data structures, they do not support a means for identifying
objects, which makes it difficult to determine if a data request by an
application can be satisfied by data already cached. This can result in
redundant accesses to the data stores negatively impacting application
performance, and problems with data replication, both of which require
substantial additional overhead and coding in the application to prevent
or work around. Also, schema information in Gateways is maintained in the
foreign data store in a relational format. Runtime access to such schema
information requires additional programming at the application level for
such information to be available as OOP language objects.
SUMMARY OF THE INVENTION
The present invention provides a method and apparatus for accessing and
effectively integrating non-object oriented data stores with object
applications. An integrating environment is implemented wherein an
application using a distributed object database and object database
management system (ODBMS) is provided with an interface to external data
stores in a manner so as to effect location transparency. The application,
accessing data via the ODBMS, can manipulate data in foreign data stores
which include external data that is mapped and converted into objects for
use by object applications.
A storage management application program interface (hereinafter referred to
as "SM API"), effects a functional interface for handling objects,
referencing objects, implementing iteration and indexing of objects, and
implementing object transaction and cache handling. The SM API is part of
a modular architecture that includes an external storage manager which
unifies access to external data stores by implementing a single consistent
ODBMS API which is well integrated with OOP language(s). The external
storage manager implements classes that provide the foundation for
engaging external data stores, and maps and converts external data into
objects that can be manipulated by an application using an ODBMS. Keys are
used to assign object identities to external data, which allows data that
is already cached by an application to be identified by its key and
located in cache in response to repeated requests for the same data.
Features of the invention include provision of the capabilities to access
external data stores including non-object databases with various
paradigms, schemas and file formats, by an object database management
system. Application developers can use a single object oriented
programming paradigm and focus on the object model of their application
domain regardless of the underlying storage facilities used to store data
used by the application. User-defined storage management components can be
developed for accessing a wide variety of external data stores. The
benefits of object technology: flexibility, extensibility and reuse of
application code, can be appreciated in object applications interfaced to
non-object data stores. The investment in existing databases and file
systems is preserved while permitting a shift to object oriented
applications.
Other features, advantages and aspects of the invention are explained in:
ONTOS DB 3.0 Reference Manual Volume 1 Class Library; ONTOS DB 3.0
Developer's Guide; and ONTOS DB 3.1 External Storage Management Guide,
which are all incorporated herein by reference. Reference is also made to
portions of ONTOS DB 3.1 Extensible Storage Management Guide as found in
the detailed description, below.
DESCRIPTION OF THE DRAWING
The invention will be more fully understood from the following detailed
description taken in conjunction with the accompanying drawing in which:
FIG. 1 is a block diagram of a distributed object database having a
client-server architecture;
FIG. 2 is a block diagram of a modularly architected integration
environment according to the invention;
FIG. 3 is a diagrammatic representation of an object model of object data
structures for an example of an implementation of an object oriented data
store integration environment according to the invention;
FIG. 4 is a diagrammatic representation of relational data structures of a
relational external data store for the example of an implementation of an
object oriented data store integration environment according to the
invention;
FIG. 5 depicts a sample of information typically held in a repository
maintained by an external storage manager according to the invention, and
illustrates how such information is connected with schema-level constructs
of the object model;
FIG. 6 is a diagrammatic representation of a process of implementing an
object query mapped to an RDB query;
FIG. 7 is a diagrammatic representation of how an iterator and associated
Typemap object cooperate to extract a result from an RDB query cursor and
process it into a key;
FIG. 8 illustrates the process of constructing an object from a key;
FIG. 9 is a diagrammatic representation of storing data in an object in an
integration environment according to the invention; and
FIG. 10 is a diagrammatic representation of deletion of an object from the
external relational database in an integration environment according to
the invention.
DETAILED DESCRIPTION
< | | |