← Back to Patent Explorer
US6163776A Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for exchanging data and commands between an object oriented system and relational system

Assignee: Software Tree Inc
•
Filing: 1998-03-23
•
Granted: 2000-12-19
•
Expires: 2018-03-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system for exchanging data and commands between an object oriented system and a relational system. The system includes an +E,uns O+EE bject-+E,uns R+EE elational +E,uns M+EE apping (ORM) grammar, an ORM specification, Object Class Definitions, a relational database, an operating system, a Database Exchange Unit including an OR mapping unit, a schema generator, a schema reverse engineering unit and applications. The ORM specification is based on the ORM grammar and includes information for defining the mapping between object-oriented system and the relational system. The Object Class Definitions define the object-oriented system, and the relational database defines the relational system. The Database Exchange Unit executes in accordance with the ORM specification, and is the programs/routines that operate to translate data from the object model to the relational model, and vice versa. The present invention further comprises a number of methods including: a method for generating a ORM Data Structures; a method for generating a mapping unit; a method for generating a schema from an object model and an object-relational mapping specification; a method for generating an Object Class Definitions and an ORM specification from an ORM template specification and database schema; and a method for object streaming, and methods for efficient generation of persistently unique sequence numbers for new objects.

Inventors

  • 👤 Damodar D. Periwal

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 09:27
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/28; G06F16/289; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99933; Y10S707/99934; Y10S707/99936; Y10S707/99941; Y10S707/99942; Y10S707/99944

Claims Analysis

