IP Library Granted Patent US 7,567,992
Granted Patent B1
US 7,567,992 · App. 11/647,862 · Granted Jul 28, 2009

Replicating of plurality of instances of an object model in memory arrangement using portable object references where each object attribute assigned GUID

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,567,992
App. No.
11/647,862
Granted
Jul 28, 2009
Kind
B1
Abstract

Various approaches for managing a plurality of instances of an object model are disclosed. At least a first and a second instance of the object model are established in first and second data processing systems. Each instance includes a plurality of objects, and each object includes a first attribute that is a globally unique identifier (GUID). Objects are associated other objects of the plurality of objects, and for each association between a first and a second one of the plurality of objects, the first object includes a second attribute that is the GUID of the second object. Established in each system are first and second versions of a data set that includes the GUIDs of the plurality of objects and associated pointers to memory locations of the objects in the first and second memory arrangements.

Claims (53)

1. A processor-implemented method for managing a plurality of instances of an object model, comprising:

establishing at least a first and a second instance of the object model in first and second memory arrangements of first and second data processing systems, respectively, each instance including a plurality of objects, wherein each object includes a first attribute that is a globally unique identifier (GUID) that identifies the object, a plurality of objects are associated with other objects of the plurality of objects, and for each association between a first and a second one of the plurality of objects, the first object includes a second attribute that is the GUID of the second object;

wherein the first and second instances of the object model are replicated instances;

establishing in the first memory arrangement a first version of a data set and establishing in the second memory arrangement a second version of the data set, each of the first and second versions including a plurality of GUID-pointer pairs, wherein for each of the pairs the GUID in the pair is one of the GUIDs of the plurality of objects and the pointer in the pair is a pointer to a memory location, the pointers in the first version referencing locations in the first memory arrangement and the pointers in the second version referencing locations in the second memory arrangement;

wherein a first version of a third object of the plurality of objects is stored in a first memory location in the first memory arrangement; and

in response to input of a second version of the third object, establishing the second version of the third object at a second memory location in the first memory arrangement that is different from the first location, and updating in the first version of the data set, the pointer of the GUID-pointer pair having the GUID that identifies the third object, to reference the second location.

2. The method of claim 1 , further comprising:

transmitting the second version of the third object to the second data processing system, wherein the first version of the third object is stored in a third memory location in the second memory arrangement; and

in response to receipt of the second version of the third object at the second data processing system, establishing the second version of the third object at a fourth memory location in the second memory arrangement that is different from the third location, and updating in the second version of the data set, the pointer associated with the third object to reference the fourth location.

3. The method of claim 2 , further comprising:

wherein the third object is associated with a fourth object and the third object includes as the second attribute the GUID of the fourth object;

in response to input of the second version of the third object, serializing attribute data of the second version of the third object;

bypassing serialization of attributes values of the fourth object that is associated with the third object; and

transmitting the serialized attribute data to the second data processing system.

4. The method of claim 3 , further comprising:

after updating in the first version of the data set the pointer corresponding to the third object, marking the first version of the third object obsolete; and

in response to access to an attribute of the third object and the third object being marked obsolete, looking up in the first version of the data set the pointer associated with the third object in the second location, and accessing the third object in the second location.

5. The method of claim 3 , wherein the attribute values of an object are serialized and formatted in a markup language.

6. The method of claim 5 , further comprising:

accessing on the first data processing system the first version of the data set to obtain a pointer to a most recent version of an object prior to each access to an object; and

accessing on the second data processing system the second version of the data set to obtain a pointer to a most recent version of an object prior to each access to an object.

7. The method of claim 5 , further comprising:

after updating in the first version of the data set the pointer corresponding to the third object, marking the first version of the third object obsolete; and

in response to access to an attribute of the third object and the third object being marked obsolete, looking up in the first version of the data set the pointer associated with the third object in the second location, and accessing the third object in the second location.

8. The method of claim 1 , further comprising:

accessing on the first data processing system the first version of the data set to obtain a pointer to a most recent version of an object prior to each access to an object; and

accessing on the second data processing system the second version of the data set to obtain a pointer to a most recent version of an object prior to each access to an object.

9. An apparatus for managing a plurality of instances of an object model, comprising:

means for establishing at least a first and a second instance of the object model in first and second memory arrangements of first and second data processing systems, respectively, each instance including a plurality of objects, wherein each object includes a first attribute that is a globally unique identifier (GUID) that identifies the object, a plurality of objects are associated with other objects of the plurality of objects, and for each association between a first and a second one of the plurality of objects, the first object includes a second attribute that is the GUID of the second object;

wherein the first and second instances of the object model are replicated instances;

means for establishing in the first memory arrangement a first version of a data set and for establishing in the second memory arrangement a second version of the data set, each of the first and second versions including a plurality of GUID-pointer pairs, wherein for each of the pairs the GUID in the pair is one of the GUIDs of the plurality of objects and the pointer in the pair is a pointer to a memory location, the pointers in the first version referencing locations in the first memory arrangement and the pointers in the second version referencing locations in the second memory arrangement;

wherein a first version of a third object of the plurality of objects is stored in a first memory location in the first memory arrangement; and

