Legal claims defining the scope of protection, as filed with the USPTO.
1. One or more computer-readable memory devices comprising computer-executable program code that, when executed by a processor, perform a method, the method comprising: broadcasting a hash list to a plurality of clients in an enterprise system, wherein the hash list comprises a hash of a plurality of blocks of requested content, wherein the plurality of blocks of requested content comprise at least a first block and a second block; in response to broadcasting the hash list, receiving a communication from one or more of the clients in the enterprise system, wherein the communication comprises at least one of: one or more blocks corresponding to the hash of the plurality of blocks of the requested content; and an indication of the one or more blocks corresponding to the hash of the plurality of blocks of the requested content; obtaining the first block of the requested content from the one or more of the clients in the enterprise system; only when the second block of the requested content is unavailable from the one or more clients in the enterprise system, requesting the second block from a content provider that is not part of the enterprise system; and obtaining the second block of the requested content from the content provider without obtaining the first block from the content provider.
2. The one or more computer readable memory devices as described in claim 1 , wherein the first block is locatable by the client in the enterprise system.
3. One or more computer readable memory devices as described in claim 1 , wherein the method further comprises: determining if a client is permitted to receive content requested by the client; and when the client is permitted to receive the content based on the determining, forming a communication to be communicated via a wide area network that includes a hash list having a hash of each of a plurality of blocks of the content, each hash being configured to enable the client to locate a corresponding block of the content via a local network connection, wherein the forming operates at a layer of a stack that is below an applications and protocols layer.
4. One or more computer readable memory devices as described in claim 3 , wherein the determining and the forming abstract this functionality to an applications and protocols layer such that software that operates at the applications and protocols layer is not aware of how the determining and the forming are performed.
5. One or more computer readable memory devices as described in claim 1 , wherein the communication configures the client to broadcast the hash list to a plurality of clients to obtain at least one block of the content from the plurality of clients.
6. One or more computer readable memory devices as described in claim 3 , wherein the first block was previously cached by a corresponding client locally at the client.
7. One or more computer readable memory devices as described in claim 6 , wherein the at least one block that was previously cached by the corresponding client was decrypted by the client.
8. A method comprising: broadcasting a hash list having a hash of each of a plurality of blocks of content for receipt by a plurality of clients in an enterprise system, each hash being configured to enable a corresponding client to determine whether a corresponding block of the content is cached locally by the corresponding client, wherein the plurality of blocks of requested content comprise at least a first block and a second block; in response to broadcasting the hash list, receiving a communication from one or more of the clients in the enterprise system, wherein the communication comprises at least one of: one or more blocks corresponding to the hash of the plurality of blocks of the requested content; and an indication of the one or more blocks corresponding to the hash of the plurality of blocks of the requested content; obtaining the first block of the requested content from the one or more of the clients in the enterprise system; only when the second block of the requested content is unavailable from the one or more clients in the enterprise system, requesting the second block from a content provider that is not part of the enterprise system; and obtaining the second block of the requested content from the content provider without obtaining the first block from the content provider.
9. A method as described in claim 8 , wherein the hash list is received when a client is permitted to consume the content by the content provider.
10. A method as described in claim 8 , wherein the plurality of clients of the enterprise system includes a client that performs the broadcasting.
11. A method as described in claim 8 , wherein: the plurality of clients of the enterprise system are communicatively coupled via a local area network to a client that performs the broadcasting; and the client is communicatively coupled to the content provider via a wide area network.
12. A method as described in claim 8 , wherein the plurality of clients of the enterprise system is accessible, one to another, via a peer-to-peer network.
13. A method as described in claim 8 , further comprising obtaining one or more blocks of the content as a result of the broadcasting.
14. A method as described in claim 13 , wherein the obtaining includes receiving a communication from at least one of the plurality of clients of the enterprise system that indicates that the one or more blocks of the content are available from the at least one client.
15. A method as described in claim 8 , further comprising: responsive to the broadcasting, determining that at least one block of the content is not available from the plurality of clients; and forming a request to be communicated to the content provider for the at least one block of the content.
16. A method as described in claim 15 , wherein the forming is prompted by a Hypertext Transfer Protocol request that identifies the content.
17. One or more computer-readable memory devices comprising instructions that are executable by a processor to provide one or more modules that are callable, by a network protocol that is executing on a computer, to: form a request to be communicated to a content provider over a network for content; broadcast a hash list received from the content provider to a plurality of clients of an enterprise system, the hash list having a hash of each of a plurality of blocks of requested content, each hash being configured to enable a corresponding one of the clients to determine whether one or more blocks corresponding to the requested content is cached locally by the corresponding one of the clients, wherein the plurality of blocks of requested content comprise at least a first block and a second block; obtain the first block of the requested content from the corresponding one of the clients in the enterprise system, and, only when the second block of the requested content is unavailable from the corresponding one of the clients, request the second block from the content provider without requesting the first block from the content provider.
18. One or more computer readable memory devices as described in claim 17 , wherein the network protocol is a Hypertext Transfer Protocol (HTTP).
19. One or more computer readable memory devices as described in claim 17 , wherein the one or more modules are callable by an application.
20. One or more computer readable memory devices as described in claim 17 , wherein: the plurality of clients of the enterprise system are communicatively coupled via a local area network to the computer; and the computer is communicatively coupled to the content provider via a wide area network.
Unknown
July 1, 2014
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.