Client-side performance optimization system for streamed applications
First Claim
1. A process for client-side retrieval, storage, and execution of application programs and other related data streamed from a server across a computer network to a client system in a computer environment, comprising the steps of:
- providing a streaming file system on said client;
wherein said streaming file system appears to install parts of an application program on said client sufficient for execution;
while executing the application program, said streaming file system receives requests from local processes of said client for application program code and data that are part of the application program not already installed when said application program code and data are needed;
loading a portion of said application program code and data into a persistent cache on said client wherein said portion of said application program code and data stored in said persistent cache is available for reuse after termination of execution of said application program; and
wherein said streaming file system satisfies said requests for said application program code and data by retrieving said requested application program code and data from said persistent cache or by retrieving said requested application program code and data from said server without interrupting the execution of the application program.
7 Assignments
0 Petitions
Accused Products
Abstract
An client-side performance optimization system for streamed applications provides several approaches for fulfilling client-side application code and data file requests for streamed applications. A streaming file system or file driver is installed on the client system that receives and fulfills application code and data requests from a persistent cache or the streaming application server. The client or the server can initiate the prefetching of application code and data to improve interactive application performance. A client-to-client communication mechanism allows local application customization to travel from one client machine to another without involving server communication. Applications are patched or upgraded via a change in the root directory for that application. The client can be notified of application upgrades by the server which can be marked as mandatory, in which case the client will force the application to be upgraded. The server broadcasts an application program'"'"'s code and data and any client that is interested in that particular application program stores the broadcasted code and data for later use.
438 Citations
96 Claims
-
1. A process for client-side retrieval, storage, and execution of application programs and other related data streamed from a server across a computer network to a client system in a computer environment, comprising the steps of:
-
providing a streaming file system on said client;
wherein said streaming file system appears to install parts of an application program on said client sufficient for execution;
while executing the application program, said streaming file system receives requests from local processes of said client for application program code and data that are part of the application program not already installed when said application program code and data are needed;
loading a portion of said application program code and data into a persistent cache on said client wherein said portion of said application program code and data stored in said persistent cache is available for reuse after termination of execution of said application program; and
wherein said streaming file system satisfies said requests for said application program code and data by retrieving said requested application program code and data from said persistent cache or by retrieving said requested application program code and data from said server without interrupting the execution of the application program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A process for client-side retrieval, storage, and execution of application programs and other related data streamed from a server across a computer network to a client system in a computer environment, comprising the steps of:
-
providing a kernel-mode streaming file system driver on said client;
wherein said kernel-mode streaming file system appears to install parts of an application program on said client sufficient for execution;
providing a user-mode client on said client;
while executing the application program, said streaming file system receives requests from local processes of said client for application program code and data that are part of said application program not already installed when said application program code and data are needed;
loading a portion of said application program code and data into a persistent cache on said client wherein said portion of said application program code and data stored in said persistent cache is available for reuse;
wherein requests made to said streaming file system are directed to said user-mode client or retrieved from said persistent cache; and
wherein said user-mode client handles the application program code and data streams from said server and sends the results back to said streaming file system driver without interrupting the execution of the application program. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A process for client-side retrieval, storage, and execution of application programs and other related data streamed from a server across a computer network to a client system in a computer environment, comprising the steps of:
-
providing a streaming block driver on said client;
wherein said block driver provides the abstraction of a physical disk to a native file system already installed on the client operating system and appears to install parts of an application program on said client sufficient for execution;
loading a portion of said application program code and data into a persistent cache on said client wherein said application program code and data stored in said persistent cache is available for reuse;
wherein said block driver receives requests for application program code and data for physical block reads and writes from local processes of said client which said block driver satisfies out of said persistent cache on a standard file system that is backed by a physical disk drive without interrupting the execution of the application program; and
wherein said requests that cannot be satisfied by said persistent cache are sent to said server. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A process for client-side retrieval, storage, and execution of application programs and other related data streamed from a server across a computer network to a client system in a computer environment, comprising the steps of:
-
providing a disk driver on said client;
providing a user-mode client on said client;
wherein said user-mode client appears to install parts of an application program on said client sufficient for execution;
while executing the application program, said disk driver sends all file requests that said disk driver receives to said user-mode client requesting for application program code and data that are part of said application program not already installed when said application program code and data are needed;
loading a portion of said application program code and data into a persistent cache on said client wherein said application program code and data stored in said persistent cache is available for reuse; and
wherein said user-mode client attempts to satisfy said file requests from said persistent cache or from said server without interrupting the execution of the application program. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. An apparatus for client-side retrieval, storage, and execution of application programs and other related data streamed from a server across a computer network to a client system in a computer environment, comprising:
-
a streaming file system on said client;
wherein said streaming file system appears to install parts of an application program on said client sufficient for execution;
while executing the application program, said streaming file system receives requests from local processes of said client for application program code or data that are part of an application program not already installed when said application program code and data are needed;
a persistent cache on said client wherein the persistent cache stores a portion of said application program code and data, and wherein said portion of said application program code and data is available for reuse after termination of execution of said application program; and
wherein said streaming file system satisfies said requests for said application program code and data by retrieving said requested application program code and data from said persistent cache stored in a native file system or by retrieving said requested application program code and data from said server without interrupting the execution of the application program. - View Dependent Claims (50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
-
-
61. An apparatus for client-side retrieval, storage, and execution of application program and other related data streamed from a server across a computer network to a client system in a computer environment, comprising:
-
a kernel-mode streaming file system driver on said client;
wherein said kernel-mode streaming file system appears to install parts of an application program on said client sufficient for execution;
a user-mode client on said client;
while executing the application program, said streaming file system receives requests from local processes of said client for application program code and data that are part of the application program not already installed when said application program code and data are needed;
a persistent cache on said client wherein said persistent cache has a portion of said application program code and data loaded therein and wherein said portion of said application program code and data is available for reuse after termination of execution of said application program;
wherein requests made to said streaming file system are directed to said user-mode client or retrieved from said persistent cache; and
wherein said user-mode client handles the application program code and data streams from said server and sends the results back to said streaming file system driver without interrupting the execution of the application program. - View Dependent Claims (62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72)
-
-
73. An apparatus for client-side retrieval, storage, and execution of application program and other related data streamed from a server across a computer network to a client system in a computer environment, comprising:
-
a streaming block driver on said client;
wherein said block driver provides the abstraction of a physical disk to a native file system already installed on the client operating system and appears to install parts of an application program on said client sufficient for execution;
a persistent cache on said client wherein said persistent cache has a portion of said application program code and data stored therein and wherein said application program code and data stored in said persistent cache is available for reuse after termination of execution of said application program;
wherein said block driver receives requests for said application program code and data for physical block reads and writes from local processes of said client which said block driver satisfies out of said persistent cache on a standard file system that is backed by a physical disk drive without interrupting the execution of the application program; and
wherein said requests that cannot be satisfied by said persistent cache are sent to said server. - View Dependent Claims (74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84)
-
-
85. An apparatus for client-side retrieval, storage, and execution of application programs and other related data streamed from a server across a computer network to a client system in a computer environment, comprising:
-
a disk driver on said client;
a user-mode client on said client;
wherein said user-mode client appears to install parts of an application program on said client sufficient for execution;
while executing the application program, said disk driver sends all file requests that said disk driver receives to said user-mode client requesting for application program code and data that are part of said application program not already installed when said application program code and data are needed;
a persistent cache on said client wherein said persistent cache has a portion of said application program code and data stored therein and wherein said application program code and data stored in said persistent cache is available for reuse after termination of said application program; and
wherein said user-mode client attempts to satisfy said file requests from said persistent cache or from said server without interrupting the execution of the application program. - View Dependent Claims (86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96)
-
Specification