Total Claims: 50
Claim 1
Independent Claim 92 words
A system for exchanging data between an object-oriented system and a relational system having tables defining a relational model, the system comprising: at least one object class definition defining an object model; an object relational mapping data structure defining a mapping between the object model and the relational model, the object relational mapping data structure produced from a declarative ORM Specification based on an ORM grammar; an exchange unit for translating data from the object model to the relational model and for translating data from the relational model to the object model.
Claim 2
Independent Claim 92 words
A system for exchanging data between an object-oriented system and a relational system having tables defining a relational model, the system comprising: at least one object class definition defining an object model; an object relational mapping data structure defining a mapping between the object model and the relational model, the object relational mapping data structure produced from a declarative ORM Specification based on an ORM grammar; an exchange unit for translating data from the object model to the relational model and for translating data from the relational model to the object model.
Claim 3
Dependent Claim 134 words
The system of claim 1, wherein the exchange unit further comprises: an object call processing unit having inputs and outputs for receiving object calls and beginning the translation of the object calls, an input and an output of the object call processing unit coupled to the object-oriented system; a mapping unit having inputs and outputs for performing the object-relational mapping according to the object relational mapping specification in response to signals from the object call processing unit, the mapping unit having inputs coupled to the object class definition, the object relational mapping data structure, and input and outputs the object call processing unit; and a database interface unit having inputs and outputs, for retrieving and storing data in the relational system, the inputs and outputs coupled to the relational system and the mapping unit.
Claim 4
Dependent Claim 31 words
The system of claim 2 wherein the object call processing unit intercepts Application Programming Interface (API) level calls for object manipulation and executes the API level calls using the mapping unit.
Claim 5
Dependent Claim 112 words
The system of claim 1, wherein the exchange unit further comprises: an object relational mapping specification defining a mapping between the object model and the relational model, the object relational mapping specification including a plurality of a declarative ORM grammar statements; and an ORM Data Structure creation unit having inputs and an output for producing the object relational mapping data structure, the inputs of the ORM Data Structure creation unit coupled to receive the object class definition, the object relational mapping specification, and the database interface unit, the output of the ORM Data Structure creation unit coupled to the input of the mapping unit for providing the object relational mapping data structure.
Claim 6
Dependent Claim 63 words
The system of claim 1, further comprising a schema generator, the schema generator having inputs and outputs for generating a file of commands applicable on the relational system that implement the object call, the input of the schema generator coupled to the object class definition and the object relational mapping data structure, the output of the schema generator coupled to the relational system.
Claim 7
Dependent Claim 194 words
The system of claim 5, wherein the schema generator further comprises: an ORM Data Structure creation unit having inputs and an output for producing the object relational mapping data structure, the inputs of the ORM Data Structure creation unit coupled to receive the object class definition and the object relational mapping specification; a relational schema statements generation unit having an input and an output, the input of the relational schema statements generation unit coupled to the output of the ORM Data Structure creation unit for receiving the object relational mapping data structure, the relational schema statements generation unit producing a file of statements that will produce the relational schema in the relational system; and a relational schema statements application unit having an input and an output for applying statements to the relational system, the input of the relational schema statements application coupled to the output of the relational schema statements generation unit for receiving the file of statements that will produce the relational schema in the relational system, the output of the relational schema statements application unit coupled to the input of the database interface unit for applying the statements on the relational system.
Claim 8
Dependent Claim 15 words
The system of claim 1, wherein the relational system is a relational database management system.
Claim 9
Dependent Claim 67 words
The system of claim 7, further comprising: a plurality of RDBMS Tables stored in the relational system, the plurality of RDBMS Tables setting forth the organization and structure of the data in the relational model in addition to describing certain functionality provided by the relational model; and a plurality of ORMMetadata Tables stored in the relational system, the plurality of ORMMetadata Tables storing additional object relational specifications.
Claim 10
Dependent Claim 26 words
The system of claim 1 further comprising a schema reverse-engineering unit for creating object class definitions and an object relational mapping specification using a database schema.
Claim 11
Dependent Claim 109 words
The system of claim 9, wherein the schema reverse-engineering unit further comprises: an ORM template specification containing names of tables to be used for generating object class definitions; database metadata inquiry unit for accessing the relational system to retrieve metadata including a schema for the relational model and information about the object model, the database metadata inquiry unit coupled to the relational system; and reverse engineering ORM structure creation unit for producing an object relational mapping data structure from metadata, the reverse engineering ORM structure creation unit coupled to the output of the database metadata inquiry unit to receive the metadata and coupled to receive the ORM template specification.
Claim 12
Dependent Claim 42 words
The system of claim 10, wherein the schema reverse-engineering unit further comprises an ORM specification generation unit for producing an ORM specification from the object relational mapping data structure, the ORM specification generation unit coupled to the object relational mapping data structure.
Claim 13
Dependent Claim 45 words
The system of claim 10, wherein the schema reverse-engineering unit further comprises an object class definitions generation unit for producing the object class definitions from the object relational mapping data structure, the object class definitions generation unit coupled to the object relational mapping data structure.
Claim 14
Dependent Claim 45 words
The system of claim 1, further comprising a named sequence generator for generating persistently unique sequence numbers, the named sequence generator having inputs and outputs, the named sequence generator coupled to the relational system for and coupled to the object-oriented system by the exchange unit.
Claim 15
Dependent Claim 53 words
The system of claim 1, wherein the object relational mapping data structure includes a mapping for a stored procedure executable by an engine in the relational system, the stored procedure being invokable by an application program using the exchange unit and creating an object with a value returned by executing the stored procedure.
Claim 16
Dependent Claim 54 words
The system of claim 1, wherein the system further comprises a security unit having inputs and outputs for determining whether a user can use the ORM Specification and a scope for use of the ORM Specification, the security unit coupled to control access to the object relational mapping data structure and the exchange unit.
Claim 17
Independent Claim 116 words
A method for generating an object relational mapping data structure, the method comprising the steps of: determining whether an object relational mapping file has been specified; if an object relational mapping file has been specified, using an object relational mapping specification identified by the object relational mapping file as the identified object relational mapping specification; if an object relational mapping file has not been specified, determining an ORM identification name, retrieving an object relational mapping specification corresponding to the ORM identification name from a relational database, and using the retrieved object relational mapping specification as the identified object relational mapping specification; and creating an object relational mapping data structure using the identified object relational mapping specification.
Claim 18
Independent Claim 116 words
A method for generating an object relational mapping data structure, the method comprising the steps of: determining whether an object relational mapping file has been specified; if an object relational mapping file has been specified, using an object relational mapping specification identified by the object relational mapping file as the identified object relational mapping specification; if an object relational mapping file has not been specified, determining an ORM identification name, retrieving an object relational mapping specification corresponding to the ORM identification name from a relational database, and using the retrieved object relational mapping specification as the identified object relational mapping specification; and creating an object relational mapping data structure using the identified object relational mapping specification.
Claim 19
Dependent Claim 59 words
The method of claim 16 wherein the step of determining an ORM identification name further comprises the steps of: determining whether an ORM identification name has been specified; using the ORM identification name specified if an ORM identification name has been specified; and using a default ORM identification name specified if an ORM identification name not has been specified.
Claim 20
Independent Claim 104 words
A method for generating object relational mapping data structures from an object relational mapping specification includes the steps of: retrieving an object relational mapping specification; creating an instance of a plurality of data structures defining a mapping between an object model and a relational model; overriding default mappings using a SQL map specification; using additional specifications to create additional data structures; retrieving Metadata from a database to enhance the plurality of data structures; matching class information for object-oriented model with the plurality of data structures; generates SQL statements for each class; and generates inserts and update statements to apply SQL statements to the database.
Claim 21
Independent Claim 104 words
A method for generating object relational mapping data structures from an object relational mapping specification includes the steps of: retrieving an object relational mapping specification; creating an instance of a plurality of data structures defining a mapping between an object model and a relational model; overriding default mappings using a SQL map specification; using additional specifications to create additional data structures; retrieving Metadata from a database to enhance the plurality of data structures; matching class information for object-oriented model with the plurality of data structures; generates SQL statements for each class; and generates inserts and update statements to apply SQL statements to the database.
Claim 22
Dependent Claim 55 words
The method of claim 18, wherein the step of creating an instance of a plurality of data structures includes the steps of: creating an instance of DatabaseInfo; creating an instance of Tableinfo and ClassInfo for each class specification; creating instance of CollectionClassInfo for each collection specification; and creating the instances of Attribinfo for each ClassInfo.
Claim 23
Dependent Claim 41 words
The method of claim 19, wherein the step of using additional specifications to create additional data structures includes the steps of: using primary-key and reference-key specifications to create instances of ReferenceKeyinfo; and using the relationship specification to create instances of ComplexAttributeInfo.
Claim 24
Dependent Claim 20 words
The method of claim 20, wherein the step of matching class information comprises the step of matching AttribInfo with ColumnInfo.
Claim 25
Independent Claim 85 words
A method for generating relational schema from an ORM specification and object class definitions, the method comprising the steps of: retrieving an object relational mapping specification; retrieving an object class definitions; creating an instance of a plurality of data structures defining a mapping between an object model and a relational model; overriding default mappings using a SQL map specification; using additional specifications to create additional data structures; and adding relational information to the data structures for each primitive and embedded attribute of the object-oriented model.
Claim 26
Independent Claim 85 words
A method for generating relational schema from an ORM specification and object class definitions, the method comprising the steps of: retrieving an object relational mapping specification; retrieving an object class definitions; creating an instance of a plurality of data structures defining a mapping between an object model and a relational model; overriding default mappings using a SQL map specification; using additional specifications to create additional data structures; and adding relational information to the data structures for each primitive and embedded attribute of the object-oriented model.
Claim 27
Dependent Claim 56 words
The method of claim 22, wherein the step of creating an instances of a plurality of data structures includes the steps of: creating an instance of DatabaseInfo; creating an instance of Tableinfo and ClassInfo for each class specification; creating an instance of CollectionClassInfo for each collection specification; and creating the instances of Attribinfo for each ClassInfo.
Claim 28
Dependent Claim 41 words
The method of claim 23, wherein the step of using additional specifications to create additional data structures includes the steps of: using primary-key and reference-key specifications to create instances of ReferenceKeyinfo; and using the relationship specification to create instances of ComplexAttributeInfo.
Claim 29
Dependent Claim 23 words
The method of claim 23, wherein the step of adding adds ColumnInfo in Tableinfo for each primitive and embedded attribute of each ClassInfo.
Claim 30
Dependent Claim 73 words
The method of claim 23, wherein the step of generating statements for producing and modifying tables in relational database includes the steps of: generating a create table statement and primary key constraints statement in a CREATE file for each Tableinfo; generating unique key and referential key constraint statements in an ALTER file for each ClassInfo; and generating alter table drop constraint statements and drop table statements in a DROP file for each ClassInfo.
Claim 31
Dependent Claim 31 words
The method of claim 26, wherein the step of executing the generated statements on the database includes the step of executing the DROP, CREATE and ALTER files to modify the database.
Claim 32
Independent Claim 71 words
A method for generating an ORM specification and object class definitions from a database schema, the method comprising the steps of: generating object relational mapping data structures using an ORM template specification; performing at least one metadata query to retrieve information for the object relational mapping data structures; generating an object class definition using the object relational mapping data structures; and creating an ORM Specification using object relational mapping data structures.
Claim 33
Independent Claim 71 words
A method for generating an ORM specification and object class definitions from a database schema, the method comprising the steps of: generating object relational mapping data structures using an ORM template specification; performing at least one metadata query to retrieve information for the object relational mapping data structures; generating an object class definition using the object relational mapping data structures; and creating an ORM Specification using object relational mapping data structures.
Claim 34
Dependent Claim 40 words
The method of claim 28 wherein the step of generating object relational mapping data structures comprises the steps of: creating an instance of DatabaseInfo; and creating an instance of ClassInfo and TableInfo for each class in the ORM Template Specification.
Claim 35
Dependent Claim 69 words
The method of claim 28 wherein the step of performing at least one metadata query includes the steps of: performing a metadata query and creation of ColumnInfo and AttributeInfo in the corresponding ClassInfo for each instance of TableInfo; performing a metadata query to get the PrimaryKeyInfo for each ClassInfo; performing a metadata query to get the foreign key information and create the corresponding ComplexAttributeInfo for each instance of ClassInfo.
Claim 36
Dependent Claim 30 words
The method of claim 28 wherein the step of creating an ORM Specification using object relational mapping data structures is done using the DatabaseInfo and all the instances of ClassInfo.
Claim 37
Independent Claim 72 words
A method for responding to an object call using a mapping unit, the method comprising the steps of: determining the type of object call; setting up an access plan data structure according to insert flags and insert details for accessing referenced objects; creating a command statement for accessing relational system; issuing the command statement on relational system; and processing the data from the relational system to provide it to the object-oriented system.
Claim 38
Independent Claim 72 words
A method for responding to an object call using a mapping unit, the method comprising the steps of: determining the type of object call; setting up an access plan data structure according to insert flags and insert details for accessing referenced objects; creating a command statement for accessing relational system; issuing the command statement on relational system; and processing the data from the relational system to provide it to the object-oriented system.
Claim 39
Dependent Claim 55 words
The method of claim 32 wherein the step of creating command statement for accessing relational system further comprises the steps of: retrieving an INSERT statement from ClassInfo; preparing the INSERT statement for the current connection to the database; and finding the value for each AttribInfo and binding it with the column position for each AttribInfo.
Claim 40
Dependent Claim 29 words
The method of claim 33 wherein the step of issuing the command statement on relational system includes issuing the INSERT statement to store top-level objects in the relational system.
Claim 41
Dependent Claim 61 words
The method of claim 34, wherein the step of issuing the INSERT statement to store top-level objects in the relational system, further comprises the steps of: determining whether there are non-null referenced objects to be inserted, creating an additional INSERT statement for each non-null referenced objects if there are non-null referenced objects to be inserted; and issuing the additional INSERT statements.
Claim 42
Independent Claim 196 words
A method for responding to an object call using a mapping unit, the method comprising the steps of: determining the type of object call; setting up an access plan data structure according to flags settings; creating a command statement for accessing relational system by retrieving a base SELECT statement from ClassInfo, testing whether any predicate has been specified; and translating a specified predicate and appending the predicate as a WHERE clause, if a predicate has been specified; issuing the command statement on relational system, the command statement including the SELECT statement having a WHERE clause, if any, against a database of the relational system; and determining whether more rows are available from the database; if more rows are available from the database, fetching a next row and creating an instance of a top-level object; setting attribute values from corresponding column values; creating required foreign key entries and associating them with target class structures; determining whether there are query objects from the subclasses; and if there are additional query objects from the subclasses, repeat the steps of creating command statement for accessing relational system and issuing the command statement on relational system for the objects of subclasses.
Claim 43
Independent Claim 196 words
A method for responding to an object call using a mapping unit, the method comprising the steps of: determining the type of object call; setting up an access plan data structure according to flags settings; creating a command statement for accessing relational system by retrieving a base SELECT statement from ClassInfo, testing whether any predicate has been specified; and translating a specified predicate and appending the predicate as a WHERE clause, if a predicate has been specified; issuing the command statement on relational system, the command statement including the SELECT statement having a WHERE clause, if any, against a database of the relational system; and determining whether more rows are available from the database; if more rows are available from the database, fetching a next row and creating an instance of a top-level object; setting attribute values from corresponding column values; creating required foreign key entries and associating them with target class structures; determining whether there are query objects from the subclasses; and if there are additional query objects from the subclasses, repeat the steps of creating command statement for accessing relational system and issuing the command statement on relational system for the objects of subclasses.
Claim 44
Dependent Claim 27 words
The method of claim 36 wherein the step of determining the type of object call includes the step of determining whether the object call is a query.
Claim 45
Dependent Claim 44 words
The method of claim 36 wherein the step of setting up access plan data structure according to flags settings includes the step of setting up the access plan data structure according to the query flags and query details in order to access referenced objects.
Claim 46
Dependent Claim 80 words
The method of claim 36 wherein the step of processing the data from the relational system to provide it to the object-oriented system includes the steps of: creating a SELECT statement and a WHERE clause using the foreign keys for each referenced target class; retrieving rows and creating target objects and linking them with referencing complex attributes; creating a foreign key entry for each complex attribute of the target class; and returning a list of top-level objects to the application.
Claim 47
Independent Claim 90 words
A method for object streaming comprising the steps of: beginning a new transaction; generating a query call to a database exchange unit for a plurality of objects; returning the predetermined number (X) of objects; processing the returned objects; determining whether more objects are to be retrieved through the current stream of objects; retrieving and processing an additional number (m) of objects if more objects are to be retrieved through the current stream of objects; generating a query close to the database exchange unit; and committing the transaction to the database.
Claim 48
Independent Claim 90 words
A method for object streaming comprising the steps of: beginning a new transaction; generating a query call to a database exchange unit for a plurality of objects; returning the predetermined number (X) of objects; processing the returned objects; determining whether more objects are to be retrieved through the current stream of objects; retrieving and processing an additional number (m) of objects if more objects are to be retrieved through the current stream of objects; generating a query close to the database exchange unit; and committing the transaction to the database.
Claim 49
Dependent Claim 70 words
The method of claim 40 for object streaming further comprising the steps of: determining a query context (QC) for streaming; invoking a query operation on the query context for a predetermined number (X) of objects; saving in the query context, the query cursor for the table of top-level class objects; initiating a query processing to fetch the predetermined number (X) of objects; and saving the query context for this session.
Claim 50
Dependent Claim 92 words
The method of claim 40 wherein the step of retrieving and processing an additional number (m) of objects further comprises the steps of: generating a "query fetch" call for the additional number (m) of objects to the database exchange unit; invoking a query operation on the saved query context for the additional number (m) of objects; retrieving the query cursor saved in the query context; processing the query to fetch the additional number (m) of objects; returning the additional number (m) of objects; and processing the returned additional number (m) of objects.

References Cited (Backward Citations)

US5201046A Cited
US5291583A Cited
US5504884A Cited
US5706504A Cited
US5499371A Cited
US5627979A Cited
US5797136A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-12-19 2004-06-19 2004-12-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-12-19 2008-06-19 2008-12-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-12-19 2012-06-19 2012-12-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag