IP Library Granted Patent US 10,038,761
Granted Patent B1
US 10,038,761 · App. 14/851,590 · Granted Jul 31, 2018

Method and system for predictive loading of software resources

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,038,761
App. No.
14/851,590
Granted
Jul 31, 2018
Kind
B1
Abstract

In general, embodiments of the technology relate to a method for predictive loading of software resources in web applications. The method includes determining, based on a current state of the web application, one or more predicted future states of the web application. Determining the predicted future states includes predicting a first set of possible future states based on use case data and determining an associated probability for each possible future state in the first set of possible future states, and identifying, from the first set of possible future states, a first predicted future state. The first predicted future state is the possible future state in the first set of possible future states with the highest associated probability. The method further includes determining resources required by the predicted future states, and loading the resources required by the predicted future states.

Claims (75)

1. A method for predictive loading of software resources in web applications, comprising:

determining, based on a current state of the web application, at least one predicted future state of the web application,

wherein determining the at least one predicted future state comprises:

predicting a first set of possible future states based on use case data and determining an associated probability for each possible future state in the first set of possible future states, wherein the use case data specifies a sequence of states and state transitions obtained from modeling tasks frequently performed by users of the web application;

identifying, from the first set of possible future states, a first predicted future state, wherein the first predicted future state is the possible future state in the first set of possible future states with the highest associated probability;

predicting a second set of possible future states based on historical usage analytics data;

determining an associated probability for each possible future state in the second set of possible future states;

identifying, from the second set of possible future states, a second predicted future state, wherein the second predicted future state is the possible future state in the second set of possible future states with the highest associated probability;

determining that the first and the second predicted future state are identical; and

obtaining a combined probability comprising the probability associated with the first predicted future state, adjusted by a first weighting factor, and the probability associated with the second predicted future state, adjusted by a second weighting factor;

determining resources required by the at least one predicted future state; and

loading the resources required by the at least one predicted future state.

2. The method of claim 1 , wherein the software resource is at least one selected from the group consisting of code comprising executable instructions, content, and services.

3. The method of claim 1 , wherein predicting the first set of possible future states based on use case data comprises:

identifying, in the use case data, use cases comprising the current state of the web application;

determining, from the use cases comprising the current state of the web application, the first set of possible future states; and

determining, for each possible future state in the first set of possible future states, the associated probability.

4. The method of claim 3 , wherein the determining the associated probability comprises:

determining a cardinality of matching states between the use case data and a current session of the web application.

5. The method of claim 1 , wherein determining the probability for each possible future state in the second set of possible future states comprises:

identifying, in the historical usage analytics data, occurrences of the current state of the web application;

determining, from the occurrences of the current state in historical usage analytics data, the second set of possible future states;

determining, for each possible future state in the second set of possible future states, the associated probability.

6. The method of claim 5 , wherein determining, for each possible future state in the second set of possible future states, the associated probability comprises:

for a possible future state in the second set of possible future states, determining a ratio between a cardinality of state transitions from the current state of the application to the possible future state and a cardinality of all state transitions originating from the current state.

7. The method of claim 1 , further comprising, prior to determining resources required by the at least one predicted future state:

determining the run-time application context;

identifying, based on the run-time context, that a predicted future state of the at least one predicted future state is not accessible;

removing the identified predicted future state from the at least one predicted future state.

8. The method of claim 7 , the run-time application context comprises at least one selected from the group consisting of subscriptions and user privileges.

9. A non-transitory computer readable medium (CRM) storing instructions for predictive loading of software resources in web applications, comprising:

determining, based on a current state of the web application, at least one predicted future state of the web application,

wherein determining the at least one predicted future state comprises:

predicting a first set of possible future states based on use case data and determining an associated probability for each possible future state in the first set of possible future states, wherein the use case data specifies a sequence of states and state transitions obtained from modeling tasks frequently performed by users of the web application;

identifying, from the first set of possible future states, a first predicted future state, wherein the first predicted future state is the possible future state in the first set of possible future states with the highest associated probability;

predicting a second set of possible future states based on historical usage analytics data;

determining an associated probability for each possible future state in the second set of possible future states;

identifying, from the second set of possible future states, a second predicted future state, wherein the second predicted future state is the possible future state in the second set of possible future states with the highest associated probability;

determining that the first and the second predicted future state are identical; and

obtaining a combined probability comprising the probability associated with the first predicted future state, adjusted by a first weighting factor, and the probability associated with the second predicted future state, adjusted by a second weighting factor;

determining resources required by the at least one predicted future state; and

loading the resources required by the at least one predicted future state.

10. The non-transitory CRM of claim 9 , wherein predicting the first set of possible future states based on use case data comprises:

identifying, in the use case data, use cases comprising the current state of the web application;

determining, from the use cases comprising the current state of the web application, the first set of possible future states; and

determining, for each possible future state in the first set of possible future states, the associated probability.

11. The non-transitory CRM of claim 9 , wherein the instructions for predictive loading of software resources in web applications further comprise, prior to determining resources required by the at least one predicted future state:

determining the run-time application context;

identifying, based on the run-time context, that a predicted future state of the at least one predicted future state is not accessible;

removing the identified predicted future state from the at least one predicted future state.

12. A system for predictive loading of software resources in web applications, comprising:

a computer processor comprising an integrated circuit;

a web application executing on the computer processor; and

a state transition prediction module of the web application, configured to:

determine, based on a current state of the web application, at least one predicted future state of the web application,

wherein determining the at least one predicted future state comprises:

predicting a first set of possible future states based on use case data, obtained from a use case configuration repository, and determining an associated probability for each possible future state in the first set of possible future states, wherein the use case data specifies a sequence of states and state transitions obtained from modeling tasks frequently performed by users of the web application;

identifying, from the first set of possible future states, a first predicted future state, wherein the first predicted future state is the possible future state in the first set of possible future states with the highest associated probability; and

predicting a second set of possible future states based on historical usage analytics data, obtained from an application usage analytics repository;

determining an associated probability for each possible future state in the second set of possible future states;

identifying, from the second set of possible future states, a second predicted future state, wherein the second predicted future state is the possible future state in the second set of possible future states with the highest associated probability;

determining that the first and the second predicted future state are identical; and

obtaining a combined probability comprising the probability associated with the first predicted future state, adjusted by a first weighting factor, and the probability associated with the second predicted future state, adjusted by a second weighting factor;

a predictive module loading system of the web application, configured to determine resources required by the at least one predicted future state, based on mappings between application states and resources, stored in a state module mapping repository;

and wherein the web application is configured to load the resources required by the at least one predicted future state.

13. The system of claim 12 , wherein predicting the first set of possible future states based on use case data comprises:

identifying, in the use case data, use cases comprising the current state of the web application;

determining, from the use cases comprising the current state of the web application, the first set of possible future states; and

determining, for each possible future state in the first set of possible future states, the associated probability.

14. The system of claim 12 ,

wherein the web application is further configured to, prior to determining resources required by the at least one predicted future state, by the predictive module loading system:

determine, the run-time application context; and

wherein the state transition prediction module is further configured to:

identify, based on the run-time context, that a predicted future state of the at least one predicted future state is not accessible; and

remove the identified predicted future state from the at least one predicted future state.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2018
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046214/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2015
From: LEKKALAPUDI, CHAITHANYA
To: EMC CORPORATION
Reel/Frame 036741/0212 →
Cited By (1)
US 12,353,894