Patent US5890176A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5890176A Expired / Lapsed US ⏱️ 0.0 years remaining

Object-oriented document version tracking method and apparatus

Assignee: International Business Machines Corp
•
Filing: 1996-04-24
•
Granted: 1999-03-30
•
Expires: 2016-04-24
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A single file holds multiple versions of a document composed of an interconnection of objects which themselves have versions and are stored in the file. When the document is changed by changing any of the interconnected objects, a check is first made to determine whether the object version is same as the document version currently being edited. If not, a copy of the object is made and saved. Any version of the document can be reconstructed by interconnecting object versions which have a highest level which is equal to, or less than, the desired document version. Therefore, only objects which are changed are duplicated and copies of objects are only made when an object changes. The interconnection of the objects to form structure of the document is maintained by an interconnection of object pointers. Each object has an associated demand loader object which includes a list of object versions for the associated object plus a pointer to one of the versions. The demand loader object also includes methods for loading the associated object into memory from storage when the object is accessed. In this manner, the whole document does not have to be loaded in order to be accessible.

Inventors

  • 👤 John W. Kish
  • 👤 David A. Wittler
  • 👤 Daniel F. Burkes

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 23:51
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/70; G06F8/71; G06F16/00; G06F16/90; G06F16/93; G06F9/00; G06F9/06; G06F9/44; G06F9/445; G06F9/44521; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99952; Y10S707/99953; Y10S707/99954

Claims Analysis

