Patent Description:
A content delivery network (CDN) refers to a geographically distributed group of servers, such as proxy servers and their data centers, which work together to provide fast delivery of internet content by distributing a content delivery service spatially relative to end users. The CDN is a layer in the internet ecosystem. The CDN allows for the quick transfer of assets needed for loading internet content including HTML pages, JavaScript files, stylesheets, images, and videos. The popularity of CDN services continues to grow, and today a majority of web traffic is served through the CDN, including traffic from various websites of internet providers (i.e., content providers or content publishers).

<CIT> is directed to systems and methods for providing data caching within a mobile access network which include deploying data cache(s) in association with one or more network nodes configured to manage communications between the mobile access network and external data networks. Upon a content provider network receives a data request from a client device via the mobile access network, the content provider network can determine whether the requested data is cached in one of the network nodes managing communications with the content provider network. If a network node is determined, the content provider network can redirect the client device to the determined network node. The client device can then request the data from the determined network node. The network node can determine a caching server storing the requested data and redirecting the client device to the caching server.

<CIT> is directed to a method of managing a data connection between a user device and a network of content caches, the user device and content caches being connectable via a network of gateway servers. The method comprises: in response to a request for content data issued by the user device, receiving content location data stored within at least one content cache from a content locator unit; determining which one of the caches is the closest to the user device; determining whether the packet data connection could be better served using a different gateway server; and if it is determined that a different gateway server should be used, causing the current data connection to move from the current gateway server to the different gateway server.

Particular examples described herein provide a mobile device with an integrated content delivery service in a mobile network domain. This is accomplished by controlling a mobile gateway and one or more mobile caching gateways deployed in a mobile communication network to optimize how content is delivered to the mobile device. In particular embodiments, the mobile gateway (e.g., <NUM> in <FIG>) may be in direct communication with caches, such as a caching gateway (e.g., <NUM> in <FIG>) and/or a caching gateway with content delivery network capabilities (e.g., <NUM> in <FIG>). The mobile gateway and the caching gateway are all deployed in the mobile network domain. A mobile gateway controller (e.g., <NUM> in <FIG>) may monitor a network and decide whether to have the mobile gateway communicate directly with a content provider (e.g., <NUM> in <FIG>) via internet protocol or have the mobile gateway communicate directly with one of the caching gateways (e.g., <NUM> or <NUM> in <FIG>). In case the content delivery could be serviced by the caching gateway, a client profile may be created and used to determine how the content will be delivered.

As described herein, embodiments include various elements and limitations, with no one element or limitation contemplated as being a critical element or limitation. Each of the claims individually recites an aspect of the embodiment in its entirety. Moreover, some embodiments described may include, but are not limited to, inter alia, systems, networks, integrated circuit chips, embedded processors, ASICs, methods, and computer-readable non-transitory media containing instructions. One or multiple systems, devices, components, etc., may comprise one or more embodiments, which may include some elements or limitations of a claim being performed by the same or different systems, devices, components, etc. A processing element may be a general processor, a task-specific processor, a core of one or more processors, or other co-located, resource-sharing implementation for performing the corresponding processing. The embodiments described hereinafter embody various aspects and configurations, with the figures illustrating example and non-limiting configurations. The term "apparatus" is used consistently herein with its common definition of an appliance or device. The term "gateway" is used as "a network node" or "network entity" which are used consistently herein with apparatus as described above.

The steps, connections, and processing of signals and information illustrated in the figures, including, but not limited to, any block and flow diagrams and message sequence charts, may typically be performed in the same or in a different serial or parallel ordering and/or by different components and/or processes, threads, etc., and/or over different connections and be combined with other functions in other embodiments, unless this disables the embodiment or a sequence is explicitly or implicitly required (e.g., for a sequence of read the value, process said read value--the value must be obtained prior to processing it, although some of the associated processing may be performed prior to, concurrently with, and/or after the read operation). Also, nothing described or referenced in this document is admitted as prior art to this application unless explicitly so stated.

The term "one embodiment" is used herein to reference a particular embodiment, wherein each reference to "one embodiment" may refer to a different embodiment, and the use of the term repeatedly herein in describing associated features, elements and/or limitations does not establish a cumulative set of associated features, elements and/or limitations that each and every embodiment must include, although an embodiment typically may include all these features, elements and/or limitations. In addition, the terms "first," "second," etc., as well as "particular" and "specific" are typically used herein to denote different units (e.g., a first widget or operation, a second widget or operation, a particular widget or operation, a specific widget or operation). The use of these terms herein does not necessarily denote an ordering such as one unit, operation or event occurring or coming before another or another characterization, but rather provides a mechanism to distinguish between element units. Moreover, the phrases "based on x" and "in response to x" are used to indicate a minimum set of items "x" from which something is derived or caused, wherein "x" is extensible and does not necessarily describe a complete list of items on which the operation is performed, etc. The term "or" is inclusive and not exclusive, unless expressly indicated otherwise or indicated otherwise by context. Additionally, the transitional term "comprising," which is synonymous with "including," "containing," or "characterized by," is inclusive or open-ended and does not exclude additional, unrecited elements or method steps. Finally, the term "particular machine," when recited in a method claim for performing steps, refers to a particular machine within the <NUM> USC § <NUM> machine statutory class.

