IP Library Granted Patent US 7,020,659
Granted Patent B2
US 7,020,659 · App. 09/930,800 · Granted Mar 28, 2006

System and method for managing bi-directional relationships between objects

Assignee: OIC Acquistion I Corporation
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,020,659
App. No.
09/930,800
Granted
Mar 28, 2006
Kind
B2
Abstract

A bi-directional relationship manager is described for setting a new reference value for managing bi-directional relationships between objects in an object model. The bi-directional relationship manager receives bi-directional relationship information indicating interrelation between objects having one or more bi-directional relationships. It creates proxy objects based on the bi-directional relationship information for selected bi-directional relationship objects having bi-directional relationships. A created proxy object receives a new reference value to be set in a selected object relating to a bi-directional relationship. It determines, using one or more of the proxy objects, a new peer value to be set in a peer object which has the bi-directional relationship with the selected object, and sets the new peer value to a proxy object created for the peer object. It may also update reference values of other related objects that are related to the selected object through one or more bi-directional relationships to reflect the change in references.

Claims (31)

1. A method for setting a new reference value for managing bi-directional relationships between objects in an object model of a relational database, the method comprising the steps of:

receiving bi-directional relationship information indicating interrelation between objects having one or more bi-directional relationships,

creating proxy objects based on the bi-directional relationship information for selected peer objects having bi-directional relationships, wherein the proxy objects have knowledge regarding a host object to which the proxy objects belong and one or more peer objects with which the host relates through a bi-directional relationship, and wherein the host object is included as a first peer object of the selected peer objects;

receiving a first new peer value relating to a bi-directional relationship to be set in the host object,

determining, using one or more of the proxy objects, a second new peer value to be set for a second peer object which has the bi-directional relationship with the host object;

setting the first new peer value into the one or more proxy objects; and

setting the second new peer value in a proxy object created for the second peer object so that the second peer object has a bi-directional relationship with the host object without a developer of the object model having to ensure all associated references are maintained;

wherein the bi-directional relationship is managed so that pairs of corresponding bi-directional pointers get updated together.

2. The method as claimed in claim 1 , wherein the bi-directional relationship information receiving step comprises the steps of:

receiving object model meta-data defining relationships between objects in the object model; and

retrieving reference value information that represents reference values indicating current peer objects for the bi-directional relationships.

3. The method as claimed in claim 1 , wherein the bi-directional relationship information receiving step receives the reference value information from a data storage in which data corresponding to the objects is stored.

4. The method as claimed in claim 1 , wherein the bi-directional relationship information receiving step receives the reference value information from a new object that is newly created by a user.

5. The method as claimed in claim 1 , wherein the bi-directional relationship information receiving step receives the reference value information that includes a collection of reference values for a bi-directional relationship object which references many peer objects.

6. The method as claimed in claim 1 , wherein the proxy object creating step creates proxy objects of uni-directional peer relationships that combined comprise bi-directional relationships.

7. The method as claimed in claim 6 , wherein the proxy object creating step creates a proxy object for each of a pair of one-to-one uni-directional peer relationships that form a one-to-one bi-directional relationship.

8. The method as claimed in claim 6 , wherein the proxy object creating step creates a proxy object for each of a one-to-many uni-directional peer relationship and one-to-one uni-directional peer relationships that form a one-to-many bi-directional relationship.

9. The method as claimed in claim 6 , wherein the proxy object creating step creates a proxy object for each of uni-directional one-to-many peer relationships that form a many-to-many bi-directional relationship.

10. The method as claimed in claim 1 , wherein the new peer value determining step comprises a step of passing the new reference value through related proxy objects that are related to the bi-directional relationship.

11. The method as claimed in claim 1 , wherein the new peer value contains a collection of reference values which is determined based on the new reference value.

12. The method as claimed in claim 1 , wherein the new reference value represents addition, removal or change of a reference value.

13. The method as claimed in claim 1 , wherein the setting step sets a value null when the determining step determines to remove the bi-directional relationship.

14. The method as claimed in claim 1 , wherein the setting step sets a new peer value by replacing an old reference value with the new peer value.

15. The method as claimed in claim 1 , further comprising steps of:

determining, using one or more of the proxy objects, another new peer value to be set in a new peer object which is referenced by the new reference value set for the selected object; and

setting another new peer value to a proxy object created for the new peer object.

16. The method as claimed in claim 1 , further comprising steps of:

determining, using one or more of the proxy objects, an updating reference value for a related object that is related to the selected object through one or more original or new bi-directional relationships; and

setting the updating reference value in a proxy object created for the related object.

17. The method as claimed in claim 16 , wherein the updating reference value determining step and the updating reference value setting step are repeated for all related objects so as to maintain bi-directional relationship integrity.

18. The method as claimed in claim 16 , wherein the updating reference value determining step comprises a step of passing the new reference value through related proxy objects that are created for the related objects.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2006
From: OIC ACQUISITION I CORPORATION
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 018279/0189 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME PREVIOUSLY RECORDED ON REEL 013055 FRAME 0327. Recorded Sep 23, 2002
From: WEBGAIN, INC.
To: OIC ACQUISITION I CORPORATION
Reel/Frame 013307/0428 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2002
From: WEBGAIN, INC.
To: ORACLE CORPORATION
Reel/Frame 013055/0327 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2001
From: YORKE, GORDON JAMES
To: WEBGAIN, INC.
Reel/Frame 012099/0774 →
Continuity (1)
Related Publication 20030041069A1 · Feb 27, 2003