IP Library Granted Patent US 7,949,960
Granted Patent B2
US 7,949,960 · App. 10/676,846 · Granted May 24, 2011

Predictive rendering of user interfaces

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 7,949,960
App. No.
10/676,846
Granted
May 24, 2011
Kind
B2
Abstract

Methods and apparatus, including computer program products, implement techniques for rendering the user interface of a software application. A client computer provides a user interface for a computer program application. The user interface is operable to receive input from a user interacting with the client and to generate user interaction events from the input. One or more possible user interaction events are identified on the client while the user interface is in a current user interface state. The possible user interaction events are user interaction events that would arise from input the user interface could possibly receive in the current user interface state from the user. One or more of the possible user interaction events are pre-processed to generate one or more possible user interface states. The possible user interface states are stored for later use.

Claims (49)

1. A computer program product, tangibly embodied in a non-transitory computer-readable storage medium, comprising instructions operable on a computer to:

provide a user interface for a computer program application, the user interface being operable to receive input from a user interacting with controls in the user interface and, from the input, to generate user interaction events;

identify one or more future user interaction events that may occur while the user interface is in a current user interface state, the current user interface state comprising one or more controls enabling user input, the controls comprising one or more current properties;

estimate a likelihood for the future user interaction events to occur based on a history of previous user inputs to the user interface;

select one or more of the future user interaction events to pre-process based on the estimated likelihoods that the future user interaction events will occur;

pre-process, while the user interface is in the current user interface state, the selected future user interaction events to generate one or more future user interface states, the future user interface states comprising one or more future properties of the controls in the current user interface state;

pre-render, while the user interface is in the current user interface state, future user interface appearances corresponding to the generated future user interface states; and

store the pre-rendered future user interface appearances for later use.

2. The product of claim 1 , further comprising instructions to:

receive an actual input from the user and, if a first one of the future user interface states corresponds to the actual input, display the future user interface appearance corresponding to the first user interface state.

3. The product of claim 2 , further comprising instructions to generate code to render the first user interface state.

4. The product of claim 3 wherein the code to render the first user interface state comprises HTML (Hypertext Markup Language) code.

5. The product of claim 1 , further comprising instructions to:

specify an order for pre-processing the future user interaction events based on the estimated likelihoods that the future user interaction events will occur.

6. The product of claim 1 , wherein:

the user interface comprises instructions to establish the estimated likelihoods for the future user interaction events.

7. The product of claim 1 , wherein:

the instructions to pre-process the selected future user interaction events comprise instructions to obtain data from the computer program application for the generated future user interface states.

8. The product of claim 1 , wherein each of the selected future user interaction events has estimated likelihoods of occurrence exceeding a threshold probability, and the future user interaction events other than the selected future user interaction events have estimated likelihoods that do not exceed the threshold probability.

9. The product of claim 8 , further comprising instructions for raising or lowering the threshold probability.

10. The product of claim 1 , wherein:

the computer program product is a program running on a server computer in data communication with a client computer; and

the instructions to provide a user interface comprise instructions to provide the user interface in a Web browser.

11. A computer-implemented method, comprising the steps implemented by one or more computers of:

providing, by the one or more computers, a user interface for a computer program application, the user interface being operable to receive input from a user interacting with controls in the user interface and, from the input, to generate user interaction events;

identifying, by the one or more computers, one or more future user interaction events that may occur while the user interface is in a current user interface state, the current user interface state comprising one or more controls enabling user input, the controls comprising one or more current properties;

estimating, by the one or more computers, a likelihood for the future user interaction events to occur based on a history of previous user inputs to the user interface;

selecting, by the one or more computers, one or more of the future user interaction events to pre-process based on the estimated likelihoods that the future user interaction events will occur;

pre-processing, by the one or more computers and while the user interface is in the current user interface state, the selected future user interaction events to generate one or more future user interface states, the future user interface states comprising one or more future properties of the controls in the current user interface state;

pre-rendering, by the one or more computers and while the user interface is in the current user interface state, future user interface appearances corresponding to the generated future user interface states; and

storing, by the one or more computers, the pre-rendered future user interface appearances for later use.

12. The method of claim 11 , further comprising:

receiving an actual input from the user and, if a first one of the future user interface states corresponds to the actual input, displaying the future user interface appearance corresponding to the first user interface state.

13. The method of claim 11 , further comprising:

specifying an order for pre-processing the future user interaction events based on the estimated likelihoods that the future user interaction events will occur.

14. An apparatus, comprising:

a processor for executing program instructions; and

a computer-readable storage medium storing the program instructions, the program instructions, when executed by the processor, performing a process comprising:

providing a user interface for a computer program application, the user interface being operable to receive input from a user interacting with controls in the user interface and, from the input, to generate user interaction events;

identifying one or more future user interaction events that may occur while the user interface is in a current user interface state, the current user interface state comprising one or more controls enabling user input, the controls comprising one or more current properties;

estimating a likelihood for the future user interaction events to occur based on a history of previous user inputs to the user interface;

selecting one or more of the future user interaction events to pre-process based on the estimated likelihoods that the future user interaction events will occur;

pre-processing, while the user interface is in the current user interface state, the selected future user interaction events to generate one or more future user interface states, the future user interface states comprising one or more future properties of the controls in the current user interface state;

pre-rendering, while the user interface is in the current user interface state, future user interface appearances corresponding to the generated future user interface states; and

storing the pre-rendered future user interface appearances for later use.

15. The apparatus of claim 14 , the process further comprising:

receiving an actual input from the user and, if a first one of the future user interface states corresponds to the actual input, displaying the future user interface appearance corresponding to the first user interface state.

16. The apparatus of claim 15 , the process further comprising:

specifying an order for pre-processing the future user interaction events based on the estimated likelihoods that the future user interaction events will occur.

Assignments (3)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0334 →
CHANGE OF NAME Recorded Dec 21, 2005
From: SAP AKTIENGESELLSCHAFT
To: SAP AG
Reel/Frame 017364/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2004
From: ROESSLER, ANDREAS; WEDEL, MALTE
To: SAP AKTIENGESELLSCHAFT
Reel/Frame 014685/0046 →