P
US8145685B2ExpiredUtilityPatentIndex 60

Object relational mapping layer

Assignee: THOMPSON DAVIDPriority: Oct 10, 2003Filed: Aug 15, 2008Granted: Mar 27, 2012
Est. expiryOct 10, 2023(expired)· nominal 20-yr term from priority
Inventors:THOMPSON DAVIDNICKOLAYEV OLEGKUNTAWAR YOGESHWAR WAMANRAO
Y10S707/99943G06F 16/252Y10S707/99942
60
PatentIndex Score
5
Cited by
43
References
58
Claims

Abstract

An integration server system for mapping data objects on a database schema offers a strongly-typed model API, complex constraint management, and association balancing. The integration server system also has improved performance through optimized handling of ordered associations of data object and of string-valued attributes. The integration server system comprises a database schema configured to store a set of data object instances. A metadata model represents a configuration of the set of data object instances in the database schema. A model application programming interface provides a client application with access to the set of data object instances, and a metadata application programming interface provides a client application with access to the set of data object instances via the metadata model.

Claims

exact text as granted — not AI-modified
1. An integration server system that enables data modeling and storage operations of data objects, the system comprising:
 a processor operable to execute instructions stored in a data storage medium; 
 a database operable to store data accessible to the processor; 
 a model generator adapted to create a database schema including one or more database tables in response to a model description defining one or more data objects, wherein the database schema is configured to store a set of data object instances in the database, and wherein the model generator is adapted to create object structures having one-to-one and one-to-many mappings; and 
 an application programming interface operable to enable a client application to create instances of a data object in the database schema and provide the client application with access to the set of data object instances as separate data objects enabling the client application to perform the data modeling and storage operations of data objects. 
 
     
     
       2. The integration server system of  claim 1  wherein the object structures having one-to-one and one-to-many mappings created by the generator are accessible by client applications. 
     
     
       3. The integration server system of  claim 2  wherein the object structures having one-to-one and one-to-many mappings created by the generator comprise meta data describing data objects and corresponding database schema. 
     
     
       4. The integration server system of  claim 1  further comprising a module to enable caching. 
     
     
       5. The integration server system of  claim 1  wherein the model generator is capable of creating a single table to encompass all classes in an inheritance hierarchy of classes. 
     
     
       6. The integration server system of  claim 1  further comprising a module adapted to automatically assign attribute values to columns in the database. 
     
     
       7. The integration server system of  claim 6  wherein the module adapted to automatically assign attribute values to columns in the database is part of the application programming interface. 
     
     
       8. The integration server system of  claim 1  further comprising a module that creates a set of functions corresponding to attributes of data objects defined by the model description including accessor functions that enable client applications to read or set attributes of instances of the data objects. 
     
     
       9. The integration server system of  claim 8  wherein the module that creates the set of functions corresponding to attributes of data objects defined by the model description including accessor functions that enable client applications to read or set attributes of instances of the data objects is part of the application programming interface. 
     
     
       10. The integration server system of  claim 1  wherein the model generator allows mapping of attributes that are not specifically defined in the class definition. 
     
     
       11. The integration server system of  claim 1  wherein the model generator is further adapted to create model metadata. 
     
     
       12. The integration server system of  claim 11  wherein metadata is stored both statically within the meta data model and within the database schema. 
     
     
       13. The integration server system of  claim 1  wherein the model generator is adapted to create the application programming interface. 
     
     
       14. The integration server system of  claim 1  wherein the application programming interface includes an accessor function which allows a client application to read or set attributes of instances of data objects by generating an appropriate database command. 
     
     
       15. The integration server system of  claim 1  wherein data objects can be associated with one or more other data objects and the associations between data objects is stored in the database, each association being an attribute of a data object represented by a column of a table in the database schema. 
     
     
       16. The integration server system of  claim 15  wherein each instance of a data object is assigned an ID number in the database schema and the ID number of a first instance of a data object is stored in the association column of a second instance of a data object to define an association between two data objects. 
     
     
       17. The integration server system of  claim 1  wherein the database comprises a table of transformation mappings where each mapping specifies how to convert data objects from one format to another. 
     
     
       18. An integration server system that enables data modeling and storage operations of data objects, the system comprising:
 a processor operable to execute instructions stored in a data storage medium; 
 a relational database operable to store data accessible to the processor that updates and retrieves data in response to SQL commands; 
 a model generator adapted to create a database schema including one or more database tables in response to a model description defining one or more data objects, wherein the database schema is configured to store a set of data object instances in the database and wherein the model generator is further adapted to create object structures having one-to-one and one-to-many mappings and is capable of creating a single table to encompass all classes in an inheritance hierarchy of classes; 
 an application programming interface operable to enable a client application to create instances of a data object in the database schema and provide the client application with access to the set of data object instances as separate data objects enabling the client application to perform the data modeling and storage operations of data objects, wherein the application programming interface allows client applications written in an object oriented programming language to access the data objects in the same manner as any other object in the programming language; and 
 a module that creates a set of functions corresponding to attributes of data objects defined by the model description including accessor functions that enable client applications to read or set attributes of instances of the data objects. 
 
     
     
       19. The integration server system of  claim 18  wherein, in response to a request for creation of one or more new data objects from a client application, the application programming interface coordinates a response to the request including creating an instance of the data object in the database schema and returning a reference to the data object instance to the requesting client application thereby allowing the integration server to change database schemas without changing the model application programming interface. 
     
     
       20. The integration server system of  claim 19  wherein data objects can be associated with one or more other data objects in the model description and wherein the associations between data objects are stored in the database, each association being an attribute of a data object represented by a column of a table in the database schema and wherein each instance of a data object is assigned an ID number in the database table, wherein the ID number of a first instance of a database object is stored in an association column of a second instance of a data object to define an association between two data objects. 
     
     
       21. The integration server system of  claim 20  wherein variable length strings can be stored in the database schema in a manner that provides improved performance as compared to storing the variable length strings in a Character Large Object (“CLOB”) data structure. 
     
     
       22. The integration server system of  claim 20  wherein the integration server is capable of converting data objects between different formats specific to two or more client applications. 
     
     
       23. The integration server system of  claim 22  further comprising a module to enable caching. 
     
     
       24. The integration server system of  claim 22  further comprising a module adapted to automatically assign attribute values to columns in the database. 
     
     
       25. The integration server system of  claim 22  wherein the model generator allows mapping of attributes that are not specifically defined in the class definition. 
     
     
       26. The integration server system of  claim 22  wherein metadata is stored both statically within the meta data model and within the database schema. 
     
     
       27. The integration server system of  claim 18  wherein the application programming interface includes an accessor function which allows a client application to read or set attributes of instances of data objects by generating an appropriate database command. 
     
     
       28. The integration server system of  claim 18  wherein data objects can be associated with one or more other data objects and the associations between data objects is stored in the database, each association being an attribute of a data object represented by a column of a table in the database schema. 
     
     
       29. The integration server system of  claim 28  wherein each instance of a data object is assigned an ID number in the database schema and the ID number of a first instance of a data object is stored in the association column of a second instance of a data object to define an association between two data objects. 
     
     
       30. The integration server system of  claim 18  wherein the database comprises a table of transformation mappings where each mapping specifies how to convert data objects from one format to another. 
     
     
       31. An integration server system that enables data modeling and storage operations of data objects, the system comprising:
 a processor operable to execute instructions stored in a data storage medium; 
 a relational database operable to store data accessible to the processor that updates and retrieves data in response to SQL commands; 
 a model generator adapted to create a database schema in response to a model description defining one or more data objects, the database schema including one or more database tables configured to store a set of data object instances in the database, wherein the model generator allows mapping of attributes that are not specifically defined in the class definition, is capable of creating a single table to encompass all classes in the hierarchy and object structures having one-to-one and one-to-many mappings; 
 an application programming interface operable to enable a client application to create instances of a data object in the database schema and provide the client application with access to the set of data object instances as separate data objects enabling the client application to perform the data modeling and storage operations of data objects, wherein the application programming interface allows client applications written in an object oriented programming language to access the data objects in the same manner as any other object in the programming language, and wherein in response to a request for creation of one or more new data objects from a client application the application programming interface coordinates a response to the request including creating an instance of the data object in the database schema and returning a reference to the data object instance to the requesting client application thereby allowing the integration server to change database schemas without changing the model application programming interface; and 
 one or more modules that (i) create a set of functions corresponding to attributes of data objects defined by the model description including accessor functions that enable client applications to read or set attributes of instances of the data objects; (ii) enable caching; and automatically assign attribute values to columns in the database; and 
 wherein the integration server is capable of converting data objects between different formats specific to two or more client applications based on transformation rules stored in a table of the database and automatically handling conversion of data objects from their format as stored in the database schema into a format used by the client application; and storing variable length strings in the database schema in a manner that provides improved performance as compared to storing the variable length strings in a Character Large Object (“CLOB”) data structure. 
 
     
     
       32. The integration server system of  claim 31  wherein data objects can be associated with one or more other data objects in the model description and wherein the associations between data objects are stored in the database, each association being an attribute of a data object represented by a column of a table in the database schema and wherein each instance of a data object is assigned an ID number in the database table, wherein the ID number of a first instance of a database object is stored in an association column of a second instance of a data object to define an association between two data objects. 
     
     
       33. A method of enabling a client application executing on a computer to perform operations on data objects defined by a model description stored in a machine-readable medium along with a database schema including one or more database tables configured to store a set of data object instances in a database created from the model description and a model application programming interface from the model description that enables the client application to access data objects in the set of data object instances in the same manner as other data objects, the method comprising:
 using the model application programming interface to create instance of data objects in the database schema including an instance of an object structure having one-to-one and one-to-many mappings; 
 storing the created data object instances in a machine-readable medium; 
 accessing the created data object instances as a separate data objects with the client application; and 
 performing operations on the accessed data object instances including storing, reading and modifying attributes of the data objects. 
 
     
     
       34. The method of  claim 33  wherein the instances of object structures having one-to-one and one-to-many mappings comprise meta data describing data objects and corresponding database schema. 
     
     
       35. The method of  claim 34  further comprising reading or setting attributes of instances of data objects with an accessor function by generating an appropriate database command. 
     
     
       36. The method of  claim 33  further comprising creating a single table to encompass all classes in an inheritance hierarchy of classes. 
     
     
       37. The method of  claim 33  further comprising automatically assigning attribute values to columns in the database. 
     
     
       38. The method of  claim 33  further comprising creating a set of functions corresponding to attributes of data objects defined by the model description including accessor functions that enable client applications to read or set attributes of instances of the data objects. 
     
     
       39. The method of  claim 33  wherein a module is provided to enable caching. 
     
     
       40. The method of  claim 33  further comprising mapping attributes that are not specifically defined in the class definition. 
     
     
       41. The method of  claim 33  further comprising ordering retrieved data by a value of an attribute of the data. 
     
     
       42. The method of  claim 33  further comprising generating a persistent unique sequence value for data objects stored in the database. 
     
     
       43. The method of  claim 33  wherein a module is provided to enable caching and wherein the method further comprises:
 creating a single table to encompass all classes in an inheritance hierarchy of classes; 
 assigning attribute values to columns in the database; 
 creating a set of functions corresponding to attributes of data objects defined by the model description including accessor functions that enable client applications to read or set attributes of instances of the data objects; and 
 mapping attributes that are not specifically defined in the class definition. 
 
     
     
       44. The method of  claim 43  further comprising requesting creation of one or more new data objects and receiving a response to the request including an instance of the data object created in the database schema and a reference to the data object instance. 
     
     
       45. A method of enabling a client application executing on a computer to perform operations on data objects defined by a model description stored in a machine-readable medium, the method comprising:
 creating and storing in a machine-readable medium a database schema including one or more database tables configured to store a set of data object instances in a database from the model description including a single table to encompass all classes in an inheritance hierarchy of classes; 
 creating and storing in a machine-readable medium a model application programming interface from the model description that enables the client application to access data objects in the set of data object instances in the same manner as other data objects; 
 assigning attribute values to columns in the database and mapping attributes that are not specifically defined in the class definition; 
 creating a set of functions corresponding to attributes of data objects defined by the model description including accessor functions that enable client applications to read or set attributes of instances of the data objects by generating an appropriate database command; 
 ordering retrieved data by a value of an attribute of the data; 
 generating a persistent unique sequence value for data objects stored in the database; 
 creating instances of data objects in the database schema using the model application programming interface including an instance of an object structure having one-to-one and one-to-many mappings; 
 storing the created data object instances in a machine-readable medium; 
 accessing the created data object instances as a separate data objects with the client application; and 
 performing operations on the accessed data object instances including storing, reading and modifying attributes of the data objects. 
 
     
     
       46. A computer-readable medium for a computer system, the computer-readable medium having stored thereon a model description defining one or more data objects, a database schema including one or more database tables configured to store a set of data object instances in a database created from the model description, a model application programming interface created from the model description that enables the client application to access data objects in the set of data object instances in the same manner as other data objects, and a series of instructions which, when executed by a processing component of the computer system, cause the processing component to:
 create instance of data objects in the database schema using the model application programming interface including an instance of an object structure having one-to-one and one-to-many mappings; 
 store the created data object instances in the computer-readable medium; 
 access the created data object instances as a separate data objects with the client application; and 
 perform operations on the accessed data object instances including storing, reading and modifying attributes of the data object. 
 
     
     
       47. The computer-readable medium of  claim 46  wherein the instances of object structures having one-to-one and one-to-many mappings stored in the computer-readable medium comprise meta data describing data objects and corresponding database schema. 
     
     
       48. The computer-readable medium of  claim 46  wherein the model description includes an inheritance hierarchy of classes and the series of instructions further causes the processing component to create a single table to encompass all classes in an inheritance hierarchy of classes. 
     
     
       49. The computer-readable medium of  claim 46  wherein the series of instructions further causes the processing component to automatically assign attribute values to columns in the database. 
     
     
       50. The computer-readable medium of  claim 46  wherein the series of instructions further causes the processing component to create a set of functions corresponding to attributes of data objects defined by the model description including accessor functions that enable client applications to read or set attributes of instances of the data objects. 
     
     
       51. The computer-readable medium of  claim 46  wherein a module is provided to enable caching. 
     
     
       52. The computer-readable medium of  claim 46  wherein the series of instructions further causes the processing component to map attributes that are not specifically defined in the class definition. 
     
     
       53. The computer-readable medium of  claim 46  wherein the series of instructions further causes the processing component to read or set attributes of instances of data objects with an accessor function by generating an appropriate database command. 
     
     
       54. The computer-readable medium of  claim 46  wherein the series of instructions further causes the processing component to order retrieved data by a value of an attribute of the data. 
     
     
       55. The computer-readable medium of  claim 46  wherein the series of instructions further causes the processing component to generate a persistent unique sequence value for data objects stored in the database. 
     
     
       56. The computer-readable medium of  claim 46  wherein the model description includes an inheritance hierarchy of classes and wherein the series of instructions further causes the processing component to:
 create a single table to encompass all classes in an inheritance hierarchy of classes; 
 assign attribute values to columns in the database; 
 create a set of functions corresponding to attributes of data objects defined by the model description including accessor functions that enable client applications to read or set attributes of instances of the data objects; and 
 map attributes that are not specifically defined in the class definition. 
 
     
     
       57. The computer-readable medium of  claim 46  further wherein the series of instructions further causes the processing component to request creation of one or more new data objects and receive a response to the request including an instance of the data object created in the database schema and a reference to the data object instance. 
     
     
       58. A computer-readable medium for a computer system, the computer-readable medium having stored thereon a model description defining one or more data objects and a series of instructions which, when executed by a processing component of the computer system, cause the processing component to:
 create and store in a computer-readable medium a database schema including one or more database tables configured to store a set of data object instances in a database from the model description including a single table to encompass all classes in an inheritance hierarchy of classes; 
 create and store in a computer-readable medium a model application programming interface from the model description that enables the client application to access data objects in the set of data object instances in the same manner as other data objects; 
 assign attribute values to columns in the database and mapping attributes that are not specifically defined in the class definition; 
 create a set of functions corresponding to attributes of data objects defined by the model description including accessor functions that enable client applications to read or set attributes of instances of the data objects by generating an appropriate database command; 
 order retrieved data by a value of an attribute of the data; 
 generate a persistent unique sequence value for data objects stored in the database; 
 create instances of data objects in the database schema using the model application programming interface including an instance of an object structure having one-to-one and one-to-many mappings; 
 store the created data object instances in a computer-readable medium; 
 access the created data object instances as a separate data objects with the client application; and 
 perform operations on the accessed data object instances including storing, reading and modifying attributes of the data objects.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.