IP Library Granted Patent US 10,412,197
Granted Patent B1
US 10,412,197 · App. 15/835,034 · Granted Sep 10, 2019

Predictive prefetching of data from remote client-state cache from server to update local client-state cache

Inventors: Jude Arvind Britto (Bangalore, IN); Rajasekhar Vinnakota (Hyderabad, IN); David Franke (Austin, TX); Douglas Stuart Gray (Austin, TX); Deepti Gupta (Pune, IN)
Assignee: Versata Development Group, Inc.
H04L67/42G06F3/0482H04L67/2842
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,412,197
App. No.
15/835,034
Granted
Sep 10, 2019
Kind
B1
Abstract

Response delay associated with a state-based client-server application can be reduced with utilization of an application state server-side cache. A server caches data for a set of one or more possible states of a client-server application that may follow a current state of the application. The server rapidly responds to a client request with data that corresponds to an appropriate new state of the application in accordance with the application state server-side cache. The server determines that the application will transition to the appropriate new state from the current state of the application with the application state server-side cache based, at least in part, on an operation indicated by the client request.

Claims (55)

1. A method comprising:

sending from a server to a user interface (UI) of a client an output indicating an operation of a state-based client-server application, wherein the UI is associated with the state-based client-server application, and wherein the operation indicates a state transition from a current state to a new state of the state-based client-server application;

receiving with the server a client request supplied from the client; and

sending to the client from the server a subset of a hierarchy of data units pre-computed and stored at the server, each data unit of the subset corresponding to a respective one of a plurality of successive states of the state-based client-server application that may follow the new state, the subset including a first data unit that corresponds to a subsequent state of the plurality of successive states that may follow the new state.

2. The method of claim 1 , further comprising:

merging the first data unit into a client-side cache associated with the client,

wherein the client-side cache is a tree-structured hierarchical cache that includes a cache tree, and wherein merging the first data unit into the client-side cache includes:

determining a first node of the cache tree that corresponds to the first data unit; and

merging the first data unit into the cache tree at the first node.

3. The method of claim 1 , further comprising:

updating a display of the UI based on the merged first data unit of the client-side cache.

4. The method of claim 1 , further comprising:

updating a display of the UI based on a second data unit different than the first data unit, the second data unit corresponding to another state following the current state alternatively to the subsequent state; and

discarding the merged first data unit from the client-side cache.

5. The method of claim 1 , further comprising:

prior to receiving the subset from the server, queuing the operation within a client-side operation queue, the client-side operation queue maintaining an order of operations associated with the state-based client-server application.

6. The method of claim 5 , further comprising:

after receiving the subset from the server, providing to the server a batch request indicating entries of the client-side operation queue.

7. A server-client method comprising:

receiving with a client from a server predictive display update data corresponding to one or more user interface (UI) states of a state-based client-server application that are subsequent to a new UI state of the state-based client-server application and caching the predictively supplied display update data prior to receiving user input corresponding to the one or more subsequent UI states of the state-based client-server application.

8. The server-client method of claim 7 :

wherein the display update data is predictively supplied from the server to the client based on a client request that includes a field for indicating either a prefetch-only request or an operation corresponding to the new state in addition to requesting prefetch data corresponding to states of the one or more UI states following the new state.

9. The server-client method of claim 8 ,

wherein the field has a value indicating a prefetch-only request, and

wherein the server determines that state data corresponding to the one or more subsequent UI states should be prefetched to the client.

10. The server-client method of claim 8 ,

wherein the field has a value indicating the operation corresponding to the new state in addition to requesting prefetch data corresponding to the one or more subsequent UI states,

wherein the server supplies to the client state data corresponding to the new state in addition to prefetch data corresponding to the one or more subsequent UI states, and

wherein the indicated operation indicates a change of state of the state-based client-server application from a current state to the new state.

11. The server-client method of claim 7 ,

wherein the predictively supplied display update data is a subset of display update data stored at the server.

12. The server-client method of claim 7 ,

wherein the display update data is retrieved from a second server that is distinct from the server that predictively supplies display update data.

13. The server-client method of claim 7 ,

wherein the display update data is stored at the server.

14. The method of claim 1 further comprising:

receiving input via a user interface (UI) of a client, the input indicating an operation of a state-based client-server application, wherein the UI is associated with the state-based client-server application, and wherein the operation indicates a state transition from a current state to a new state of the state-based client-server application;

supplying a server with a client request; and

receiving from the server a subset of a hierarchy of data units pre-computed and stored at the server, each data unit of the subset corresponding to a respective one of a plurality of successive states of the state-based client-server application that may follow the new state, the subset including a first data unit that corresponds to a subsequent state of the plurality of successive states that may follow the new state.

15. A server-side method comprising:

predictively supplying display update data to a client from a server, wherein the display update data corresponds to one or more user interface (UI) states of a state-based client-server application that are subsequent to a new UI state of the state-based client-server application, to a client that caches the predictively supplied display update data prior to receiving user input corresponding to the one or more subsequent UI states of the state-based client-server application.

16. The server-side method of claim 15 ,

wherein the display update data is predictively supplied based on a client request that includes a field for indicating either a prefetch-only request or an operation corresponding to the new state in addition to requesting prefetch data corresponding to states of the one or more UI states following the new state.

17. The server-side method of claim 16 ,

wherein the field has a value indicating a prefetch-only request, and

wherein the server determines that state data corresponding to the one or more subsequent UI states should be prefetched to the client.

18. The server-side method of claim 16 ,

wherein the field has a value indicating the operation corresponding to the new state in addition to requesting prefetch data corresponding to the one or more subsequent UI states,

wherein the server supplies to the client state data corresponding to the new state in addition to prefetch data corresponding to the one or more subsequent UI states, and

wherein the indicated operation indicates a change of state of the state-based client-server application from a current state to the new state.

19. The server-side method of claim 15 ,

wherein the predictively supplied display update data is a subset of display update data stored at the server.

20. The server-side method of claim 15 ,

wherein the display update data is retrieved from a second server that is distinct from the server that predictively supplies display update data.

21. The server-side method of claim 15 , wherein the display update data is stored at the server.

Continuity (5)
Continuation 15362262 · Nov 28, 2016
Continuation 14199895 · Mar 6, 2014
Division 13230691 · Sep 12, 2011
Continuation 11691300 · Mar 26, 2007
Provisional Application 60744388 · Apr 6, 2006
Cited By (2)
US 12,425,211 US 12,730,558