# Patent

## Title
Content engine for mobile communications systems

## Abstract

An exemplary content engine includes a content gateway configured to analyze and route content requests to a content server. The content server can be a cache server or a mobile content server. The cache server can be configured to receive and store cacheable web content from a controller that is configured to receive the cacheable web content from at least one cacheable web content provider, such as a web server, and route the content to the cache server. The mobile content server can be configured to receive, from the controller, and store the digital media content. The controller can be further configured to receive the digital media content from at least one external content server and route the content to the mobile content server. The content gateway can be further configured to receive non-cacheable web content from at least one non-cacheable web content provider.

## Background
CROSS REFERENCE TO RELATED APPLICATION
This application is a continuation of U.S. application Ser. No. 11/752,199, now U.S. Pat. No. 7,756,130 filed May 22, 2007, the entirety of which is herein incorporated by reference.


TECHNICAL FIELD
The present invention relates generally to content provisioning. More particularly, the present invention relates to content provisioning via an intra-network content engine in a wireless communications network.
BACKGROUND OF THE INVENTION
The recent deployment of 3G networks has made a wide array of content types available to wireless subscribers. Multimedia content, such as music, games, and movies, and content rich websites and web applications, create an abundance of network traffic between a content provider residing outside of the wireless operator's network and the core and access subsystems of the network. The interfaces used for communication between the external content providers and the operator's network are inefficient and incapable of providing end-to-end quality of service (QoS) for content requests. As such, the operator's network is used as an intermediary to deliver content to subscribers. This places an inordinate amount of traffic load on the network systems. Moreover, the need to send and resend the same content for multiple subscribers places additional strain on network resources.
In addition, external content providers target general users and cannot properly consider and adapt content to a format conducive to mobile devices in general, let alone a format configured specifically for a particular mobile device.
Thus, what is needed are new systems and novel methods to optimize content provisioning to mobile subscribers, to minimize the amount of data traversing the operator's network at any given time and, to increase the overall system response time. As will be seen by the following description, such new systems and novel methods allow mobile subscribers to experience less latency, better QoS, and increased throughput, resulting in better content presentation. Wireless operators can also benefit by reduced expense associated with less redundant capacity, simpler operation and easier maintenance associated with the present invention, as well as becoming the true content provider instead of an intermediary. Content providers also benefit from increased usage of their content.
SUMMARY OF THE INVENTION
The aforementioned deficiencies are overcome by providing an intra-network content engine for processing content requests from a plurality of mobile devices. An exemplary intra-network content engine includes a content gateway configured to analyze and route content requests to a content server. The content server can be a cache server or a mobile content server. The cache server can be configured to receive and store cacheable web content from a controller that is configured to receive the cacheable web content from at least one cacheable web content provider, such as a web server, and route the content to the cache server. The mobile content server can be configured to receive and store the digital media content. The controller can be further configured to receive the digital media content from at least one external content server and route the content to the mobile content server. The content gateway can be further configured to receive non-cacheable web content from at least one non-cacheable web content provider.
An exemplary method for content provisioning via the intra-network content engine includes the steps of receiving a content request; analyzing the content request to determine to which content server the content request should be routed, wherein the content server is one of a cache server and a mobile content server; routing the content request to the cache server, if the requested content is cacheable web content; routing the content request to the mobile content server, if the requested content is digital media content; routing the content request to a non-cacheable web content provider, if the requested content is non-cacheable web content; retrieving the requested content from the appropriate source; and sending the requested content to the requesting mobile device.
A computer-readable medium that includes computer-executable instructions which, when executed, perform the steps of the foregoing method is also provided.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates an exemplary communications system in accordance with an embodiment of the present invention.
FIG. 2 illustrates an exemplary content engine in accordance with an embodiment of the present invention.
FIG. 3 illustrates an exemplary methodology for processing a content request by the exemplary content engine of FIG. 2, according to the present invention.