<FIG> illustrates an example of a network architecture <NUM> for content delivery through a mobile access network and an internet network. Referring to <FIG>, a mobile device <NUM> may wish to obtain content from a content publisher <NUM>. To do so, the mobile device <NUM> may connect to a cellular base station <NUM>, which in turn may connect, through a mobile access network <NUM>, a mobile gateway <NUM>. A mobile gateway controller of the mobile gateway <NUM> may ensure that the mobile device <NUM> remains associated with the correct mobile gateway <NUM>. Through the mobile gateway <NUM>, outbound data sent by the mobile device <NUM> may be packaged for IP routing and incoming IP packets may be routed to the intended mobile device <NUM>. For example, when the mobile device <NUM> sends a request, the mobile gateway <NUM> may translate the mobile device's data into IP packets and send them through the internet network <NUM> to the content publisher <NUM>. The content publisher <NUM>, which may make content available via a server connected to the internet network <NUM>, may then process the request from the mobile device <NUM> and send back the requested content. To enhance delivery performance, the content publisher may use a caching mechanism, such as those provided by a CDN.

While the caching mechanism described above could improve content delivery performance and efficiency generally, it is not optimal for content that is delivered to mobile devices <NUM>. Notably, the aforementioned caching mechanism is provided after internet <NUM>. This means that the benefits of the caching mechanism would not be realized until after the request from the mobile device <NUM> is packaged into IP packets and routed through the internet <NUM>. Although the architecture of such a caching mechanism may provide caching benefits to any device requesting content via the internet <NUM>, it is not optimal for mobile devices since these devices may be geographically spread and that information is obscured from the content publisher or CDN. With content being increasing consumed via mobile devices <NUM>, an improved content delivery architecture is needed for mobile devices.

<FIG> illustrates an example of an architecture <NUM> of an integrated content delivery system that is integrated with a mobile gateway system. In particular embodiments, the mobile gateway system is designed to adaptively provide traditional distributed content delivery service (e.g., as described with reference to <FIG>) and an optimized content delivery service for devices within a mobile network domain. The mobile gateway system is designed to help distribute content quickly, reliably, and security in response to content requests from mobile devices. As will be described in more detail below, the mobile gateway system provides a mobile gateway <NUM> with local caching mechanisms (e.g., via a caching gateway or an integrated caching capability) so that the benefit of caching can be realized earlier in the content delivery process. In particular, by equipping mobile gateways <NUM> with a caching mechanism, content requests from a mobile device could be serviced by the mobile gateway <NUM>'s caching mechanism. This new architecture obviates the need for translating the content request into public IP packets, routing the packets through the internet <NUM>, obtaining the desired cached content from a server associated with the content publisher <NUM>, and routing the content back to the mobile gateway <NUM>.

In <FIG>, the mobile gateway system for integrating the content delivery service may comprise, but not limited to, mobile gateway <NUM> and mobile gateway controller <NUM>. The mobile gateway system may be integrated with one or more caching gateways <NUM> and <NUM>, which could be implemented as a subsystem, capability, or function that is controlled by the mobile gateway system. Such mobile gateway systems may be spatially distributed across a mobile network, with each being able to perform content-delivery optimizations based on network traffic, content type, quality of service, network policies, security protocol, etc. Although <FIG> illustrates an example where a mobile gateway <NUM> is associated with two mobile caching gateways <NUM> and <NUM>, it should be understood that any number of mobile caching gateway may be associated with any mobile gateway <NUM>. As previously mentioned, embodiments of the mobile gateway described herein provide several benefits over traditional systems. As described in <FIG>, the content delivery service is provided by the content publisher <NUM> to the mobile device <NUM> via the internet network <NUM>. The mobile gateway <NUM> in <FIG> performs the function of transforming cellular requests sent by the mobile device <NUM> into IP packets in order to be transmitted via the internet network <NUM>, and the benefits of content caching is not realized until later in the process when the IP packets are received by the content publisher <NUM> or its content delivery network. In contrast, the mobile gateway <NUM> in <FIG> may be controlled by the mobile gateway controller <NUM> to directly communicate with the caching gateway <NUM> and/or <NUM> such that the mobile gateway <NUM> can retrieve a copy of the content locally stored at the caching gateways <NUM> and/or <NUM>, if the content has already been cached. If the content has not yet been cached, the caching gateway <NUM> or <NUM> may request the content from the content publisher <NUM> and cache it for subsequent retrieval. Detailed descriptions about respective components are followed hereinafter.

