A method for streaming software may include downloading blocks associated with a software title until an executable threshold is reached, initiating execution of the software title, and continuing to download blocks of the software title while the software title is executed. Another method for streaming software may include sending to a client data sufficient for the client to build a virtual directory structure for use in executing a software title, streaming a subset of blocks associated with the software title to the client, and streaming additional blocks associated with the software title to the client on demand. A system for streaming software may include a server computer and a client computer. The server computer may include a program database and a streaming engine. In operation the streaming engine may stream an executable streaming application from the program database to the client.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A method comprising: downloading, using a processor, blocks of a software title until a number of the blocks of the software title equals an executable threshold; initiating execution of the software title when the number of the blocks equals the executable threshold; continuing to download blocks of the software title while the software title is executed.
A method for streaming software downloads parts (blocks) of a software program until enough parts are available to start the program. Once that 'executable threshold' is met, the program starts running. The system continues downloading the remaining parts of the program in the background while the program is already running. This allows faster initial program startup.
2. The method of claim 1 , further comprising selecting the software title for download.
The method for streaming software where parts (blocks) of a software program are downloaded until enough parts are available to start the program; the program starts running once an 'executable threshold' is met; and the system continues downloading the remaining parts of the program while the program is already running, *further includes* the step of selecting which software program to download in the first place.
3. The method of claim 1 , further comprising receiving a dependency string associated with the software title, wherein the dependency string includes software selected from the group consisting of executables and dynamic link libraries (DLLs).
The method for streaming software where parts (blocks) of a software program are downloaded until enough parts are available to start the program; the program starts running once an 'executable threshold' is met; and the system continues downloading the remaining parts of the program while the program is already running, *further includes* receiving a 'dependency string'. This string specifies other software components (like executables or DLL files) that the streamed program needs to run correctly.
4. The method of claim 1 , further comprising generating a start message generally contemporaneously with said initiating execution of the software title.
The method for streaming software where parts (blocks) of a software program are downloaded until enough parts are available to start the program; the program starts running once an 'executable threshold' is met; and the system continues downloading the remaining parts of the program while the program is already running, *further includes* generating a "start message" signal when the program begins execution. This message can be used to track program startup.
5. The method of claim 1 , further comprising decrypting one or more of the download blocks.
The method for streaming software where parts (blocks) of a software program are downloaded until enough parts are available to start the program; the program starts running once an 'executable threshold' is met; and the system continues downloading the remaining parts of the program while the program is already running, *further includes* decrypting some or all of the downloaded parts (blocks) of the software, likely to protect it from unauthorized use during transfer.
6. The method of claim 1 , further comprising: requesting data, associated with the software title, that is available at a remote location; suspending execution of the software title; downloading blocks associated with the requested data; resuming execution of the software title with the requested data.
7. The method of claim 1 , further comprising: completing execution of the software title; generating an end message generally contemporaneously with said completing execution of the software title.
The method for streaming software where parts (blocks) of a software program are downloaded until enough parts are available to start the program; the program starts running once an 'executable threshold' is met; and the system continues downloading the remaining parts of the program while the program is already running, *further includes* generating an "end message" signal when the program finishes executing. This message can be used to track program completion.
8. A method comprising: sending to a client an index for the client to build a virtual directory structure to facilitate executing a software title; streaming, using a processor, a subset of blocks associated with the software title to the client; streaming additional blocks associated with the software title to the client on demand.
A method for streaming software sends a file system index to the client, allowing the client to create a virtual directory structure that looks like a complete installation. Then, the system streams an initial set of program files (blocks) to the client. As the program runs and needs more files, the system streams those additional parts (blocks) "on demand". This creates the illusion of a fully installed program without actually downloading everything upfront.
9. The method of claim 8 further comprising preparing the software title for streaming, including creating an index containing information about registry changes, files, and directories created.
The method for streaming software that sends a file system index to the client, streams an initial set of program files, and streams additional files on demand, *further includes* preparing the software for streaming by creating an index. This index contains information about registry changes, files, and directories that the software creates during its normal installation process. This allows the client to mimic a complete install.
10. The method of claim 8 further comprising creating an index for use by a client-side file system driver to present the virtual directory structure to the client.
The method for streaming software that sends a file system index to the client, streams an initial set of program files, and streams additional files on demand, *further includes* creating an index specifically designed for a file system driver on the client. This driver uses the index to present the virtual directory structure of the application to the client's operating system.
11. The method of claim 8 further comprising sending a dependency string associated with the software title to the client.
The method for streaming software that sends a file system index to the client, streams an initial set of program files, and streams additional files on demand, *further includes* sending a dependency string to the client. This string specifies other software components (like DLLs) that the streamed program needs to run correctly on the client machine.
12. The method of claim 8 , further comprising encrypting one or more of the subset of blocks.
The method for streaming software that sends a file system index to the client, streams an initial set of program files, and streams additional files on demand, *further includes* encrypting some or all of the initial set of program files (blocks) before sending them. This protects the software from unauthorized use during transmission.
13. The method of claim 8 further comprising: receiving from the client a start message associated with a start of execution of the software title; receiving from the client a stop message associated with an end to execution of the software title.
The method for streaming software that sends a file system index to the client, streams an initial set of program files, and streams additional files on demand, *further includes* receiving a "start message" from the client when the program starts running and receiving a "stop message" from the client when the program finishes running. These messages allow the server to track the program's execution lifecycle.
14. The method of claim 8 further comprising uploading a client shell installation program to the client.
The method for streaming software that sends a file system index to the client, streams an initial set of program files, and streams additional files on demand, *further includes* uploading a "client shell installation program" to the client machine. This shell program likely handles the virtual file system and on-demand downloading of software components.
15. The method of claim 8 further comprising tracking data associated with a session of streaming execution of the software title by the client.
The method for streaming software that sends a file system index to the client, streams an initial set of program files, and streams additional files on demand, *further includes* tracking data related to the streaming session. This might involve monitoring usage, performance metrics, or other information about how the client is using the streamed software.
16. The method of claim 8 further comprising tracking the subset of blocks associated with the software title.
The method for streaming software that sends a file system index to the client, streams an initial set of program files, and streams additional files on demand, *further includes* specifically tracking which parts (blocks) of the software are included in the initial set of files that are streamed to the client.
17. The method of claim 8 , further comprising tracking the additional blocks associated with the software title.
The method for streaming software that sends a file system index to the client, streams an initial set of program files, and streams additional files on demand, *further includes* specifically tracking the additional parts (blocks) of the software that are streamed to the client "on demand" after the program has already started running.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
July 24, 2009
August 13, 2013
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.