DETAILED DESCRIPTION OF THE INVENTION
As required, detailed embodiments of the present invention are disclosed herein. It must be understood that the disclosed embodiments are merely exemplary of the invention that may be embodied in various and alternative forms, and combinations thereof. As used herein, the word “exemplary” is used expansively to refer to embodiments that serve as an illustration, specimen, model or pattern. The figures are not necessarily to scale and some features may be exaggerated or minimized to show details of particular components. In other instances, well-known components, systems, materials or methods have not been described in detail in order to avoid obscuring the present invention. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a basis for the claims and as a representative basis for teaching one skilled in the art to variously employ the present invention.
Referring now to the drawings wherein like numerals represent like elements throughout the several views, FIG. 1 illustrates a communications network 100 in which the present invention may be implemented. Multiple access network types may be used to access content provided by a content engine 102 in accordance with various embodiments of the present invention. By way of example and not limitation, the illustrated access network types include a GSM/EDGE Radio Access Network (GERAN) 104, a UMTS Terrestrial RAN (UTRAN) 106, a Wireless LAN access system (WLAN) 108, and a Long term Evolution access (LTE) system 110. Corresponding mobile devices 112 are illustrated as being in communication with the various access networks.
The GERAN 104 and UTRAN 106 are illustrated as being in communication with a GPRS core network 114 that may be further configured with an inter-network function 116 to facilitate communication with the WLAN 108. The WLAN 108 is also in communication with a System Architecture Evolution (SAE) core 118 that in turn in communication with an IMS (IP Multimedia Subsystem) core 120 and the LTE access system 110. The IMS core 120 is also in communication with the GPRS core network 114.
The GPRS core network 114, IMS core 120 and SAE core 118 are each in communication with one or more corporate content servers 122. A corporate content server 122 can provide operator-originated content; that is, content that does not originate from an external content provider. For example, proprietary ringtones, music files, videos and the like may be provided by a corporate content server 122. Although illustrated as a separate network element, the corporate content server(s) 122 may be included in the content engine 102.
The GPRS core network 114 and SAE core 118 are also in communication with the content engine 102 that in turn is in communication, via a firewall 124, with external content providers 126. As illustrated, the external content providers 126 can provide non-cacheable and cacheable web content, such as websites and web applications, and other content. Other content can include digital media content, for example, e-books, ringtones, ringback tones, music files, video files, movies, video games, news feeds (e.g., via RSS (Real Simple Syndication)), sports score feeds, weather, and other content made available via one or more external content providers.
The content engine 102 is also in communication with other non-3GPP systems 132, in which the present invention may also be practiced. The content engine 102 is now described below with reference to FIG. 2.
FIG. 2 illustrates a content engine 102 in accordance with an exemplary embodiment of the present invention. The illustrated content engine 102 includes a controller 200, a cache server 202, a content format modifier 204, a content gateway 206, and a mobile content server 208. The functionality of each of these elements is described below in detail.
The controller 200 provides gateway functionality to content provisioning systems, such as the external content providers 126. The controller 200 may include the firewall 124 and may perform filtering functions in accordance with filtering parameters determined by the operator. The controller 200 is also configured to route content within the engine to the appropriate processing components.
To the external content providers 126, the controller 200 performs client functions to cache websites and load content. In certain implementations, it may be beneficial to provide formatted content for a mobile device type or specific device configuration. In these implementations, the controller 200 can route content to the content format modifier 204 for reformatting content to adhere to specifications of the requesting mobile device. Afterwards, the reformatted content can be sent to the mobile content server 208 and stored. Content that does not need to be reformatted can be sent directly to the mobile content server 208.
For cacheable websites, the controller 200 forwards the content to the cache server 202 to be cached. From the mobile device perspective, the controller 200 may be invisible and the content provided to the mobile device may be presented as it would if the content was delivered directly from the original content provider.
Web content that is updated or refreshed may be done so automatically or based upon a schedule maintained by the controller or the cache server. These setting may be configured by the operator or by the client device.
The cache server 202 is configured to function as a website server for cacheable web content. Cacheable content is received by the controller 200 and forwarded to the cache server 202 for storage. The cache server 202 provides pre-caching of web content in an effort to reduce latency and improve access time for the mobile devices 112.
The content gateway 206 may be configured to determine if incoming content should or should not be cached. By way of example, content sent from virtual private networks (VPN), such as in many enterprise applications, are not cacheable. Private data, such as that exchanged in web sessions with bank accounts or personal email accounts are other examples of non-cacheable content.
In one embodiment, the content gateway 206 can be configured to store and maintain a lookup table of the current cache in the cache server 202. Likewise, the cache server 202 may be configured to send updates to the content gateway 206 on an as-needed or periodic basis to update the lookup table. The content gateway 206 may also store a record of all content requests and may itself request that specific websites be cached; for example, if access to a website exceeds a pre-determined threshold value, then a request may be sent to the cache server requesting that the website be cached for future use. Either or both of the content gateway 206 and the cache server 202 may be configured with a plurality of rules to determine if a website is cacheable and if a website needs to be cached, based upon previous usage data, for example. Generally, the caching rules can be developed based upon the business needs of the mobile operator.
The mobile content server 208 is the digital media content server to the network subscribers. The digital media content received from the external content providers is formatted (if necessary) and readied to be sent to the mobile device 112 via the content gateway 206 upon request. Maintaining all content within the operator's network as opposed to the operator substituting as an intermediary between the end user and the content provider allows the mobile operator to provide content with less latency, better QoS, and increased throughput, resulting in better content presentation
The content gateway 206 provides an interface to the packet core network. For 3GPP applications, such as the illustrated embodiment, the Gi interface is used. The content gateway 206 receives requests from mobile devices and routes the request to the mobile content server 208 for content such as ringtone, music, or videos. For cacheable content, the requests are routed to the cache server 202. The content gateway 206 also routes the requested content to the mobile devices 112 from these elements.
The content gateway 206 may also be configured with firewall and/or filtering functions to reduce potential contamination of the content being exchanged between the content engine 102 and the mobile devices 112, and to reduce the likelihood of a security breach.
The content gateway 206 may be further configured to steer traffic by maintaining an index of all available websites, applications, and individual content currently or scheduled to be available from the cache server 202 and/or mobile content server 208. Lookup tables for the cache server 202 and/or the mobile content server 208 may provide this information. The lookup tables may be updated by the host server (i.e., either the cache server 202 or the mobile content server 208) via periodic updates or as-needed.
Service management functions 210 and administrative functions 212 are also in communication with the content engine 102. Service management functions can include, but are not limited to, maintaining licensing agreements for copyright protected content. Administrative functions 212 can include content engine 102 software, hardware, or firmware upgrades, and account management features, such as account creation, account closure, and communication with the operator's billing system to bill for billable content.
Referring now to FIG. 3, a flow diagram of an exemplary method for provisioning content via an inter-network content engine, such as content engine 202, is illustrated. The method 300 begins and proceeds to step 302 wherein a content request is received at the content gateway 206. The content gateway 206 can determine, based upon information in the content request, the type of content that is being requested. More particularly, whether the content is web content, or other content, such as a digital media content. This determination is illustrated as step 304.
If it is determined that the content is web content, flow proceeds to step 306 wherein a determination is made as to whether the web content is cached. If the content is not cached, flow proceeds to step 308 wherein a determination is made as to whether the web content is cacheable. This determination may be made by processing the request in accordance with a plurality of rules to determine if the content is cacheable. Moreover, historical data such as provided by lookup table records may be used to aid in this determination.
If it is determined that the content is not cacheable, flow proceeds to step 310 wherein the requested content is retrieved from the external content provider 126 associated with the requested content. For example, the external content provider 126 may be a bank account server that contains personal data that should not be cached. The content gateway 206 then sends the requested content to the requesting mobile device 112 at step 312. If, however, it is determined that the content is cacheable, the content gateway 206 forwards the content request to the controller 200 at step 314. The controller 200 can then retrieve the content and send the content to the content gateway 206 at step 316. The content gateway 206 can forward the content to the requesting mobile device 112 at step 312.
If the content is cached, as determined in step 306, the content gateway 206 can forward the content request to the cache server 202 at step 318. The content gateway 206 receives the content from the cache server 202 at step 320 and forwards the content to the requesting mobile device 112 at step 312.
If it is determined at step 304 that the content request type is for other content, the flow proceeds to step 322 and the content gateway 206 retrieves the requested content from the mobile content server 208. The request may include a device type or other device specifications for which the requested content is to be formatted. By way of example and not limitation, this information may be provided via an International Mobile Equipment Identity (IMEI) or by at least one of the make, model, and revision of the mobile device. The mobile content server 208 may be configured to store a plurality of different configurations for the stored content, such as the most often used format types. In this embodiment, the mobile content server 208 could retrieve the appropriately formatted content and return it to the content gateway 206. The content gateway 206 then forwards the content to the requesting mobile device 112 at step 312.
The law does not require and it is economically prohibitive to illustrate and teach every possible embodiment of the present claims. Hence, the above-described embodiments are merely exemplary illustrations of implementations set forth for a clear understanding of the principles of the invention. Variations, modifications, and combinations may be made to the above-described embodiments without departing from the scope of the claims. All such variations, modifications, and combinations are included herein by the scope of this disclosure and the following claims.

