Intelligent network streaming and execution system for conventionally coded applications
First Claim
1. A method for providing secure license-based streaming delivery of a program over a network, comprising:
- identifying a particular user;
receiving a request to stream a program on behalf of the particular user;
generating an access token unique to the particular user and the program;
providing a secure license comprising the access token;
providing, from a server, all active pages of the program to a client, wherein the active pages of the program are executed at the client as inactive portions of the program are streamed from the server;
receiving a message to release the access token if the client executing the active pages of the program associated with the particular user crashes or the particular user is to be evicted from having access to the program;
releasing the access token;
ceasing streaming the inactive portions of the program from the server when the access token is released; and
performing load balancing among a plurality of application servers for page segment requests.
5 Assignments
0 Petitions
Accused Products
Abstract
An intelligent network streaming and execution system for conventionally coded applications provides a system that partitions an application program into page segments by observing the manner in which the application program is conventionally installed. A minimal portion of the application program is installed on a client system and the user launches the application in the same ways that applications on other client file systems are started. An application program server streams the page segments to the client as the application program executes on the client and the client stores the page segments in a cache. Page segments are requested by the client from the application server whenever a page fault occurs from the cache for the application program. The client prefetches page segments from the application server or the application server pushes additional page segments to the client based on the pattern of page segment requests for that particular application. The user subscribes and unsubscribes to application programs, whenever the user accesses an application program a securely encrypted access token is obtained from a license server if the user has a valid subscription to the application program. The application server begins streaming the requested page segments to the client when it receives a valid access token from the client. The client performs server load balancing across a plurality of application servers. If the client observes a non-response or slow response condition from an application server or license server, it switches to another application or license server.
395 Citations
19 Claims
-
1. A method for providing secure license-based streaming delivery of a program over a network, comprising:
-
identifying a particular user; receiving a request to stream a program on behalf of the particular user; generating an access token unique to the particular user and the program; providing a secure license comprising the access token; providing, from a server, all active pages of the program to a client, wherein the active pages of the program are executed at the client as inactive portions of the program are streamed from the server; receiving a message to release the access token if the client executing the active pages of the program associated with the particular user crashes or the particular user is to be evicted from having access to the program; releasing the access token; ceasing streaming the inactive portions of the program from the server when the access token is released; and performing load balancing among a plurality of application servers for page segment requests. - View Dependent Claims (2, 3, 4, 5, 6, 7, 9)
-
-
8. A system comprising:
-
a subscription server operative to facilitate subscription to an application by a client, the subscription server operative to identify a particular user associated with the client; a license server operative to provide a license to the client to run the application, the license server configured to; receive a request to stream the application on behalf of the particular user; generate an access token unique to the particular user and the application; provide a secure license comprising the access token; an application server operative to; provide all active pages of the application to the client, wherein the active portions of the application are executed as inactive portions of the application are streamed, and the application is not fully installed on the client; receive a message to release the access token if the client executing the active pages of the application associated with the particular user crashes or the particular user is to be evicted from having access to the application; release the access token; cease streaming the inactive portions of the application when the access token is released. - View Dependent Claims (10, 11, 12)
-
-
13. A system comprising:
-
a processor and a memory; a client license manager for requesting a license to stream an application on behalf of a particular user, wherein, if the particular user has a valid subscription to the application, the client license manager is configured to receive an access token unique to the particular user and the application and to receive a secure license comprising the access token, wherein the client license manager provides an instruction to release the access token if the application associated with the particular user crashes or the particular user is to be evicted from having access to the application; a client cache manager for caching pages of the application on the client so that subsequent requests for pages of the application can be served by the cache; a client streaming file system for serving file system requests from the application for pages by handling page faults associated with the file system requests, asking the client cache manager for the pages, and if the pages are not cached at the client, asking an application server for the pages; a client prefetcher for requesting pages from the application server before the client streaming file system serves a file system request from the application at the client; a client file spoofer for intercepting file requests and redirecting the file requests to the client streaming file system, wherein the client receives, from the system, all active pages of the application, and the active pages of the application are executed at the client as inactive portions of the application are streamed from the client streaming file system. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
Specification