In one embodiment, referring to <FIG>, the mobile gateway <NUM> may enable secure connectivity between the mobile device <NUM> and the network entities (e.g., the mobile gateway controller <NUM>, the caching gateways <NUM> and <NUM>, and the content publisher <NUM> shown in <FIG>). For the secure connectivity, the mobile gateway <NUM> may perform functions for treatment of traffic data in suitable and designated format to communicate with the network entities based on network policies and capabilities. The mobile gateway <NUM> may associate and communicate with the mobile gateway controller <NUM> via a dedicated interface (e.g., "interface <NUM>" shown in <FIG>). The mobile gateway <NUM> may directly communicate with the caching gateways <NUM> and <NUM> via a dedicated interface (e.g., "interface <NUM>" shown in <FIG>), and further communicate with the content publisher <NUM> via internet interface <NUM> (i.e., "interface <NUM>" shown in <FIG>). That is, the mobile gateway <NUM> may select, under the control of the mobile gateway controller <NUM>, one or more routes from three traffic routs to be used for providing the content delivery service in the mobile network domain. The mobile base station <NUM> may send, to the mobile gateway <NUM>, a request for delivering a specific content (e.g., a video streaming), which is originated from the mobile device <NUM>, through the mobile access network <NUM> via interface <NUM> (e.g., GTP tunnel protocol) in <FIG>. The mobile gateway <NUM> may send a message including the request back to the mobile gateway controller <NUM> such that the mobile gateway controller <NUM> checks if the mobile device <NUM> and its request have a capability (i.e., an enhanced capability to use the mobile caching gateways within the mobile network domain) to receive the content delivery service from the mobile gateway system <NUM>. The message may include information related to a status of the mobile device and a status of the requested content, indicating various parameters (or factors), for example, but not limited to, a traffic type of the requested content, traffic intensity, authenticity and authorization of the mobile device <NUM>, quality of service (QoS), security, timelines, etc. In another embodiment, the mobile gateway <NUM> may be integrated with the mobile gateway controller <NUM> or stand-alone entity separately from the mobile gateway controller <NUM>.

In one embodiment, if the requested content is determined to be a specific content, which may be predetermined to set up as, for example, but not limited to, a traffic type, a traffic congestion, a user preference, a factory default, emergency, or network policy in the mobile device <NUM>, the mobile device <NUM> may directly connect from the mobile base station <NUM> to a dedicated mobile subsystem (e.g., "offload mobile gateway <NUM>" in <FIG>) via a dedicated interface (e.g., "interface <NUM>" shown in <FIG>) without passing through the mobile access network <NUM> (e.g., the mobile access network may be embodied such as, for example, but not limited to, access point name (APN) or virtual private network (VPN)). Herein, the offload mobile gateway <NUM> may be controlled by the mobile gateway controller <NUM> to perform functions for delivering a copy of the specific content to the mobile device <NUM> or retrieving the specific content from the content publisher <NUM> via the mobile gateway <NUM>. When the offload mobile gateway <NUM> delivers the specific content using the content publisher <NUM>, the offload mobile gateway <NUM> may receive, for example, but not limited to, a device profile, a user profile, meta data, identifier for a mobile gateway (e.g., identifier for the caching gateway <NUM>) from the mobile gateway controller <NUM> on which the offload mobile gateway <NUM> communicates with the caching gateway <NUM> via a dedicated interface (e.g., "interface <NUM>" shown in <FIG>) to retrieve the specific content stored at the content publisher <NUM>.

In one embodiment, the mobile gateway controller <NUM> may control the mobile gateway <NUM> and one or more caching gateways (e.g., <NUM> and <NUM> deployed in the mobile network domain) to perform functions for delivering the content requested from the mobile device <NUM>. When the mobile gateway controller <NUM> receives the request for content delivery, the mobile gateway controller <NUM> may perform a capability check to determine whether the mobile device <NUM> and/or the mobile gateway <NUM> have an enhanced capability to support the enhanced content delivery service provided within the mobile network domain. The mobile gateway controller <NUM> may identify if the mobile device <NUM> and the requested content have the enhanced capability by analyzing the various parameters (information or factors), for example, but not limited to, the traffic type of the requested content, the traffic intensity, the authenticity and authorization of the mobile device <NUM>, the quality of service (QoS), the security, the timeliness, etc., with respect to the status of the mobile device <NUM> and the status of the requested content, based on the information of the requested content and the mobile device which is included in the request sent by the mobile gateway <NUM>. That is, the mobile gateway controller <NUM> may determine whether the requested content can be provided to the mobile gateway <NUM> through at least one of the one or more caching gateways via the dedicated interface protocol (e.g., "interface <NUM>"in <FIG>). To perform the capability check, the mobile gateway controller <NUM> may obtain meta data associated with the mobile device <NUM> through the request. The mobile gateway controller <NUM> may obtain meta data associated with mobile gateway <NUM> and/or the caching gateway <NUM>/<NUM> to determine whether the enhanced content delivery service is supported. The mobile gateway controller <NUM> may access the meta data stored locally or obtain it from the mobile gateway <NUM> and/or the caching gateway <NUM>/<NUM> via, respectively, the dedicated interface protocol of interface <NUM> and/or the dedicated interface protocol of interface <NUM>.

