Installation of an application on a test bed machine is monitored to generate a streamed application set of a stream enabled version of the application. Execution of the application on the test bed machine is monitored to generate the streamed application set of the stream enabled version of the application. Stream enabled application pages and a stream enabled application install block to form the streamed application set is generated based on the monitoring of the installation of the application and the monitoring of the execution of the application on the test bed machine. The stream enabled application install block is provided to a client device. A request for a stream enabled application page of the stream enabled application pages is received from the client device. The stream enabled application page is provided to the client device for continued execution of the stream enabled version of the application.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A method comprising: identifying changes to a test bed machine after an application is installed on the test bed machine, the changes to the test bed machine after the application is installed including files modified in a system directory of the test bed machine during installation of the application on the test bed machine; identifying changes to the test bed machine as the application is executed on the test bed machine according to inputs, the changes to the test bed machine as the application is executed including sequences of file blocks accessed in executing the application according to the inputs; generating stream enabled application pages and a stream enabled application install block to form a streamed application set based on the changes to the test bed machine after installation and execution of the application on the test bed machine, the application pages corresponding to the inputs and varying in size between the inputs based on the sequences of the file blocks accessed in executing the application according to the inputs; receiving, at a software license management server, a request to execute the application at a client device; providing, from an application server, the stream enabled application install block to the client device, the application install block used by the client device to prepare the client device to begin execution of a stream enabled version of the application at the client device; providing, from the application server, a subset of the stream enabled application pages to the client device for use in execution of the stream enabled version of the application at the client device prepared to execute the stream enabled version of the application using the application install block.
The system captures application installation behavior by monitoring file system modifications during the install process on a test machine, specifically tracking changes within system directories. It then profiles the application's runtime behavior by monitoring file block access sequences as the application runs with different inputs. Based on this collected data, the system generates a "streamed application set," which includes "stream-enabled application pages" (varying in size based on input and file block access) and a "stream-enabled application install block." When a client requests to run the application, it receives the install block to prepare its environment. Subsequently, the client receives subsets of application pages as needed to execute the application. A software license management server handles the client's initial application execution request.
2. The method of claim 1 , further comprising storing the stream enabled application pages in a compressed form at the application server.
In addition to the method described where the system captures application installation behavior by monitoring file system modifications during the install process on a test machine, specifically tracking changes within system directories; profiles the application's runtime behavior by monitoring file block access sequences as the application runs with different inputs; generates a "streamed application set," which includes "stream-enabled application pages" (varying in size based on input and file block access) and a "stream-enabled application install block"; provides the install block to a requesting client to prepare its environment; and subsequently provides subsets of application pages as needed for execution; the "stream-enabled application pages" are stored in a compressed format on the application server to reduce storage space and bandwidth usage.
3. The method of claim 1 , further comprising: determining high likelihood of use stream enabled application pages of the stream enabled application pages; sending the high likelihood of use stream enabled application pages to the client device before they are requested.
In addition to the method described where the system captures application installation behavior by monitoring file system modifications during the install process on a test machine, specifically tracking changes within system directories; profiles the application's runtime behavior by monitoring file block access sequences as the application runs with different inputs; generates a "streamed application set," which includes "stream-enabled application pages" (varying in size based on input and file block access) and a "stream-enabled application install block"; provides the install block to a requesting client to prepare its environment; and subsequently provides subsets of application pages as needed for execution; the system identifies frequently used application pages and proactively sends these pages to the client before the client requests them, anticipating the client's needs to improve performance and reduce latency.
4. The method of claim 1 , wherein the client device is subscribed to gain access to the stream enabled version of the application.
In addition to the method described where the system captures application installation behavior by monitoring file system modifications during the install process on a test machine, specifically tracking changes within system directories; profiles the application's runtime behavior by monitoring file block access sequences as the application runs with different inputs; generates a "streamed application set," which includes "stream-enabled application pages" (varying in size based on input and file block access) and a "stream-enabled application install block"; provides the install block to a requesting client to prepare its environment; and subsequently provides subsets of application pages as needed for execution; the client device requires a subscription to access and execute the streamed application.
5. The method of claim 1 , further comprising: receiving, at an application service provider server, a request to subscribe the client device to gain access to the stream enabled version of the application; receiving, at the software license management server, a request for a token to access the stream enabled version of the application through the application server; determining, from the application service provider server, if the client device is subscribed to access the stream enabled version of the application; providing the token to the client device if it is determined that the client device is subscribed to access the stream enabled version of the application.
In addition to the method described where the system captures application installation behavior by monitoring file system modifications during the install process on a test machine, specifically tracking changes within system directories; profiles the application's runtime behavior by monitoring file block access sequences as the application runs with different inputs; generates a "streamed application set," which includes "stream-enabled application pages" (varying in size based on input and file block access) and a "stream-enabled application install block"; provides the install block to a requesting client to prepare its environment; and subsequently provides subsets of application pages as needed for execution; an application service provider server handles client subscription requests. The software license management server then receives a request for an access token from the client. The software license management server verifies client subscription status with the application service provider server. If subscribed, the software license management server issues a token to the client, enabling access to the streamed application.
6. The method of claim 5 , wherein the token is specifically associated with a user of the client device.
In addition to the subscription management process described, where the application service provider server handles client subscription requests; the software license management server then receives a request for an access token from the client, verifies client subscription status with the application service provider server, and issues a token if subscribed, enabling access to the streamed application; the access token is uniquely tied to a specific user of the client device, providing individual access control.
7. The method of claim 5 , wherein the token is invalidated by the software license management server.
In addition to the subscription management process described, where the application service provider server handles client subscription requests; the software license management server then receives a request for an access token from the client, verifies client subscription status with the application service provider server, and issues a token if subscribed, enabling access to the streamed application; the software license management server can revoke or invalidate the access token, terminating access to the streamed application.
8. The method of claim 5 , wherein the token is invalidated by the software license management server because the client device crashes or the application service provider server determines that a user of the client device is no longer subscribed access the stream enabled version of the application.
In addition to the ability to invalidate the token by the software license management server described, where the application service provider server handles client subscription requests; the software license management server then receives a request for an access token from the client, verifies client subscription status with the application service provider server, and issues a token if subscribed, enabling access to the streamed application; token invalidation occurs if the client device crashes unexpectedly or if the application service provider server determines that the user's subscription has expired or been terminated.
9. The method of claim 7 , further comprising informing a plurality of application servers, including the application server, that the token is invalid.
In addition to the software license management server invalidating the token because the client device crashes or the user's subscription has expired, and also in addition to the subscription management process described, where the application service provider server handles client subscription requests; the software license management server then receives a request for an access token from the client, verifies client subscription status with the application service provider server, and issues a token if subscribed, enabling access to the streamed application; upon token invalidation, the software license management server notifies all application servers, including the one currently serving the client, to prevent further access using the revoked token.
10. The method of claim 1 , wherein the streamed application set is stored in a read only format across a plurality of application servers, including the application server, for providing multiple client devices simultaneous access to the stream enabled version of the application.
In addition to the method described where the system captures application installation behavior by monitoring file system modifications during the install process on a test machine, specifically tracking changes within system directories; profiles the application's runtime behavior by monitoring file block access sequences as the application runs with different inputs; generates a "streamed application set," which includes "stream-enabled application pages" (varying in size based on input and file block access) and a "stream-enabled application install block"; provides the install block to a requesting client to prepare its environment; and subsequently provides subsets of application pages as needed for execution; the streamed application set is stored in a read-only format across multiple application servers, enabling concurrent access by numerous clients without risking data corruption.
11. A system comprising at least one hardware processor and memory implementing: an application install monitor configured to identify changes to a test bed machine after an application is installed on the test bed machine, the changes to the test bed machine after the application is installed including files modified in a system directory of the test bed machine during installation of the application on the test bed machine; an application profiler configured to identify changes to the test bed machine as the application is executed on the test bed machine according to inputs, the changes to the test bed machine as the application is executed including sequences of file blocks accessed in executing the application according to the inputs; an application stream packager configured to generate stream enabled application pages and a stream enabled application install block to form a streamed application set based on the changes to the test bed machine after installation and execution of the application on the test bed machine, the application pages corresponding to the inputs and varying in size between the inputs based on the sequences of the file blocks accessed in executing the application according to the inputs; a software license management server configured to receive a request to execute the application at a client device; an application server configured to: provide the stream enabled application install block to the client device, the application install block used by the client device to prepare the client device to begin execution of a stream enabled version of the application at the client device; provide a subset of the stream enabled application pages to the client device for continued use in execution of the stream enabled version of the application at the client device prepared to execute the stream enabled version of the application using the application install block.
The system comprises an application install monitor, application profiler, application stream packager, software license management server and application server. The install monitor tracks file changes on a test machine after application installation, noting modifications in system directories. The profiler monitors file block access sequences as the application executes with different inputs. The stream packager creates a "streamed application set" containing "stream-enabled application pages" (input-dependent size) and a "stream-enabled application install block." The software license management server handles client application execution requests. The application server provides the install block to the client for environment preparation, followed by application pages for execution.
12. The system of claim 11 , wherein the stream enabled application pages are stored in a compressed form at the application server.
In addition to the system that captures application installation behavior by monitoring file system modifications during the install process on a test machine, specifically tracking changes within system directories; profiles the application's runtime behavior by monitoring file block access sequences as the application runs with different inputs; generates a "streamed application set," which includes "stream-enabled application pages" (varying in size based on input and file block access) and a "stream-enabled application install block"; provides the install block to a requesting client to prepare its environment; and subsequently provides subsets of application pages as needed for execution; the stream-enabled application pages are stored in compressed form on the application server.
13. The system of claim 11 , wherein: the application profiler is configured to determine high likelihood of use stream enabled application pages of the stream enabled application pages; the application server further configured to send the high likelihood of use stream enabled application pages to the client device before they are requested.
In addition to the system that captures application installation behavior by monitoring file system modifications during the install process on a test machine, specifically tracking changes within system directories; profiles the application's runtime behavior by monitoring file block access sequences as the application runs with different inputs; generates a "streamed application set," which includes "stream-enabled application pages" (varying in size based on input and file block access) and a "stream-enabled application install block"; provides the install block to a requesting client to prepare its environment; and subsequently provides subsets of application pages as needed for execution; the application profiler identifies frequently used application pages, and the application server proactively sends these pages to the client before they are requested.
14. The system of claim 11 , wherein the client device is subscribed to gain access to the stream enabled version of the application.
In addition to the system that captures application installation behavior by monitoring file system modifications during the install process on a test machine, specifically tracking changes within system directories; profiles the application's runtime behavior by monitoring file block access sequences as the application runs with different inputs; generates a "streamed application set," which includes "stream-enabled application pages" (varying in size based on input and file block access) and a "stream-enabled application install block"; provides the install block to a requesting client to prepare its environment; and subsequently provides subsets of application pages as needed for execution; the client device needs a subscription to access the streamed application.
15. The system of claim 11 , further comprising: an application service provider server configured to receive a request to subscribe the client device to gain access to the stream enabled version of the application; the software license management server further configured to: receive a request for a token to access the stream enabled version of the application through the application server; determine, from the application service provider server, if the client device is subscribed to access the stream enabled version of the application; provide the token to the client device if it is determined that the client device is subscribed to access the stream enabled version of the application.
In addition to the system that captures application installation behavior by monitoring file system modifications during the install process on a test machine, specifically tracking changes within system directories; profiles the application's runtime behavior by monitoring file block access sequences as the application runs with different inputs; generates a "streamed application set," which includes "stream-enabled application pages" (varying in size based on input and file block access) and a "stream-enabled application install block"; provides the install block to a requesting client to prepare its environment; and subsequently provides subsets of application pages as needed for execution; an application service provider server handles client subscription requests. The software license management server then receives a request for an access token from the client, verifies client subscription status with the application service provider server, and issues a token if subscribed, enabling access to the streamed application.
16. The system of claim 15 , wherein the token is specifically associated with a user of the client device.
In addition to the system where the application service provider server handles client subscription requests, the software license management server receives a request for an access token, verifies client subscription status, and issues a token if subscribed; the access token is uniquely linked to a specific user of the client device.
17. The system of claim 15 , wherein the software license management server is further configured to invalidate the token.
In addition to the system where the application service provider server handles client subscription requests, the software license management server receives a request for an access token, verifies client subscription status, and issues a token if subscribed; the software license management server can invalidate the token, preventing further access.
18. The system of claim 15 , wherein the software license management server is further configured to invalidate the token because the client device crashes or the application service provider server determines that a user of the client device is no longer subscribed to access the stream enabled version of the application.
In addition to the system where the application service provider server handles client subscription requests, the software license management server receives a request for an access token, verifies client subscription status, and issues a token if subscribed; token invalidation occurs when the client device crashes or if the user's subscription expires.
19. The system of claim 17 , wherein the software license management server is further configured to inform a plurality of application servers, including the application server, that the token is invalid.
In addition to the system where the software license management server can invalidate a token because the client device crashed or the user's subscription expired, and also in addition to the system where the application service provider server handles client subscription requests, and the software license management server receives a request for an access token, verifies client subscription status, and issues a token if subscribed; the software license management server notifies all application servers about the invalidated token.
20. The system of claim 11 , wherein the streamed application set is stored in a read only format across a plurality of application servers, including the application server, for providing multiple client devices simultaneous access to the stream enabled version of the application.
In addition to the system that captures application installation behavior by monitoring file system modifications during the install process on a test machine, specifically tracking changes within system directories; profiles the application's runtime behavior by monitoring file block access sequences as the application runs with different inputs; generates a "streamed application set," which includes "stream-enabled application pages" (varying in size based on input and file block access) and a "stream-enabled application install block"; provides the install block to a requesting client to prepare its environment; and subsequently provides subsets of application pages as needed for execution; the streamed application set is stored in read-only format across multiple application servers to allow concurrent access for multiple clients.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
August 5, 2015
May 16, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.