Method and system for managing data while sharing application programs
First Claim
1. 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 Assignments
0 Petitions
Accused Products
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.
266 Citations
40 Claims
-
1. 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. - View Dependent Claims (3)
-
-
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. - View Dependent Claims (5)
-
-
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. - View Dependent Claims (7, 8, 9)
-
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. - View Dependent Claims (11)
-
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. - View Dependent Claims (13)
-
-
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. - View Dependent Claims (15)
-
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. - View Dependent Claims (17, 18)
-
-
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. - View Dependent Claims (20, 21)
-
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. - View Dependent Claims (23, 24)
-
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. - View Dependent Claims (26, 27)
-
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. - View Dependent Claims (29)
-
-
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. - View Dependent Claims (31)
-
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. - View Dependent Claims (33)
-
-
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. - View Dependent Claims (35)
-
-
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. - View Dependent Claims (37)
-
-
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. - View Dependent Claims (39)
-
-
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.
-
Specification