Method and apparatus for providing relationship objects and various features to relationship and other objects
First Claim
Patent Images
1. A system comprising:
- a plurality of integration sources including a relational database table, a conversion application, and a reporting application; and
an object-oriented data warehouse including, a plurality of base objects that include data describing said plurality of integration sources, and a plurality of relationship objects each of which corresponds to one of said plurality of base objects, said plurality of relationship objects including relationship methods to be applied on the corresponding plurality of base objects to express relationships between different ones of the plurality of base objects.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for providing relationship objects and various features to relationship and other objects. According to one aspect of the invention, a system is described that includes a number of base objects that contain data describing disparate sources of an enterprise. In addition, the system includes a number of relationship objects that express relationships between different ones of the plurality of base objects.
-
Citations
66 Claims
-
1. A system comprising:
-
a plurality of integration sources including a relational database table, a conversion application, and a reporting application; and
an object-oriented data warehouse including, a plurality of base objects that include data describing said plurality of integration sources, and a plurality of relationship objects each of which corresponds to one of said plurality of base objects, said plurality of relationship objects including relationship methods to be applied on the corresponding plurality of base objects to express relationships between different ones of the plurality of base objects. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
said relationship methods are made up of different groups according to the type of relationship expressed; and
said system further comprising, a model engine to locate the plurality of relationship objects in said system according to the type of relationship expressed.
-
-
4. The system of claim 1, wherein certain of said relationship methods express that data of its relationship object'"'"'s corresponding base object'"'"'s corresponding integration source is used by another integration source.
-
5. The system of claim 1, wherein certain of said relationship methods express that data of its relationship object'"'"'s corresponding base object'"'"'s corresponding integration source is generated from data in another integration source.
-
6. The system of claim 1, wherein:
-
said relationship methods are made up of different groups according to the type of relationship expressed, and said plurality of base objects each include a get_relationship method, which when applied, causes a processor to locate those of the plurality of relationship objects that include relationship methods of a particular one of said types identified as a parameter to said get_relationship method.
-
-
7. The system of claim 6 wherein said plurality of base objects each include a perform_relationship method, which when applied, causes a processor to apply said get_relationship method and to apply a default one of the methods in each of the relationship objects located by the application of the get_relationship method.
-
8. The system of claim 7, wherein the default methods are the relationship methods of the particular one of said types.
-
9. The system of claim 7, wherein each of the default methods, when applied by a processor, causes the processor to select the relationship method in its relationship object of the particular one of said types.
-
10. The system of claim 1, wherein:
-
said relationship methods are made up of different groups according to the type of relationship expressed, and said plurality of base objects each include a perform_relationship method, which when applied, causes a processor to create a result set including the result of applying all of the relationship methods of a particular one of said types.
-
-
11. The system of claim 1, wherein certain of said plurality of relationship objects includes a metadata structure having stored therein properties regarding the one or more relationship methods included in its relationship object.
-
12. The system of claim 11, wherein said properties include a name and a value for at least certain of the input parameters to each of the one or more relationship methods in its relationship object.
-
13. The system of claim 11, wherein said properties also include a range of acceptable values for at least certain of the input parameters named to each of the one or more relationship methods in its relationship object.
-
14. The system of claim 11, wherein said properties include a name and domain for each of the return values of each of the one or more relationship methods in its relationship object.
-
15. The system of claim 1, wherein said relationship methods are made up of different groups according to the type of relationship express, said types are predetermined and each is assigned a unique label, and each of said plurality of relationship objects have stored therein the unique labels of the types of relationships expressed by its one or more relationship methods.
-
16. The system of claim 15, wherein said object-oriented data warehouse further comprises:
a model engine to view the types of relationships already expressed by the relationship methods according to their underlying base objects and to create an additional relationship object of a given one of said types.
-
17. An object-oriented data warehouse comprising:
-
a plurality of relationship objects collectively including a plurality of relationship methods, the plurality of relationship methods being made up of different groups according to the type of relationship expressed, a unique identifier being associated with each of said types, each of said plurality of relationship objects including, at least one said plurality of relationship methods, and a category structure to store the unique identifier of each of said types of relationship methods in the relationship object; and
a plurality of base objects each including, data describing one of a plurality of disparate integration sources, and a method having a parameter to identify at least one of the unique identifiers, said method, when applied, causes a processor to locate all of the plurality of relationship objects whose category structure includes the parameter. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
at least one relationship method of at least two of said types; and
a method, which when applied, causes a processor to select one of the relationship methods included in the first relationship object based on the parameter.
-
-
21. The object-oriented data warehouse of claim 20, wherein the method whose application causes the selection of one of the relationship methods is a default method.
-
22. The object-oriented data warehouse of claim 17, wherein said method also causes, for each of the located relationship objects, the application of the one of said relationship methods associated with the parameter.
-
23. The object-oriented data warehouse of claim 22, wherein said method also causes the creation of a result set including the results of applying all required relationship methods on all required ones of said plurality of base and relationship objects needed to satisfy the relationship specified by the parameter.
-
24. The object-oriented data warehouse of claim 17, further comprising:
a set of one or more object-tracking structures, wherein the one or more classes of which the plurality of relationship objects are instances are each assigned a unique label, said set of object-tracking structures having stored therein a top-down representation of the hierarchy of the classes with reference to the labels, and having stored therein a distinguishing identifier assigned to each of the relationship objects stored according to the labels.
-
25. The object-oriented data warehouse of claim 17, wherein the base and relationship objects belong to a class hierarchy, each class in the class hierarchy being assigned a distinguishing label, each subclass having stored therein its label and the label of its parent'"'"'s class, at least a first of the subclasses including,
a first method, applied in response to class initialization, causes a processor to add that classes'"'"' unique label to a set of object-tracking structures that track a top-down representation of the hierarchy of said classes with reference to the unique labels, and a second method, applied in response to instance initialization, causes a processor to add an identifier assigned to said instance to said set of object tracking structures under the label of its class. -
26. The object-oriented data warehouse of claim 17, wherein each of said plurality of relationship objects corresponds to one of said plurality of base objects, and wherein one relationship method of a first of said plurality of relationship objects expresses a relationship of that relationship object'"'"'s corresponding base object'"'"'s integration source to another part of that integration source or another of the plurality of disparate integration sources.
-
27. The object-oriented data warehouse of claim 17, wherein each of said plurality of relationship objects corresponds to one of said plurality of base objects, and wherein each of the relationship methods of said plurality of relationship objects expresses a relationship regarding that relationship object'"'"'s corresponding base object'"'"'s integration source.
-
28. The object-oriented data warehouse of claim 17, wherein said method is in each of said plurality of base objects.
-
29. The object-oriented data warehouse of claim 17, wherein said method also causes the processor to add the base object from whence the method was applied to a result collectible, apply one of the relationship methods from each of the selected relationship objects on the objects in the result collectible, and add the results to the result collectable.
-
30. The object-oriented data warehouse of claim 29, wherein said method also causes repetitively applying the one of the relationship methods from each of the selected relationship objects on the results added to the result collectable until a completion criteria is met.
-
31. The object-oriented data warehouse of claim 30, wherein the completion criteria is met when the result collectible no longer increases in size.
-
32. The object-oriented data warehouse of claim 30, wherein the results can include different ones of said plurality of base objects and different ones of said plurality of relationship objects.
-
33. The object-oriented data warehouse of claim 17, wherein each of said plurality of relationship objects also includes:
a metadata structure having stored therein properties regarding the at least one or more relationship methods included in its relationship object.
-
34. The object-oriented data warehouse of claim 33, wherein said properties include a name and value for at least certain of the parameters to certain of the one or more relationship methods in its relationship object.
-
35. The object-oriented warehouse of claim 34, wherein properties include a range of acceptable values for at least certain of the parameters named in the metadata structure.
-
36. The object-oriented data warehouse of claim 33, wherein said properties include a name and domain for at least one of the return values of each of at least one or more relationship methods in its relationship object.
-
37. A machine readable medium having stored thereon:
-
an object-oriented class hierarchy including a parent class with a plurality of derivative classes, each of said classes being assigned a unique label, each of said derivative classes having stored therein its label and the label of the parent class, each of the derivative classes including, a first method, applied in response to class initialization, that causes a processor to add that classes'"'"' unique label to a set of object-tracking structures that track a top-down representation of the hierarchy of said classes with reference to the unique labels, and a second method, applied in response to instance initialization, that causes a processor to add an identifier assigned to said instance to said set of object-tracking structures under the label of its class.
-
-
38. A computer implemented method comprising:
-
creating a first instance of a class in an object-oriented class hierarchy, said class and the parent of said class in the class hierarchy having each been assigned unique labels that are stored in said class;
applying a first method of said first instance, which when applied, causes a processor to add the unique label of the class to a set of object tracking structures that store a top-down representation of the classes in the class hierarchy with reference to the unique labels; and
applying a second method of said first instance, which when applied, causes a processor to, create a second instance of said class, and add an identifier assigned the second instance to the set of object tracking structures under the unique label of the class. - View Dependent Claims (39)
-
-
40. A machine-readable medium having stored thereon instructions, which when executed by a set of one or more processors, causes said set of processors to perform the following:
-
applying a method from a base object, said applying of said method including a parameter specifying one of a plurality of types of relationships as a current relationship of interest, said base object being one of a plurality of base objects each including data describing one of a plurality of disparate integration sources, said applying causing, identifying a subset of a plurality of objects in an object-oriented data warehouse that are relationship objects, said relationship objects collectively storing a plurality of relationship methods, wherein each of the relationship methods of said plurality of relationship objects expresses a relationship regarding that relationship object'"'"'s corresponding base object'"'"'s integration source, and identifying a subset of the relationship objects that include relationship methods that satisfy said parameter. - View Dependent Claims (41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54)
the one or more classes of which the plurality of relationship objects are instances are each assigned a unique label, and said identifying said subset of said plurality of objects further comprises, accessing a set of one or more object tracking structures that store a top-down representation of the hierarchy of the classes with reference to the labels, and further have stored therein a unique identifier assigned each of said relationship objects according to the labels.
-
-
42. The machine-readable medium of claim 41, said identifying said subset of the relationship objects further comprises:
determining if a category structure in each of said relationship objects has stored therein a unique relationship method type identifier assigned the current relationship of interest, wherein the plurality of relationship methods are made up of different groups according to the type of relationship expressed, a unique relationship method type identifier having been assigned to each of said types, each relationship object having stored in its category structure the unique relationship method type identifier assigned to each of the one or more of the plurality of relationship methods stored in that relationship object.
-
43. The machine-readable medium of claim 40, said identifying said subset of the relationship objects further comprises:
determining if a category structure in each of said relationship objects has stored therein a unique relationship method identifier assigned the current relationship of interest, wherein the plurality of relationship methods are made up of different groups according to the type of relationship expressed, a unique relationship method type identifier having been assigned to each of said types, each relationship object having stored in its category structure the unique relationship method type identifier assigned to each of the one or more of the plurality of relationship methods stored in that relationship object.
-
44. The machine-readable medium of claim 40, said identifying said subset of the relationship objects further comprises:
accessing a table having stored therein data identifying which relationship methods are stored in which of the relationship objects.
-
45. The machine-readable medium of claim 40, wherein:
-
said parameter is a set of one or more SQL statements; and
said identifying said subset of the relationship objects further comprises performing said set of SQL statements.
-
-
46. The machine-readable medium of claim 40, said applying said method from said base object further comprises:
for at least a first of the relationship methods that satisfies the parameter and that is associated with a first of the subset of the relationship objects, displaying properties stored in a metadata structure of that first relationship object regarding the first relationship method.
-
47. The machine-readable medium of claim 46, said displaying further comprises:
displaying a name and value for each of the parameters to the first relationship method.
-
48. The machine-readable medium of claim 46, said displaying further comprises:
displaying a range of acceptable values for each of the parameters to the first relationship method.
-
49. The machine-readable medium of claim 46 further comprises:
applying the first relationship method with the values for the parameters stored in the metadata structure of the first relationship object.
-
50. The machine-readable medium of claim 40, said applying said method from said base object further comprises:
applying the relationship methods, which satisfy said parameter, on said base object.
-
51. The machine-readable medium of claim 50, wherein said applying the relationship methods further comprises:
-
applying a default method from each relationship object in said subset of the relationship objects, said default method for at least one of the relationship objects causing said set of processors to, identify which of the set of one or more of the relationship methods associated with that relationship object expresses the current relationship of interest, and apply that relationship method.
-
-
52. The machine-readable medium of claim 40, said applying said method from said base object further comprises:
-
placing said base object in a result collectible, applying the relationship methods that satisfy said parameter on the objects in the result collectible, placing the results of the applying of the relationship methods into the result collectible, and repeating said applying the relationship methods and the placing the results until a completion criteria is met.
-
-
53. The machine-readable medium of claim 52, wherein said applying the relationship methods further comprises:
-
applying a default method from each relationship object in said subset of the relationship objects, said default method for at least one of the relationship objects causing said set of processors to, identify which of the set of one or more of the relationship methods associated with that relationship object expresses the current relationship of interest, and apply that relationship method.
-
-
54. The machine-readable medium of claim 52, wherein said completion criteria is met when the size of the result collectable no longer increases in size.
-
55. A machine-readable medium having stored therein instructions, which when executed by a set of one or more processors, causes said set of processors to perform the following:
-
applying a method from a base object, said applying of said method including a parameter specifying one of a plurality of types of relationships as a current relationship of interest, said base object being one of a plurality of base objects each including data describing one of a plurality of disparate integration sources, wherein each of a plurality of relationship objects corresponds to one of said plurality of base objects and includes a set of one or more relationship methods, wherein each of the relationship methods expresses one of the plurality of types of relationships regarding its relationship object'"'"'s corresponding base object'"'"'s integration source, said applying said method from said base object causing, adding said base object to a result collectible, applying at least certain of the relationship methods on the newly added contents of the result collectible, adding the results of the applying at least certain of the relationship methods to the result collectible, and repeating said applying at least certain of the relationship methods and the adding the results until a completion criteria is met. - View Dependent Claims (56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66)
identifying a set of one or more of the plurality of relationship objects that each include one or more relationship methods that satisfy said parameter, applying relationship methods from only the set of relationship objects.
-
-
57. The machine-readable medium of claim 56, wherein said applying relationship methods from only the set of relationship objects includes applying only those relationship methods from the set of relationship objects that satisfy said parameter.
-
58. The machine-readable medium of claim 56, said applying relationship methods from only the set of relationship objects includes:
-
applying a default method from each relationship object in said set of the relationship objects, said default method for at least one of the relationship objects causing said set of processors to, identify which of the set of one or more of the relationship methods associated with that relationship object expresses the current relationship of interest, and apply that relationship method.
-
-
59. The machine-readable medium of claim 55, wherein applying at least certain of the relationship methods on the contents of the result collectible includes:
-
applying a default method from each relationship object, said default method causing said set of processors to, identify which, if any, of the set of one or more of the relationship methods associated with that relationship object expresses the current relationship of interest, and apply that relationship method.
-
-
60. The machine-readable medium of claim 55, wherein applying at least certain of the relationship methods on the contents of the result collectible includes:
applying a default method from each relationship object, said default being one of said relationship methods, said default method returning null if said default method does not express the current relationship of interest.
-
61. The machine-readable medium of claim 55, wherein said completion criteria is met when the size of the result collectable no longer increases in size.
-
62. The machine-readable medium of claim 55, wherein:
-
the plurality of base objects is made up of a plurality of different types created for the plurality of disparate integration sources or parts thereof; and
each of the relationship methods were written for application on the type of its corresponding base object; and
each relationship method, when applied, causes said set of processors to perform the following, checking if the base object from the result collectable upon which the relationship method is currently being applied is of the matching type, and if not of the appropriate type, returning data indicating nothing is to be added to the result collectable.
-
-
63. The machine-readable medium of claim 62, wherein said checking includes checking the class of the base object and all parent classes of that class.
-
64. The machine-readable medium of claim 62, wherein the results of the application of the relationship methods when applied to one of the plurality of base objects of the matching type can return one or more of the plurality of base and relationship objects.
-
65. The machine-readable medium of claim 62, wherein:
-
each class in the class hierarchy of which the plurality of base and relationship objects are instances is assigned a unique label;
each relationship method has associated with it the unique label assigned the class of the base object for which it was written; and
said checking includes, comparing the label associated with the relationship method to the label assigned the class of which the base object is an instance.
-
-
66. The machine-readable medium of claim 65, wherein said checking also includes:
if the label associated with the relationship method does not match the label assigned the class of which the base object is an instance, working up the class hierarchy until either a label is found that matches the label associated with the relationship method or a completion criteria is met.
Specification