In one embodiment, if the mobile gateway controller <NUM> determines that the mobile device <NUM> and/or the requested content are subject to, and ensured to set up, the enhanced capability for the content delivery service eligible to be served within the mobile network domain, the mobile gateway controller <NUM> may send instructions (hereinafter referred to as "first instructions" for convenience of descriptions) to cause the mobile gateway <NUM> to directly communicate with the one or more caching gateways (e.g., the caching gateways <NUM> and <NUM>) via a dedicated interface protocol (e.g., "interface <NUM>" in <FIG>) and to thereby obtain the requested content from the one or more caching gateways. Further, the mobile gateway controller <NUM> may generate "a traffic quality profile" and/or "a mobile profile" (or "a device profile") with respect to the requested content and the mobile device <NUM>, and then transmit the generated traffic quality profile and the generated mobile profile to the one or more caching gateways (e.g., the caching gateways <NUM> and <NUM>) via a dedicated interface protocol (e.g., "interface <NUM>" shown in <FIG>). Herein, the traffic quality profile may indicate information related to a traffic of a mobile network system and include information for at least one of, for example, but not limited to, the quality of service (QoS), the security, the traffic type (e.g., a content type, a content size, etc.), network policy or a traffic congestion. The mobile profile may indicate information related to the mobile device <NUM> and may include information for at least one of, for example, but not limited to, a device type, authentication, authorization, subscription, or a user profile. The mobile gateway controller <NUM> may further identify (or determine) which caching gateway is suitable to perform a caching process for the requested content based on at least one of, for example, but not limited to, (<NUM>) routing metrics, (<NUM>) traffic congestion status associated with the one or more caching gateways, or (<NUM>) a historical record to have previously performed the caching process for the requested content. That is, the mobile gateway controller <NUM> may select a specific caching gateway from among the one or more caching gateways to perform a caching process for the requested content. The mobile gateway controller <NUM> may send other instructions (hereinafter, referred to as "third instructions" for convenience of descriptions), which include the traffic quality profile and/or the mobile profile, to cause at least one of the one or more caching gateways to verify with the content publisher whether the mobile device <NUM> has permission to access the requested first content.

In one embodiment, in case the mobile device <NUM> may not be authorized nor authenticated to use the mobile gateway caching system, the mobile gateway controller <NUM> may determine that the mobile device <NUM> and/or the requested content are not subject to, nor ensured to set up, the enhance capability for the content delivery service served within the mobile network domain. The mobile gateway controller <NUM> may control the mobile gateway <NUM> to provide the requested content using a traditional route, i.e., within an internet domain, not the mobile network domain. To do so, the mobile gateway <NUM> may perform the functions for providing the mobile device <NUM> with the requested content in such a manner as described in <FIG>. That is, the mobile gateway controller <NUM> may send other instructions (hereinafter, referred to as "second instructions" for convenience of descriptions) to the mobile gateway <NUM> to cause the mobile gateway <NUM> to directly communicate with the content publisher <NUM> through the internet <NUM> via dedicated interface protocols (e.g., "interface <NUM>" and "interface <NUM>" in <FIG>) and to thereby obtain the requested content from the content publisher <NUM>.

In one embodiment, the mobile caching gateways may be embodied to be separate caching gateway functions (i.e., network entities) (e.g., separate caching gateway <NUM> in <FIG>). The mobile caching gateways may be also embodied to be integrated caching gateway functions included within the mobile gateway system <NUM> (e.g., integrated caching gateway <NUM> in <FIG>). In another embodiment, the mobile caching gateway may perform various functions to operate as a caching gateway as well as a content delivery gateway. The mobile caching gateways <NUM> and <NUM> may receive the traffic quality profile and mobile profile, included in the third instruction, from the mobile gateway controller <NUM>. Both or either of the mobile caching gateways <NUM> and <NUM> may be selected by the mobile gateway controller <NUM>, to perform functions for delivering the requested content which the mobile device <NUM> requests. The mobile caching gateways <NUM> and <NUM> may then determine what content is needed based on the requested content's status, the traffic quality profile and the mobile profile. If the requested content is available to retrieve in non-transitory record media (i.e., cache) of the mobile caching gateways <NUM> and <NUM> (i.e., if the requested content is determined to have the enhanced capability), they may deliver a local copy for the requested content to the mobile gateway <NUM> via the dedicated interface protocol (e.g., "interface <NUM>" in <FIG>). If the mobile caching gateways <NUM> and <NUM> have no local copy of the requested content, they may send the content publisher <NUM> a request message for a new copy and caching for the requested content via a dedicated interface protocol (e.g., "interface <NUM>" in <FIG>). The mobile caching gateways <NUM> and <NUM> may send the new copy to the mobile gateway <NUM>. When the mobile caching gateways <NUM> and <NUM> request the new copy, they may ask whether a particular user of the mobile device <NUM> has subscription or authentication to access the requested content by sending an authentication message to the content publisher <NUM> via interface <NUM>.