means, responsive to input of a second version of the third object, for establishing the second version of the third object at a second memory location in the first memory arrangement that is different from the first location, and updating in the first version of the data set, the pointer of the GUID-pointer pair having the GUID that identifies the third object to reference the second location.

10. A system for managing an object model, comprising:

a plurality of data processing systems including respective processors coupled via a network, each having a stored instance of the object model, including at least a first and a second instance of the object model in first and second memory arrangements of first and second data processing systems, respectively, wherein each instance includes a plurality of objects, each object includes a first attribute that is a globally unique identifier (GUID) that identifies the object, a plurality of objects are associated with other objects of the plurality of objects, and for each association between a first and a second one of the plurality of objects, the first object includes a second attribute that is the GUID of the second object;

wherein the first and second instances of the object model are replicated instances;

wherein the first and second instances of the object model further include first and second versions of a data set, each of the first and second versions including a plurality of GUID-pointer pairs, wherein for each of the pairs the GUID in the pair is one of the GUIDs of the plurality of objects and the pointer in the pair is a pointer to a memory location, the pointers in the first version referencing locations in the first memory arrangement and the pointers in the second version referencing locations in the second memory arrangement; and

wherein the first data processing system is configured to establish, in response to input of a second version of the third object, the second version of the third object at a second memory location in the first memory arrangement that is different from the first location, and update in the first version of the data set, the pointer of the GUID-pointer pair having the GUID that identifies the third object to reference the second location.

11. The system of claim 10 , wherein:

the first data processing system is configured to transmit the second version of the third object to the second data processing system, wherein the first version of the third object is stored in a third memory location in the second memory arrangement; and

the second data processing system is configured to establish, in response to receipt of the second version of the third object, the second version of the third object at a fourth memory location in the second memory arrangement that is different from the third location, and updating in the second version of the data set, the pointer associated with the third object to reference the fourth location.

12. The system of claim 11 , wherein:

the third object is associated with a fourth object and the third object includes as the second attribute the GUID of the fourth object; and

the first data processing system is configured to serialize, in response to input of the second version of the third object, attribute data of the second version of the third object, bypass serialization of attributes values of the fourth object that is associated with the third object, and transmitting the serialized attribute data to the second data processing system.

13. The system of claim 12 , wherein the first data processing system is further configured to:

mark the first version of the third object obsolete after update in the first version of the data set the pointer corresponding to the third object; and

in response to access to an attribute of the third object and the third object being marked obsolete, look up in the first version of the data set the pointer associated with the third object in the second location, and access the third object in the second location.

14. The system of claim 12 , wherein the attribute values of an object are serialized and formatted in a markup language.

15. The system of claim 14 , wherein the first data processing system is further configured to access the first version of the data set to obtain a pointer to a most recent version of an object prior to each access to an object, and the second data processing is further configured to access the second version of the data set to obtain a pointer to a most recent version of an object prior to each access to an object.

16. The system of claim 14 , wherein the first data processing system is further configured to:

mark the first version of the third object obsolete after update in the first version of the data set the pointer corresponding to the third object; and

in response to access to an attribute of the third object and the third object being marked obsolete, look up in the first version of the data set the pointer associated with the third object in the second location, and access the third object in the second location.

17. The system of claim 10 , wherein the first data processing system is further configured to access the first version of the data set to obtain a pointer to a most recent version of an object prior to each access to an object, and the second data processing is further configured to access the second version of the data set to obtain a pointer to a most recent version of an object prior to each access to an object.

Assignments (15)
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Jun 27, 2025
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION; UNISYS NPL, INC.; UNISYS AP INVESTMENT COMPANY I
To: COMPUTERSHARE TRUST COMPANY, N.A., AS COLLATERAL TRUSTEE
Reel/Frame 071759/0527 →
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2013
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
To: UNISYS CORPORATION
Reel/Frame 030082/0545 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2013
From: DEUTSCHE BANK TRUST COMPANY
To: UNISYS CORPORATION
Reel/Frame 030004/0619 →
SECURITY AGREEMENT Recorded Jun 27, 2011
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 026509/0001 →
SECURITY AGREEMENT Recorded May 7, 2010
From: UNISYS CORPORATION
To: DEUTSCHE BANK
Reel/Frame 024351/0546 →
PATENT SECURITY AGREEMENT (JUNIOR LIEN) Recorded Oct 13, 2009
From: UNISYS CORPORATION
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
Reel/Frame 023364/0098 →
PATENT SECURITY AGREEMENT (PRIORITY LIEN) Recorded Oct 12, 2009
From: UNISYS CORPORATION
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
Reel/Frame 023355/0001 →
RELEASE BY SECURED PARTY Recorded Sep 14, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023263/0631 →
RELEASE BY SECURED PARTY Recorded Jul 31, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023312/0044 →
SECURITY AGREEMENT SUPPLEMENT Recorded Apr 13, 2007
From: UNISYS CORPORATION
To: CITIBANK, N.A.
Reel/Frame 019188/0840 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2006
From: EDWARDSON, DAVID J.; GRIEP, CHARLES J.; WEGLEITNER, BRIAN A.; WILHELM, DAVID E.
To: UNISYS CORPORATION
Reel/Frame 018771/0331 →