## Claims

1. A method comprising:
receiving, at a content engine and from a mobile device, a request for content;
determining if access to the content has exceeded a threshold value;
retrieving, if access to the content has not exceeded the threshold value, the content in response to the request;
modifying, at a content format modifier of the content engine and by utilizing instructions from a memory that are executed by a processor, the content based on specifications of the mobile device to create modified content formatted for the mobile device,
wherein the specifications are associated with one of a hardware component, a software component, and a firmware component of the mobile device, and
wherein the specifications are identified by a make of the mobile device, a firmware version of the mobile device, and a revision number of the mobile device; and

sending the modified content to the mobile device, wherein the modified content is sent to the mobile device based in part on an index of available content.

2. The method of claim 1, wherein the content is associated with one of cached web content stored in a cache server of the content engine, non-cacheable web content provided by a non-cacheable web content provider that is in communication with the content engine, and digital media content stored in a digital media content server of the content engine.

3. The method of claim 2, further comprising:
analyzing the request to determine to which of the digital media content server, the cache server, and the non-cacheable web content provider the request should be routed; and
routing the request to one of the digital media content server, the cache server, and the non-cacheable web content provider based upon the analysis.

4. The method of claim 3, further comprising analyzing the request to determine where the request should be routed by comparing the content to a lookup table, which is stored within the content engine and is indicative of the cached web content stored in the cache server, to determine if the content is cached in the cache server.