Total Claims: 29
Claim 1
Independent Claim 145 words
Apparatus for constructing a document from a plurality of objects in a computer system having a memory and a non-volatile storage, a document object being accessed whenever an invocation of one of the document object's methods or the manipulation of one of the document object's attributes is required, the apparatus comprising: a demand loader object residing in the memory and associated with each of the plurality of objects, each of the demand loader objects including program logic for loading the associated object into the memory from the storage when the associated object is accessed; and object pointer objects residing in the memory and connecting two of the plurality of objects, each object pointer object being a member of a first one of the two objects and having a pointer therein pointing to a demand loader object associated with a second one of the two objects.
Claim 2
Dependent Claim 145 words
Apparatus for constructing a document from a plurality of objects in a computer system having a memory and a non-volatile storage, a document object being accessed whenever an invocation of one of the document object's methods or the manipulation of one of the document object's attributes is required, the apparatus comprising: a demand loader object residing in the memory and associated with each of the plurality of objects, each of the demand loader objects including program logic for loading the associated object into the memory from the storage when the associated object is accessed; and object pointer objects residing in the memory and connecting two of the plurality of objects, each object pointer object being a member of a first one of the two objects and having a pointer therein pointing to a demand loader object associated with a second one of the two objects.
Claim 3
Dependent Claim 39 words
Apparatus according to claim 1 wherein each demand loader object further includes a reference count attribute having a reference count stored therein which reference count indicates the number of object pointers which point to the each demand loader object.
Claim 4
Dependent Claim 30 words
Apparatus according to claim 2 wherein each object pointer object includes program logic for updating a reference count attribute in a demand loader object to which the object pointer points.
Claim 5
Dependent Claim 23 words
Apparatus according to claim 1 wherein each demand loader object includes an object ID for locating an associated object in the non-volatile storage.
Claim 6
Dependent Claim 18 words
Apparatus according to claim 1 wherein each demand loader object further includes a pointer to an associated object.
Claim 7
Dependent Claim 185 words
Apparatus for use with a computer system having a memory and a non-volatile storage, the apparatus creating a new version of a document, which is composed of a plurality of objects which are interconnected by object pointers, a document object being accessed whenever an invocation of one of the document object's methods or the manipulation of one of the document object's attributes is required, in response to a user request to change one of the plurality of objects, and comprising: a demand loader object residing in the memory and associated with the one object, the demand loader object including program logic for loading the one object into the memory from the storage when the one object is accessed; means in the demand loader object for creating a list of object versions for the one object, the list including a version ID and a pointer to a copy of the one object for each object version; and means responsive to the request by making a copy of the one object and inserting a version ID and a pointer to the one object copy into the list.
Claim 8
Dependent Claim 185 words
Apparatus for use with a computer system having a memory and a non-volatile storage, the apparatus creating a new version of a document, which is composed of a plurality of objects which are interconnected by object pointers, a document object being accessed whenever an invocation of one of the document object's methods or the manipulation of one of the document object's attributes is required, in response to a user request to change one of the plurality of objects, and comprising: a demand loader object residing in the memory and associated with the one object, the demand loader object including program logic for loading the one object into the memory from the storage when the one object is accessed; means in the demand loader object for creating a list of object versions for the one object, the list including a version ID and a pointer to a copy of the one object for each object version; and means responsive to the request by making a copy of the one object and inserting a version ID and a pointer to the one object copy into the list.
Claim 9
Dependent Claim 33 words
Apparatus according to claim 6 wherein the new document version has a document version ID and the copying means is responsive to the request for inserting the document version ID into the list.
Claim 10
Dependent Claim 29 words
Apparatus according to claim 7 wherein the copying means is responsive to the request for checking the list to determine whether the document version ID is in the list.
Claim 11
Dependent Claim 46 words
Apparatus according to claim 8 wherein the means responsive to the request makes a copy of the one object and inserts the document version ID and a pointer to the one object copy into the list if the document version ID is not in the list.
Claim 12
Dependent Claim 25 words
Apparatus according to claim 7 wherein the demand loader object comprises an object ID for retrieving the one object from the storage into the memory.
Claim 13
Dependent Claim 25 words
Apparatus according to claim 7 wherein each of the object pointers comprises an object which includes a pointer that points to a demand loader object.
Claim 14
Independent Claim 143 words
A method for constructing a document from a plurality of objects in a computer system having a memory and a non-volatile storage, a document object being accessed whenever an invocation of one of the document object's methods or the manipulation of one of the document object's attributes is required, the method comprising the steps of: A. creating a demand loader object associated with each of the plurality of objects, each of the demand loader objects including program logic for loading the associated object into the memory from the storage when the associated object is accessed; and B. connecting two of the plurality of objects with object pointer objects, each object pointer object being a member of a first one of the two objects and having a pointer therein pointing to a demand loader object associated with a second one of the two objects.
Claim 15
Independent Claim 143 words
A method for constructing a document from a plurality of objects in a computer system having a memory and a non-volatile storage, a document object being accessed whenever an invocation of one of the document object's methods or the manipulation of one of the document object's attributes is required, the method comprising the steps of: A. creating a demand loader object associated with each of the plurality of objects, each of the demand loader objects including program logic for loading the associated object into the memory from the storage when the associated object is accessed; and B. connecting two of the plurality of objects with object pointer objects, each object pointer object being a member of a first one of the two objects and having a pointer therein pointing to a demand loader object associated with a second one of the two objects.
Claim 16
Dependent Claim 47 words
The method according to claim 12 wherein step A comprises the step of: A1. creating each demand loader object with a reference count attribute having a reference count stored therein which reference count indicates the number of object pointers which point to the each demand loader object.
Claim 17
Dependent Claim 39 words
The method according to claim 13 wherein step B comprises the step of: B1. creating each object pointer object with program logic for updating a reference count attribute in a demand loader object to which the object pointer points.
Claim 18
Dependent Claim 33 words
The method according to claim 12 wherein step A further comprises the step of: A2. creating each demand loader object with an object ID for locating an associated object in the non-volatile storage.
Claim 19
Dependent Claim 27 words
The method according to claim 12 wherein step A further comprises the step of: A3. creating each demand loader object with a pointer to an associated object.
Claim 20
Independent Claim 180 words
A method for use with a computer system having a memory and a non-volatile storage, the method creating a new version of a document, which is composed of a plurality of objects which are interconnected by object pointers, a document object being accessed whenever an invocation of one of the document object's methods or the manipulation of one of the document object's attributes is required, in response to a user request to change one of the plurality of objects, and comprising the steps of: A. creating a demand loader object associated with the one object, the demand loader object including program logic for loading the one object into the memory from the storage when the one object is accessed; B. creating a list of object versions for the one object, the list including a version ID and a pointer to a copy of the one object for each object version; and C. making a copy of the one object and inserting a version ID and a pointer to the one object copy into the list in response to the request.
Claim 21
Independent Claim 180 words
A method for use with a computer system having a memory and a non-volatile storage, the method creating a new version of a document, which is composed of a plurality of objects which are interconnected by object pointers, a document object being accessed whenever an invocation of one of the document object's methods or the manipulation of one of the document object's attributes is required, in response to a user request to change one of the plurality of objects, and comprising the steps of: A. creating a demand loader object associated with the one object, the demand loader object including program logic for loading the one object into the memory from the storage when the one object is accessed; B. creating a list of object versions for the one object, the list including a version ID and a pointer to a copy of the one object for each object version; and C. making a copy of the one object and inserting a version ID and a pointer to the one object copy into the list in response to the request.
Claim 22
Dependent Claim 37 words
The method according to claim 17 wherein the new document version has a document version ID and step C comprises the step of: C1. inserting the document version ID into the list in response to the request.
Claim 23
Dependent Claim 34 words
The method according to claim 18 wherein step C further comprises the step of: C2. checking the list to determine whether the document version ID is in the list in response to the request.
Claim 24
Dependent Claim 49 words
The method according to claim 19 wherein step C further comprises the step of: C3. making a copy of the one object and inserting the document version ID and a pointer to the one object copy into the list if the document version ID is not in the list.
Claim 25
Dependent Claim 34 words
The method according to claim 17 wherein step A comprises the step of: A1. creating a demand loader object with an object ID for retrieving the one object from the storage into the memory.
Claim 26
Dependent Claim 178 words
A computer program product for constructing a document from a plurality of objects in a computer system having a memory and a non-volatile storage, a document object being accessed whenever an invocation of one of the document object's methods or the manipulation of one of the document object's attributes is required, the computer program product comprising a computer usable medium having computer readable program code thereon, the computer program code including: means for creating a demand loader object in the memory, the demand loader object being associated with each of the plurality of objects, each of the demand loader objects including program logic for loading the associated object into the memory from the storage when the associated object is accessed; and means for creating object pointer objects in the memory, each of the object pointer objects connecting two of the plurality of objects, each object pointer object being a member of a first one of the two objects and having a pointer therein pointing to a demand loader object associated with a second one of the two objects.
Claim 27
Dependent Claim 178 words
A computer program product for constructing a document from a plurality of objects in a computer system having a memory and a non-volatile storage, a document object being accessed whenever an invocation of one of the document object's methods or the manipulation of one of the document object's attributes is required, the computer program product comprising a computer usable medium having computer readable program code thereon, the computer program code including: means for creating a demand loader object in the memory, the demand loader object being associated with each of the plurality of objects, each of the demand loader objects including program logic for loading the associated object into the memory from the storage when the associated object is accessed; and means for creating object pointer objects in the memory, each of the object pointer objects connecting two of the plurality of objects, each object pointer object being a member of a first one of the two objects and having a pointer therein pointing to a demand loader object associated with a second one of the two objects.
Claim 28
Dependent Claim 212 words
A computer program product for use with a computer system having a memory and a non-volatile storage, the computer program product creating a new version of a document, which is composed of a plurality of objects which are interconnected by object pointers, in response to a user request to change one of the plurality of objects, a document object being accessed whenever an invocation of one of the document object's methods or the manipulation of one of the document object's attributes is required, and comprising a computer usable medium having computer readable program code thereon, the computer readable program code including: means for creating a demand loader object in the memory, the demand loader object being associated with the one object, the demand loader object including program logic for loading the one object into the memory from the storage when the one object is accessed; means for creating in the demand loader object a list of object versions for the one object, the list including a version ID and a pointer to a copy of the one object for each object version; and means responsive to the request for making a copy of the one object and inserting a version ID and a pointer to the one object copy into the list.
Claim 29
Dependent Claim 212 words
A computer program product for use with a computer system having a memory and a non-volatile storage, the computer program product creating a new version of a document, which is composed of a plurality of objects which are interconnected by object pointers, in response to a user request to change one of the plurality of objects, a document object being accessed whenever an invocation of one of the document object's methods or the manipulation of one of the document object's attributes is required, and comprising a computer usable medium having computer readable program code thereon, the computer readable program code including: means for creating a demand loader object in the memory, the demand loader object being associated with the one object, the demand loader object including program logic for loading the one object into the memory from the storage when the one object is accessed; means for creating in the demand loader object a list of object versions for the one object, the list including a version ID and a pointer to a copy of the one object for each object version; and means responsive to the request for making a copy of the one object and inserting a version ID and a pointer to the one object copy into the list.

References Cited (Backward Citations)

US3623661A Cited
US5150458A Cited
US4912637A Cited
US5280583A Cited
US5438661A Cited
US5671428A Cited
US5339389A Cited
US5574898A Cited
US5649200A Cited
US5553216A Cited
US5537529A Cited
US5638504A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-03-29 2002-09-28 2003-03-30 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-03-29 2006-09-28 2007-03-30 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-03-29 2010-09-28 2011-03-30 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag