System and method for remote file access by computer
First Claim
1. A method for accessing and executing an executable program via a computer, the program being stored in a provider system and including a plurality of separately executable program portions comprising computer instructions, the separately executable program portions being arranged according to a predetermined file structure, in which the program has a standard, unmodified form available for installation as a whole, the method comprising the following steps:
- generating from the unmodified form of the program in the provider system an installation image of the program, the image including, for each program portion, file structure information, as well as an installation indicator;
in a user system, initially installing only the file structure information only when the installation indicator is in an on state;
from the user system, issuing requests for access to selected ones of the separately executable program portions;
separately transferring from the provider system and loading in the user system each selected executable program portions;
upon transfer of each selected, separately executable program portion, executing that program portion in the user system, whereby the user executes the program in the user system without loading the entire executable program into the user system.
1 Assignment
0 Petitions
Accused Products
Abstract
Applications, which consist of one or more files containing executable code and/or data, are stored preferably in unmodified form in a provider system. Separately processable portions of the files contain file structure information as well as actual, processable content. A skeleton of each file, consisting of the file structure information but not the processable content, is stored within a user system, and preferably within a virtual machine, along with access information identifying where the actual content is stored. Whenever the user system, in particular, its operating system, issues a request for access to any file portion whose structure only is stored, then the corresponding content is downloaded via a network, from the provider to the user. A broker system may be included as an intermediary between the provider and the user and may perform such functions as billing and selection of available file providers. Applications are thus streamed piecewise in real time to the user, although the streaming operation remains transparent to the user.
331 Citations
25 Claims
-
1. A method for accessing and executing an executable program via a computer, the program being stored in a provider system and including a plurality of separately executable program portions comprising computer instructions, the separately executable program portions being arranged according to a predetermined file structure, in which the program has a standard, unmodified form available for installation as a whole, the method comprising the following steps:
-
generating from the unmodified form of the program in the provider system an installation image of the program, the image including, for each program portion, file structure information, as well as an installation indicator;
in a user system, initially installing only the file structure information only when the installation indicator is in an on state;
from the user system, issuing requests for access to selected ones of the separately executable program portions;
separately transferring from the provider system and loading in the user system each selected executable program portions;
upon transfer of each selected, separately executable program portion, executing that program portion in the user system, whereby the user executes the program in the user system without loading the entire executable program into the user system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
in the user system, initially installing only a representation of the file structure.
-
-
3. A method as in claim 2, further including the following steps:
-
in the user system;
for each installed program portion, creating an access structure, the access structure including file structure information for the respective program portion, as well as access information, which includes a locator indicating a storage location where the corresponding program portion'"'"'s executable content is stored;
upon each request for access to the executable content of any of the program portions, issuing a transfer request that includes the corresponding locator; and
fetching the executable content of the requested program portions from the storage location.
-
-
4. A method as in claim 3, further comprising the following steps:
-
connecting the user system and the provider system for data transfer via a network; and
transmitting the transfer request via the network;
in which the locator includes a network address of the provider system.
-
-
5. A method as in claim 4, further including:
-
storing in the user system local data that is absent from the provider system; and
processing the local data in the user system by using the local data as input to the executable program portions resident in the user system;
whereby transfer of the local data to the provider system for processing by the program is avoided.
-
-
6. A method as in claim 3, further including the following steps:
-
for each program portion whose executable content has been fetched into the user system;
storing a cached copy of the executable content within the user system at a respective local storage address;
for each cached copy of any program portion, setting the locator in the corresponding access structure to the local storage address; and
upon each subsequent request for access to the executable content of any of the cached program portions, retrieving the executable content of the cached program portions from the local storage address.
-
-
7. A method as in claim 2, further including the following steps:
-
installing a virtual machine within the user system, the virtual machine having a virtual operating system, a virtual processor and a virtual storage disk;
installing a virtual machine monitor as an interface between the virtual machine and a host operating system of the user system;
installing the file structure information of the separately executable program portions within the virtual storage disk;
issuing all requests for access to the separately executable program portions via the virtual operating system;
processing all transferred, selected, separately executable program portions using the virtual processor of the virtual machine; and
intercepting and handling all requests for access issued by the virtual operating system in the virtual machine monitor;
transfer of all separately executable program portions from the provider system thereby remaining transparent to a user of the virtual machine.
-
-
8. A method as in claim 3, further including the step of issuing the requests for access to the selected, separately executable program portions, and separately transferring from the provider system each selected program portion from the provider system to the user system via a broker system to which the user system and the provider system are both connected via a network.
-
9. A method as in claim 8, further including the following steps:
in the broker system, selecting one of a plurality of available provider systems from which to transfer the requested, separately executable program portions, available provider systems being provider systems actively connected to the network.
-
10. A method as in claim 9, further including the following steps:
-
A) in the broker system, selecting as an initial provider, which is also initially a current provider, one of a plurality of available provider systems, from which executable program portions are initially transferred to the user system;
B) downloading the requested executable program portions to the user system from the current provider as long as the current provider remains actively connected to the network;
C) whenever the current provider ceases to be actively connected to the network, selecting a different one of the providers as the current provider; and
D) repeating sub-steps B) and C).
-
-
11. A method as in claim 8, further including the following steps:
-
in the broker system;
monitoring and quantitatively measuring access requests issued by the user system and completed transfers to the user system of the separately executable program portions;
compiling billing information as a predetermined function of the measured access requests and completed transfers; and
billing a user of the user system according to the compiled billing information.
-
-
12. A method for accessing and executing an executable program via a computer, in which the program is stored in a provider system and includes a plurality of separately executable program portions comprising computer instructions, the separately executable program portions being arranged according to a file structure,
each separately executable program portion comprises file structure information and processable content; -
the program has a standard, unmodified form available for installation as a whole;
the method comprising the following steps;
A) connecting the provider system and a user system for data transfer via a network;
B) in the user system;
i) over the network, transmitting requests for access to selected ones of the separately executable program portions by transmitting the transfer requests via the network;
ii) separately transferring from the provider system and loading in the user system each selected program portion;
iii) upon transfer of each selected, separately executable program portion, executing that program portion in the user system, whereby the program may be executed in the user system with fewer than all of the separately executable program portions being resident in the user system;
iv) initially installing only the file structure;
v) for each installed program portion, establishing an access structure, the access structure including file structure information for the respective program portion, as well as access information, which includes a locator indicating a storage location where the corresponding program portion'"'"'s executable content is stored, the locator including a network address of the provider system;
vi) upon each request for access to the executable content of any of the program portions, issuing a transfer request that includes the corresponding locator; and
vii) fetching the executable content of the requested program portions from the storage location;
C) in the provider system;
i) maintaining the program in its standard, unmodified form in the provider system;
ii) generating from the unmodified form of the program in the provider system an installation image of the program, the image including, for each program portion, the file structure information;
D) installing a virtual machine within the user system, the virtual machine having a virtual operating system and a virtual storage disk;
E) installing a virtual machine monitor as an interface between the virtual machine and a host operating system of the user system;
F) installing the file structure information of the separately executable program portions within the virtual storage disk;
G) issuing all requests for access to the separately executable program portions via the virtual operating system;
H) processing all transferred, selected, separately executable program portions within the virtual machine; and
I) intercepting and handling all requests for access issued by the virtual operating system in the virtual machine monitor;
J) transfer of all separately executable program portions from the provider system thereby remaining transparent to a user of the virtual machine;
K) whereby the user executes the program in the user system without loading the entire executable program into the user system.
-
-
13. A system for accessing and executing at least one executable program via a computer, in which the program has a standard, unmodified form available for installation as a whole, comprising:
-
A) a data transfer network;
B) a provider computer system that has;
i) a provider storage device storing the program as a plurality of separately executable program portions comprising computer instructions, the separately executable program portions being arranged according to a predetermined file structure;
ii) a provider network connection device connecting the provider computer system to the network;
iii) a module that generates from the unmodified form of the program an installation image of the program, the image including, for each program portion, file structure information, as well as an installation indicator;
C) a user system that has;
i) an operating system;
ii) a local storage device;
iii) a user network connection device connecting the user system to the network;
iv) a file transfer module comprising computer-executable instructions;
a) for initially installing only the file structure information only when the installation indicator is in an on state;
b) for issuing requests for access to selected ones of the separately executable program portions;
c) for separately initiating transfer from the provider computer system for loading in the user system each selected program portion; and
v) a processor processing, after transfer, each selected, separately executable program portion;
D) whereby the user executes the program in the user system without loading the entire executable program into the user system. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
a file skeleton generation module comprising computer instructions for establishing and storing in the user storage device, for each installed program portion, an access structure, the access structure including the file structure information for the respective program portion, as well as access information, which includes a locator indicating a storage location where the corresponding program portion'"'"'s executable content is stored; and
a streaming control module comprising computer instructions for issuing, via the network, a transfer request that includes the corresponding locator upon each request for access to the executable content of any of the program portions and for retrioeving fetching the executable content of the requested program portions from the storage location.
-
-
16. A system as in claim 14, further comprising
an image generation module installed within the provider system and comprising computer instructions: -
for generating from an unmodified form of the file in the provider system an installation image of the file, the image including, for each program portion, the file structure information, as well as an installation flag; and
for transferring to the user system for initial installation only the file structure and only when the installation flag is in an on state.
-
-
17. A system as in claim 15, further including a cache within the user system, the streaming control module including further computer instructions, for each program portion whose executable content has been fetched into the user system:
-
for storing in the cache a copy of the executable content at a respective local storage address;
for each cached copy of any program portion, for setting the locator in the corresponding access structure to the local storage address; and
upon each subsequent request for access to the executable content of any of the cached program portions, for retrieving the executable content of the cached program portions from the local storage address.
-
-
18. A system as in claim 14, further comprising:
-
a virtual machine within the user system, the virtual machine having a virtual processor, virtual operating system and a virtual storage disk;
a virtual machine monitor (VMM) forming an interface between the virtual machine and a host operating system of the user system;
in which;
the file structure information of the separately executable program portions is stored within the virtual storage disk;
the file transfer module is installed within the virtual machine monitor, all requests for access to the separately executable program portions thereby occurring via the virtual operating system; and
the VMM intercepting and handling all requests for access issued by the virtual operating system;
transfer of all separately executable program portions from the provider system thereby remaining transparent to a user of the virtual machine.
-
-
19. A system as in claim 18, in which both the host operating system and the virtual operating system are unmodified commodity operating systems.
-
20. A system as in claim 14, further including a broker system connected to both the provider system and the user system via the network, the broker system forming intermediate means for receiving the requests for access by the user system to the selected, separately executable program portions, for forwarding the requests to the provider system, and for forwarding each selected program portion transmitted from the provider system to the requesting user system.
-
21. A system as in claim 20, further including a plurality of available provider systems, each storing the file, the intermediate means being further provided for selecting one of the plurality of available provider systems from which to transfer the requested, separately executable program portions, available provider systems being provider systems actively connected to the network.
-
22. A system as in claim 21, in which the intermediate means is further provided:
-
A) for selecting as an initial provider, which is also initially a current provider, one of the plurality of available provider systems, from which executable program portions are initially transferred to the user system;
B) for downloading executable program portions requested by the user system to the user system from the current provider as long as the current provider remains actively connected to the network;
C) whenever the current provider ceases to be actively connected to the network, for selecting a different one of the providers as the current provider; and
D) for repeating sub-steps B) and C).
-
-
23. A system as in claim 21, in which the intermediate means is further provided:
-
for monitoring and quantitatively measuring access requests issued by the user system and completed transfers to the user system of separately executable program portions;
for compiling billing information as a predetermined function of the measured access requests and completed transfers; and
for billing a user of the user system according to the compiled billing information.
-
-
24. A method for providing access to software comprising the following steps:
-
in a provider system, storing according to a file structure at least one executable program as separately executable program portions, each having file structure information and executable content;
providing to at least one member user an installation version of the program for installation within a user computer;
initially providing for installation within the user computer program skeleton, the program skeleton including, for each program portion, an access structure, the access structure including the file structure information for the respective program portion, but with the corresponding executable content of at least one program portion excluded, as well as access information, which includes a locator indicating a storage location where the corresponding program portion'"'"'s executable content is stored; and
in real time, and upon receipt of a request issued by the user computer, separately transferring and loading into the user computer the executable content of currently selected ones of the separately executable program portions, whereby the user executes the program in the user system without loading the entire executable program into the user system. - View Dependent Claims (25)
monitoring and quantitatively measuring access requests issued by the user computer and completed transfers to the user computer of the separately executable program portions;
compiling billing information as a predetermined function of the measured access requests and completed transfers; and
billing a user of the user computer according to the compiled billing information.
-
Specification