Propogating updates efficiently in hierarchically structured data under a push model
First Claim
1. A method for propagating changes in hierarchically organized data located on a server to a copy of the data located on a client, comprising:
- receiving the changes to the data on the server;
applying the changes to the data on the server; and
responsively to an event on the server and independently of the client, propagating the changes to the copy of the data by, determining differences between the data on the server and the copy of the data which the server has locally available, using the differences to construct an update for the copy of the data which the server has locally available, wherein the update may include node insertion and node deletion operations for hierarchically organized nodes in the data, and sending the update from the server to the client.
2 Assignments
0 Petitions
Accused Products
Abstract
One embodiment of the present invention provides a system that efficiently propagates changes in hierarchically organized data to remotely cached copies of the data. The system operates by receiving changes to the data located on the server, and applying the changes to the data on the server. These changes are propagated to remotely cached copies of the data on a client in response to an event on a server, and independently of events on the client, by (1) determining differences between the current version of the data at the server and an older copy of the data at the client, which the server has stored locally; (2) using the differences to construct an update for the copy of the data, which may include node insertion and node deletion operations for hierarchically organized nodes in the data; and (3) sending the update to the client where the update is applied to the copy of the data to produce an updated copy of the data. According to one aspect of the present invention, the act of determining differences, and the act of using the differences to construct the update both take place during a single pass through the data. According to another aspect of the present invention, the update for the copy of the data may include node copy, node move, node collapse, node split, node swap and node update operations.
136 Citations
38 Claims
-
1. A method for propagating changes in hierarchically organized data located on a server to a copy of the data located on a client, comprising:
-
receiving the changes to the data on the server;
applying the changes to the data on the server; and
responsively to an event on the server and independently of the client, propagating the changes to the copy of the data by, determining differences between the data on the server and the copy of the data which the server has locally available, using the differences to construct an update for the copy of the data which the server has locally available, wherein the update may include node insertion and node deletion operations for hierarchically organized nodes in the data, and sending the update from the server to the client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method for propagating changes in data located on a server to a copy of the data located on a client, comprising:
-
receiving the changes to the data on the server;
applying the changes to the data on the server; and
propagating the changes to the copy of a subset of the data on the client automatically at regular time intervals by, determining differences between the data on the server and the copy of the data which the server has locally available, using the differences to construct an update for the copy of the data which the server has locally available, wherein the update may include at least one from the group of, node insertion, node deletion, node copy, node move, node collapse, node split, node swap and node update operations for hierarchically organized nodes in the data, validating the update at the server, and sending the update from the server to the client.
-
-
25. A computer readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for propagating changes in hierarchically organized data located on a server to a copy of the data located on a client, comprising:
-
receiving the changes to the data on the server;
applying the changes to the data on the server; and
responsively to an event on the server and independently of the client, propagating the changes to the copy of the data by, determining differences between the data on the server and the copy of the data which the server has locally available, using the differences to construct an update for the copy of the data which the server has locally available, wherein the update may include node insertion and node deletion operations for hierarchically organized nodes in the data, and sending the update from the server to the client.
-
-
26. An apparatus that propagates changes in data located on a server to a copy of the data located on a client, comprising:
-
a receiving mechanism that receives the changes to the data on the server;
a change application mechanism that applies the changes to the data on the server;
a difference determining mechanism that determines differences between the data on the server and the copy of the data which the server has locally available, wherein the difference determining mechanism operates responsively to an event on the server and independently of the client;
an update creation mechanism that constructs an update for the copy of the data, wherein the update may include node insertion and node deletion operations for hierarchically organized nodes in the data; and
an update sending mechanism, that sends the update from the server to the client. - View Dependent Claims (27, 28, 29, 30, 31, 32)
-
-
33. A method for propagating changes in data located on a server to a copy of the data located on a client, comprising:
-
receiving at the client an update for the copy of the data from the server, wherein the update may include node insertion and node deletion operations for hierarchically organized nodes in the data;
applying the update to the copy of the data to produce an updated copy of the data; and
responsively to an event on the server and independently of the client, propagating the changes to the copy of the data by;
determining differences between the data on the server and the copy of the data which the server has locally available, using the differences to constuct an update for the copy of the data which the server has locally available, wherein the update may include node insertiom and node deletion operations for hierarchically organized nodes in the data, and sending the update from the server to the client. - View Dependent Claims (34, 35, 36, 37, 38)
-
Specification