Claims
- 1. A method of transmitting data over a network, to support execution of a program at a remote location comprising
determining a measure of available throughput for transmitting data over the network, identifying information to be transmitted over the network and generating a forward-looking load map of information for a given execution state of the program, and based on the load map and the execution state, generating an anticipatory load request for transmitting the information within the available throughput and for maintaining consistent execution of the program.
- 2. The method of claim 1, wherein the information comprises at least one of data or an executable file.
- 3. The method of claim 1, wherein the information is transmitted from a server to a client.
- 4. The method of claim 1, wherein identifying information includes selecting information based on the available throughput and the execution state of the program at a time of selection.
- 5. The method of claim 3, further comprising:
the client requesting information to be transmitted, the client selecting a subset of the information based on the available throughput at a time of selection, and the client selecting, for transmission from the server to the client, information from the subset of the information.
- 6. The method of claim 3, further comprising:
the client requesting information to be transmitted, and if the request is approved, receiving a key adapted to access the information for transmission from the server to the client.
- 7. The method of claim 1, wherein the forward-looking load map is generated based an access pattern for the transmitted information.
- 8. A system for transmitting structured information over a network having an identified available throughput, comprising:
a server providing the information, a client receiving the information from the server, a profiler monitoring transmission of the information from the server and generating at least one load map based on an analysis of an information access pattern at the server, a map reader, based on the at least one load map, for interpreting information contained within a load map and for generating time valued requests to the server based on available throughput and informational requirements, and a cache manager that merges the information to organize the structured information, for use by the client.
- 10. The system of claim 8, the cache manager further including storage means to store at least the information associated with a pre-load operation.
- 11. The system of claim 10, wherein the cache manager selects for merging a block of the information from the storage means, if the block is available, and requests a block from the server, if the block is not yet available.
- 12. The system of claim 8, further comprising a player which arranges for the execution of the structured information.
- 13. A method for providing multiple levels of support for executing over a computer network a program having blocks of executable code, comprising
providing, for a plurality of network performance levels, a plurality of load maps associated with respective ones of said network performance levels and having a list of sections of executable code of the program ordered according to the expected priority of access of the executable code by the program, determining a network performance level available through the network to a client, selecting a load map as a function of the network performance level available, and allowing the client to request sections of the program according to the load map selected.
- 14. A method according to claim 13, further including
processing the program to generate the plurality of load maps.
- 15. A method according to claim 14, wherein processing the program includes determining for a respective network performance level a preload list representative of a series of sections of executable code that are to be transmitted over the network prior to execution of the program.
- 16. A method according to claim 14, wherein processing the program includes monitoring execution of the program to determine a sequence of block fetches for moving sections of executable code into computer memory and cache during program execution.
- 17. A method according to claim 14, wherein generating an ordered list includes ordering the list to provide a delivery sequence for scheduling delivery of sections of executable code over the network to the client.
- 18. A method according to claim 14, wherein processing the program includes generating the ordered list to schedule transmission of executable code over the network during a period of low network activity during program execution.
- 19. A method according to claim 13, wherein determining a network performance level includes launching a player program at the client capable of exchanging information with a remote server for determining the available network bandwidth.
- 20. A method according to claim 13, wherein determining a network performance level includes launching a player program at the client capable of exchanging information with a remote server for determining network latency.
- 21. A method according to claim 13, wherein determining a network performance level includes determining cache memory available at the client.
- 22. A method according to claim 13, wherein selecting a load map includes comparing a network performance level to a threshold level and preceding to selecting of a load map as a function of the comparison.
- 23. A method according to claim 13, further including
selecting one of a plurality of servers for transmitting information.
- 24. A method for providing multiple levels of support for executing over a computer network a program having blocks of executable code, comprising
providing a file system management process for monitoring file access operations of a computer program executing within an application memory space, executing the program, employing the file system management process, while the program is being executed, for determining a sequence and a timing pattern with which blocks of executable code are loaded into the application memory space, and processing the sequence and timing pattern to generate a load map representative of a sequence and timing pattern for transmitting blocks of executable code over the network.
- 25. A method according to claim 24, wherein processing the sequence and timing pattern includes generating a plurality of load maps each associated with a respective level of network performance.
- 26. A method according to claim 24, wherein executing the program includes executing the program a plurality of times to identify a plurality of optional sequence and timing patterns for loading blocks of the executable program into application memory space.
- 27. A method according to claim 24, wherein generating the load map includes processing the sequence and timing pattern to determine a preload factor representative of a number of blocks of executable code that are to be transmitted for enabling execution of the program over the network.
- 28. A process according to claim 24, wherein generating a load map includes processing the sequence and timing pattern to identify periods during program execution available for transmitting additional blocks of executable code.
- 29. A process according to claim 28, including determining probabilistically the additional blocks of executable code to deliver over the network.
- 30. A process according to claim 24, wherein processing the sequence and timing pattern includes collecting information representative of blocks of executable code requested from a remote site and adjusting the load map as a function of the collected information.
- 31. A process according to claim 24, further including adding trigger controls within the generated load map for controlling post-load execution on a client based on programs file accesses.
- 32. A process according to claim 24, further comprising
providing a map reader process for execution on the client and for reading the load map to determine a sequence for requesting blocks of executable code from a remote server.
Priority Claims (1)
Number |
Date |
Country |
Kind |
PCT/US99/27113 |
Nov 1999 |
US |
|
REFERENCE TO RELATED APPLICATIONS
[0001] This application incorporates by reference the teachings of the following U.S. patent applications and PCT applications: No. 60/231,992 entitled Systems and Methods for Delivering Content Over a Computer Network, filed Sep. 11, 2000 and naming Joe D. Croman as an inventor; as well as U.S. Patent Applications Serial No. 60/108,602; Ser. Nos. 09/310,294; 09/311,923; 09/310,229; 09/439,906; and PCT application PCT/US99/27113.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60231992 |
Sep 2000 |
US |
|
60108602 |
Nov 1998 |
US |