In one embodiment, when the mobile caching gateways <NUM> and <NUM> request the requested content to the content publisher <NUM>, the mobile caching gateways <NUM> and <NUM> may request a redirection message for delivering the mobile caching gateways <NUM> and <NUM> the requested content via the dedicated interface protocol (i.e., interface <NUM> in <FIG>), not via the internet (i.e., interface <NUM> in <FIG>). For example, the mobile caching gateways <NUM> and <NUM> may request the content publisher <NUM> for a hypertext transfer protocol (HTTP) redirection. This means that when the mobile device <NUM> (or an application installed in the mobile device <NUM> using a specific web protocol) is seen by the content publisher <NUM>, the content publisher <NUM> may switch uniform resource locator (URL) corresponding to the requested content from its original internet URL to an address of the mobile caching gateways <NUM> and <NUM>. As another example, the mobile caching gateways <NUM> and <NUM> may request the content publisher <NUM> for an IP redirection. This means that the mobile device <NUM> or an application installed in the mobile device <NUM> uses a specific IP endpoint method such as domain name system (DNS) including proxy, routing change or similar, the mobile caching gateways <NUM> and <NUM> may request the content publisher <NUM> to establish a preferred endpoint for the requested content as the caching gateway. As another example, the mobile gateway controller <NUM> and the mobile caching gateways <NUM> and <NUM> may create a specific network (e.g., a virtual private network (VPN) or an Access Point Name (APN)) to provide the mobile device <NUM> with the requested content via a traffic tunnel established by the specific network.

<FIG> illustrates an example of a control loop of integrated content delivery in the mobile gateway system. <FIG> is an example embodiment in which a separate caching gateway and an integrated caching gateway are both deployed in the mobile network domain of the mobile gateway system. The control loop may be executed by a controller. The controller may be interpreted to be, for example, but not limited to, a logical function or a logical network entity which includes, for example, the mobile network system itself, an integrated entity comprising both the mobile gateway <NUM> and the mobile gateway controller <NUM>, or the mobile gateway controller <NUM> only. Referring to <FIG>, when the controller (e.g., the mobile gateway controller <NUM> in <FIG>) receives the request for delivering the content (e.g., a specific video streaming), in step <NUM>, the controller may check if the mobile device and/or the mobile gateway has the enhanced capability to support the enhanced content delivery service provided within mobile network domain, using the mobile caching gateways deployed in the mobile network domain. If the mobile device and/or the mobile gateway is determined to have no enhanced capability, the requested content may be provided by the content publisher <NUM> through a traditional distributed content delivery system, as illustrated in <FIG>, using an internet network infrastructure, i.e., in the internet domain (step <NUM>). If the mobile device and/or the mobile gateway is determined to have the enhanced capability, the requested content may be identified to be processed by creating the traffic quality profile based on the status of the content and the network policy (step <NUM>). In step <NUM>, if the request for delivering the content delivery is requested in the mobile network domain, the controller may then determine whether the requested content is provided through the integrated caching gateway or through the separate caching gateway (step <NUM>). If the requested content is determined to be provided through the integrated caching gateway, the controller may create a mobile profile (i.e., "a local mobile profile" adapted for the integrated caching gateway) based on the status of the requested content and the network policy related to the integrated caching gateway (step <NUM>) and then push a traffic for the requested content to the local functions for the content delivery to receive the requested content from the content publisher (step <NUM>). If the requested content is determined to be provided through the separate caching gateway, the controller may create a mobile profile (i.e., "a distributed mobile profile" adapted for the separate caching gateway) based on the status of the requested content and the network policy related to the separate caching gateway (step <NUM>) and then push a traffic for the requested content to the local functions (i.e., the separate caching gateway) for content delivery to receive the requested content from the content publisher (step <NUM>).

<FIG> illustrates an example of a flow chart of an integrated content delivery performed in the mobile network domain. The method may be performed by a computing system (e.g., a mobile gateway system in <FIG>) itself or a controller (e.g., a mobile gateway controller <NUM> in <FIG>) included in the computing system, which is configured to perform functions for the integrated content delivery in the mobile network domain by controlling the mobile gateway (e.g., <NUM> in <FIG>) and one or more caching gateways (e.g., <NUM> and <NUM> in <FIG>). At step <NUM>, and in accordance with the invention, the mobile gateway controller receives a first request for first content provided by the content publisher (e.g., <NUM> in <FIG>) from the mobile gateway associated with the computing system. Herein the first request is sent from the mobile device (e.g., <NUM> in <FIG>) and may be sent through the mobile access network (e.g., <NUM> in <FIG>). At step <NUM>, the mobile gateway controller determines that the first content is to be provided to the mobile gateway through the one or more caching gateways associated with the mobile gateway, based on information associated with the first request and one or more policies. Herein the information associated with the first request may include the status of the first content which indicates various parameters (or factors), for example, but not limited to, a traffic type of the requested content, a user preference, authenticity and authorization of the mobile device. The network policies may include, for example, but not limited to, traffic intensity, quality of service (QoS), security, timelines, a traffic congestion, a factory default, emergency, etc. At step <NUM>, the mobile gateway controller performs a process for identifying (or selecting) at least one of the one or more caching gateways to provide the requested first content in the mobile network domain, not in the internet domain such that the identified caching gateway provides the mobile device with delivering the requested content by communicating with the mobile gateway via the dedicated interface protocol (e.g., "interface <NUM>" in <FIG>). When the at least one caching gateway is selected (or identified) from among the one or more caching gateways, the mobile gateway controller sends the mobile gateway first instructions which are configured to cause the mobile gateway to obtain the requested first content from the identified at least one caching gateway, at step <NUM>.

