Predictive transmission of content for application streaming and network file systems
First Claim
1. A computer implemented method for proactively pulling non-present application content from a server for execution on an endpoint, the method comprising the steps of:
- receiving at least one code page of an application from the server by the endpoint, for execution of the application on the endpoint;
receiving a control flow graph concerning the application from the server by the endpoint;
receiving a mapping of code pages of the application to nodes of the control flow graph from the server by the endpoint;
monitoring execution of the application on the endpoint;
identifying at least one non-present code page of the application to be subsequently executed, based on a current execution state of the application, the control flow graph concerning the application and the mapping of code pages of the application to nodes of the control flow graph wherein the identifying the at least one non-present code page of the application to be subsequently executed, based on the current execution state of the application, the control flow graph concerning the application and the mapping of code pages of the application to nodes of the control flow graph further comprises
1) determining at least one likely path of subsequent execution for the application based upon the current execution state of the application and the control flow graph, and
2) identifying at least one non-present code page mapped to at least node of the control flow graph pertaining to the at least one likely path of subsequent execution;
requesting said at least one non-present code page of the application from the server, based on the current execution state of the application, the control flow graph concerning the application and the mapping of code pages of the application to nodes of the flow graph; and
receiving said at least one non-present code page of the application from the server, responsive to said request.
2 Assignments
0 Petitions
Accused Products
Abstract
The performance and hence the user experience of just-in-time application streaming is significantly enhanced by predicting which sections of an application are likely to execute next, and transmitting those sections from the server to the endpoint. A control flow graph of the application is created and analyzed against the execution state of the application such that it can be predicated which code pages the application is likely to utilize next. This analysis can be performed on the server, endpoint or any combination of the two. The predicted code pages are proactively pushed and/or pulled such that the application can continue executing without delay. This significantly enhances the performance of application streaming and network file system technologies, and is especially beneficial for very performance sensitive applications.
-
Citations
12 Claims
-
1. A computer implemented method for proactively pulling non-present application content from a server for execution on an endpoint, the method comprising the steps of:
-
receiving at least one code page of an application from the server by the endpoint, for execution of the application on the endpoint; receiving a control flow graph concerning the application from the server by the endpoint; receiving a mapping of code pages of the application to nodes of the control flow graph from the server by the endpoint; monitoring execution of the application on the endpoint; identifying at least one non-present code page of the application to be subsequently executed, based on a current execution state of the application, the control flow graph concerning the application and the mapping of code pages of the application to nodes of the control flow graph wherein the identifying the at least one non-present code page of the application to be subsequently executed, based on the current execution state of the application, the control flow graph concerning the application and the mapping of code pages of the application to nodes of the control flow graph further comprises
1) determining at least one likely path of subsequent execution for the application based upon the current execution state of the application and the control flow graph, and
2) identifying at least one non-present code page mapped to at least node of the control flow graph pertaining to the at least one likely path of subsequent execution;requesting said at least one non-present code page of the application from the server, based on the current execution state of the application, the control flow graph concerning the application and the mapping of code pages of the application to nodes of the flow graph; and receiving said at least one non-present code page of the application from the server, responsive to said request. - View Dependent Claims (2, 3, 4)
-
-
5. A computer implemented method for proactively pushing application content from a server for execution on an endpoint, the method comprising the steps of:
-
creating a control flow graph concerning an application; creating a mapping of code pages of the application to nodes of the control flow graph; transmitting at least one code page of the application from the server to the endpoint, for execution of the application on the endpoint; receiving a current execution state of the application from the endpoint, the current execution state embedded as modified data in a communication protocol used to communicate between the server and the endpoint; identifying at least one code page of the application not present on the endpoint to be subsequently executed, based on the current execution state of the application, the control flow graph concerning the application and the mapping of code pages of the application to nodes of the control flow graph, wherein the identifying the at least one code page of the application not present on the endpoint to be subsequently executed, based on the current execution state of the application, the control flow graph concerning the application and the mapping of code pages of the application to nodes of the control flow graph further comprises
1) determining at least one likely path of subsequent execution for the application based upon the current execution state of the application and the control flow graph, and
2) identifying at least one code page mapped to at least one node of the control flow graph pertaining to the at least one likely path of subsequent execution, said at least one code page not being present on the endpoint; andtransmitting said at least one identified code page of the application from the server to the endpoint. - View Dependent Claims (6)
-
-
7. At least one non-transitory computer readable storage medium storing a computer program product for proactively pulling non-present application content from a server for execution on an endpoint, the computer program product storing program code that when executed by a processor performs a method comprising:
-
receiving at least one code page of an application from the server by the endpoint, for execution of the application on the endpoint; receiving a control flow graph concerning the application from the server by the endpoint; receiving a mapping of code pages of the application to nodes of the control flow graph from the server by the endpoint; monitoring execution of the application on the endpoint; identifying at least one non-present code page of the application to be subsequently executed, based on a current execution state of the application, the control flow graph concerning the application and the mapping of code pages of the application to nodes of the control flow graph wherein the identifying the at least one non-present code page of the application to be subsequently executed, based on the current execution state of the application, the control flow graph concerning the application and the mapping of code pages of the application to nodes of the control flow graph further comprises
1) determining at least one likely path of subsequent execution for the application based upon the current execution state of the application and the control flow graph, and
2) identifying at least one non-present code page mapped to at least node of the control flow graph pertaining to the at least one likely path of subsequent execution;requesting said at least one non-present code page of the application from the server, based on the current execution state of the application, the control flow graph concerning the application and the mapping of code pages of the application to nodes of the flow graph; and receiving said at least one non-present code page of the application from the server, responsive to said request. - View Dependent Claims (8, 9, 10)
-
-
11. At least one non-transitory computer readable storage medium storing a computer program product for proactively pushing application content from a server for execution on an endpoint, the computer program product storing program code that when executed by a processor performs a method comprising:
-
creating a control flow graph concerning an application; creating a mapping of code pages of the application to nodes of the control flow graph; transmitting at least one code page of the application from the server to the endpoint, for execution of the application on the endpoint; receiving a current execution state of the application from the endpoint, the current execution state embedded as modified data in a communication protocol used to communicate between the server and the endpoint; identifying at least one code page of the application not present on the endpoint to be subsequently executed, based on the current execution state of the application, the control flow graph concerning the application and the mapping of code pages of the application to nodes of the control flow graph, wherein the identifying the at least one code page of the application not present on the endpoint to be subsequently executed, based on the current execution state of the application, the control flow graph concerning the application and the mapping of code pages of the application to nodes of the control flow graph further comprises
1) determining at least one likely path of subsequent execution for the application based upon the current execution state of the application and the control flow graph, and
2) identifying at least one code page mapped to at least one node of the control flow graph pertaining to the at least one likely path of subsequent execution, said at least one code page not being present on the endpoint; andtransmitting said at least one identified code page of the application from the server to the endpoint. - View Dependent Claims (12)
-
Specification