Autonomous network streaming
Abstract
Virtual software applications are dynamically delivered and application data is allocated between local and network data stores. In one scenario, a computer system establishes a data input/output (I/O) filter configured to intercept data file requests being sent from a virtual software application to an operating system's file system. The data I/O filter intercepts a data file read request that is configured to retrieve a specified data file from the file system. The data I/O filter forwards the intercepted read request to a network-accessible data store that is configured to return the specific data file. Then, upon receiving the specified data file from the network data store, the I/O filter sends the specified data file to the virtual software application. In this manner, the specified data file is usable by the virtual application.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A computing system comprising the following:
one or more processors; system memory; one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by the one or more processors, causes the computing system to perform a method for dynamically delivering data to one or more virtual software applications, the method comprising:
an act of establishing a data input/output (I/O) filter configured to intercept data file requests being sent from a virtual software application to an operating system's file system;
an act of the data I/O filter intercepting a data file read request that is configured to retrieve a specified data file from the file system;
an act of the data I/O filter forwarding the intercepted read request to a network-accessible data store configured to return the specific data file; and
upon receiving the specified data file from the network data store, an act of the I/O filter sending the specified data file to the virtual software application, such that the specified data file is usable by the virtual application in response to its read request.
2 . The computing system of claim 1 , wherein a plurality of data files are intercepted and streamed to dynamically provide each file needed by the virtual software application.
3 . The computing system of claim 1 , wherein the data files received from the network data store are not stored on the computer system's file system.
4 . The computing system of claim 1 , wherein each data file dynamically retrieved from the network data store appears to the virtual software application as if the data files were being received from the computing system's file system.
5 . The computing system of claim 1 , wherein the I/O data filter is implemented without making changes to how the software application requests data files.
6 . The computing system of claim 1 , wherein the requested data files are streamed from the network data store to the computing system.
7 . The computing system of claim 1 , wherein the intercepted request is sent to a user-mode service that is configured to forward the request to the network data store and receive the requested data from the network store.
8 . The computing system of claim 7 , wherein the user-mode service forwards the received data to the I/O filter, which forwards the data to the virtual application.
9 . The computing system of claim 1 , wherein the data read request is converted to a kernel-mode I/O request which is intercepted by the I/O filter.
10 . The computing system of claim 1 , wherein the network data store comprises the cloud, and wherein the specified data file is retrieved from the cloud using the hypertext transfer protocol.
11 . The computing system of claim 1 , wherein the I/O filter comprises a driver running as part of an operating system process.
12 . The computing system of claim 1 , wherein upon receiving the first data read request, a sparse file is created on the file system, the sparse file including the file name and file size of the requested data file.
13 . A computing system comprising the following:
one or more processors; system memory; one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by the one or more processors, causes the computing system to perform a method for allocating application data between local and network data stores, the method comprising:
an act of receiving from an administrative user an indication of which specified portions of a virtual application are to be stored in a local data store and which portions are to be stored in a network data store;
an act of generating one or more portions of metadata describing which specified portions of the virtual application are stored on the local data store;
an act of receiving a data file request from a virtual application requesting the data of a specified data file;
an act of determining, based on the generated metadata, whether the specified data file is stored on the local data store or the remote data store; and
an act of selectively sending the data file request to either the local data store or the remote data store, by sending the data file request to the local data store when it is determined that the specified data file is stored at the local data store and sending the data file request to the remote data store when it is determined that the specified data file is stored at the remote data store.
14 . The computing system of claim 13 , wherein the administrative user updates an application on the network data store by replacing the application package.
15 . The computing system of claim 14 , wherein a local service on the local computer system is configured to perform at least one of the following to ensure that the data is readable by the computing system: decrypt the data files, reformat the data files and decompress the data files.
16 . The computing system of claim 13 , further comprising, in response to sending the data file request to at least one the local data store and the remote data store, an act of receiving the requested data file from at least one of the local data store and the remote data store.
17 . The computing system of claim 16 , wherein upon determining that the requested data file was stored in the local data store, automatically updating the generated metadata to indicate the stored location of the requested data file.
18 . A computing system comprising the following:
one or more processors; system memory; one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by the one or more processors, causes the computing system to perform a method for dynamically delivering virtual software applications, the method comprising:
an act of establishing a data input/output (I/O) filter configured to intercept data file requests being sent from a virtual software application to a file system;
an act of I/O filter intercepting a data file read request that is configured to a retrieve a requested data file from the file system;
an act of indicating to the virtual software application that the requested data file exists, the indication including the requested data file's file name and size;
an act of receiving a request from the virtual software application for the actual data content of the requested data file;
an act of forwarding the intercepted read request to a user-mode service that forwards the data request to a network-accessible data store configured to return the requested data file; and
upon receiving the requested data file from the network data store at the user-mode service, an act of the user-mode service forwarding the data file content to the I/O filter which sends the requested data file content to the virtual software application, such that the requested data file is usable by the virtual application in response to its read request.
19 . The computing system of claim 18 , wherein the requested data file is streamed to the virtual software application without saving any of the data file's contents on the file system.
20 . The computing system of claim 19 , wherein as the virtual software application is used by the user, data files are dynamically and automatically streamed from the network data store as needed by the virtual application.Join the waitlist — get patent alerts
Track US2015106440A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.