<FIG> illustrates an example of a flow chart of an integrated content delivery performed by the mobile gateway system. Referring to <FIG> and <FIG>, the method may be performed by the mobile gateway system itself or the mobile gateway controller <NUM> included in the computing system, which is configured to perform functions for the integrated content delivery in the mobile network domain by controlling the mobile gateway <NUM> and the one or more caching gateways <NUM> and <NUM>. In one embodiment, the mobile gateway controller <NUM> may receive a request for a specific content, which may be provided by the content publisher <NUM>, from the mobile gateway <NUM> associated with the mobile gateway controller <NUM> via the dedicated interface (e.g., "interface <NUM>" shown in <FIG>), at step <NUM>. Herein the request may be sent from the mobile device <NUM> through the mobile access network <NUM> (e.g., VPN, APN, 3GPP network, etc.). At step <NUM>, the mobile gateway controller <NUM> may determine that the mobile device <NUM> (or a user of the mobile device) and/or the mobile gateway have the enhanced capability to support the enhanced ensure suitability for a content delivery service to be provided within the mobile network domain. If the mobile gateway controller <NUM> determines that the requested content and the mobile device <NUM> have the enhanced capability, the requested content may be serviced with the mobile network domain at steps <NUM> ~ <NUM>. At step <NUM>, the mobile gateway controller <NUM> may identify at least one caching gateway suitable to perform processes for delivering the requested content to the mobile device <NUM>. That is, the at least one caching gateway may be selected by the mobile gateway controller <NUM> from among the one or more caching gateways based on the information of the requested content and the mobile device <NUM> which are sent from the mobile gateway <NUM>. At step <NUM>, if the mobile gateway controller <NUM> determines that the requested content and the mobile device <NUM> have the enhanced capability, the mobile gateway controller <NUM> may generate the traffic quality profile and the mobile profile (i.e., device profile), which include information related to the requested content, the mobile device <NUM> and the network policies, and then send the generated traffic quality profile and the generated mobile profile to the identified at least one mobile caching gateway. At step <NUM>, the mobile gateway controller <NUM> may send first instructions to cause the mobile gateway <NUM> to directly communicate with the identified mobile caching gateway via the dedicated interface protocol (e.g., "interface <NUM>" in <FIG>) such that the mobile gateway <NUM> obtains the requested content from the identified mobile caching gateway. At step <NUM>, when the identified mobile caching gateway receives a request for the content delivery for the requested content from the mobile gateway <NUM>, the identified mobile caching gateway may determine whether it has a local copy of the requested content in its storage. At <NUM>, if the identified caching gateway has the local copy of the requested content, the identified mobile caching gateway may further check whether the requested content requires permission to access or send the copy of the requested content. That is, the identified mobile caching gateway may check if the mobile device is authorized (or authenticated) to use or access the requested content. For example, in case the requested content may be classified to be used for subscribers only, further processes (e.g., steps <NUM> and <NUM> in <FIG>) may be needed for checking permission for delivering the copy of the requested content. At step <NUM>, if the identified caching gateway has the local copy of the requested content and the permission for delivering the requested content is not required, the identified caching gateway may perform functions for caching the requested content such that the mobile gateway obtains the requested content from the identified caching gateway. At step <NUM>, if the permission for delivering the requested content is required, the identified caching gateway may send third instructions, which comprise the mobile profile, to the identified caching gateway via the dedicated interface protocol (e.g., "interface <NUM>" in <FIG>). Herein the third instructions may be configured to cause the identified caching gateway to verify with the content publisher whether the mobile device <NUM> has permission to access the requested content. At step <NUM>, if the mobile device <NUM> has the permission to access the requested content, the identified caching gateway may receive, in response to the third instructions, an indication (or a response message or acknowledge) representing that the mobile device has permission from the content publisher <NUM> to access the requested content. At step <NUM>, the mobile gateway <NUM> may obtain the requested content (i.e., a copy of the requested content cached in the identified caching gateway) from the identified caching gateway through steps <NUM> to <NUM>, and then deliver the obtained content to the mobile device <NUM>. Further, if the identified mobile caching gateway is determined to have the local copy of the requested content at step <NUM>, the identified mobile caching gateway may communicate with the content publisher <NUM> to obtain the requested content (step <NUM>). At step <NUM>, the identified mobile caching gateway may retrieve the requested content from the content publisher <NUM>, send the requested content to the mobile device <NUM> via the dedicated interface protocol (e.g., "interface <NUM>" in <FIG>), and cache the retrieved content to be used for a local copy of the content when it is requested in future.

In one embodiment, if the mobile gateway controller <NUM> determines that the mobile device <NUM> and/or the mobile gateway <NUM> do not have the enhanced capability at step <NUM>, the mobile gateway controller <NUM> may send second instructions to cause the mobile gateway <NUM> to perform processes to obtain the requested content by means of a traditional route, i.e., within the internet domain, not the mobile network domain at step <NUM>. At step <NUM>, the mobile gateway <NUM> may directly communicate with the content publisher <NUM> through the internet <NUM> to obtain the requested content from the content publisher <NUM>, and then deliver the obtained requested content to the mobile device <NUM>.

