DISTRIBUTED CACHING SYSTEMS WITH CONFIGURABLE EXTENDED CACHING OPTIMIZATION
Methods and systems for distributed caching of information using extended caching optimization are provided. According to one aspect, a method for distributed caching of information using extended caching optimization includes, at a mobile device for operating in a wireless network, monitoring requests issued from an application located within the device to an external entity not located within the device; storing, in a local cache, responses to the monitored requests received from the external entity; and, in response to identifying a request as one that meets a first criterion for optimization, applying an extended caching optimization, including preventing the identified request from being transmitted to the external entity and providing a response to the identified request from the local cache.
1 . A method for distributed caching of information using extended caching optimization, the method comprising:
at a mobile device for operating in a wireless network, the device including a local proxy for monitoring requests issued from an application located within the device to an external entity not located within the device and for storing, in a local cache, responses to the monitored requests received from the external entity:
identifying a request as one that meets a first criterion for optimization;
in response to identifying the request as one that meets a first criterion for optimization, applying an extended caching optimization, wherein applying an extended caching optimization includes preventing the identified request from being transmitted to the external entity, and providing a response to the identified request from the local cache; and
at a proxy server located external to the mobile device and for receiving requests from the mobile device, forwarding the requests to content or service providers, receiving from the content or service providers responses to the forwarded requests, and providing the responses back to the mobile device:
storing, in a server cache, copies of the forwarded requests;
storing, in the server cache, copies of the received responses to the forwarded requests;
identifying a request/response pair as one that meets a second criterion for optimization; and
in response to identifying the request/response pair as one that meets a second criterion for optimization, preventing the response from being provided back to the mobile device.
2 . The method of claim 1 wherein, for each request/response pair identified as meeting the second criterion for optimization, the method includes:
issuing, by the proxy server, a subsequent request to the content or service provider on behalf of the mobile device;
receiving a reply to the subsequent request; and
determining whether to provide or not provide the reply back to the mobile device and providing or not providing the reply according to the determination.
3 . The method of claim 2 wherein providing or not providing the reply according to the determination includes providing the reply to mobile device responsive to at least one of:
a determination that the reply differs from a received response stored in the server cache;
a determination that the reply has a high priority; and
a determination that the reply includes time critical data.
4 . The method of claim 1 including, at the proxy server, responsive to a determination that the reply differs from a received response stored in the server cache, indicating to the local proxy that the cached resource has changed.
5 . The method of claim 4 wherein the local cache is refreshed from the external entity immediately.
6 . The method of claim 4 wherein the local cache is not refreshed from the external entity until the screen is lit.
7 . The method of claim 4 wherein the local cache is not refreshed from the external entity until the screen is lit and the radio transceiver is powered on or activated.
8 . The method of claim 4 including, at the local proxy, responsive to receipt of the indication that cached resource has changed, performing at least one of:
invalidating the cached resource immediately;
invalidating the cached resource when the screen is lit;
invalidating the cached resource when the screen is lit and the radio transceiver is powered on or activated; and
ignoring the indication.
9 . The method of claim 8 further including instructing the application to request and receive data from the external entity.
10 . The method of claim 9 including providing a response to the request from the local cache instead of from the external entity.
11 . A system for distributed caching of information using extended caching optimization, the system including:
a mobile device for operating in a wireless network, the device including:
a local cache;
a local proxy for monitoring requests issued from an application located within the device to an external entity not located within the device and for storing, in the local cache, responses to the monitored requests received from the external entity, wherein the local proxy is configured to identify a request as one that meets a first criterion for optimization and apply an extended caching optimization, and wherein applying an extended caching optimization includes preventing the identified request from being transmitted to the external entity, and providing a response to the identified request from the local cache; and
a proxy server, located external to the mobile device, that receives requests from the mobile device, forwards the requests to content or service providers, receives from the content or service providers responses to the forwarded requests, provides the responses back to the mobile device, stores, in a server cache, copies of the forwarded requests, stores, in the server cache, copies of the received responses to the forwarded requests, identifies a request/response pair as one that meets a second criterion for optimization, and, responsive to identifying a request/response pair as one that meets a second criterion for optimization, prevents the response from being provided back to the mobile device.
12 . The system of claim 11 wherein, for each request/response pair identified as meeting a criterion for optimization, the proxy server issues a subsequent request to the content or service provider on behalf of the mobile device, receives a reply to the subsequent request, determines whether to provide or not provide the reply back to the mobile device, and provides or not provides the reply according to the determination.
13 . The system of claim 12 wherein the proxy server provides or does not provide the reply based on at least one of:
a determination that the reply differs from a received response stored in the server cache;
a determination that the reply has a high priority; and
a determination that the reply includes time critical data.
14 . The system of claim 11 wherein, responsive to a determination that the reply differs from a received response stored in the server cache, the proxy server indicates to the local proxy that the cached resource has changed.
15 . The system of claim 14 wherein, in response to receiving from the proxy server the indication that the cached resource has changed, the local cache is refreshed from the external entity immediately.
16 . The system of claim 14 wherein, in response to receiving from the proxy server the indication that the cached resource has changed, the local cache is not refreshed from the external entity until the screen is lit.
17 . The system of claim 14 wherein, in response to receiving from the proxy server the indication that the cached resource has changed, the local cache is not refreshed from the external entity until the screen is lit and the radio transceiver is powered on or activated.
18 . The system of claim 14 wherein the local proxy, responds to receipt of the indication that cached resource has changed by invalidating the cached resource immediately, invalidating the cached resource when the screen is lit, invalidating the cached resource when the screen is lit and the radio transceiver is powered on or activated, or ignoring the indication.
19 . The system of claim 18 wherein the local proxy instructs the application to request and receive data from the external entity.
20 . The system of embodiment 18 where the local proxy provides a response to the request from the local cache instead of from the external entity.
21 . A non-transitory computer readable medium having stored thereon executable instructions that when executed by the processor of a computer control the computer to perform steps comprising:
at a mobile device for operating in a wireless network, the device including a local proxy for monitoring requests issued from an application located within the device to an external entity not located within the device and for storing, in a local cache, responses to the monitored requests received from the external entity:
identifying a request as one that meets a first criterion for optimization;
in response to identifying the request as one that meets a first criterion for optimization, applying an extended caching optimization, wherein applying an extended caching optimization includes preventing the identified request from being transmitted to the external entity, and providing a response to the identified request from the local cache; and
at a proxy server located external to the mobile device and for receiving requests from the mobile device, forwarding the requests to content or service providers, receiving from the content or service providers responses to the forwarded requests, and providing the responses back to the mobile device:
storing, in a server cache, copies of the forwarded requests;
storing, in the server cache, copies of the received responses to the forwarded requests;
identifying a request/response pair as one that meets a second criterion for optimization; and
in response to identifying the request/response pair as one that meets a second criterion for optimization, preventing the response from being provided back to the mobile device.