Claims
- 1. A method for preloading resources for an application, comprising:
determining resources to preload on a client before the application needs the resources; and preloading the client with the resources; when the resources are located on a server, then downloading the resources from the server, storing the resources locally on the client; and obtaining the resources locally when the resources are stored on the client; wherein the application is configured to execute with a subset of the resources associated with the application.
- 2. The method of claim 1, wherein determining the resources to preload further comprises using a resource list that contains the resources to supply to the application.
- 3. The method of claim 2, wherein using the resource list that contains the at least one resource to supply to the application further comprises prioritizing a list of the resources, wherein the list is prioritized according to an order in which the resources are to be preloaded.
- 4. The method of claim 3, further comprising dynamically changing the priority of the resources within the resource list while the application is executing.
- 5. The method of claim 1, wherein determining what resources to preload before the application needs the resources further comprises receiving an application hint from the client and generating a resource list of the resources to be preloaded based on the application hint.
- 6. The method of claim 5, wherein generating the list of the resources to be preloaded based on the application hint further comprises determining a current state of the application.
- 7. The method of claim 6, wherein using the application hint further comprises storing application resource request states and transitions between those states and analyzing the application resource request states and the transitions between those states to create a prediction graph.
- 8. The method of claim 7, further comprising using the prediction graph to generate the resource list.
- 9. The method of claim 5, wherein determining what resources to preload before the application needs the resources further comprises storing information relating to the resources and the application hints and using a predictor to predict the resources that are likely to be needed based on using a prediction graph to predict the likelihood the resource is likely to be needed.
- 10. The method of claim 9, wherein using the prediction graph further comprises weighting edges of nodes within the prediction graph.
- 11. The method of claim 9, further comprising determining resources that are available locally and removing the determined resources from the predicted resource list.
- 12. The method of claim 9, further comprising adjusting a lifetime associated with an already-cached resource based on the resource being referenced by recent predictions made by the predictor.
- 13. The method of claim 5, further comprising interrupting the preloading based on a change of priority.
- 14. The method of claim 5, wherein the resource list comprises resources that may be needed by an executing application or a non-executing application.
- 15. The method of claim 5, wherein preloading the resources further comprises preloading the resources when the application is executing.
- 16. The method of claim 5, wherein preloading the resources further comprises preloading the resources when the application is in a non-executing state.
- 17. The method of claim 5, wherein preloading the resources may be enabled and disabled for the application.
- 18. The method of claim 17, further comprising assigning a priority to preload the resources that are associated with application.
- 19. The method of claim 7, wherein analyzing the application resource request states and the transitions between those states to create the prediction graph further comprises adjusting parameters that are used in algorithms to process and combine session lists into the prediction graph.
- 20. The method of claim 19, wherein the parameters are selected from a set comprising: InfluenceOfElapsedTimeInPredictionWeight, InfluenceOfDistanceFromStepOffPointWhenConsideringRejoinNodes, and InfluenceOfNumberOfSequenceMismatchesWhenConsideringRejoinNodes.
- 21. The method of claim 19, wherein adjusting the parameters further comprises adjusting the parameters automatically.
- 22. The method of claim 19, wherein adjusting the parameters further comprises adjusting the parameters manually.
- 23. The method of claim 19, further comprising generating performance data and determining an effectiveness of the prediction graph based on the performance data.
- 24. The method of claim 23, wherein the performance data comprises at least one of: NumberOfCacheMisses, NumberOfFailedPredictions, NumberOfCacheHitsInPredictions, NumberOfCacheHitsNotInCurrentPredictions, HighestNumberOfRetriesToFindARejoinNode, and AverageNumberOfRetriesToFindARejoinNode.
- 25. The method of claim 23, further comprises adjusting the parameters in response to the performance data.
- 26. A system for preloading resources for an application on a client, comprising:
a server, comprising:
a network connection configured to communicate with the client; a memory configured to store resources associated with the application; a process configured to perform actions including to provide resources to the client; a client, comprising:
a network connection configured to communicate with the server; a memory configured to store resources associated with the application; and a process arranged to receive resources associated with the application; and an application configured to execute with a subset of the resources associated with the application; and a preloader configured to perform the following actions:
determining the resources to preload on the client before the application needs the resources; and preloading the client with the resources; when the resources are located on a server, then employing the server to supply the client with the resources, and when the resources are located on the client then instructing the client to obtain the resources locally.
- 27. The system of claim 26, wherein determining the resources to preload further comprises using a resource list that contains the resources to supply to the application.
- 28. The system of claim 27, wherein using the resource list that contains the at least one resource to supply to the application further comprises prioritizing a list of the resources, wherein the list is prioritized according to an order in which the resources are to be preloaded.
- 29. The system of claim 28 further comprising dynamically changing the priority of the resources within the resource list while the application is executing.
- 30. The system of claim 26, wherein determining what resources to preload before the application needs the resources further comprises receiving an application hint from the client and generating a resource list of the resources to be preloaded based on the application hint.
- 31. The system of claim 30, wherein generating the list of the resources to be preloaded based on the application hint further comprises determining a current state of the application.
- 32. The system of claim 31, wherein using the application hint further comprises storing the current state of the application and creating a prediction graph based on stored current states.
- 33. The system of claim 32, further comprising using a predictor utilizing the prediction graph to generate the resource list.
- 34. The system of claim 33, wherein using the predictor is further configured to weight edges of nodes within the prediction graph such that the nodes are directed.
- 35. The system of claim 33, further comprising the predictor determining resources that are available locally and removing the determined resources from the resource list.
- 36. The system of claim 33, further comprising the predictor adjusting the resource list based on using the prediction graph.
- 37. The system of claim 30, further comprising interrupting the preloading based on a change of priority.
- 38. The system of claim 30, wherein the resource list comprises resources that may be needed by an executing application or a non-executing application.
- 39. The system of claim 30, wherein preloading the resources further comprises preloading the resources when the application is executing.
- 40 The system of claim 30, wherein preloading the resources further comprises preloading the resources when the application is in a non-executing state.
- 41. The system of claim 30, wherein preloading the resources may be enabled and disabled for the application.
- 42. The system of claim 41, further comprising assigning a priority to preload the resources that are associated with applications.
- 43. The system of claim 26, wherein the preloader is located on the server.
- 44. The system of claim 26, wherein the preloader is located on the client.
- 45. The system of claim 26, wherein determining what resources to preload before the application needs the resources further comprises generating session lists and using the session lists to generate a prediction graph.
- 46. The system of claim 42, wherein using the session lists to generate the prediction graph further comprises adjusting parameters to combine the session lists into the prediction graph.
- 47. The system of claim 43, further comprising an analyzer that is configured to adjust the parameters and simulate the predictor, the application, and the preloader based on the parameters.
- 48. The system of claim 44, wherein the analyzer is further configured to iteratively adjust the parameters until results of the simulation are at a predetermined level of acceptability.
- 49. The system of claim 47, wherein the analyzer is further configured to generate performance data that is used in determining the effectiveness of the system.
- 50. The system of claim 49, wherein the performance data comprises at least one of: NumberOfCacheMisses, NumberOfFailedPredictions, NumberOfCacheHitsInPredictions, NumberOfCacheHitsNotInCurrentPredictions, HighestNumberOfRetriesToFindARejoinNode, and AverageNumberOfRetriesToFindARejoinNode.
- 51. The system of claim 49, wherein the analyzer is further configured to adjust the parameters in response to the performance data.
- 52. A system for preloading resources for an application, comprising:
means for determining resources to preload on a client before the application needs the resources; means for preloading the client with the resources; when the resources are located on a server, then means for downloading the resources from the server, means for storing the resources locally on the client; and means for obtaining the resources locally when the resources are stored on the client; wherein the application is configured to execute with a subset of the resources associated with the application.
RELATED APPLICATION
[0001] This application is a Utility Patent application based on a previously filed U.S. Provisional Patent application, U.S. Serial No. 60/341,079 filed on Dec. 12, 2001, the benefit of the filing date of which is hereby claimed under 35 U.S.C. §119(e).
Provisional Applications (1)
|
Number |
Date |
Country |
|
60341079 |
Dec 2001 |
US |