<FIG> illustrates an example block diagram of a mobile gateway system for an integrated content delivery in which separate caching gateways are spatially deployed in the mobile network domain. <FIG> may provide exemplary embodiments on how to perform various processes of the integrated content delivery serviced within the mobile network domain to thereby obtain advantageous effects for, for example, optimal routing, avoidance of traffic congestion and optimizing the content delivery service. Referring to <FIG>, a mobile device C1 may camp and operate in Atlanta, GA USA. The mobile device C1 may send a request for delivering a specific content to the mobile gateway C4 through a mobile access network C3. To provide the requested content to the mobile device C1, the mobile gateway C4 may have three optional connections to serve the requested content, as follows: (option <NUM>) the mobile gateway C4 may connect to a caching gateway C6 camped in California; (option <NUM>) the mobile gateway C4 may connect to a caching gateway C7 in New York; or (option <NUM>) the mobile gateway C4 may perform internet connectivity C9 to obtain the requested content from content publisher C8 where there may be caches placed and controlled by the content publisher C8. Option <NUM> may be used when the requested content and/or the mobile device C1 do not have the enhanced capability. For determining optimal routing for serving the requested content, the mobile gateway C4 and the mobile gateway controller C5 may construct a metric for the requested content and network policies, and then select (or identify) a caching gateway from the caching gateways C6 and C7 to make a smart decision to use an appropriate caching gateway for serving the requested content. If the mobile gateway C4 is also camping in California, the mobile gateway C5 may determine the caching gateway C6 to be served for the requested content based on the metric, which is constructed by the mobile gateway controller C5, and network information related to least cost transit approach. This embodiment for determining the optimal routing may be applicable to similar solutions to find, for example, route lengths, route charges, topology metrics from algorithms that assist in routing.

In an example embodiment for avoidance of congestion, in case the mobile gateway C4 is not located near either the caching gateway C6 or the caching gateway C7, the mobile gateway C4 may determine to enhance the metrics to take consideration of traffic congestion. For example, if the mobile gateway controller C5 determines that the caching gateway C6 is currently overloaded (as determined by), the mobile gateway controller C5 may select the cache gateway C7 for serving the requested content. In an example embodiment for optimizing the content delivery service, the network topology and effects may be used to serve the requested content. The mobile gateway controller C5 may search or detect a history that other users (or other mobile devices) have previously facilitated that the requested content is cached in the caching gateway C6. The mobile gateway controller C5 may use its metric computation and knowledge of a history for the content delivery services, and the mobile gateway controller C5 may direct a subsequent user (e.g., a user of the mobile device <NUM>) to use the same caching gateway, i.e., the caching gateway C6 rather than the caching gateway C7 according to the metrics computed by the mobile gateway controller C5. As described above in the example embodiments, the mobile gateway C4 and/or the mobile gateway controller C5 may construct specific metrics to optimize the content delivery service. The example embodiments may obtain advantageous effects that network content is served operating within norms (or service intention) of a service provider and rebalancing a value chain in network nodes.

<FIG> illustrates an example of interface protocols defined in a mobile gateway system for an integrated content delivery. A skilled mobile systems architect will observe that some of the interfaces are well defined in the 3GPP standards - for example Interface <NUM> from Mobile Device <NUM> to Mobile BS (Base-station) <NUM> is also referred to by 3GPP standards as Uu - such well defined standards facilitate rapid creation of the various embodiments. Referring to <FIG>, the particular embodiments may provide the integrated content delivery in mobile network domain of the mobile network system using the network entities (or network nodes) such as the mobile gateway <NUM>, mobile gateway controller <NUM>, and the mobile caching gateways <NUM> and <NUM>. To do so, the particular embodiments may define dedicated interface protocols, as described above, such as interface <NUM>, interface <NUM> and interface <NUM> and interface <NUM>. The interface <NUM> is dedicated to interface protocol to communicate between the mobile gateway <NUM> and the mobile gateway controller <NUM>. The interface <NUM> is dedicated to interface protocol to communicate between the mobile gateway controller <NUM> and the mobile caching gateways <NUM> and <NUM>. The interface <NUM> is dedicated to interface protocol to communicate between the mobile caching gateways <NUM> and <NUM> and the content publisher <NUM>. The interface <NUM> is dedicated to interface protocol to communicate between the mobile gateway <NUM> and the mobile caching gateways <NUM> and <NUM>.

