Apparatus and method for providing access to multiple object versions
First Claim
1. An apparatus comprising:
- a processor;
a memory coupled to the processor;
a plurality of encapsulated objects residing in said memory, each of said objects representing an instance of a respective class of a hierarchical set of classes;
an existing object of said plurality of encapsulated objects residing in the memory and referenced by an existing object reference; and
a versioning mechanism residing in the memory, the versioning mechanism creating a new object which is a copy of the existing object and which is referenced by a new object reference, the versioning mechanism modifying either the existing object or the new object, thereby creating a modified version of the existing object and an unmodified version of the existing object and allowing other objects of said plurality of encapsulated objects to concurrently access both;
(a) the modified version of the existing object through a first one of the set consisting of the existing object reference and the new object reference; and
(b) the unmodified version of the existing object through a second one of the set consisting of the existing object reference and the new object reference, said second one of said set being different from said first one of said set.
1 Assignment
0 Petitions
Accused Products
Abstract
According to the present invention, an apparatus and method for providing access to multiple object versions allows the system administrators to control which version of a given object is referenced by existing related objects. By providing an option for the system user to select and access different object versions, object upgrade policies can be flexible and accommodate the various needs of different object-oriented systems. The object versioning mechanism of the present invention provides several different options when modifying an existing object to create a new version. The various embodiments of the present invention provide a versioning mechanism to manage version updates for objects in an object-oriented system. The versioning mechanism disclosed herein implements the methods of the present invention by making a copy of an existing object whenever a new version of the existing object is to be introduced into an object-oriented system. After the copy of the existing object has been made, the existing object or the copy of the existing object can be modified to reflect the desired changes and to provide an updated version of the object. Whether the existing object or the copy of the existing object is modified depends on the specific system policy or objectives to be achieved. In addition, according to the desired system policy, the unmodified version of the object can be removed from the system, if desired. Alternatively, if both objects remain in the system, access to one or both of the objects may be further restricted by disabling all or at least some of the methods on the objects.
-
Citations
19 Claims
-
1. An apparatus comprising:
-
a processor;
a memory coupled to the processor;
a plurality of encapsulated objects residing in said memory, each of said objects representing an instance of a respective class of a hierarchical set of classes;
an existing object of said plurality of encapsulated objects residing in the memory and referenced by an existing object reference; and
a versioning mechanism residing in the memory, the versioning mechanism creating a new object which is a copy of the existing object and which is referenced by a new object reference, the versioning mechanism modifying either the existing object or the new object, thereby creating a modified version of the existing object and an unmodified version of the existing object and allowing other objects of said plurality of encapsulated objects to concurrently access both;
(a) the modified version of the existing object through a first one of the set consisting of the existing object reference and the new object reference; and
(b) the unmodified version of the existing object through a second one of the set consisting of the existing object reference and the new object reference, said second one of said set being different from said first one of said set.- View Dependent Claims (2, 3, 4)
-
-
5. A method performed on a computer system, said computer system comprising a plurality of encapsulated objects residing in a memory, each of said objects representing an instance of a respective class of a hierarchical set of classes, including an existing object of said plurality of encapsulated objects that is referenced by an existing object reference, the method comprising the steps of:
-
using a versioning mechanism to create an new object which is a copy of the existing object and which is referenced by a new object reference; and
modifying either the existing object or the new object, thereby creating a modified version of the existing object and an unmodified version of the existing object and allowing other objects of said plurality of encapsulated objects to concurrently access both;
(a) the modified version of the existing object through a first one of the set consisting of the existing object reference and the new object reference; and
(b) the unmodified version of the existing object through a second one of the set consisting of the existing object reference and the new object reference, said second one of said set being different from said first one of said set.- View Dependent Claims (6, 7, 8, 9)
-
-
10. A method for creating a modified version of an existing object on a computer system, said computer system comprising a plurality of encapsulated objects residing in a memory, each of said objects representing an instance of a respective class of a hierarchical set of classes, including the existing object of said plurality of encapsulated objects that is referenced by an existing object reference, the method comprising the steps of:
-
using a versioning mechanism to make a copy of the existing object, the copy being referenced by a new object reference, wherein both the existing object and the copy of the existing object each contain a version identifier field;
modifying one of the existing object or the copy of the existing object, thereby creating a modified version of the existing object and an unmodified version of the existing object and allowing other objects of said plurality of encapsulated objects to concurrently access both;
(a) the modified version of the existing object through a first one of the set consisting of the new object reference and the existing object reference; and
(b) the unmodified version of the existing object through a second one of the set consisting of the new object reference and the existing object reference, said second one of said set being different from said first one of said set; and
updating the version field of the modified version of the existing object to reflect a new version number. - View Dependent Claims (11, 12)
-
-
13. A program product tangibly embodying a program of machine-readable instructions executable by a computer system, the program product comprising:
-
a versioning mechanism for a plurality of encapsulated objects residing in said computer system, each of said objects representing an instance of a respective class of a hierarchical set of classes, the versioning mechanism creating a new object of said plurality of encapsulated objects which is a copy of an existing object of said plurality of encapsulated objects and which is referenced by a new object reference, the existing object referenced by an existing object reference, the versioning mechanism modifying at least one of the existing object or the new object, thereby creating a modified version of the existing object and an unmodified version of the existing object and allowing other objects of said plurality of encapsulated objects to concurrently access both;
(a) the modified version of the existing object through a first one of the set consisting of the existing object reference and the new object reference; and
(b) the unmodified version of the existing object through a second one of the set consisting of the existing object reference and the new object reference, said second one of said set being different from said first one of said set; and
signal bearing media bearing the version mechanism. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A method for versioning encapsulated objects on a computer system, said computer system comprising a plurality of said encapsulated objects residing in a memory, each of said objects representing an instance of a respective class of a hierarchical set of classes, including an existing object of said plurality of encapsulated objects that is referenced by an existing object reference, the method comprising the steps of:
-
using a versioning mechanism to make a copy of the existing object, the copy being referenced by a new object reference;
using a versioning mechanism to copy at least a portion of state data from the existing object into a new object; and
modifying the existing object, thereby creating a modified version of the existing object and an unmodified version of the existing object and allowing other objects of said plurality of encapsulated objects to concurrently access both;
(a) the modified version of the existing object through the existing object reference; and
(b) the unmodified version of the existing object through the new object reference.- View Dependent Claims (19)
-
Specification