Apparatus and method for improving the delivery of software applications and associated data in web-based systems
First Claim
1. A system for streaming a software application to a plurality of clients comprising:
- a principal server having the software stored thereon as a plurality of blocks and comprising a principal predictive streaming application configured to predict blocks which will be required by devices connected to the principal server, and a principal streaming communication manager configured to transmit predicted blocks to designated devices connected to the principal server and service requests for blocks issued from downstream devices;
at least one intermediate server connected between the principal server and the plurality of clients, each intermediate server connected to at least one upstream device and at least one downstream device and comprising a cache, a respective intermediate predictive streaming application configured to predict blocks which will be required by connected downstream devices, and a respective intermediate streaming communication manager;
each respective intermediate streaming communication manager configured to (a) transmit predicted blocks to designated downstream devices, (b) service requests for blocks issued from downstream devices, (c) cache blocks received from connected upstream devices, and (d) issue requests for a particular block to an upstream device when the particular block is needed for transmission to a downstream device and is not present in the cache;
wherein each device comprises one of an intermediate server and a client.
2 Assignments
0 Petitions
Accused Products
Abstract
An improved system for streaming a software application to a plurality of clients comprises a principal server having the software stored thereon as a plurality of blocks and a plurality of intermediate servers between the principal server and the clients. The principal server is configured to stream program and data blocks to downstream devices in accordance with a dynamic prediction of the needs of those devices. The intermediate servers are configured to cache blocks received from connected upstream devices and service requests for blocks issued from downstream devices. In addition, the intermediate servers are further configured to autonomously predict the needs of downstream devices, stream the predicted blocks to the downstream devices, and if the predicted blocks are not present in the intermediate server cache, request those blocks from upstream devices. The intermediate servers can also be configured to make intelligent cache purging decisions with reference to the contents of the caches in other connected devices.
-
Citations
44 Claims
-
1. A system for streaming a software application to a plurality of clients comprising:
-
a principal server having the software stored thereon as a plurality of blocks and comprising a principal predictive streaming application configured to predict blocks which will be required by devices connected to the principal server, and a principal streaming communication manager configured to transmit predicted blocks to designated devices connected to the principal server and service requests for blocks issued from downstream devices;
at least one intermediate server connected between the principal server and the plurality of clients, each intermediate server connected to at least one upstream device and at least one downstream device and comprising a cache, a respective intermediate predictive streaming application configured to predict blocks which will be required by connected downstream devices, and a respective intermediate streaming communication manager;
each respective intermediate streaming communication manager configured to (a) transmit predicted blocks to designated downstream devices, (b) service requests for blocks issued from downstream devices, (c) cache blocks received from connected upstream devices, and (d) issue requests for a particular block to an upstream device when the particular block is needed for transmission to a downstream device and is not present in the cache;
wherein each device comprises one of an intermediate server and a client. - 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, 36, 37, 38, 39, 40, 41, 42, 43, 44)
-
-
13. A server for use in a system for streaming a software application to a plurality of clients comprising:
-
a cache;
a predictive streaming application configured to predict blocks which will be required by connected downstream devices; and
a streaming communication manager configured to (a) transmit predicted blocks to designated downstream devices, (b) service requests for blocks issued from downstream devices, (c) cache blocks received from connected upstream devices, and (d) issue requests for a particular block to an upstream device when the particular block is needed for transmission to a downstream device and is not present in the cache;
wherein each device comprises one of a server and a client.
-
-
25. In a system for streaming a software application as blocks from a principal server to at least one client having at least one intermediate server between the principal server and the client, each intermediate server connected to at least one upstream device and at least one downstream device, each device comprising one of the principal server, a client, and another intermediate server, a method for improving the deliver of the software application comprising the steps of:
-
predicting at the intermediate server blocks which will be required by a downstream device;
transmitting predicted blocks from the intermediate server to a designated downstream device;
caching blocks at the intermediate server received from an upstream device in a cache;
receiving requests at the intermediate server from a particular downstream device for a particular block; and
issuing requests for the particular block from the intermediate server to the upstream device when the requested particular block is not present in the intermediate server cache; and
transmitting the particular block from intermediate server to the particular downstream device.
-
-
35. A computer program product for use a system for streaming a software application as blocks from a principal server to at least one client having at least one intermediate server between the principal server and the client, each intermediate server connected to at least one upstream device and at least one downstream device, each device comprising one of the principal server, a client, and another intermediate server, the computer program product comprising computer code to configure an intermediate server to:
-
predict blocks which will be required by a downstream device;
transmit predicted blocks to a designated downstream device;
cache blocks received from an upstream device in a cache;
receive requests from a particular downstream device for a particular block; and
issue requests for the particular block to the upstream device when the requested particular block is not present in the cache; and
transmit the particular block to the particular downstream device.
-
Specification