Method for maintaining a history of system data and processes for an enterprise
First Claim
1. In a computer system having a user interface, a memory, an object-oriented repository, a repository program operating in said computer system executing a method responsive to a user request for maintaining an historical state of an object stored in said repository comprising the steps of:
- a. if a new logical object is requested, constructing a new versioned object;
b. if a new logical object is not requested, retrieving from said repository an existing object on which a new state is to be based;
c. if said new state is derived from two objects, retrieving from said repository the other object on which said new state is to be based;
d. deriving a new object from said existing object if said new object state is not derived from two objects, and if said new object state is derived from two objects, deriving a new object by merging said existing object and said other object by;
i) validating merge request by insuring that neither said existing object nor said other object are in a ghost state, the two objects to be merged are not the same object, the two objects are members of same version graph and merge will not cause two objects from the same variant branch to be merged into a new object also on the same variant branch;
ii) reserving said existing object if said validating step indicates that the merge request is valid; and
,iii) if said reserve operation was successful, adding said other object which was merged with said existing object to a list of previous versions of said new object and return derived said new object to caller;
e. receiving any necessary changes to state of said new object;
f. unreserving said new object if said changes are not to be retained, and if said changes are to be retained, replacing said new object by;
i) validating replace request by insuring that said new object is in a ghost state and said new object is in the context of the requestor; and
,ii) setting reserve status of said new object to available if said validating step indicates that said replace request is valid;
g. continuously repeating all steps hereof for each user request.
9 Assignments
0 Petitions
Accused Products
Abstract
The method of the present invention is useful in a computer system having a user interface, a memory, a repository and a database. The method is a repository program executed by the computer system for maintaining a history of objects stored in the repository. The method comprises the steps of determining if the object is a new logical object, and if so constructing a new versioned object; and, if not retrieving from the repository an object on which a new state is to be based. If the new state is being derived from only one object, then reserving the object. If the state is being derived from two objects, then retrieving from the repository the other object on which the new state is based, and merging the two objects. If the state changes are to be retained, then replacing the object; and, if the state changes are not to be retained, then unreserving the object.
82 Citations
14 Claims
-
1. In a computer system having a user interface, a memory, an object-oriented repository, a repository program operating in said computer system executing a method responsive to a user request for maintaining an historical state of an object stored in said repository comprising the steps of:
-
a. if a new logical object is requested, constructing a new versioned object; b. if a new logical object is not requested, retrieving from said repository an existing object on which a new state is to be based; c. if said new state is derived from two objects, retrieving from said repository the other object on which said new state is to be based; d. deriving a new object from said existing object if said new object state is not derived from two objects, and if said new object state is derived from two objects, deriving a new object by merging said existing object and said other object by; i) validating merge request by insuring that neither said existing object nor said other object are in a ghost state, the two objects to be merged are not the same object, the two objects are members of same version graph and merge will not cause two objects from the same variant branch to be merged into a new object also on the same variant branch; ii) reserving said existing object if said validating step indicates that the merge request is valid; and
,iii) if said reserve operation was successful, adding said other object which was merged with said existing object to a list of previous versions of said new object and return derived said new object to caller; e. receiving any necessary changes to state of said new object; f. unreserving said new object if said changes are not to be retained, and if said changes are to be retained, replacing said new object by; i) validating replace request by insuring that said new object is in a ghost state and said new object is in the context of the requestor; and
,ii) setting reserve status of said new object to available if said validating step indicates that said replace request is valid; g. continuously repeating all steps hereof for each user request. - View Dependent Claims (2, 3, 4)
-
-
5. In a computer system having a user interface, a memory, an object-oriented repository, a repository program operating in said computer system executing a method responsive to a user request for maintaining a historical state of an object stored in said repository comprising the steps of:
-
a. if a new logical object is requested, constructing a new versioned object; b. if a new logical object is not requested, retrieving from said repository an existing object on which a new state is to be based; c. if said new state is derived from two objects, retrieving from said repository the other object on which said new state is to be based; d. deriving a new object from said existing object if said new object state is not derived from two objects, and if said new object state is derived from two objects, deriving a new object by merging said existing object and said other object by; i) validating merge request by insuring that neither said existing object nor said other object are in a ghost state, the two objects to be merged are not the same object, the two objects are members of same version graph and merge will not cause two objects from the same variant branch to be merged into a new object also on the same variant branch; ii) reserving said existing object if said validating step indicates that the merge request is valid by; A) validating a reserve request by insuring that requested variant name is valid and said existing object does not have a reserve status of ghost;
verifying that if reserve status of said existing object is source/read only, and if so, that said object is reserved on a different variant;
verifying that maximum number of immediate descendants allowed for one object will not be exceeded;
verifying that maximum allowable depth of version tree will not be exceeded;B) duplicating said existing object to derive a starting state for said new object; C) adding said new object on a list of objects in working context; D) setting reserve status of said existing object to read only if reserve was performed on same branch as said existing object; E) adding said new object to next version list of said existing object so that descendant relationship is captured; and
,F) fixing up references. iii) if said reserve operation was successful, adding said other object which was merged with said existing object to a list of previous versions of said new object and return derived said new object to caller; e. receiving any necessary changes to state of said new object; f. unreserving said new object if said changes are not to be retained, and if said changes are to be retained, replacing said new object by; i) validating replace request by insuring that said new object is in a ghost state and said new object is in the context of requestor; and
,ii) setting reserve status of said new object to available if said validating step indicates that the replace request is valid; g. continuously repeating all steps hereof for each user request. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12)
-
-
13. In a computer system having a user interface, a memory, an object-oriented repository, a repository program operating in said computer system executing a method responsive to a user request for maintaining an historical state of an object stored in said repository comprising the steps of:
-
a. if a new logical object is requested, constructing a new versioned object; b. if a new logical object is not requested, retrieving from said repository an existing object on which a new state is to be based; c. if said new state is derived from two objects, retrieving from said repository the other object on which said new state is to be based; d. deriving a new object from said existing object if said new object state is not derived from two objects, and if said new object state is derived from two objects deriving a new object by merging said existing and said ether object by; i) validating merge request by insuring that neither said existing object nor said other object are in a ghost state, the two objects to be merged are not the same object, the two objects are members of same version graph and merge will not cause two objects from the same variant branch to be merged into a new object also on the same variant branch; ii) reserving said existing object if said validating step indicates that the merge request is valid; and
,iii) if said reserve operation was successful, adding said other object which was merged with said existing object to a list of previous versions of said new object and return derived said new object to caller; e. receiving any necessary changes to state of said new object; f. unreserving said new object if said changes are not to be retained by; i) validating unreserve request by insuring that said existing object is not in a ghost state and said existing object has a ghost object in the context of requestor; ii) fixing up references to/from ghost object; iii) destructing said ghost object since its state is undesired; iv) setting said existing object'"'"'s reserve status to available if said existing object has no other descendants; and
,v. setting said existing object'"'"'s reserve status to source if variant names of said object and said destructed ghost object had been the same, and said object has other descendants; g. and if said changes are to be retained, replacing said new object with said merged and changed object by; i) validating replace request by insuring that said object is in a ghost state and said object is in the context of the requestor; and
,ii) setting reserve status of said object to available if said object state indicates that the replace request is valid; h. continuously repeating all steps hereof for each user request. - View Dependent Claims (14)
-
Specification