1. Field
Embodiments of the invention relate to data handling. More specifically, embodiments of the invention relate to modeling and manipulation of validity dependent data sets.
2. Background
Typically, a validity dependent data set includes an arbitrarily large number of data objects and the relations between them. The validity dependency of an object is represented by one or more states of the object where the validity of each state is constrained by values of one or more validity parameters. One example of a validity parameter is time. As such, the state of an object may be valid at one time, but no longer valid after that time has passed. Other parameters, such as serial number, for example, may also serve as a validity parameter.
Handling a validity dependent data set requires providing a valid view of the data set to a consuming application based on a set of parameters provided by the consuming application. Often the set of parameters provided constrain both the structure and the validity of the underlying data set.
Generically handling validity dependent data sets is problematic at least in part as a result of the large diversity of underlying data models. For example, not all objects are validity dependent, that is, not all objects may have multiple states. In some cases, relations between objects may themselves be validity dependent. A state of an object may change even after additional states of the object have been added to the model. Validity dependency may result from versioning of entire components as well as delta tracking on object or even object feature level. The domain of a validity parameter is not necessarily continuous or sorted, and in some cases may be a discrete and unsorted value set. Therefore, the states of an object cannot necessarily be sequenced based on their validity constraints. Some objects in the data model may be autonomous, while other objects in the data model depend on the preexistence of still other objects to which they are related. Additional consuming applications may desire the data in a format different from the format of the underlying data model. In light of this non-exhaustive list of diversity characteristics, no tools currently exist for handling arbitrary validity dependent data sets.
A system and method to generically handle validity dependent data sets is disclosed. A set of dimensions applicable to the data set is defined. At least one dimension is associated with a validity independent structure of the data set and at least one other dimension is associated with a validity constraint effective for the data set. The data set is retrieved with its associated dimensions. A model of the data set is created using the associated dimensions. The model provides access to the data in a manner that permits it to be viewed and manipulated to respond to requests of a consuming application.
The accompanying drawings, which constitute a part of this disclosure, illustrate various embodiments and aspects of the present invention and, together with the description, explain the principles of the invention.
Processor 102 provides a standard consumption interface 114 to which applications 128, 138 may issue requests to handle data set 118. For example, the applications 128, 138 may request particular views of the data set. Processor 102 also provides a standard retrieval interface 116. In some embodiments, the retrieval interface is implemented by a structure provider 117 which loads data set 118 from a persistent storage such as database 110 and associates it with a set of dimensions. In other embodiments, the data set may be transmitted directly to the retrieval interface 116 from a remote system using a protocol based on the association of the data set with a set of dimensions.
Master data includes a structure consisting of data objects and relations that are defined between those objects. In addition, master data may include components containing these objects and relations. The processor 102 requires that the master data is associated to a set of dimensions so that different dimensions are defined to express the structure and the validity dependency of the master data, respectively. The dimensions can be defined at runtime, in one embodiment by structure provider 117, but customizing based on certain types of data sets is also contemplated as within the scope of the invention. The association of the data set to the dimensions may be either stored with the master data in the database, or added at runtime by structure provider 117. In the first case, the database tables may be defined according to a generic design pattern for validity dependent master data in accordance with one embodiment of the invention. In some embodiments, the data set 118 is stored in a file using a tag-based markup language such as extensible markup language (XML). The set of tags can be used to associate the data with the set of dimensions.
In one embodiment, a structural dimension may be defined for each hierarchical or sequential validity independent structure of the data set, and a validity dimension may be defined for each validity parameter of which at least one validity constraint is effective for the data set. For example, in some cases the data set may represent an engineered product. In such cases, the structural dimension of the data may correspond to a hierarchical composition structure or a sequential routing structure of the product. For example, a validity dimension may be defined for each validity parameter used by a change management system. Modeler 112 accesses retrieval interface 116 to get this master data and to generate a plural dimensional model of the data set in the “space” spanned by the associated structural and validity dimensions.
The modeler 112 includes a navigation module 122 and a substitution module 124 which respectively permit navigation around the plural dimensional model as well as substitution of one model element for one or multiple more elementary model elements. Navigation and substitution are discussed in further detail below.
The modeler 112 is responsible for creating the model in the space defined by the set of dimensions associated with the data set 118. Each dimension has arbitrarily many indices. Graphically, an index may be represented by a location along an axis corresponding to a dimension.
An index is uniquely assigned to a dimension. An index of a structural dimension represents the validity independent existence of an object. An index of a validity index represents the beginning or end of a validity constraint. In most cases, the end of a validity constraint coincides with the beginning of another.
In some embodiments, semantically related indices can be combined into a “range.” A range is uniquely assigned to a dimension. For example, a range of a hierarchy dimension may combine a leaf object of one component with a root object of another component to enable multi-level views. As used herein “component” refers to a group of tightly related objects, such as a header and position objects from a bill of material. A range of a validity dimension may combine, for example, all indices representing the same validity value as part of multiple changes. This reflects current procedure in engineering, where all changes during the product design phase become effective on the start-of-production (SOP), the day on which the official handover to manufacturing takes place. To keep the changes distinct, this method defines different validity indices which all represent the SOP time. However, a range defined for all these indices allows efficient simplification whenever wanted.
Structure provider 117 assigns indices to the objects and validity constraints. The states of an object have a correspondence to both the index representing the object as well as to one or multiple validity indices representing the validity constraints of these states. Therefore, it is defined at the intersection of the index layers in the space spanned by the structural and validity dimensions. There may be arbitrarily many states defined within the space. Because indexes are defined to be unique within a dimension, the intersection between the indices of two dimensions is also unique. Thus, each state occupies a unique position within a layer of the model. In one embodiment, the coordinates resulting from these intersections are represented as points in a plural dimensional partially ordered space.
In the other case, at block 208, structure provider 117 accesses database 110 and defines a set of dimensions for the read data set. This set of dimensions may include one or multiple structural dimensions and one or multiple validity dimensions. For example, there may be a structural dimension for the representation of a product composition by super- and subordinate bills of materials, another structural dimension for the representation of the corresponding production plan by preceding and succeeding operations and activities, and a validity dimension for each validity parameter in use by the change management. At block 214, structure provider118 associates at least one dimension with the validity independent structure of the data set and at least one other dimension with the validity constraints of the data set. In one embodiment, the validity independent structure of the data set includes objects of one or multiple aspects and relations between those objects of one or multiple aspects. As used herein, an “aspect” is a common data format, i.e. same data fields. The validity independent structure of the data set may further include components of one or multiple aspects, a component containing objects and relations. Optionally, the validity independent structure of the data set includes features of one or multiple aspects, a feature being a subordinate characteristic to an object, a relation, a component or another feature. For example, an instance of a feature could be a computer aided design (CAD) drawing.
Then, at decision point 216, processor 102 checks the intended use of the data retrieval. In one embodiment, there may be multiple usages simultaneously wanted. If a file name is given, then the retrieved data is stored in this file at block 220, for example, using the corresponding XML tags. If a channel is given, then the retrieved data is sent off using a corresponding protocol at block 218. If a consuming application is given, then the modeler 112 generates a plural dimensional model at block 222. This model generation comprises at least creating an element for each dimension, each index, each object state, each relation state, etc. As used herein, “element” refers to a constituent part of the model.
Once the model exists, a determination is made at decision point 224 whether a request for one or more elements of the model has been received. As previously noted, consuming applications send requests with a specified set of constraints to be applied to the data set. The modeler is then responsible for either returning elements that represent a view of the model subject to those constraints or changing elements of the model in correspondence to those constraints. In the following, the flow of operation is explained specifically for view requests. Such requests may include constraints such as an index for each validity dimension to receive a particular state of the entire structure of the data set. Additional constraints like a list of components or the maximum depth of the structure limit the returned view to a particular substructure thereof. If request constraints refer to identities and/or aspects for some element types, then the returned elements of one of these types must have one of the respective identities or aspects. With respect to the flow of operation in
In the following, at decision point 230, the processor 102 checks whether a next possible element is available. If none is available, then the processor 102 responds at block 232 to the consuming application with the requested elements (desired view) and awaits further requests. If a next possible element is available, then the navigation module 122 accesses this element at block 234. The navigation module 122 is designed to allow navigation directly or indirectly to all elements of the model. It can navigate: from an index to an assigned dimension and from a dimension to at least the root and the leaf indices in the associated network; between two indices based on a link defined between them; between states and indices for which a mapping has been defined; and between the object or object states which are involved in a relation or relation state.
At decision point 236, the processor 102 checks whether or not this next possible element is valid according to the request constraints. If it is valid, then it is a requested element and will be part of the eventual response as described above (block 242). At decision point 244, a determination is made whether or not there are dependent elements of the considered element. A dependent element may be a related object state or a subordinate feature state. The dependent elements are marked as possible elements at block 246. After that the decision point 230 is reached again.
If the considered element is not found valid at decision point 236, then it is checked at decision point 238 whether or not this element can be substituted based on a hierarchical property of the data set. This substitution yields a set of elements which are marked as possible elements at block 240. After that the decision point 230 is reached again.
In one embodiment, substitution module 124 allows substitutions of: a component by all objects and relations contained by it; a dimension by all indices assigned to it; an index by all states mapped to it; a link by all states mapped to it; and a relation state involving at least one object by derived relation states at least resulting from substituting the object by all its object states. Sometimes constraints in the request limit the substitution that is permitted. In some cases, navigation and substitution may be used in conjunction. For example, substitution may yield an element which has been accessed using navigation.
The validity dimension may represent the continuous domain of a validity parameter like the time. The validity constraints, which are effective for the data set, have the points in time T1312, T2314 and T3316 as bounds and result in the validity time periods [T1,T2), [T2,T3) and [T3,+). The result of associating the validity dimension with these validity constraints is a network comprising three indices for the points in time and two directed links for the chronological order among them. In one embodiment, an index in the validity dimension may represent a tuple of bounds of validity constraints, e.g. a time and a serial number.
The validity dependent part of the data set comprises two states H1320 and H3324 of object H 302, one state Q3326 of object Q 304 and two states P1322 and P2328 of object P 306. The association of the structural dimension further comprises that each of these object states is mapped to the index representing its object. For example, object state H1320 is mapped to the index representing object H 302, in short, index 302. This mapping allows the navigation module (122 of
While embodiments of the invention are discussed above in the context of flow diagrams reflecting a particular linear order, this is for convenience only. In some cases, various operations may be performed in a different order than shown or various operations may occur in parallel. It should also be recognized that some operations described with respect to one embodiment may be advantageously incorporated into another embodiment. Such incorporation is expressly contemplated.
Elements of embodiments of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, flash memory, optical disks, compact disks read only memory (CD-ROM), digital versatile/video disks (DVD) ROM, random access memory (RAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic or optical cards.
In the foregoing specification, the invention has been described with reference to the specific embodiments thereof. It will, however, be evident that various modifications and changes can be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.