Method and system for managing data while sharing application programs
Abstract
A method and system for managing data (i.e., objects) that are shared by multiple instances of a shared application program. A shared application program is an application program that is executing simultaneously on multiple computers and that has a copy of data that is being shared by each instance of the application program. In particular, each computer maintains a copy of the shared data. When an instance of the application program modifies the shared data, the modifications are sent to the other computers. Each of these other computers stores the data in its copy of the shared data, and each instance of the application program updates its user interface to reflect the modifications to the shared data. Thus, the users of the shared application program can cooperatively modify and view the shared data. For example, multiple users can be executing a word processing program on their computer and sharing a common document. As one user changes the document, the word processing program updates its copy of the shared data. The changes are then transmitted to the other computers so that their copy of the shared data can be updated. In particular, an object management (OM) system is provided that enables shared application programs to manage their copy of the shared data. Each computer has a copy of the OM system. The OM system, under the direction of the shared application program, manages the adding, deleting, and modifying of the shared data. The OM system also controls the transmitting of modifications to the copy of the shared data to the other computers.
Claims
exact text as granted — not AI-modified1 . A method for sharing an application program among a plurality of computer systems, each computer system executing an instance of the application program, each instance of the application program having application data, each computer system having a connection to each other computer system, having an object management system for synchronizing the application data, having an input device, and having a display on which the application data is displayed, the method comprising:
at each computer system,
under control of the instance of the application program,
receiving an action to be performed on the application data from a user using the input device; and
transmitting an action indication indicating the received action to the object management system at that computer system;
under control of the object management system at that computer system,
receiving the transmitted action indication from the instance of the application program;
broadcasting the received action indication to each object management system at each connected computer system;
performing the action indicated by the received action indication on the application data; and
notifying the instance of the application program that the action was performed on the application data; and
under control of the instance of the application program,
receiving the notification from the object management system; and
updating the display based on the application data on which the action was performed; and
at each connected computer system,
under control of the object management system at that computer system,
receiving the broadcast action indication from the other computer system;
performing the action indicated by the received action indication on the application data; and
notifying the instance of the application program at that computer system that the action was performed on the application data; and
under control of the instance of the application program,
receiving the notification from the object management system; and
updating the display based on the application data on which the action was performed.
2 . A method for sharing an application program among a plurality of computer systems, each computer system executing an instance of the application program, each instance of the application program having application data, each computer system having a connection to each other computer system and having an input device, the method comprising:
providing an object management system for updating the application data and notifying the instance of the application program that the application data was updated; and under control of the instance of the application program at one computer system, receiving an action to be performed on the application data from a user using the input device; notifying the object management system at that computer system of the received action; receiving from the object management system a notification that the application data was updated with the received action; and generating a display based on the updated application data.
3 . The method of claim 2 wherein after the step of notifying the object management system at that computer system of the received action, further comprising:
under control of the object management system, broadcasting to the object management system at each other computer system an action indication indicating the received action;
under control of each other computer system,
under control of the object management system,
receiving the broadcast action indication from the object management system of the other computer system;
updating the application data based on the action indicated by the received action indication; and
notifying the instance of the application program at that computer system that the application data was updated; and
under control of the instance of the application program, generating a display based on the updated application data.
4 . A method for sharing an application program among a plurality of computer systems, each computer system executing an instance of the application program, each instance of the application program having application data, each computer system having a connection to each other computer system and having an object management system for synchronizing the application data, the method comprising:
under control of the object management system at one computer system, receiving sent action indications from the instance of the application program at that computer system and broadcast action indications from object management systems at each connected computer system; updating the application data based on the action indicated by each received action indication; notifying the instance of the application program that the application data was updated; and when the received action indication is received from the instance of the application program at that computer system, broadcasting the received action indication to each object management system at each connected computer system.
5 . The method of claim 4 wherein after the step of broadcasting the received action indication, further comprising:
under control of the object management system at each other computer system,
receiving the broadcast action indication from the other object management system;
updating the application data based on the action indicated by each received action indication; and
notifying the instance of the application program that the application data was updated.
6 . A method for enabling a new computer system to join in sharing an application program with a plurality of other computer systems, each computer system having a connection to each other computer system, each computer system that is sharing the application program having an instance of the application program and having a synchronized data area containing data output by the instance of the application program, the method comprising:
under control of the new computer system,
broadcasting a join message to the other computer systems indicating that the new computer system is to share the application program;
receiving from each other computer system a node identification that identifies that computer system;
selecting one of the computer systems for which a node identification has been received;
sending a request to the selected computer system for a copy of the data in the synchronized data area; and
upon receiving the copy of the data from the selected computer system, generating a display based on the received copy of the data so that the new computer system joins in the sharing of the application program.
7 . The method of claim 6 wherein the step of selecting one of the computer systems selects a first computer system from which the node identification was received.
8 . The method of claim 6 wherein each computer system has a queue for maintaining action indications, each action indication indicating an action to be performed on the data in the synchronized data area, and wherein after the step of sending a request, the object management system at the new computer system receives action indications from each object management system at each other computer system and adds each received action indication to the queue and wherein after the step of receiving the copy of the data, the object management system at the new computer system processes each action indication in the queue.
9 . The method of claim 8 wherein the step of processing each action indication in the queue further comprises:
retrieving an action indication from the queue;
determining whether to process the action indication;
when it is determined that the action indication is to be processed, processing the action indication;
when it is determined that the action indication is to be processed at a later time, adding the action indication to the queue; and
when it is determined that the action indication is not to be processed, discarding the action indication.
10 . A method for sharing an application program among a plurality of computer systems, the application program being a client application program, each computer system executing an instance of the client application program, each instance of the client application program having application data, each computer system having a connection to each other computer system, having an object management server for synchronizing the application data, and having a synchronized data area containing the application data, the method comprising:
at each computer system,
under control of the object management server,
receiving sent action indications from the instance of the client application program at that computer system and broadcast action indications from each object management server at each other computer system, the action indications indicating actions to be performed on the data,
determining whether to process each received action indication;
after determining whether to process each received action indication,
when it is determined that an action indication is to be processed,
processing the action indication; and
notifying the instance of the client application program that the application data was updated with the action indication;
when it is determined that the action indication is to be processed at a later time, processing the action indication at a later time; and
when it is determined that the action indication is not to be processed, discarding the action indication; and
when the received action indication was received from the instance of the client application program at that computer system, broadcasting the action indication to the other computer systems.
11 . The method of claim 10 wherein after the step of notifying the instance of the client application program that the application data was updated with the action indication, under control of the instance of the client application program, generating a display based upon the updated application data.
12 . A method for sharing an application program among a plurality of computer systems such that any one of the computer systems can stop sharing the application program without affecting the other computer systems, each computer system executing an instance of the application program, each instance of the application program having application data, each computer system having a connection to each other computer system and having an object management system for synchronizing the application data, the method comprising:
under control of one of the computer systems,
under control of the object management system, broadcasting an action indication to each of the other computer systems, the action indication indicating an action to be performed on the application data;
under control of each of the other computer systems,
under control of the object management system,
receiving the broadcast action indication from the object management system at the connected computer system;
updating the application data based on the action indicated by the received action indication; and
notifying the instance of the application program at that computer system that the application data was updated;
under control of the instance of the application program,
receiving the notification from the object management system; and
updating a display based on the updated application data; and
under control of the connected computer system, ceasing to share the application program, whereby the display at each of the other computer systems remains updated based on the updated application data.
13 . The method of claim 12 wherein after the step of ceasing to share the application program, each other computer system continues to share the application program using the updated application data.
14 . A method for maintaining a consistent z-ordering for objects displayed when sharing an application program among a plurality of computer systems, each computer system executing an instance of the application program, each computer system having a connection to each other computer system, having a unique identification, and having an object management system, the method comprising:
under control of the object management system at each computer system,
when the instance of the application program requests that a new object be displayed,
assigning a sequence number to the new object based on a last sequence number of an object that was last displayed at the computer system; and
broadcasting to each other computer system an indication of the object, the assigned sequence number, and the unique identification of that computer system; and
upon receiving the broadcast, under control of the object management system at each other computer system,
when an object that has already been displayed has the same sequence number as the received sequence number, setting the z-order of the received object relative to the z-order of the displayed object with the same sequence number based on the received unique identification of the computer system that broadcast the received object; and
when no object that has already been displayed has the same sequence number as the received sequence number, setting the z-order of the received object based on the received sequence number so that each computer system can maintain a consistent z-ordering.
15 . The method of claim 14 wherein the received object has a region identifier indicating the placement of the object in a front region, middle region, or back region and wherein the steps of setting the z-order set the z-order based upon the region specified by the region identifier.
16 . A method for sharing application data among a plurality of application programs at multiple computer systems, each application program having application data, each computer system having a connection to each other computer system and having an input device, the method comprising:
providing an object management system for updating the application data and notifying the application programs that the application data was updated; and under control of an application program at one computer system,
receiving an action to be performed on the application data from a user using the input device; and
notifying the object management system at that computer system of the received action; and
under control of each application program at that computer system,
receiving from the object management system a notification that the application data was updated with the received action; and
processing the received notification.
17 . The method of claim 16 wherein the step of processing the received notification further comprises generating a display based upon the updated application data.
18 . The method of claim 16 wherein after the step of notifying the object management system at that computer system of the received action, further comprising:
under control of the object management system at that computer system,
receiving from the application program a notification of the received action;
updating the application data based on the received action; and
broadcasting the notification of the received action to each object management system at each other computer system;
under control of each object management system at each other computer system,
receiving the broadcast notification of the received action;
updating the application data based on the received broadcast notification of the received action; and
notifying the application programs at that computer system that the application data was updated; and
under control of each application program at each other computer system, processing the received notification.
19 . A method for sharing application data among a plurality of application programs at multiple computer systems, each application program having application data stored in a synchronized data area corresponding to that application program, each computer system executing an instance of each application program, each computer system having a connection to each other computer system and having an object management system for synchronizing the application data, the method comprising:
under control of the object management system at one computer system,
receiving sent action indications from the instances of the application programs at that computer system and broadcast action indications from object management systems at each connected computer system;
for each received action indication,
updating the application data in the synchronized data area corresponding to the instance of the application program from which the action indication originated based on the action indicated by the received action indication;
notifying the instance of the application program corresponding to the updated synchronized data area at that computer system that the application data was updated; and
when the received action indication originated from the instance of the application program at that computer system, broadcasting the received action indication to each object management system at each connected computer system.
20 . The method of claim 19 wherein after the step of broadcasting the received action indication, further comprising:
under control of the object management system at each other computer system,
receiving the broadcast action indication from the other object management system;
updating the application data in the synchronized data area corresponding to the instance of the application program from which the action indication originated based on the action indicated by each received action indication; and
notifying the instance of the application program corresponding to the updated synchronized data area at that computer system that the application data was updated.
21 . The method of claim 19 wherein after the step of notifying the instance of the application program, further comprising:
under control of the instance of the application program,
receiving a notification from the object management system that the application data has been updated; and
processing the received notification.
22 . A system for managing application data for an application program shared among a plurality of computer systems, each computer system executing an instance of the application program, each computer system having a connection to each other computer system and having an input device, the system comprising:
under control of the instance of the application program at one computer system,
receiving local actions to be performed on the application data from a user using the input device and receiving remote actions from an instance of the application program executing at another computer system;
updating the application data based on the received actions; and
when a local action is received, broadcasting the local action to the other instance of the application program at the other computer system, wherein the other computer system receives the broadcast local action as a remote action.
23 . The system of claim 22 , further comprising:
under control of each instance of the application program at each other computer system,
receiving the broadcast action from the other application program; and
updating the application data at that computer system based on the received action.
24 . The method of claim 22 wherein after the updating of the application data based on the action, generating a display based on the updated application data.
25 . A method for enabling a new computer system to join in sharing application data for an application program shared among a plurality of other computer systems, each computer system having a connection to each other computer system, each computer system that is sharing the application program having an instance of the application program and having a synchronized data area containing data output by the instance of the application program, the method comprising:
under control of the instance of the application program at the new computer system,
broadcasting a join message to each instance of the application program at each other computer system indicating that the new computer system is to share the application program;
receiving from each other instance of the application program at each other computer system a node identification that identifies that computer system;
selecting one of the computer systems for which a node identification has been received;
sending a request to the instance of the application program at the selected computer system for a copy of the data in the synchronized data area; and
upon receiving the copy of the data from the instance of the application program at the selected computer system, generating a display based on the received copy of the data so that the new computer system joins in the sharing of the application program.
26 . The method of claim 25 wherein the selecting of one of the computer systems selects a first computer system from which the node identification was received.
27 . The method of claim 25 wherein each computer system has a queue for maintaining actions to be performed on the data in the synchronized data area, and wherein after sending a request, the instance of the application program at the new computer system receives actions from each instance of the application program at each other computer system and adds each received action to the queue and wherein after receiving the copy of the data, the instance of the application program at the new computer system processes each action in the queue.
28 . A system for sharing an application program among a plurality of computer systems, each computer system having a connection to each other computer system, the system comprising:
an object management system at one computer system for updating data output by an instance of the application program at that computer system and notifying the instance of the application program that the data was updated; and an instance of the application program at that computer system for:
generating an action to be performed on the data;
sending an action indication to the object management system indicating the generated action;
receiving a notification from the object management system that the data was updated with the action indicated by the sent action indication; and
generating a display based on the updated data.
29 . The system of claim 28 , further comprising:
an object management system at each other computer system for:
receiving the broadcast action indication from the object management system at the other computer system;
updating data at that computer system based on the action indicated by the received action indication; and
notifying an instance of the application program at that computer system that the data was updated; and
an instance of the application program at each other computer system for:
receiving the notification from the object management system at that computer system; and
generating a display based on the updated data.
30 . A system for managing application data for an application program shared among a plurality of computer systems, each computer system having a connection to each other computer system and having an input device, the system comprising:
an object management system at each computer system for:
receiving action indications from an instance of the application program executing at that computer system and from each object management system at each other computer system, the action indications indicating actions to be performed on the application data;
updating the application data based on the action indicated by each received action indication;
notifying the instance of the application program that the application data was updated; and
when a received action indication is received from the instance of the application program at that computer system, broadcasting the action indication to each object management system at each other computer system.
31 . The system of claim 30 , further comprising:
an object management system at each other computer system for:
receiving the broadcast action indication from the other object management system;
updating the application data at that computer system based on the action indicated by each received action indication; and
notifying the instance of the application program at that computer system that the application data was updated.
32 . A system for enabling a new computer system to join in sharing an application program with a plurality of other computer systems, each computer system having a connection to each other computer system, each computer system that is sharing the application program having an instance of the application program and having a synchronized data area containing data output by the instance of the application program, the system comprising:
at the new computer system, an object management system for:
transmitting a join message to the other computer systems, indicating that the new computer system is to share the application program;
receiving from each other computer system a node identification that identifies that computer system;
selecting one of the computer systems from which a node identification has been received;
sending a request to the selected computer system for a copy of the data in the synchronized data area; and
receiving a copy of the data from the selected computer system; and
an instance of the application program at the new computer system for generating a display based on the received copy of the data so that the new computer system joins in the sharing of the application program.
33 . The system of claim 32 , further comprising:
a queue for maintaining action indications, each action indication indicating an action to be performed on the data in the synchronized data area; and the object management system at the new computer system for:
receiving action indications from each object management system at each other computer system;
adding each received action indication to the queue; and
processing each action indication in the queue.
34 . A computer-readable storage medium containing computer instructions that cause a computer system to:
receive at an instance of an application program an action to be performed on application data; send an action indication to an object management system indicating the received action, the object management system for updating the application data and notifying the instance of the application program that the application data was updated; receive a notification from the object management system that the application data was updated with the action indicated by the sent action indication; and generate a display based on the updated application data.
35 . The computer-readable storage medium of claim 34 wherein the instructions cause the computer system to receive a notification from the object management system that the application data was updated with an action indicated by an action indication received from a connected computer system.
36 . A computer-readable storage medium containing computer instructions that cause a computer system to:
receive sent action indications from an instance of an application program at that computer system and broadcast action indications from object management systems at connected computer systems, each connected computer system having an instance of the application program, each instance of the application program having application data, each action indication indicating an action to be performed on the application data; update the application data based on the action indicated by each received action indication; notify the instance of the application program that the application data was updated; and broadcast the received action indication to each object management system at each connected computer system when the received action indication is received from the instance of the application program at that computer system.
37 . The computer-readable storage medium of claim 36 wherein the instructions cause the computer system to generate a display based upon the updated application data.
38 . A computer-readable storage medium containing computer instructions that cause a computer system to:
broadcast a join message to a plurality of connected computer systems, the join message indicating that the computer system is to share an application program with the other computer systems, each computer system having an instance of the application program, the output of the instance of the application program being contained in a synchronized data area; receive a node identification from each other computer system that identifies that computer system; select one of the computer systems for which a node identification has been received; send a request to the selected computer system requesting a copy of the data in the synchronized data area; receive the requested data from the selected computer system; and generate a display based on the received copy of the data so that the new computer system joins in the sharing of the application program.
39 . The computer-readable storage medium of claim 38 wherein the instructions cause the computer system to select a first computer system from which the node identification is received.
40 . A computer-readable storage medium containing a data structure, comprising:
a plurality of synchronized data areas, each synchronized data area corresponding to an application program that is shared among a plurality of computer systems, the synchronized data area containing data output by the corresponding application program; and a control section for identifying each synchronized data area.Join the waitlist — get patent alerts
Track US2001000811A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.