Embodiments of the invention generally relate to radio-access networks and, in particular, to caching content therein.
Operators of mobile communications networks often have subscription plans that charge subscribers for content (e.g., audio/video data) as it is used and/or set a limit for the amount of content allowed to be uploaded or downloaded in a certain time period. These operators may use an accounting system to track each user's consumption of content (supplied by, e.g., third-party content providers); the use of a cache or proxy device, however, may present a challenge to the accounting system. When a cache delivers content to a user, the user's subscription plan may not be charged because the content delivery may take place without notification to the accounting device. In the case of an internet-based cache or proxy, core-network devices (e.g., an SGSN or GGSN in a UMTS network) in the mobile operator's network may perform accounting functions while delivering content to user devices through a radio access network (“RAN”). Therefore content delivered by an internet-based cache or proxy is accounted for by core network devices as it is delivered via the RAN.
When a content caching device is placed in the RAN (i.e., a “RAN cache”), however, the core network devices and the accounting system are unaware of the RAN cache, any content cached by it, and any content served from the RAN cache in response to subsequent user requests. Additionally, content providers may prefer to receive user requests for certain objects (e.g., top pages) for purposes of content-based monetization and for serving dynamic and opportunistic content such as profile-based, context-based, and location-based advertisements. To serve this type of dynamic content, content providers often mark certain objects as non-cacheable or with a small expiration timer. Both of these strategies prevent or limit the caching of content in a RAN cache, thereby increasing the time for content delivery to a user's mobile device. A need therefore exists for a charging-invariant and content-provider-friendly RAN cache.
Embodiments of the present invention include a method and system for accounting for content served from a RAN cache, thereby allowing for mobile communications providers to charge users for the content they access. Benefits include increased use of content caches by content providers and network operators, lessened network lag time, faster downloads and uploads, and increased quality of user experiences. In one embodiment, this accounting is called charging-invariant transit caching (“CITC”). CITC includes delivering content to a user from a RAN cache without waiting for a response from the content server if the user's request meets the criteria of caching and expiration tags on previously cached content. If there is no cached copy of the content in the CITC device, the CITC device may treat the request as a cache miss (i.e., the CITC device retrieves that content from the content servers, caches it, and passes it on to the user). Such a cache-miss operation propagates the user's request and the corresponding response through one or more core network devices for accounting and/or charging. In the case of a cache hit (i.e., the requested object is found in the RAN cache), the CITC device may return the requested object from local cache and, in parallel, the CITC device may forward each user content request to the content provider so that the mobile network's accounting devices can register the appropriate charge to the user's account. The CITC device may then update the RAN cache and expiration timers based on the response from the content servers.
In one embodiment, the CITC device adds an HTTP tag called, e.g., “CITC,” that communicates to content providers and origin servers that the cache system is friendly to them by permitting proper charging of users for content accessed, as it makes every user's content requests visible to the origin servers. This HTTP tagging permits content providers to configure origin servers or transit content delivery networks or transit content distribution networks to respond to the CITC device, thus making increased caching more likely as origin servers may mark more objects as cacheable and use larger expiration timers.
Accordingly, in one aspect, a method serves content from a radio-access network cache. A request is detected from a mobile device for content present in the radio-access network cache. The request is sent to a content-origin server. A response is received from the content-origin server related to the request.
In various embodiments, detecting the request includes receiving a client request from the mobile device or from the radio-access network cache. The response received from the content-origin server may include the requested content and/or an indication to halt serving the content from the radio-access network cache. The indication to halt serving the content from the radio-access network cache may include a message that the request is denied or that the content requested is invalid. The indication to halt serving the content from the radio-access network cache may include instructing the radio-access network cache to halt serving the content. Sending the request to the content-origin server may occur in parallel with serving the content from the radio-access network cache or after serving the content from the radio-access network cache.
In various embodiments, the request sent to the content-origin server is tagged with a tag indicating presence of a content-origin-server-friendly radio-access network cache. The response received from the content-origin server may include content modified for compatibility with the content-origin-server-friendly radio-access network cache. The modifications may include flagging the content as cacheable or increasing the expiration time of the content. The response received from the content-origin server may include content to be served in a future request. The content to be served in the future request may include an advertisement.
In various embodiments, an amount of data delivered to the mobile device is compared to an amount of data received from the content-origin server. Based on an outcome of the comparison, the method may include indicating undercharging or overcharging and/or may include controlling an amount of data delivered from the radio-access network cache, prior to fetching the data from the content-origin server. Controlling the amount of delivered data may minimize an impact on an accounting and charging system in a mobile core network and/or may minimize an impact on any legal intercept issues in a mobile core network.
In another aspect, a system serves content from a radio-access network cache. The system includes an interface module for sending data to and receiving data from a radio-access network, a detection module for detecting a request, sent from a mobile device and received via the radio-access network, for content present in a radio-access network cache, and a communication module for sending the request to a content-origin server and receiving a response therefrom.
In various embodiments, the system includes a security module for verifying that the mobile device is allowed to receive the content. The security module may halt serving of the content from the radio-access network cache if the mobile device is not allowed to receive the content. The communication module may receive the content from the content-origin server. The communication module may tag the forwarded request with a tag indicating presence of a content-origin-server-friendly radio-access network cache. The system may include an accounting module for comparing an amount of data delivered to the mobile device to an amount of data received from the content-origin server. The system may include a cache-interface module for communicating with a radio-access network cache. The cache-interface module may forward content received from the content-origin server to the radio-access network cache.
In another aspect, a system serves content from a radio-access network cache. The system includes computer memory for storing instructions for detecting a request, sent from a mobile device via a radio-access network, for content present in the radio-access network cache, sending the request to a content-origin server, and receiving a response from the content-origin server related the request. The system also includes a processor for executing the instructions.
These and other objects, along with advantages and features of the present invention herein disclosed, will become more apparent through reference to the following description, the accompanying drawings, and the claims. Furthermore, it is to be understood that the features of the various embodiments described herein are not mutually exclusive and can exist in various combinations and permutations.
In the drawings, like reference characters generally refer to the same parts throughout the different views. In the following description, various embodiments of the present invention are described with reference to the following drawings, in which:
In some embodiments, the CITC device 414 is deployed in a network having one or more traffic-offload interfaces that offload selected portions of user-requested content from the core network to a local-internet interface and/or to content-delivery network devices, thereby bypassing the normal core network (e.g., the SGSN/GGSN). In such embodiments, the CITC device 414 uses either the core network or the appropriate offload interface per the offload configuration policy while performing the transit caching methods per the current invention.
In certain embodiments of the invention, when the CITC device 904 is delivering content to a client device 902, the delivery time over the RAN is longer than the time it takes for the content server 906 to return the response to the CITC device 904. In these embodiments, the CITC device 904 acts on any error indications in the response applicable to that client device 902 by terminating the ongoing delivery of the cached content. The content may be organized into a relatively small prefix-portion and a relatively large suffix-portion, so that when both are in the CITC device 904 (i.e., there is a cache hit), the CITC device 904 may start serving the prefix-portion and forward the request to the content server 906 in parallel to verify that the object is still valid and that the requesting client device 902 is authorized to download the content. In such an embodiment, the response of the content server 906 instructs the CITC device 904 whether or not to serve the remaining suffix-portion of the content to the client device 902. These embodiments of the invention may entail digital rights management (“DRM”), legal intercept (“LI”) methods deployed in the core network, or other types of content protection or control.
In some configurations, an operator of a content-origin server may employ an LI control-policy node to enable LI operation for a specific user's mobile device. A core-network device, such as a SGSN or GGSN, may provide support for these LI functions; for example, the LI control-policy node initiates an LI trigger for the specific user's mobile device, and the core-network device may deliver a copy of the user's data packets to the LI device for verification, authentication, or other purposes. Any objects previously cached by the CITC/RAN cache device and delivered to the user device, however, may not be visible to the core-network devices.
In one embodiment of the current invention, the CITC systems and methods described above are used to provide this visibility. The CITC operation may be engaged when the LI trigger is received for a specific user's mobile device. Because the CITC device propagates user requests upstream to the content-origin server, even if the requested content is locally in the cache, all data delivered to the specific user's device may be visible to the core-network device, thus meeting LI requirements.
In certain embodiments of the invention, the operation of the CITC device 904 fetching the cached content from the content server 906 in parallel with delivering the cached content may enable the content server 906 to deliver dynamic objects in a pipelined fashion. For example, while delivering dynamic content, the content server 906 may deliver different content objects for the same content request, so that the content server 906 may maintain a pipeline of such dynamic content in the CITC device 904, with the current content in line to be sent to a subsequent client request.
The response of the content server 906 may include content modified for compatibility with the content-origin-server-friendly RAN cache 904, for example, video content may be scaled down in quality to conserve bandwidth. The response may further include content flagged as cacheable or having an increased expiration time to better utilize the CITC device 904. For example, if the server 906 recognizes the CITC device 904 as friendly, it may allow more content to be cached therein for longer periods of time. The response may also include content to be served in a future request (e.g., one or more advertisements).
In various embodiments, the CITC device monitors the amount of data flowing in and out of the RAN cache (e.g., the content received from the content-origin server and/or the content served to the mobile device). By comparing these two sets of data (e.g., calculating the down-stream charging difference), the CITC device may indicate an overcharging event (i.e., more data has been received from the content-origin server than has been served to the mobile device) or an undercharging event (i.e., less data has been received from the content-origin server than has been served to the mobile device). The outcome of the comparison may be reported upstream to the core network/charging device or content-origin server or, in other embodiments, may be used to control the amount of data delivered from the RAN cache. For example, if a user is currently being undercharged, the CITC device may limit serving more data from the RAN cache, and if the user is overcharged, the CITC device may increase the amount of data served from the RAN cache. This monitoring and correcting of data served to the mobile device may minimize the impact on any accounting and/or charging system in the mobile core network at least because those systems may assume that a user is neither under- or over-charged (or under- or over-charged only within a small tolerance). The systems may further minimize the impact on any legal intercept issues in the mobile core network.
The storage element 1006, local storage 1010, and cache 1012 may be implemented with any appropriate storage technology known in the art, such as random-access memory, flash memory, or a block storage device (e.g., a magnetic or solid-state disk). The control logic/processing unit 1008 may be a general-purpose processor and executing a set of instructions from an internal or external storage device. In other embodiments, the control logic/processing unit 1008 is a dedicated hardware device having embedded instructions or a state machine. The CITC device 1014 may interface with the RAN cache 1000, such as through the interface module 1002 in the present embodiment of the invention.
It should also be noted that embodiments of the present invention may be provided as one or more computer-readable programs embodied on or in one or more articles of manufacture. The article of manufacture may be any suitable hardware apparatus, such as, for example, a floppy disk, a hard disk, a CD ROM, a CD-RW, a CD-R, a DVD ROM, a DVD-RW, a DVD-R, a flash memory card, a PROM, a RAM, a ROM, or a magnetic tape. In general, the computer-readable programs may be implemented in any programming language. Some examples of languages that may be used include C, C++, or JAVA. The software programs may be further translated into machine language or virtual machine instructions and stored in a program file in that form. The program file may then be stored on or in one or more of the articles of manufacture.
Certain embodiments of the present invention were described above. It is, however, expressly noted that the present invention is not limited to those embodiments, but rather the intention is that additions and modifications to what was expressly described herein are also included within the scope of the invention. Moreover, it is to be understood that the features of the various embodiments described herein were not mutually exclusive and can exist in various combinations and permutations, even if such combinations or permutations were not made express herein, without departing from the spirit and scope of the invention. In fact, variations, modifications, and other implementations of what was described herein will occur to those of ordinary skill in the art without departing from the spirit and the scope of the invention. As such, the invention is not to be defined only by the preceding illustrative description.
This application claims priority to and the benefit of U.S. Provisional Patent Application Ser. No. 61/304,141, filed on Feb. 12, 2010, which is hereby incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61304141 | Feb 2010 | US |