5. The method of claim 4, further comprising updating, by utilizing the cache server, the lookup table to reflect changes to cache server content stored by the cache server.

6. The method of claim 3, further comprising analyzing the request, based on a rule, to determine where the request should be routed.

7. The method of claim 6, wherein the rule is a caching rule that defines which type of content of a plurality of content types the content engine should cache in the cache server.

8. A content engine, comprising:
a memory that stores instructions;
a processor that executes the instructions to perform operations, the operations comprising:
receiving, by utilizing a content gateway of the content engine, a request for content from a mobile device;
determining if access to the content has exceeded a threshold value;
retrieving, if access to the content has not exceeded the threshold value, content in response to the request, wherein the content is retrieved by utilizing the content gateway;
modifying, by utilizing a content format modifier of the content engine, the content based on specifications of the mobile device to create modified content formatted for the mobile device,
wherein the specifications are associated with a hardware component, a software component, and a firmware component of the mobile device, and
wherein the specifications are identified by a make of the mobile device, a firmware version of the mobile device, and a revision number of the mobile device; and

sending the modified content to the content gateway for delivery to the mobile device, wherein the modified content is sent to the mobile device based in part on an index of available content.

9. The content engine of claim 8, wherein the content is associated with one of cached web content stored in a cache server, non-cacheable web content provided by a non-cacheable web content provider that is in communication with the content engine, and digital media content stored in a digital media content server.

10. The content engine of claim 9, wherein the cache server and the digital media content server are components of the content engine.

11. The content engine of claim 9, wherein the operations further comprise:
analyzing, by utilizing the content gateway, the request to determine to which of the digital media content server, the cache server, and the non-cacheable web content provider the request should be routed; and
routing, by utilizing the content gateway, the request to one of the digital media content server, the cache server, and the non-cacheable web content provider based upon the analysis.

12. The content engine of claim 11, wherein the operations further comprise analyzing the request to determine where the request should be routed by comparing the content to a lookup table, which is stored within the content engine and is indicative of the cached web content stored in the cache server, to determine if the content is cached in the cache server.

13. The content engine of claim 12, wherein the operations further comprise updating, by utilizing the cache server, the lookup table to reflect changes to cache server content stored by the cache server.

14. The content engine of claim 11, wherein the operations further comprise analyzing, based on a rule, the request to determine where the content request should be routed.

15. The content engine of claim 14, wherein the rule is a caching rule that defines which type of content of a plurality of content types the content engine should cache in the cache server.

16. A non-transitory computer-readable medium of a content engine comprising computer-executable instructions, which, when loaded and executed by a processor, cause the processor to perform operations, the operations comprising:
receiving a request for content from a mobile device;
determining if access to the content has exceeded a threshold value;
retrieving, if access to the content has not exceeded the threshold value, the content in response to the request;
modifying the content based on specifications of the mobile device to create modified content formatted for the mobile device,
wherein the specifications are associated with a hardware component, a software component, and a firmware component of the mobile device, and
wherein the specifications are identified by a make of the mobile device, a firmware version of the mobile device, and a revision number of the mobile device; and

sending the modified content to the mobile device, wherein the modified content is sent to the mobile device based in part on an index of available content.

17. The non-transitory computer-readable medium of claim 16, wherein the content is associated with one of cached web content stored in a cache server of the content engine, non-cacheable web content provided by a non-cacheable web content provider that is in communication with the content engine, and digital media content stored in a digital media content server of the content engine.

18. The non-transitory computer-readable medium of claim 17, wherein the operations further comprise:
analyzing the request to determine to which of the digital media content server, the cache server, and the non-cacheable web content provider the request should be routed; and
routing the request to one of the digital media content server, the cache server, and the non-cacheable web content provider based upon the analysis.

19. The non-transitory computer-readable medium of claim 17, wherein the operations further comprise:
analyzing the request to determine where the content request should be routed;
comparing the content to a lookup table, which is stored within the content engine and is indicative of the cached web content stored in the cache server, to determine if the content is cached in the cache server.

20. The non-transitory computer-readable medium of claim 16, wherein the operations further comprise determining if the content is cached, wherein the operations further comprise determining if the content is cacheable if the content is determined to not be cached, and wherein the operations further comprise determining that the content is cacheable based on historical data provided by a lookup table.