IP Library Granted Patent US 8,793,218
Granted Patent B2
US 8,793,218 · App. 12/476,399 · Granted Jul 29, 2014

Method and apparatus for copying objects in an object-oriented environment using a multiple-transaction technique

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 8,793,218
App. No.
12/476,399
Granted
Jul 29, 2014
Kind
B2
Abstract

A large number of objects, such as objects representing beams and columns in an object-oriented enterprise engineering system, may be copied in a model database by partitioning the objects according to certain criteria into a number of ordered small copy groups and copying the objects in each group as an atomic operation. Objects that are to be copied are organized into the ordered groups, and the groups are copied in order, such that all predecessors of a given object are copied into the database before, or in the same small operation as, the given object. If a large copy operation abnormally terminates before all the small copy operations have been completed, the model database is, nevertheless, left in a consistent state, and the copy operation may be resumed from the point of interruption. Furthermore, the number of objects that may be copied is not constrained by the amount of memory available in the system.

Claims (66)

1. A computerized method for copying a plurality of objects represented within an object-oriented enterprise engineering system, the method comprising:

performing by a processor,

accepting input from a user selecting a plurality of objects to be copied, such that each of at least two objects of the plurality of objects to be copied is a successor object, wherein each successor object has a predecessor-successor relationship with a corresponding predecessor object, the predecessor-successor relationship being defined such that:

each successor object includes at least one parameter having a value that functionally depends on a value of a parameter of its corresponding predecessor object, such that if the value of the predecessor object parameter changes to a changed value, the value of the successor object parameter must be recalculated based on the changed value of the parameter of the predecessor object using an engineering relationship; and

the predecessor-successor relationship exists from prior to commencement of the method to after completion of the method;

for each successor object of the plurality of objects to be copied, automatically identifying its predecessor object, thereby identifying a plurality of identified predecessor objects, wherein automatically identifying the predecessor object comprises:

retrieving, from a database, information about relationships between the successor object and other objects; and

following a logical path within the retrieved information, the logical path extending between the successor object and the predecessor object;

automatically partitioning the plurality of objects to be copied and the plurality of identified predecessor objects into a plurality of ordered groups of objects, such that for each object of the plurality of objects to be copied and the plurality of identified predecessor objects, its predecessor object is in one of: the same group as the object and a group preceding the group containing the object;

for each group in order, during an atomic database transaction:

storing, in the database, copy objects corresponding to objects in the group; and

for at least one stored copy object corresponding to an object in the group, establishing a predecessor-successor relationship between the stored copy object and another object in the database, wherein the other object does not correspond to any object in the group, and wherein the relationship is established such that the stored copy object is a successor of the other object.

2. A method according to claim 1 , wherein at least one predecessor-successor relationship exists between an object in one of the groups and another object in another of the groups, the method further comprising:

as part of the atomic database transaction for the one of the groups, storing information in the database to establish a predecessor-successor relationship between the stored copy object corresponding to the object in the one of the groups and the copy object corresponding to the other object.

3. A method according to claim 1 , wherein automatically identifying the predecessor object comprises receiving data identifying a path starting at the successor object, the path extending through at least one object that is subordinate to the successor object, the path comprising at least one step, each step having a relationship type and a direction.

4. A method according to claim 1 , wherein automatically identifying the predecessor object comprises receiving data identifying a first path and a second path, each path starting at the successor object, each path extending through at least one object that is subordinate to the successor object, each path comprising at least one step, each step having a relationship type and a direction, wherein the first path terminates at a target object that is not subordinate to the successor object and the second path terminates at a target object that is subordinate to the successor object.

5. A method according to claim 4 , wherein automatically identifying the predecessor object further comprises querying a database with a query formed from information from at least one of the first and second paths.

6. A method according to claim 1 , wherein identifying the plurality of identified predecessor objects comprises:

generating a computer-readable representation of the plurality of identified predecessor objects;

sorting the representation of the plurality of identified predecessor objects; and

partitioning the sorted representation of the plurality of identified predecessor objects.

7. A method according to claim 1 , further comprising, for each group in order, during the atomic database transaction:

for each object of the plurality of objects to be copied, automatically identifying subordinate objects corresponding to the object; and

storing, in the database, copy objects corresponding to the identified subordinate objects.

8. A method according to claim 1 , wherein, storing the copy objects comprises storing an object identifier of at least one of the copy objects in association with an object identifier of the corresponding object in the group.

9. A method according to claim 1 , further comprising:

upon a copy object storing operation or a predecessor-successor relationship establishing operation abnormally terminating, determining a point of termination for the abnormally terminated operation; and resuming the copy object storing operation and the predecessor-successor relationship establishing operation at the point of termination.

10. A method according to claim 1 , further comprises:

prior to storing at least one of the copy objects, storing, in the database, a copy object corresponding to a predecessor to the at least one of the copy objects.

11. A system for copying a plurality of objects represented within an object-oriented enterprise engineering system, the system comprising:

A processor configured to provide a user interface configured to accept input from a user selecting a plurality of objects to be copied, such that each of at least two objects of the plurality of objects to be copied is a successor object, wherein each successor object has a predecessor-successor relationship with a corresponding predecessor object, the predecessor-successor relationship being defined such that:

each successor object includes at least one parameter having a value that functionally depends on a value of a parameter of its corresponding predecessor object, such that if the value of the predecessor object parameter changes to a changed value, the value of the successor object parameter must be recalculated based on the changed value of the parameter of the predecessor object using an engineering relationship; and

the predecessor-successor relationship exists from prior to commencement of the copying of the plurality of objects to after completion of the copying of the plurality of objects;

an identification module configured, for each successor object of the plurality of objects to be copied, to automatically identify its predecessor object, thereby identifying a plurality of identified predecessor objects, the identification module being configured to:

retrieve, from a database, information about relationships between the successor object and other objects; and

follow a logical path within the retrieved information, the logical path extending between the successor object and the predecessor object;

a partitioning module configured to automatically partition the plurality of objects to be copied and the plurality of identified predecessor objects into a plurality of ordered groups of objects, such that for each object of the plurality of objects to be copied and the plurality of identified predecessor objects, its predecessor object is in one of: the same group as the object and a group preceding the group containing the object; and

a storing module configured such that for each group in order, during an atomic database transaction, the storing module:

stores, in the database, copy objects corresponding to objects in the group; and

for at least one stored copy object corresponding to an object in the group, stores information in the database to establish a predecessor-successor relationship between the stored copy object and another object in the database, the other object not corresponding to any object in the group, such that the stored copy object is a successor of the other object.

12. A system for copying a plurality of predecessor and successor objects according to claim 11 , wherein:

at least one predecessor-successor relationship exists between an object in one of the groups and another object in another of the groups; and

the storing module is further configured to, as part of the atomic database transaction for the one of the groups, store information in the database to establish a predecessor-successor relationship between the stored copy object corresponding to the object in the one of the groups and the copy object corresponding to the other object.

13. A system for copying a plurality of predecessor and successor objects according to claim 11 , wherein the identification module is further configured to receive data identifying a path starting at the successor object, the path extending through at least one object that is subordinate to the successor object, the path comprising at least one step, each step having a relationship type and a direction.

14. A system for copying a plurality of predecessor and successor objects according to claim 11 , wherein the identification module is further configured to receive data identifying a first path and a second path, each path starting at the successor object, each path extending through at least one object that is subordinate to the successor object, each path comprising at least one step, each step having a relationship type and a direction, wherein the first path terminates at a target object that is not subordinate to the successor object, and the second path terminates at a target object that is subordinate to the successor object.

15. A system for copying a plurality of predecessor and successor objects according to claim 14 , wherein the identification module is further configured to query a database with a query formed from information from at least one of the first and second paths.

16. A system for copying a plurality of predecessor and successor objects according to claim 11 , wherein the identification module is further configured to:

generate a computer-readable representation of the plurality of identified predecessor objects;

sort the representation of the plurality of identified predecessor objects; and

partition the sorted representation of the plurality of identified predecessor objects.

17. A system for copying a plurality of predecessor and successor objects according to claim 11 , wherein the storing module is further configured, for each group in order, during the atomic database transaction, to:

for each object of the plurality of objects to be copied, automatically identify subordinate objects corresponding to the object; and

store, in the database, copy objects corresponding to the identified subordinate objects.

18. A system for copying a plurality of predecessor and successor objects according to claim 11 , wherein the storing module is further configured to store an object identifier of at least one of the copy objects in association with an object identifier of the corresponding object in the group.

19. A computer program product for use on a computer system for copying a plurality of objects represented within an object-oriented enterprise engineering system, the computer program product comprising:

a computer-readable non-transitory medium on which are stored computer instructions such that, when executed by a processor, the instructions cause the processor to:

accept input from a user selecting a plurality of objects to be copied, such that each of at least two objects of the plurality of objects to be copied is a successor object, wherein each successor object has a predecessor-successor relationship with a corresponding predecessor object, the predecessor-successor relationship being defined such that:

each successor object includes at least one parameter having a value that functionally depends on a value of a parameter of its corresponding predecessor object, such that if the value of the predecessor object parameter changes to a changed value, the value of the successor object parameter must be recalculated based on the changed value of the parameter of the predecessor object using an engineering relationship; and

the predecessor-successor relationship exists from prior to commencement of the copying of the plurality of objects to after completion of the copying of the plurality of objects;

for each successor object of the plurality of objects to be copied, automatically identify its predecessor object, thereby identifying a plurality of identified predecessor objects, wherein automatically identifying the predecessor object comprises:

retrieving, from a database, information about relationships between the successor object and other objects; and

following a logical path within the retrieved information, the logical path extending between the successor object and the predecessor object;

automatically partition the plurality of objects to be copied and the plurality of identified predecessor objects into a plurality of ordered groups of objects, such that for each object of the plurality of objects to be copied and the plurality of identified predecessor objects, its predecessor object is in one of: the same group as the object and a group preceding the group containing the object;

for each group in order, during an atomic database transaction:

store, in the database, copy objects corresponding to objects in the group; and

for at least one stored copy object corresponding to an object in the group, establish a predecessor-successor relationship between the stored copy object and another object in the database, wherein the other object does not correspond to any object in the group, and wherein the relationship is established such that the stored copy object is a successor of the other object.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2015
From: INTERGRAPH CORPORATION
To: HEXAGON SOLUTIONS, INC.
Reel/Frame 036791/0443 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2015
From: HEXAGON SOLUTIONS, INC.
To: HEXAGON TECHNOLOGY CENTER GMBH
Reel/Frame 036791/0516 →
MERGER Recorded Oct 5, 2015
From: INTERGRAPH TECHNOLOGIES COMPANY
To: INTERGRAPH CORPORATION
Reel/Frame 036728/0816 →
TERMINATION AND RELEASE OF SECOND LIEN INTELLECTUAL PROPERTY SECURITY INTEREST Recorded Mar 3, 2011
From: WACHOVIA BANK, NATIONAL ASSOCIATION
To: INTERGRAPH HOLDING COMPANY (F/K/A COBALT HOLDING COMPANY); INTERGRAPH CORPORATION; INTERGRAPH EUROPEAN MANUFACTURING, LLC; M&S COMPUTING INVESTMENTS, INC.; INTERGRAPH DISC, INC.; WORLDWIDE SERVICES, INC.; INTERGRAPH (ITALIA), LLC; INTERGRAPH ASIA PACIFIC, INC.; INTERGRAPH CHINA, INC.; INTERGRAPH SERVICES COMPANY; INTERGRAPH DC CORPORATION - SUBSIDIARY 3; Z/I IMAGING CORPORATION; INTERGRAPH PP&M US HOLDING, INC.; INTERGRAPH TECHNOLOGIES COMPANY; ENGINEERING PHYSICS SOFTWARE, INC.; COADE HOLDINGS, INC.; COADE INTERMEDIATE HOLDINGS, INC.
Reel/Frame 025892/0028 →
TERMINATION AND RELEASE OF FIRST LIEN INTELLECTUAL PROPERTY SECURITY INTEREST Recorded Mar 3, 2011
From: MORGAN STANLEY & CO. INCORPORATED
To: INTERGRAPH HOLDING COMPANY (F/K/A COBALT HOLDING COMPANY); INTERGRAPH CORPORATION; INTERGRAPH EUROPEAN MANUFACTURING, LLC; M&S COMPUTING INVESTMENTS, INC.; INTERGRAPH DISC, INC.; WORLDWIDE SERVICES, INC.; INTERGRAPH (ITALIA), LLC; INTERGRAPH ASIA PACIFIC, INC.; INTERGRAPH CHINA, INC.; INTERGRAPH SERVICES COMPANY; INTERGRAPH DC CORPORATION - SUBSIDIARY 3; Z/I IMAGING CORPORATION; INTERGRAPH PP&M US HOLDING, INC.; INTERGRAPH TECHNOLOGIES COMPANY; ENGINEERING PHYSICS SOFTWARE, INC.; COADE HOLDINGS, INC.; COADE INTERMEDIATE HOLDINGS, INC.
Reel/Frame 025892/0299 →