Claims
- 1. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for monitoring changes made to an object graph comprising a plurality of data bearing objects containing data from a database, said method steps comprising the steps of:prior to making any change to a first data bearing object in said object graph, in response to an event that initiates execution of application code, transmitting a message indicating that said first data bearing object expects to undergo a change from said first data bearing object to an object graph manager; taking a snapshot of said first data bearing object upon said object graph manager receiving said message indicating said expected change; making one or more changes to said first data bearing object during said execution of application code in response to said event; transmitting a message indicating.an end of said execution of application code in response to said event to said object graph manager; and identifying said change made to said first data bearing object upon said object graph manager receiving said message indicating said end of execution by comparing said data bearing object after said change has been made to said snapshot of said object.
- 2. The program storage device of claim 1 in which said method further comprises the steps of:transmitting a message indicating that said first data bearing object has undergone a change from said object graph manager to an interested object.
- 3. The program storage device of claim 2 in which said method further comprises the steps of:transmitting a message indicating how said first data bearing object has changed from said object graph manager to an interested object.
- 4. The program storage device of claim 3 in which said interested object is an object registered with said object graph manager as an object to be informed of any changes to said first data bearing object.
- 5. The program storage device of claim 4 wherein said step of transmitting a message indicating that said first data bearing object expects to undergo a change comprises the steps of:registering said object graph manager as an observer with said first data bearing object; and broadcasting said message indicating that said first data bearing object expects to undergo a change from said first data bearing object to registered observers of said data bearing object.
- 6. The program storage device of claim 5 in which said interested object comprises a user interface manager object managing values displayed in a user interface, and further comprising the steps of:after said user interface manager object has received said message indicating that said first data bearing object has undergone change, transmitting a message from said user interface manager object to said first data bearing object requesting values for data of said first data bearing object; transmitting said values for said data of said first data bearing object from said first data bearing object to said user interface manager object; and updating said values displayed in said user interface corresponding to said values for said data of said first data bearing object.
- 7. A computer system comprising:a processor; a memory coupled to said processor; object code executed by said processor that provides at least one method for monitoring changes made to an object graph comprising a plurality of data bearing objects containing data from a database; said object code configured to: prior to making any change to a first data bearing object in said object graph in response to an event that initiates execution of application code, transmit a message indicating that said first data bearing object expects to undergo a change from said first data bearing object to an object graph manager; take a snapshot of said first data bearing object upon said object graph manager receiving said message indicating said expected change; make one or more changes to said first data bearing object during said execution of application code in response to said event; transmit a message indicating an end of said execution of application code in response to said event to said object graph manager.
- 8. The computer system of claim 7 wherein said object code executed by said processor configured to monitor changes made to an object graph comprising a plurality of data bearing objects containing data from a database, further comprises:object code executed by said processor configured to transmit a message indicating that said first data bearing object has undergone a change from said object graph manager to an interested object.
- 9. The computer system of claim 8 wherein said interested object is an object registered with said object graph manager as an object to be informed of any changes to said first data bearing object.
- 10. The computer system of claim 7, wherein said object code for transmitting a message indicating that said first data bearing object expects to undergo a change comprises object code executed by said processor to:register said object graph manager as an observer with said first data bearing object; broadcast said message indicating that said first data bearing object expects to undergo a change from said first data bearing object to registered observers of said data bearing object.
- 11. The computer system of claim 8 wherein said interested object comprises a user interface manager object managing values displayed in a user interface, and further comprises object code configured to:indicate, after said user interface manager object has received said message, that said first data bearing object has undergone a change transmit a message from said user interface manager object to said first data bearing object requesting values for data of said first data bearing object; transmit said values for said data of said first data bearing object from said first data bearing object to said user interface manager object, update said values displayed in said user interface corresponding to said values for said data of said first data bearing object.
- 12. A computer system comprising:a processor; a memory coupled to said processor; object code executed by said processor that provides at least one method for modifying a database in accordance with changes made to an object graph comprising a plurality of data bearing objects containing data from said database; said object code configured to: prior to making any change to a first data bearing object in said object graph, transmit a message indicating an expected change to said first data bearing object to an object graph manager; take a snapshot of said first data bearing object upon said object graph manager receiving said message indicating said expected change; make one or more changes to said first data bearing object; transmit a commit message to said object graph manager requesting that changes made to said first data bearing object be committed to said database; take a second snapshot of said first data bearing object upon said object graph manager receiving said commit message; detect said one or more changes to said first data bearing object by comparing said second snapshot to said first snapshot; store data corresponding to said detected one or more changes in said database.
- 13. The computer system of claim 12, wherein said object code executed by said processor configured to provide at least one method for modifying a database in accordance with changes made to an object graph comprising a plurality of data bearing objects containing data from said database, comprises:object code executed by said processor configured to store data corresponding to said detected one or more changes in said database comprising the step of sending a change request from said object graph manager to an object store.
- 14. The computer system of claim 13 wherein said object store comprises an object store coordinator that interfaces between said object graph manager and a plurality of databases.
- 15. The computer system of claim 14 wherein said plurality of databases comprise databases distributed over a computer network.
- 16. A computer system comprising:a processor; a memory coupled to said processor; object code executed by said processor that provides at least one method for undoing changes made to an object graph comprising a plurality of data bearing objects containing data from a database; said object code configured to: prior to making any change to a first data bearing object in said object graph in response to an event that initiates execution of application code, transmit a message indicating that said first data bearing object expects to undergo a change from said first data bearing object to an object graph manager; take a snapshot of said first data bearing object upon said object graph manager receiving said message indicating said expected change; make one or more changes to said first data bearing object during said execution of application code in response to said event; transmit a message indicating an end of said execution of application code in response to said event to said object graph manager; record said snapshot on an undo stack.
- 17. The computer system of claim 16, wherein said object code executed by said processor configured to undo changes made to an object graph comprising a plurality of data bearing objects containing data from a database, comprises:object code executed by said processor configured to determine whether a previous snapshot of said data bearing object has already been taken during said execution of application code in response to said event prior to taking said snapshot of said data bearing, and taking said snapshot only if no such previous snapshot has been taken.
- 18. The computer system of claim 16, wherein said object code executed by said processor configured to undo changes made to an object graph comprising a plurality of data bearing objects containing data from a database, comprises:object code executed by said processor configured to: record said snapshot in a recent snapshot table after taking said snapshot; and clear said recent snapshot table after recording said snapshot on said undo stack.
Parent Case Info
This is a continuation of application Ser. No. 09/167,522 filed Oct. 6, 1998 now U.S. Pat. No. 6,085,197 which is a continuation of application Ser. No. 08/682,198 filed Jul. 17, 1996 now U.S. Pat. No. 5,056,728.
US Referenced Citations (3)
Number |
Name |
Date |
Kind |
6307964 |
Lin et al. |
Oct 2001 |
B1 |
6400846 |
Lin et al. |
Jun 2002 |
B1 |
6490722 |
Barton et al. |
Dec 2002 |
B1 |
Non-Patent Literature Citations (3)
Entry |
Potter et al., “The ins and outs of objects”, Software Engineering Conference, 1998, Proceedings, 1998 Australian, Nov. 9-13, 1998, pp. 80-89.* |
Hill et al., “Visualising the structure of object-oriented systems”, Visual languages, 2000, Proceedings. 2000 IEEE International Symposium on, 2000, pp. 191-198.* |
Frohlich et al., “Interactive analysis of object architectures”, Technology of Object-Oriented Languages and Systems, 1997, TOOLS 25, Proceedings, Nov. 24-28, 1997, pp. 252-266. |
Continuations (2)
|
Number |
Date |
Country |
Parent |
09/167522 |
Oct 1998 |
US |
Child |
09/607870 |
|
US |
Parent |
08/682198 |
Jul 1996 |
US |
Child |
09/167522 |
|
US |