<FIG> illustrates an example call flow of a mobile gateway system for an integrated content delivery. Referring to <FIG>, when the mobile gateway <NUM> receives a request for delivering a specific content form the mobile device <NUM> (<NUM>), the mobile gateway <NUM> may send the request to the mobile gateway controller <NUM> via interface <NUM> (<NUM>). At <NUM>, the mobile gateway may transfer data or information elements about a connection to the mobile gateway controller <NUM>. The mobile gateway controller <NUM> may perform a process for computing the metric to be used for performing functions for serving the requested content using the mobile caching gateways <NUM> and <NUM>, based on the data or the information elements sent from the mobile gateway <NUM> (<NUM>). The information may include, for example, information related to quality of service (QoS) and traffic congestion related to connection between the mobile device <NUM> and the mobile gateway <NUM>. The computed metric may include information used for optimal routing, avoidance of traffic congestion, as described above. If the mobile gateway controller <NUM> determines that the mobile device and/or the mobile gateway have no enhanced capability, the requested content may be served in the traditional process (i.e., in internet domain) using internet <NUM>, as described above (<NUM>). That is, the mobile gateway controller <NUM> may send instructions to cause the mobile gateway <NUM> to communicate with the content publisher <NUM> (<NUM>). In response to the instructions at Step <NUM>, the mobile gateway <NUM> may communicate with the content publisher <NUM> and then provide the mobile device <NUM> with the requested content (<NUM> and <NUM>). Meanwhile, if the mobile gateway controller <NUM> determines that the mobile device and/or the mobile gateway have the enhanced capability, the requested content may be served in mobile network domain of the mobile gateway system using the mobile caching gateways <NUM> and <NUM>, as described above (<NUM>). For example, if the mobile gateway controller <NUM> identifies (or selects) the mobile caching gateway <NUM> to distribute the requested content, the mobile caching gateway <NUM> has a local copy of the requested content in its storage (e.g., computer readable non-transitory record media) and further the local copy of the requested content is not required for accessing permission, the mobile caching gateway <NUM> may send the local copy of the requested content to the mobile gateway <NUM> (<NUM>). Otherwise, if the mobile gateway controller <NUM> identifies (or selects) the mobile caching gateway <NUM> to distribute the requested content and the mobile caching gateway <NUM> has no local copy of the requested content, the mobile caching gateway <NUM> may communicate with the content publisher <NUM> to obtain the requested content such that the mobile caching gateway <NUM> can retrieve the requested content from the content publisher <NUM> (<NUM> and <NUM>).

In another embodiment of signaling <NUM> and <NUM>, in case the mobile caching gateway <NUM> is determined to have the local copy of the requested content, if the local copy of the requested content is required for permission to access, the mobile caching gateway <NUM> may communicate with the content publisher <NUM> to verify with the content publisher <NUM> whether the mobile caching gateway <NUM> can retrieve the requested content from the content publisher <NUM> (<NUM>). If the mobile device is verified to have permission to access the requested content, the mobile caching gateway <NUM> may receive, from the content publisher <NUM>, permission for distributing the requested content (or the copy of the requested content) in a redirection route comprising the mobile caching gateway <NUM> and the mobile gateway <NUM> (<NUM>). The mobile caching gateway <NUM> may distribute, to the mobile gateway <NUM>, the copy of the requested content cached therein, or the requested content received from the content publisher <NUM> (<NUM>).

<FIG> illustrates an example of a format of HTTP POST message used for integrated content delivery served in the mobile gateway system. The HTTP POST message may be used for inter-node communication, for example in 3GPP core networks of <NUM> deployments. The HTTP protocol such as, for example, but not limited to, the HTTP POST message, HTTP GET message, HTTP PATCH message, etc., may be also used for communications between the network nodes described in <FIG> of the present disclosure. Referring to the format of the HTTP POST message in <FIG>, "F1" field is used for http POST header which may be provided without or with encryption. "F2" field is used for required information elements which are constructed in JSON format for the followings:.

In particular embodiments, a computer system comprising one or more processors may include hardware, software, or both providing one or more communication interfaces (e.g., interfaces <NUM>, <NUM>, and <NUM> described above) for communication (such as, for example, packet-based communication) between the mobile gateway controller, the mobile gateway and the one or more mobile caching gateways. As an example and not by way of limitation, communication interface of system may include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI network. This disclosure contemplates any suitable network and any suitable communication interface for it. As an example and not by way of limitation, the computer system may communicate with an ad hoc network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), or one or more portions of the Internet or a combination of two or more of these. One or more portions of one or more of these networks may be wired or wireless. As an example, the computer system may communicate with a wireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAX network, a cellular telephone network (such as, for example, a Global System for Mobile Communications (GSM) network, a Long-Term Evolution (LTE) network, or a <NUM> network), or other suitable wireless network or a combination of two or more of these. The computer system may include any suitable communication interface for any of these networks, where appropriate. The communication interface may include one or more communication interfaces, where appropriate. Although this disclosure describes and illustrates a particular communication interface, this disclosure contemplates any suitable communication interface.

Claim 1:
A method comprising, by a mobile gateway controller in a mobile network domain:
receiving (<NUM>), from a mobile gateway associated with the mobile gateway controller, a first request for first content provided by a content publisher, the first request being sent from a mobile device;
determining (<NUM>), based on information associated with the first request and one or more policies, that the first content is to be provided to the mobile gateway through one or more caching gateways deployed within the mobile network domain and associated with the mobile gateway, the one or more caching gateways each having a first interface to a content delivery network of the content publisher and a second interface to the mobile gateway;
identifying (<NUM>) at least one of the one or more caching gateways to provide the requested first content; and
sending (<NUM>), to the mobile gateway, first instructions configured to cause the mobile gateway to obtain the requested first content from the identified at least one caching gateway via the second interface.