Asynchronous client to server updates
First Claim
Patent Images
1. A method comprising:
- initiating, by a client, a web application including client-side components executing on the client that communicate with server-side components of the web application executing on a server;
receiving, by the client from the server over at least one network coupling the client and the server, a plurality of objects including data for a document, wherein each object of the plurality of objects received by the client corresponds to an object retained by the server;
adding, by the client to each object of the plurality of objects, information causing a change log to add an entry when the data included in each object of the plurality of objects is changed;
storing, by the client, each object of the plurality of objects in a cache;
executing, by the client, one or more of the client-side components of the web application in response to one or more changes to the document, the executing of the one or more of the client-side components of the web application resulting in a plurality of processing events occurring on the client;
capturing, by the client, processing events of the plurality of processing events which cause communication with the server for batching client-server communication during the executing of the one or more of the client-side components of the web application;
recording, by the client, a plurality of entries in the change log, wherein each entry of the plurality of entries specifies;
at least one of the plurality of processing events occurring on the client,at least one object of the plurality of objects stored in the cache, andone or more values for the data in the at least one object of the plurality of objects changed by the executing of the one or more of the client-side components of the web application;
transmitting, by the client, the plurality of entries in the change log to the server in batch via the at least one network upon an occurrence of at least one predetermined event for asynchronous updating of the objects retained by the server; and
throttling, by the client, frequency of the client-server communication based on at least one of a processing load on the server-side components of the web application executing on the server and a latency of the at least one network.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus are provided which enable client-server communication during the execution of a web application to be batched, so as to manage the processing load on server-side components of the web application and the transmission load on the network(s) coupling the client and server. In some embodiments, client-side components of the web application are operable to capture processing events in a change log on the client, and transmit at least a subset of the entries in the change log to the server upon the occurrence of a predetermined event, such as a passage of time since a previous transmission.
-
Citations
20 Claims
-
1. A method comprising:
-
initiating, by a client, a web application including client-side components executing on the client that communicate with server-side components of the web application executing on a server; receiving, by the client from the server over at least one network coupling the client and the server, a plurality of objects including data for a document, wherein each object of the plurality of objects received by the client corresponds to an object retained by the server; adding, by the client to each object of the plurality of objects, information causing a change log to add an entry when the data included in each object of the plurality of objects is changed; storing, by the client, each object of the plurality of objects in a cache; executing, by the client, one or more of the client-side components of the web application in response to one or more changes to the document, the executing of the one or more of the client-side components of the web application resulting in a plurality of processing events occurring on the client; capturing, by the client, processing events of the plurality of processing events which cause communication with the server for batching client-server communication during the executing of the one or more of the client-side components of the web application; recording, by the client, a plurality of entries in the change log, wherein each entry of the plurality of entries specifies; at least one of the plurality of processing events occurring on the client, at least one object of the plurality of objects stored in the cache, and one or more values for the data in the at least one object of the plurality of objects changed by the executing of the one or more of the client-side components of the web application; transmitting, by the client, the plurality of entries in the change log to the server in batch via the at least one network upon an occurrence of at least one predetermined event for asynchronous updating of the objects retained by the server; and throttling, by the client, frequency of the client-server communication based on at least one of a processing load on the server-side components of the web application executing on the server and a latency of the at least one network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A client computer comprising:
-
at least one processor configured to execute computer-executable instructions; and memory storing the computer-executable instructions, the computer-executable instructions for; initiating a web application including client-side components executing on the client computer that communicate with server-side components of the web application executing on a server; receiving, from the server over at least one network coupling the client computer and the server, a plurality of objects including data for a document, wherein each object of the plurality of objects received by the client computer corresponds to an object retained by the server; adding, to each object of the plurality of objects, information causing a change log to add an entry when the data included in each object of the plurality of objects is changed; storing each object of the plurality of objects in a cache; executing one or more of the client-side components of the web application in response to one or more changes to the document, the executing of the one or more of the client-side components resulting in a plurality of processing event occurring on the client computer; capturing processing events of the plurality of processing events which cause communication with the server for batching client-server communication during the executing of the one or more of the client-side components of the web application; recording a plurality of entries in the change log, wherein each of the plurality of entries specifies; at least one of the plurality of processing events occurring on the client computer, at least one object of the plurality of objects stored in the cache, and one or more values for the data in the at least one object of the plurality of objects changed by executing of the one or more of the client-side components of the web application; and transmitting the plurality of entries in the change log to the server in batch via the at least one network upon an occurrence of at least one predetermined event for asynchronous updating of the objects retained by the server; and throttling frequency of the client-server communication based on at least one of a processing load on the server-side components of the web application executing on the server and a latency of the at least one network. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. At least one computer-readable memory device encoded with computer executable instructions which, when executed by a client computer, perform a method comprising acts of:
-
initiating a web application including client-side components executing on the client computer that communicate with server-side web components of the web application executing on a server; receiving, from the server over at least one network coupling the client computer and the server, a plurality of objects including data for a document, wherein each object of the plurality of objects received by the client computer corresponds to an object retained by the server; adding, to each object of the plurality of objects, information causing a change log to add an entry when the data included in each object of the plurality of objects is changed; storing each object of the plurality of objects in a cache; executing one or more of the client-side components of the web application in response to one or more changes to the document, the executing of the one or more of the client-side components of the web application resulting in a plurality of processing events occurring on the client computer; capturing processing events of the plurality of processing events which cause communication with the server for batching client-server communication during the executing of the one or more of the client-side components of the web application; recording a plurality of entries in the change log, wherein each of the plurality of entries specifies; at least one of the plurality of processing events occurring on the client computer, at least one object of the plurality of objects stored in the cache, and one or more values for the data in the at least one object of the plurality of objects changed by the executing of the one or more of the client-side components of the web application; transmitting the plurality of entries in the change log to the server in batch via the at least one network upon an occurrence of at least one predetermined event for asynchronous updating of the objects retained by the server; and throttling frequency of the client-server communication based on at least one of a processing load on the server-side components of the web application executing on the server and a latency of the at least one network. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification