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 said client to contain the installed application program;
wherein said streaming file system receives all requests from local processes for application program code or data that are part of the application;
providing a persistent cache on said client;
wherein said streaming file system satisfies requests for application program code or data by retrieving it from said persistent cache stored in a native file system or by retrieving it directly from said server; and
wherein application program code or data retrieved from said server is placed in said persistent cache for reuse.
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.
343 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 said client to contain the installed application program;
wherein said streaming file system receives all requests from local processes for application program code or data that are part of the application;
providing a persistent cache on said client;
wherein said streaming file system satisfies requests for application program code or data by retrieving it from said persistent cache stored in a native file system or by retrieving it directly from said server; and
wherein application program code or data retrieved from said server is placed in said persistent cache for reuse. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
-
-
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 kemel-mode streaming file system driver on said client;
providing a user-mode client on said client;
wherein said streaming file system receives all requests from local processes for application program code or data that are part of the application;
providing a persistent cache on said client;
wherein requests made to said streaming file system are directed to said user-mode client or retrieved from said persistent cache;
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; and
wherein application program code or data retrieved from said server is placed in said persistent cache for reuse.
-
-
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;
providing a persistent cache on said client;
wherein said block driver receives requests for physical block reads and writes from local processes which it satisfies out of said persistent cache on a standard file system that is backed by a physical disk drive; and
wherein requests that cannot be satisfied by said persistent cache are sent to said server.
-
-
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 disk driver sends all file requests that it receives to said user-mode client;
providing a persistent cache on said client; and
wherein said user-mode client attempts to satisfy said file requests from said program cache or by making requests from said server.
-
-
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 said client to contain the installed application program;
wherein said streaming file system receives all requests from local processes for application program code or data that are part of the application;
a persistent cache on said client;
wherein said streaming file system satisfies requests for application program code or data by retrieving it from said persistent cache stored in a native file system or by retrieving it directly from said server; and
wherein application program code or data retrieved from said server is placed in said persistent cache for reuse.
-
-
61. 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 kernel-mode streaming file system driver on said client;
a user-mode client on said client;
wherein said streaming file system receives all requests from local processes for application program code or data that are part of the application;
a persistent cache on said client;
wherein requests made to said streaming file system are directed to said user-mode client or retrieved from said persistent cache;
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; and
wherein application program code or data retrieved from said server is placed in said persistent cache for reuse. - 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 programs 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;
a persistent cache on said client;
wherein said block driver receives requests for physical block reads and writes from local processes which it satisfies out of said persistent cache on a standard file system that is backed by a physical disk drive; and
wherein 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 disk driver sends all file requests that it receives to said user-mode client;
a persistent cache on said client; and
wherein said user-mode client attempts to satisfy said file requests from said program cache or by making requests from said server. - View Dependent Claims (86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96)
-
Specification