CN104969604B - 有效使用网络带宽的系统和方法 - Google Patents
有效使用网络带宽的系统和方法 Download PDFInfo
- Publication number
- CN104969604B CN104969604B CN201380053678.XA CN201380053678A CN104969604B CN 104969604 B CN104969604 B CN 104969604B CN 201380053678 A CN201380053678 A CN 201380053678A CN 104969604 B CN104969604 B CN 104969604B
- Authority
- CN
- China
- Prior art keywords
- user
- content
- mobile device
- module
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0289—Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25866—Management of end-user data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/41407—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
Abstract
一种用于通过包括移动应用客户端的移动设备来优化网络带宽的使用的系统,所述移动应用客户端驻留在所述移动设备上,所述移动设备被连接到一个云服务器,其中所述系统分析用户内容消费,向所述移动设备提供一个预取调度表,并且所述移动设备根据所述调度表部分地预取内容。还提供了一种使用所述系统来优化网络带宽的使用的方法。
Description
相关申请的交叉引用
本申请要求享有于2012年8月14日提交的题为“System and Method forEfficient Use of Bandwidth Based on User Profiles and Other Data”的美国临时专利申请No.61/682,828的优先权。前述临时专利申请的全部公开内容以引用的方式纳入本文。
技术领域
由于无线移动计算设备(例如,智能手机、平板计算机等)的增多以及流量很大的应用和服务(例如,视频和音乐服务)的广泛采用,对无线频谱需求继续不断增长。尤其是,移动宽带(经由蜂窝电话塔和/或卫星链路的网络访问)已负担过重,特别是在一天中的某些时间期间。由于可用的移动宽带频谱是不可重复的且有限的,因此此增加的需求激发了更有效使用网络带宽的需要。
此外,大多数无线移动计算设备能够访问两个或更多个不同的无线网络,诸如,移动宽带(例如,3G或4G蜂窝网络)和Wi-Fi(无线局域网络)。虽然移动宽带访问通常提供明显较宽的覆盖面积,但是许多移动宽带供应商不再为固定费用提供无限制的流量和/或会在高峰时间或高使用率时期限制速度。例如,移动宽带的月费用可仅提供至多2GB数据通信量(data traffic),其中超过2GB的额外的通信量按每GB以较高的价格计费。另一方面,无论带宽使用如何,Wi-Fi常常是在免费或固定费用下可用的。因此,许多用户更喜欢使用不那么昂贵的网络,尤其是对于大数据传送(例如,下载视频)。当然用户还希望能够在任何时间而不是仅在他们具有Wi-Fi网络访问时能够消费期望的内容(例如,观看互联网视频)。类似地,移动宽带供应商还期望更好地平衡网络通信量以及更有效使用他们的带宽,同时维持高质量的服务。
附图说明
虽然本说明书以特别地指出并清楚地要求保护本发明的权利要求作为结束,但据信结合附图、从下文对某些实施例的描述中可更好地理解本发明。在附图中,相同的数字在若干视图中表示相同元件。
图1描绘了根据一个实施方案的预测性的、自动的、以用户为中心的内容加载系统和与其相关联的用户的移动设备的框图。
图2描绘了系统的四个部件的高级概述以及它们的交互和相互关系。
图3描绘了构成学习模块的三个部件的高级概述以及它们的交互。图4描绘了内容个性化模块与其他模块之间的主要交互,以及与所支持的应用的主要交互。
图5描绘了系统的一个具体实施方案的总体架构的示意性例示。
其他附图在下文进一步描述。
这些附图不意在以任何方式进行限制,并且可以设想的是,可以以多种其他方式(包括附图中没有必要描绘的那些)实施本发明的多种实施方案。纳入或形成本说明书的一部分的附图例示了本发明的若干方面,并且与说明书一起用于解释本发明的原理;然而,应理解的是本发明并非限制于示出的精确设置。
具体实施方式
以下对特定实施例的描述不应被用于限制本发明的范围。根据下文例示了所设想的执行本发明的一种最佳模式的描述,本领域技术人员将明了本文中公开的版本的其他特征、方面和优点。如将认识到的,本文中描述的版本能够具有其他不同的且明显的方面,且全部都未偏离本发明。例如,尽管本文中将结合运行操作系统的移动设备来描述所述系统和方法,但是应理解的是所述系统和方法不限制于此具体操作系统。此外,尽管在描述所述系统和方法时提到了特定内容类型和它们相应的应用(例如,YouTube视频)以及特定的社交网站和平台(例如,Facebook),但是所述系统和方法可被配置为与任何的各种其他内容类型、内容服务、内容供应商以及本领域技术人员已知的或今后开发出的相关联的应用结合使用。因此,附图和描述应被认为本质上是例示性的而非限制性的。
本发明提供了基于用户配置文件和其他数据来有效使用网络带宽的系统和方法。由无线移动设备监控关于内容请求的用户活动,从而为该用户构建内容消费配置文件。然后,该系统预测该用户将来可能请求的内容,并且在一些实施方案中,确定该用户被预测将有兴趣接收的其他内容。然后,预取该内容且将其存储在该用户的移动设备的本地存储器中,用于以后该用户检索和消费。
本文中进一步描述的预测性的、自动的、以用户为中心的加载系统(或平台)通常包括驻留在终端用户的连接到后端服务器的移动设备上的客户端(例如,软件)。图1描绘了连同用户的移动设备(10)一起的系统的一个实施方案的框图,在该移动设备上,客户端软件被存储在该移动设备(10)的一个或多个存储器(14)中。移动设备(10)被配置成经由一个或多个网络(30,32,34)与服务器(20)(有时在本文中称作云服务器)通信。在一个实施方案中,网络(30)包括无线移动宽带网络(例如,3G或4G蜂窝网络)并且网络(32)包括无线局域网络(Wi-Fi)。在示出的该实施方案中,网络(34)包括互联网,使得网络(30,32)用作将移动设备(10)和服务器(20)链接至彼此并经由互联网(34)链接至可访问的其他服务器(例如,存储了用户希望访问的内容的服务器)的子网络。在其他实施方案中,网络(30,32,34)可以是局域网(LAN)、广域网(WAN)、虚拟私人网络(VPN)、个人局域网(例如,使用蓝牙的自组织网络)或在移动设备(10)与远程服务器(20)之间传送信息的任何其他装置。
移动设备(10)通常包括具有内部硬件配置的移动计算设备,该内部硬件配置包括:处理器诸如中央处理单元或CPU(12)、存储器(14)、电源(例如,电池)(15)、显示器(16)、输入设备(18)(例如,键盘和/或触摸屏)。CPU(12)是用于控制移动设备(10)的操作的控制器,且CPU(12)通过例如存储器总线连接到存储器(14)。存储器(14)存储例如用于移动设备(10)的操作系统、以及系统软件、应用软件(例如,“应用”)、预取的内容和其他数据。可使用包括闪存设备(例如,SD卡)、硬盘、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁存储器、磁盘、光盘以及本领域技术人员已知或将来开发出的其他类型的存储器的任何类型的合适的存储媒介来实施存储器(14)。移动设备(10)可以包括多于一个的存储器(14),存储器(14)可以是相同的或不同的,且可出于各种目的留出一个或多个存储器(14),诸如存储器(14)为缓存存储保留一部分。
在一些实施方案中,移动设备(10)包括移动电话(例如,智能手机)、平板计算机、笔记本型计算机、PAD、膝上型计算机或提供类似功能的其他移动设备。移动设备(10)可以包括常在智能手机和平板计算机中发现的其他特征和部件,诸如网络界面、位置检测设备(诸如,GPS接收器)、扬声器、端口等。显示器(16)可呈现图像或视频(例如,用于被用户消费),且可以以包括例如液晶显示器(LCD)的多种方式实施显示器(16)。
网络(30,32,34)连接移动设备(10)和远程服务器(20),以及将移动设备(10)连接到多种其他远程内容供应商(例如,YouTube、因特网网站等)。远程服务器(20)可以是例如具有包括处理器(诸如中央处理单元(CPU)(22))和存储器(24)的内部硬件配置的计算机。CPU(22)可以是用于控制服务器(20)的操作的控制器。CPU(22)例如通过存储器总线连接到存储器(24)。存储器(24)可以是随机访问存储器(RAM)或任何其他合适的存储器设备。存储器(24)可以存储由CPU(22)使用的数据和程序指令。其他合适的实施方式是可能的,如术语“服务器”旨在广义上包含任何计算机化的部件、系统或实体(不管形式如何),服务器适于向计算机网络上的一个或多个其他设备或实体提供数据、文件、应用、内容或其他服务。例如,在一些实施方案中,远程服务器(20)的处理和数据功能可被分布在多个服务器之中,所述多个服务器包括相同计算设备的多个部分和/或两个或更多个分立的计算设备(例如,用于执行本文中所标识的针对远程服务器(20)的不同功能的物理上分立的服务器)的多个部分。
如下面描述中详述的,系统分析用户消费的内容并由它预测在不远的将来该用户将有可能请求什么。“内容”可以是移动设备(12)经网络(30,32,34)可访问的任何形式的信息,诸如,视频、音乐、其他音频文件、网站、新闻、体育成绩、以及经所述网络可提供的其他形式的信息,尤其可经因特网(34)从多个内容和信息供应商访问的信息。该系统还监控用户的移动性和无线连通性模式(例如,Wi-Fi和漫游),且由此建立针对该用户的无线连通性的配置文件(包括该用户已访问的不同网络的特性)。此外,该系统基于用户消费的不同内容类别的动态速率以及该用户的移动设备的数据计划的使用,为所述不同内容类别做出配置文件。这些配置文件被用于确定所预测的内容何时将被推送到移动设备以保证最高的服务质量和可用网络资源的最佳利用。在某些实施方案中,在特定网络中,该系统将通信量从峰值时间分流到非峰值时间,而在其他实施方案中,该系统将把通信量从成本高的长距离网络(例如,3G网络)分流到成本更低的短距离网络(例如,Wi-Fi和对等网络,或“P2P”)。
在该系统的一些实施方案中,用户具有控制如由经由(例如,移动设备上的)用户界面提供的动态设置特征允许的调度框架的某些参数的能力。此用户界面通过提供自定义报告、个性化警告和精细的管理工具来使用户控制移动数据使用,同时该系统在后台执行其功能。在一些实例中,该系统在已实现的成本节约的同时持续更新用户。
使用多种用户配置文件和用户消费内容,且在一些实施方案中,使用其他用户的配置文件和消费模式,该系统——具体地云服务器(20)——创建对于每个用户唯一的内容调度表(schedule)。在一些实施方案中,内容调度表识别系统所预测的用户会在未来请求的内容,以及该用户将请求这样的内容的预期时间。内容调度表被提供至移动设备,被周期性地更新。移动设备利用内容调度表并预取内容以存储在该设备的缓存存储器中。缓存的内容例如被存储在存储器(14)的所保留的区块中,或被存储在设置在移动设备(12)中的其他存储器(诸如,SD卡或其他形式的闪存)中。然而,内容调度表不是严格以小时计或以分钟计的被移动设备盲目遵循的指令集合。相反,该内容调度表是象征性的,更多地用作调度指南,其中移动设备,具体地该系统的移动设备应用将内容的预取调整到实时状况,诸如网络访问类型(例如,Wi-Fi对3G)、电池状态等。
可通过用于已缓存内容的类型的相关应用(例如,移动设备上的Facebook或YouTube应用)的用户界面或通过设置在移动设备上的系统的用户界面来消费经由该系统预取的已缓存内容。在一些实施方案中,内容调度表还包括系统基于例如用户的配置文件和过去的内容消费向用户推荐的内容。此推荐引擎是用预测和缓存模块共同优化的,以提供最佳的性能。该系统架构还允许在应用层集成压缩,并因此将通过个性化缓存提供的带宽节省与由多媒体内容有效的压缩带来的带宽节省相结合。
该系统基于以下观察:
1.在移动宽带网络的带宽容量方面的供应与需要支持的通信量方面的需求之间的失配。此失配是由峰值需求引起的而不是由平均需求引起的。在典型的设置中,峰值需求对平均需求的比率可高达一个数量级。
2.导致带宽不足的主导通信量是容忍延时的数据通信量。然而,由于现有网络架构被优化用于实时通信量,它们未能利用延时容忍特性。例如,虽然用户为了娱乐所消费的大多数多媒体内容在大多实例中是在用户期望消费它以前很早就被创建,但是在用户点击观看它时,网络将每个多媒体内容请求当作待要经网络被递送的实时请求。
3.当前的研究已经确定移动设备使用在很大程度上是可预测的。此可预测性包括用户对以下内容感兴趣:不同类别的多媒体内容、确定对不同移动网络(例如,Wi-Fi、3G毫微微蜂窝基站等)的日常访问的移动模式、他们的以月为周期的数据计划的使用、以及移动设备资源(例如,电池、存储器和处理能力)的利用。
4.移动设备在存储器和处理能力方面的性能继续遵守摩尔定律:即,每隔18个月翻一倍。此外,云计算的最近进展已经导致空前大的量的计算资源可用于增强不同网络应用的性能,条件是有效利用算法逼近(algorithmic approaches)。现在可提出问题:
通过利用用户行为的可预测性以能够在最佳时间经由最低成本的递送方法将数字多媒体内容有效地递送到终端用户,本文中所描述的系统和方法的实施方案克服了移动设备和/或网络级别的带宽挑战。如本文中进一步详述的,此范例允许消费者以可能的最高服务质量(QoS)和最小的网络资源支出且以最低的价格享受个性化的移动互联网体验。
该系统通常包括以下三个步骤:预测、调度以及(在一些实施方案中)推荐。这些步骤带来的结果是:通信量平滑(例如,峰值需求对平均需求的比率减小)、通信量智能分流到不那么昂贵和/或具有较多未使用容量的网络、用户经历的延时减小(例如,预取的内容不需要缓冲)、以及用户的月度成本减少(例如,数据计划超额费用减少)。
1.预测:该系统基于将用户对内容(例如,类别、流派、内容类型等)的兴趣建模的过去行为、确定对不同的移动网络的访问的移动模式、移动设备的使用(例如,电池消耗、存储器和处理能力使用)、以及用户消费任何可用的月度数据计划的模式,为每个用户编译一个或多个配置文件。类似地,该系统为不同内容类型在不同内容类型的更新速率方面(例如,滚动新闻(news ticker)具有比音乐视频更快的更新速率)建立配置文件以及为不同移动网络在不同移动网络的流量和拥塞特性方面建立配置文件。
2.调度:步骤1中制定的配置文件被用于在最佳时间调度缓存在用户的移动设备上的内容。基于如下多目标优化标准来构建调度算法:a)通过避免内容实时递送时所经历的无法容忍的延时(例如,缓冲延时)来增强用户体验;b)通过将峰值通信量分流到非峰值时间和不那么拥塞的网络(例如,Wi-Fi)来缓和几乎所有主要移动网络遇到的拥塞;c)通过从更低成本的网络(例如,Wi-Fi和对等网络(P2P))预取终端用户的大部分大流量内容来降低由终端用户招致的成本;以及d)在电池、存储器和处理能力方面优化移动设备的使用资源。
3.推荐:一些实施方案的第三个步骤是推荐引擎的使用,推荐引擎以建议的内容的形式向用户提供激励以消费本地缓存的内容,且因此减少了移动网络中的峰值需求。此推荐系统基于例如用户的移动宽带网络的计费系统以及用户的偏好和经济要求而被优化。
这三个步骤紧紧地相互关联并且形成本文中所描述的系统的基本结构单元。执行上述三个步骤的引擎的联合优化提供了在不同环境中(基于可用移动网络和移动设备能力)构建解决带宽不足的可扩展的解决方案。例如,通过联合地优化预测算法和推荐系统设计,人们可实现高得多的命中率(hit ratio),且因此,使下载不被用户消费的内容的可能性最小化。实现此联合优化的基本原理是将用户行为分解成:(1)可从过去行为中识别且可在用户配置文件中捕获的结构化部件;以及(2)可受推荐系统影响的任意部件。例如,不存在推荐系统时,预测算法必须承担准确地判定会被任何具体类型的用户所请求的内容的责任。另一方面,仔细构造的推荐系统将使得预测算法足以识别用户感兴趣的类别(或流派),下载此类中的项目,且然后向用户推荐此项目。如果此项目足够接近用户的兴趣,用户将具有强烈的动机来消费它而不是从更昂贵的网络请求实时内容,因为避免了与实时传输相关联的延时和拥塞,并且此已缓存的内容将对应于用户的更低的成本(因为预取通常发生在使用不那么昂贵的移动网络)。
该系统从多个参数诸如,用户的偏好和活动、WiFi可用性模式、经济响应性、位置、电池水平、3G速率等中观察和学习,且在整个相当宽的变量集合(包括大量的动态变化的内容项)中执行优化。因此,该系统的设计被分解成一组交互的部件(或模块)。四个主要部件是学习模块、调度模块、内容个性化模块、以及实时模块。图2描绘了这四个部件(或模块)的高级概述以及它们的交互和相互关系。在一些实施方案中,这四个部件中的某些部件是云服务器(20)的元件,而其他的部件是移动设备(10)的元件。在另一些实施方案中,所述四个部件中的一个或多个的一些部分是云服务器(20)的元件,而其他的部分是移动设备(10)的元件(例如,学习部件中的一些在云服务器(20)上,且一些在移动设备(10)上(例如,编程为移动设备应用的一部分)。
学习模块:代表用于整个系统的最终信息来源。它包括以下功能:
1.为待由其他模块使用的相关参数(包括但不限制于,用户需求、网络状态和电池动态)构建模型。
2.允许交互式用户输入并且生成自适应的用户交互以增强用户对其自己偏好的识别,并且使得能够手动配置若干参数,包括但不限制于Wi-Fi可用性、内容偏好以及活动时间。
3.如果检测到与模型有相当大的偏差,则触发调度部件。
学习模块包括三个主要部件:跟踪部件、交互部件以及处理部件;
a)交互部件:构成与用户的最终界面。它负责收集用户配置和设置,动态地接收和显示用户交互,并且统一用户数据。
b)跟踪部件:是移动设备上的信息聚集中心。
c)处理部件:对收集的数据执行适当分析和处理。图3是构成学习模块的三个部件以及它们的交互的高级概述。
系统状态:在每个时隙t处将网络状况以及电池水平量化。系统在时间t处的状态由具有如下描述的条目(WS(t),GS(t),B(t))的三维矢量Xs(t)表示。
优化周期:是限定用于后端服务器的操作时标的T个时隙。此时段由调度模块确定,且对于不同用户是变化的。
触发:是由学习模块生成以指示重新调度指令的信号。触发由I∈{0,1}表示。
用户活动历史:是在先前优化周期内聚集的关于用户的一批信息。本质上,用户活动历史被学习模块用以构造统计需求配置文件,且由内容个性化模块用以优化主动下载。它由H表示,其中H={UI(t),UR(t),0≤t≤T-1}。
状态演化:是在过去的优化周期内状态实现的历史,带有符号HX={Xs(t),0≤t≤T-1}。
优先级策略:确定每个待要下载的内容的重要性。通常,它随着时间递减,其中一个因素取决于相应的数据源。例如,快速改变的内容诸如Facebook更新可被指定快速衰减优先级,然而静态YouTube内容可接收重尾(heavy-tailed)优先级。此策略由内容个性化模块设置。符号π描述该优先级策略,其是M维矢量,其中条目m对应于数据源m的衰减规则。
服务策略:是带有精确个性化内容的已更新的调度表。虽然调度表S提供待要从每个数据源预加载的可允许的数据单元,但是服务策略决定最适合用户兴趣的具体内容。服务策略由表示,其中v(xs,t)是在状态xs下、在时隙t中待要下载的视频ID的集合。
保存以随后观看:是由PAUL执行的功能以允许用户输入它们将来想要观看的特定视频内容。通过实时模块实现此功能,由此用户可进入所选择的视频并且设置视频必须被递送的最后期限。符号SD(t)表示在时隙t处保存以随后观看的视频的集合和它们的相关联的最后期限。注意,用户请求UR(t)在以下意义中不同于SD(t):UR(t)是用户在时间t请求观看的视频,而SD(t)是用户想要下载以在将来观看的内容。因此并非所有的SD(t)都在将来被观看。
调度模块:构建用于下一个优化周期的调度表。它告诉应从每个内容源预加载多少数据以及在何时/到何时内容应由移动设备获得(假设满足其他条件,诸如连通性、存储器空间、电池水平等)。固有设计目标是使数据递送成本最小化,包括支付的价格、QoS减损、预加载的内容的新鲜度,以及电池消耗。它包括以下功能:
1.采用关于将来动态的可用信息,调度器决定在一个优化周期内(例如,一天、12小时周期、8小时周期等)来自每个内容源(例如,YouTube、Facebook等)的主动下载量。调度器使得所期望的用于未来数据检索的成本最小化。
2.调度器响应于来自学习模块的触发来执行新的调度周期。
内容个性化模块:涉及对已调度的数据进行优化,以最佳地匹配用户的偏好和兴趣。其根本设计目标是使预加载的内容被用户实际请求的可能性最大化。它包括以下功能:
1.虽然从调度模块接收的调度表未指定待要取得的准确内容,但是内容个性化模块需要将可允许量的数据(例如,基于过去的消费每个用户的预定量,或用户设置的偏好)仔细地分布在若干个合理准确地位于用户的兴趣内的内容项上。这样的设计需要关于每个应用/数据源的性质以及用户的倾向的足够知识。
2.它生成将由实时模块执行的优先级策略,以便处理积压和促进稳定操作。
3.它跟踪且可能重新调度来自先前优化周期的积压的内容项。尤其,它从实时模块接收已服务的内容的集合,且因此推断未服务的内容。
4.它分类、逐条列记并将ID’s指定到来自所有所支持的应用的内容项。
图4描绘了内容个性化模块和其他模块之间的主要交互,以及与所支持的应用的主要交互。
实时模块:执行由内容个性化模块生成的服务策略,并执行优先级策略,还向相应的模块报告积压和已服务的数据。另外,它允许保存以随后观看功能,由此用户可指定内容元素以在以后时间观看。它包括以下功能:
1.它观察系统状态,并且应用具有相关优先级的服务策略。
2.它向内容个性化模块报告已服务的内容,并且向调度模块报告积压数据量。
基于多种已获得的数据来编译调度模块、内容预测模块和内容推荐模块。内容预测例如是基于类型、类别、流派且在一些实例中基于预定通道(例如,用户的YouTube通道)或用户账号(例如,用户的Facebook账号)。算法不仅是多种参数的多目标优化,在一些实施方案中,算法是自适应的(例如,它们基于预取数据的进行中的用户消费模式适应或学习)。
作为一个实施例,调度算法可被配置成以基于若干个性能方面(包括命中率动态、用户连通性模式、消费速率、数据递送效率、用户偏好等)而适应。学习部件监控在整个过去的交互中的用户行为和响应,并且向调度器供应足够的统计信息以执行主动下载的自适应分配。另外,学习部件利用动态通知机制,该动态通知机制始终根据用户过去的行为向用户发送问题/通知。
主动下载的自适应分配根据变化的用户活动或偏好来动态地调整从每个应用(例如,Youtube、Facebook等)所调度的内容项(例如,视频)的数目。它以更快的时标(通常以天为基础)操作,并且通过增加来自获得较高命中率的应用的下载的数目以及减少来自未使用的应用的视频的数目来提高命中率性能。命中率仅仅是用户以后请求消费的预取的、预测的内容的百分比。
对于模块化设计的术语,采用以下数量的术语:
数据源;数据源将由应用表示。给出总共M个应用,符号m(d)被用于表示第d天的优选应用的集合。
优化周期:被看作长度为T个时隙的一天。
数据单元:是一个视频(或其他内容项)。
主动下载矢量:第d+1天的主动下载矢量由S(d+1)=(Si(d+1))i∈m(d+1)表示,其中Si(d+1)是第d+1天从应用i调度的视频的数目。此数目被分解为Si(d+1)=Ci(d+1)+σi(d+1),其中Ci(d+1)是根据用户偏好由现有调度表所调度的视频的数目,且将主要用作起支配作用的大时标动态。另一方面,σi(d+1)是Ci(d+1)的自适应调整增量或减量,其覆盖较快的每日动态。数目Ci(d+1)仅可以是非负的,然而,σi(d+1)可呈现负值。虽然如此,量Si(d+1)一直为非负。即,应一直使:Si(d+1)=max{0,Ci(d+1)+σi(d+1)},i∈m(d+1).。
负载矢量:是通过参数λi(d)捕获的,λi(d)是在第d天从应用i消费的视频的数目。
服务的内容:由Di(d),i∈m(d)表示第d天为应用i服务的内容或者递送的数据。
用户活动历史:将在过去的dh天内保持对负载矢量的跟踪。另外,它将含有关于用户更新某一设置的最后一天的某些信息。具体地,UP是该用户更新偏好/频率的最后一天,UC(i)是该用户更新应用i的类别的最后一天。
另外,在服务器的内部存储器内,需要对以下数量保持跟踪。(1)向用户问及关于偏好的问题的最后一天,由LP表示。(2)向用户问及关于应用i的分类更新的问题(如果有的话)的最后一天,由LC(i)表示。(3)向用户问及关于应用i的验证的问题(如果有的话)的最后一天,由LA(i)表示。
学习模块责任。需要学习模块来处理前述数量的每日记录(log),生成以下统计,并将统计传递到调度器,此外还应用智能通知程序以便增强用户体验。
统计测量。在最后dh天内的平均命中率(其中,当日由d表示。)。这由Γ(d)表示且被计算为
在最后dh天内应用i的平均命中率。这由Γi(d)表示并且被计算为
所有偏好的应用的当日d的命中率。这由γ(d)表示并且被计算为
应用i当日d的命中率。这由γi(d)表示并且被计算为
通知。基于用户的平均活动和行为将通知发送到用户。该过程发送三种类型的通知。第一,偏好/频率更新通知,其将在长的时间段内被发送,原因是偏好改变的动态基本是缓慢的。如果自用户更新偏好以后已经过去dP天,则可发送通知。当偏好通知被发送时,用户可响应它或忽略它。在任何一种情况下,在通知被发送之后,用户被给予额外的dP天而期间没有偏好通知被发送。第二,验证/登录通知,如果用户偏好一个需要用户验证的应用,则需要发送验证/登陆通知。我们使用设置Ac(d)表示用户在第d天偏好的所有应用并且要求他的验证,但是他还未登陆。任何两个把相同的应用作为目标的验证通知必须分开dA天。
第三,类别更新通知。此类型通知被发送以询问关于用于一些应用的类别偏好,平均而言,这些应用的类别偏好通常具有低命中率。设置χ(d)由用户在第d天偏好的所有应用组成并且允许类别选择。但是设置I包括χ(d)中平均具有低命中率的应用。由用户进行的类别选择被假设在dC天内是有效的,在dC天之后用户可被通知类别更新。推荐dC天的持续时间将任何两个把相同的应用作为目标的类别更新问题分开。图1演示通知过程的流程图。注意,如果该通知过程成功地发送一个通知,该通知程序返回1,否则返回0。图13描绘了由学习模块实施的通知过程的流程图。
调度模块责任。调度表将在两个时标上操作:第一个时标是较长的,通常是数周的量级,或可能是数月的量级,且涉及用户的长期偏好。由依赖于输入用户偏好和每天的最大数目视频的现有调度算法确定此时标的操作以指定相应的峰值和下载策略。我们通过如先前部分中提到的Ci(d+1)指代用于应用i的此调度表的输出。第二时标是较短的,以天为基础操作并且基于用户的每日的和短期平均活动动态地调整值σi(d+1)。对于第d+1天,调度器最初设置σi(d+1)=σi(d),i∈m(d+1),,然后可根据用户的行为针对一些应用改变σi(d+1)。另外,它负责校验和发送适当的通知以改进其长期性能。
本文中的焦点在于算法的短时标(或自适应)部分,原因在于长时标已经被实施。调度器的操作是基于将用户分段,其中基于用户的命中率使用阈值γL和gR将用户分段,其中γL<γR。
第一段:Γ(d)≥γR
此用户具有高平均命中率,可能喜欢该服务,并且可消费更多的视频。调度器因此选择一个具有高命中率的应用,为其增加至多1个数目的视频,并且保持剩余的不变。图2描绘了为第一段中的用户调整视频的数目的流程图。函数随机(I)根据均匀分布从集合I中选择随机元素。过程增加(i)负责使来自应用i的所调度的视频的数目每次提高至多1个,在下文讨论过程增加(i)。图14描绘了显示对具有命中率Γ(d)≥γR的用户进行视频数目调整的流程图。
第二段:γL≤Γ(d)<γR。属于此段的用户最有可能享受至少一个应用的良好服务,但是其他应用基本上未足够好的执行。因此,调度器需要找出低命中率应用的问题并且适当地解决它们。此外,良好执行的应用(即,具有高每日命中率的那些应用)可通过额外下载给与奖励。图3中示出的流程图显示调度器为第二段中的用户进行的自适应操作。过程减少(i)负责每次使来自应用i的所调度的视频数目减小至多1个,并且在下文被呈现。图15描绘了显示对具有命中率γL≤Γ(d)<γR的用户进行视频数目调整的流程图。
第三段:Γ(d)<γL。属于此段的用户可能放弃应用,或经历影响他们的活动的异常事件(诸如,旅行)。对于此段,调度器应根据用户的活动仔细地区分不同用户。例如,可以建议异常不活动的用户临时地停用主动服务。另外,在停用时段之后刚激活服务的用户需要被授权数天的窗口,以使得能够绘制关于他们的行为的足够的统计。另一方面,忘记应用并且不响应于通知或服务停用建议的用户更易受减少视频数目的影响,以便:减少它们的设备的负担,并加强后端服务器的利用。图16中呈现的流程图例示了调度器针对第三段用户的操作。
在构建集合I1和I2之后,算法校验UAP,UAP是用户允许主动下载服务、允许预加载(AP)的最后一天。如果此更新是最近的(即,未过去dAP天),则该用户被认为是返回用户且被给予dAP天以靠拢到一贯的行为。尽管如此,在此时段发生通知过程以促进更快的靠拢。
相反地,如果最后的允许预加载更新不是最近的(即,已过去dAP天),则调度器试图区分以下三种情况:
情况1:用户对至少一个应用感觉很好,但是他还不关心其他应用。
情况2:用户正处于特殊境遇,经历一些减少他的活动的情。
情况3:用户不理睬若干个通知和服务停用建议,已经丢弃该应用。
第一种情况由条件I1≠φ捕获,并且见证高的日命中率的应用适于增加,其他应用接收一个减少,一个通知被发送以提高学习。第二种情况由条件I1=φ量化并且在过去dAP天内未曾向他发送过“服务停用的建议”,因此需要发送这样的建议。最终,第三种情况既不是第一种情况也不是第二种情况,因此一个应用接收一个减少,并且一个通知被发送。
增加和减少过程。增加和减少过程是由调度器实施以使得为某一应用调度的视频的数目提高或减小1。
增加(i)。在图17中描述过程增加(i)。量μ(d)=∑i∈m(d)σi(d)捕获第d天所调整的视频的总数目。限度N是这些视频的总数目的最终界限。除了校验上界限限度之外,增加过程通过停止并等待(stop-and-wait)机制而免受漂移,由此可以增加μ(d)直到它达到边缘E,μ(d)在边缘E处必须保持DE天不增加。此后,如果用户仍获得高命中率,则将由窗口W扩展该边缘并且实现另一些增量。参数LE是已经达到该边缘的那一天且被动态地更新。
减少(i)。此过程处理使针对某一应用所调度的视频的数目减少1的操作。为此,它校验三个保护级别:
1.第d+1天所调度的视频的总数目必须不下降到用户所偏好的应用的数目的因数α>1以下。注意,|m(d+1)|是第d+1天所偏好的应用的集合的大小。
2.在最后的减少之后必须过去最小数目的天数dr。我们使用Lr来表示发生成功减少的最后一天。
3.减少针对任何应用的视频的数目应保证来自那个应用的至少一个视频在新的调度表中。因此防止匮乏事件。
图18描绘了减少(i)过程的流程图。
处理∞和命中率以及停用的预加载。在操作中,学习模块可能遇到若干个没有视频被递送和积极消费的应用。根据在部分1中所讨论的命中率定义,这将导致∞命中率。为了避免使算法中涉及infty,我们可用消费者视频的数目代替之。另一个可能性是0/0命中率,0/0命中率意味着因为没有递送因此没有消费。在此情况下,我们将更好地忽略这天针对那个应用进行的统计。
最后,如果用户已经将“允许预加载”特征设置为0,即,已停用的主动服务,则每隔dA天将给他发送激活提醒。
在一些实施方案中,系统将移动设备转变成用于用户的个性化移动互联网门户。每当每个设备访问将其连接到互联网的便宜的短程无线网络(例如,Wi-Fi或毫微微蜂窝基站)时,该设备将被下载内容。在一些实施方案中,一旦设备被下载内容,它还可全天通过P2P短程通信来将它的内容与它的移动邻居交换以确保它保持刷新有最近的个性化内容而不加重更昂贵的远程网络(例如,3G)的负担。这样,供应在对用户的总可用流量方面将与用户的数目呈线性比例,从而根本上消除带宽不足。远程无线网络的宝贵资源可被更有效地用于更紧急的信息(例如,GPS、警告、滚动新闻等)以及实时通信(例如,电话通话或视频通话)。
接下来,描述了系统和方法的一个具体实施方案,其中该系统支持以下功能:
1:监控和报告:通过在用户的移动设备上运行的应用(即,软件)来监控用户以下方面的行为:对不同类别的内容的兴趣、对针对特定移动应用的内容的兴趣、移动模式和对不同移动网络的访问、移动设备资源(诸如电池、存储器和处理能力)的利用,以及除漫游活动之外的月度数据计划的消费。所收集的数据被用于生成关于用户行为和资源利用的不同的方面的报告。这些报告在与系统相关联的用户界面(“UI”)中呈现给用户。
2:形成配置文件:在监控阶段中收集的数据还被用于为每个用户创建一个详细的配置文件,该配置文件捕获影响缓存/调度模块的设计的行为的不同方面。除了为用户形成配置文件之外,还为不同的内容类别以及用户的移动应用形成配置文件,所依据的是它们的动态速率(刷新-例如,每隔多久为每个应用更替、更新和/或添加可用于预取的内容)。此外,基于用户的不同的移动网络的流量和拥塞特性为用户的不同的移动网络形成配置文件。
3:缓存:使用为用户(移动设备)、内容和移动网络开发的配置文件,该系统(特别是移动设备)将预取内容且本地存储该内容。根据多目标标准来优化预取调度表,该多目标标准除了最小化与月度数据消费相关联的成本以及在一些实例中减轻网络负担和平滑通信量(例如,将一些通信量转移到非峰值需求时间)之外还允许提供最高质量用户体验。已缓存的内容将可用于通过所支持的移动应用的用户界面或经由系统用户界面进行消费。因此,在一些实施方案中,用户采用相同的移动应用(例如,Youtube、Facebook等)来消费已预取的内容。请求的内容从缓存存储器而不是经由实时网络连接(其常常要求缓冲并因此有延时)被递送到移动应用。
4:推荐:系统用户界面允许用户基于简单且雅致的推荐界面来消费已缓存的内容。此外,基于所收集的关于用户、内容和移动网络的统计,允许用户改变缓存和数据计划使用的设置的推荐系统被包括在UI中。以参数化的形式将用户输入传递到缓存/调度模块。这样,用户控制对数据计划使用的优化以适应他的/她的偏好。除了动态设置之外,该系统还支持警告功能,以帮助用户优化性能平台(例如,在漫游和/或数据过度使用的情况下发出警告)。
图5中示出了该系统的一个具体实施方案的总体架构。在用于4操作系统的配置的此实施例中,该系统使用由移动设备(110)的4操作系统允许的VPN连通性来将由不同移动应用启动的通信量转发到该系统的转发服务器(130B)。然后在云服务器(130A)处使用所收集的通信量来建立用于优化缓存算法的配置文件。应理解,转发服务器(130B)可被并入到云服务器(130A)内或被完全省略。移动设备下载预测的和推荐的内容并且将其本地存储在移动设备上(例如,在SD卡或移动设备的其他存储器存储上)。如果/当由该系统支持的某个移动应用请求本地可用的某个项目时,则该请求被拦截(例如,被移动设备拦截)并且被重新路由到本地存储器位置。在本文中进一步详述了移动应用(MA)和云服务器(CS)架构。
移动应用架构
移动应用(“MA”)一般包括软件应用(其可包括存储在移动设备存储器中的一个或多个个体程序、例程和/或子例程),并且包括各种功能、实施这些功能的多种模块、以及这些模块之间的接口。图6描绘了MA模块和接口的框图,包括在网络上与云服务器之间的接口。MA模块
图6的框图中描绘的MA实施方案具有以下模块:
(1)MA内容记录器(logger)模块(MACLM)
此模块负责记录应用通信量的内容消费。每次新的HTTP数据包到达云服务器VPN处理器(下文描述),它就向MACLM发送要求的细节以记录所请求的内容。这些细节包括,例如,:
a.主机名称:www.youtube.com
b.获得请求URL:/watch?v=oI-soTwszFs
MACLM将把记载(record)附加到含有多个记载(系列(l ine))的一个列表的内容记录文件。每个记载含有例如以下细节:
a.应用标识符:它是由VPN处理器模块提供的主机名称。
b.记录时间:内容消费的时间。
c.其他参数:此参数取决于正被记录的内容,并且将被从HTTP获得请求URL中提取。应用参数的实施例如下:
1.Las t.fm:流派/艺术家
2.YouTube:视频id
3.CNN:段名
(2)MA电池记录器模块(MABLM)
此模块负责记录设备的电池使用。每次该设备得到一个低电池信号、被连接到充电器(USB/AC)、从充电器断开连接、或在稳定的电池状态中,就从该系统接收一个意图(Intent)并且MABLM将把新的电池记载附加到该电池记录文件。电池记录文件含有多个记载(系列)的一个列表,其中每个记载含有例如以下细节:
a.电池状态:以下状态之一
1.连接AC(ac):该设备被连接到AC充电器。
2.连接USB(usb):该设备被连接到USB充电器。
3.断开(di sconn):该设备与充电器AC/USB断开连接。
4.电池低(bat t_low):该设备处于低电池状态。
5.电池OK(bat t_ok):该设备在低电池状态以上并且处于稳定状态。
b.记录时间:接收所述意图的时间。
(3)MA统计计算器模块(MASCM)
此模块负责确定对于每个应用而言在3G或Wi-Fi上为用户节省的带宽(“BW”)量(在Wi-Fi的情况下,通过减少用于视频缓冲的等待时间)。MASCM被分成两个主要的部件:统计计算器和统计记录器:
a.统计记录器:记录为应用节省的BW量的子模块。
b.统计计算器:负责计算为用户节省的BW量以及计算用户节省多少钱的子模块。
每次缓存的数据包到达MAVPNH,它就向该统计记录器发送所要求的细节以记录为每个应用节省的BW量。这些细节包括:
1.主机名称:www.cnn.com
2.节省的数据的大小(千字节):它是注入的数据包和其有效负荷的大小。
统计记录器将修改或插入(在一天的第一次记载的情况下)记载统计记录文件的应用。此文件含有数天的列表,每个含有多个应用记载(系列)的一个列表,其中每个记载含有例如以下细节:
1.应用标识符:它是由CSVPNH提供的主机名称。
2.节省的BW(千字节):由该系统节省的BW的大小。
当UI需要显示为用户节省的BW量和钱时,它向统计计算器发送一个请求,在统计计算器处它读取统计记录文件且计算为用户节省的BW量和钱,并且根据用户选择的选项(今天、周、月等)将它们分类。
(4)MA WiFi记录器模块(MAWLM)
此模块接收连通性变化信息以记录移动设备何时进入和退出Wi-Fi网络,并且在移动设备进入Wi-Fi网络时通过下载云服务器(“CS”)上的指定文件三次以便计算平均带宽来计算带宽。CS处理器将周期性地发送和清除记录。当Wi-Fi网络进入和退出时,MAWLM还将向数据使用监控模块(MADUM)发送通知。对于一周内的每一天,Wi-Fi记录将被保持在分开的文件中,其中每个文件由天数(0-6)作前缀。记录文件是纯文本格式,其中字段例如通过字符“<”分开。
(5)MA应用使用记录器模块(MAAULM)
一些操作系统(诸如,系统)提供了一种发起偏好活动以便为用户显示应用使用统计设置的方式。然而,常常不可能获取这样的数据以供移动设备使用。MAAULM被实施为内容记录器的一部分,并且为每个正被记录的内容添加日期和时间记载。可在CS上聚集数据以推断应用使用统计。
(6)MA数据使用监控(MADUM)
操作系统提供网络通信量统计,以得到通过移动界面或所有网络界面发送/接收的字节的总数目,以及得到自设备启动以来仅通过所有网络界面针对一个特定应用发送/接收的字节的数目。MADUM模块使用此数据以及来自Wi-Fi记录器模块(MAWLM)的通知,计算对于每个应用而言以天为基础单独通过移动界面接收发送/接收的字节数目,并且将计算的数据写到记录文件。它还根据UI请求读取该记录文件数据并且返回截至今天、上周或上月分组的已计算出的数据。MADUM还被配置为清除一个月之前的已记录的数据。一旦发送/接收的字节的数目超过由用户在他们的偏好中设置的数据计划限度,MADUM还将完全禁用3G数据。因此,应用将被限制为仅Wi-Fi访问(其将需要移动设备上的根访问(root access))。
(7)MA偏好模块(MAPM)
此模块负责加载和保存用户偏好。在用户完成修改偏好之后,UI使用此模块保存所述偏好。MAPM还为UI下载上次保存的偏好。当那些偏好将被发送到CS时,MACSH(在本文中进一步描述的)将从MAPM请求上次保存的偏好。本文中将进一步描述所保存的文件的格式。用户可选择的偏好可以包括,例如:
·该系统应在使用Wi-Fi&3G时或仅在使用Wi-Fi时缓存?
·移动电话处于漫游模式?
·数据计划限度是什么?
(8)MA推荐引擎模块(MAREM)
此模块接收来自CS处理器的推荐调查,读取问题和答案,并且为用户推送通知。当用户在UI中回答问题时,MAREM编写用户的答案并且通知调度器模块(MASM)以通过CS处理器向CS发送调查结果。
(9)MA分配器(MADIS)
此模块负责执行从服务器接收的调度表。在一个实施方案中,MADIS是一个在后台中运行的单例类(s ingleton class)。它解析当前的调度表,并且处理其任务的执行。在本文中描述的示例性实施方案中,每个任务具有两个时间:在其之前任务不能够开始的一个时间;以及在其之后任务不能够开始的一个时间。每个任务还将包括待要获取的连通性的类型(例如,任何/仅Wi-Fi)。在任何时间点,当且仅当开始时间已过且到期时间仍将到来,并且指定的连通性存在,才执行任务。MADIS解析该调度表,并且校验下一个任务是否准备好以供执行。如果下一个任务未准备好,则它休眠直到该任务的开始时间。如果下一个任务准备好以供执行,则它执行该任务并且为下一个任务重复该过程。通过调用(cal l)提取模块并且将任务参数传递到该模块来执行任务。在任何时间点,当CS处理器接收一个新的调度表时,它调用MADIS以重新开始分配新的调度表。如果MADIS需要执行一个任务,但是根本不存在可接受的电池水平/或连通性,则它将在后台中休眠直到达到所需要的电池水平和/或任何类型的连通性是可用的。如果MADIS需要执行一个任务但是不存在可接受的连通性,则它将把这个任务标记为保持任务(holding task),并且向前移动到下一个任务。如果下一个任务准备好,则它将执行该下一个任务并且重复该过程。如果在任何点处,调度器到达一个仍未到期的任务,则它将停止迭代并且休眠直到该仍未到期的任务到期或直到连通性可用于任何保持任务(如果有的话)。
(10)MA缓存模块(MACM)
此模块负责保持对已缓存内容的跟踪;它被分成三个主要部件,如图7中示出的。
a.缓存处理器:处理和保持对已缓存内容的跟踪的子模块,其中已缓存内容的每个项目具有例如以下细节:
1.URL:用于该内容的标识符。
2.路径:该内容在SD卡或移动设备的其他存储器上的位置。
3.日期:该内容的提取日期。
b.缓存清理器:负责清理移动设备存储器(例如,SD卡)并且移除旧的和未使用的内容的子模块。不同类型的已缓存内容的清理标准是不同的,例如:
1.Last.fm:Last.fm的播放列表在其被消费之后被清理,但是如果一个新的播放列表到达则将清理音频文件或在一个指定的时间间隔之后将清理音频文件。
2.CNN:内容的摘要同样地在其被消费之后被清理,但是将用新的摘要清理其他文件或在一个指定的时间间隔之后清理其他文件。
3.Youtube:在一个指定的时间间隔之后清理已缓存的视频。
c.缓存:SD卡(或移动设备的其他存储器)上的已缓存内容。
每次CSVPNH得到一个请求,它询问MACM关于到来数据包请求URL的可用性。然后MACM在移动设备存储器中搜索该URL,并且将返回已缓存内容的位置(例如,其在SD卡上的位置)。每次MAFM开始提取内容时,它与MACM通信以校验该内容之前是否已经缓存,并且MACM返回结果。在MAFM完成该内容的提取之后,它通知MACM添加到缓存的新内容并且提供早前陈述的细节。
(11)MA提取模块(MAFM)
此模块负责将内容缓存到SD卡(或其他存储器存储),其中MADIS通过与MAFM通信以开始提取该内容来启动提取会话。此后,MAFM与MACM通信以通知MACM新的已缓存内容。MAFM被分成三个主要部件,如图8中示出的。
a.提取管理器:处理提取内容的序列并且以并行方式或有顺序的方式管理提取器的子模块,它可被表示为队列或集合
b.应用提取器:负责提取内容并且将该内容保存到SD卡的子模块
c.缓存:SD卡中的已缓存内容。
每次MADIS完成对调度表的解析,它都向提取管理器发送提取请求,提取管理器向提取任务赋予优先级并且为每个任务启动适当的应用提取器。应用提取器与MACM通信以确保此内容之前未曾被缓存,然后它开始根据应用类型提取内容。一些实施例如下:
·Las t.fm提取器:被分成两个提取器
1.播放列表提取器:得到用户稍后将播放的音频文件列表的提取器。
2.音频提取器:提取所提取的播放列表中的音频文件的列表的提取器。
Last.fm提取器将需要发送到MACM以通知它用于所述两个提取器中的每一个的新的已缓存内容。
·CNN提取器:被分成两个提取器:
1.摘要提取器:向CNN服务器发送请求以得到内容的一个新的摘要的提取器。
2.内容提取器:提取多媒体文件和提取的摘要的内容的提取器。
CNN提取器将需要发送MACM以通知它用于所述两个提取器中的每一个的新的已缓存内容
·YouTube提取器:
它负责提取YouTube视频并且发送到MACM以通知它新的已缓存内容。
当MAFM完成提取所有当前任务时,它将告知MADIS当前未进行提取任务。
(12)MA调度器模块(MASM)
此模块负责调度MA与CS之间的通信,其中它要求MACSH发送Wi-Fi记录、电池记录、内容记录、统计记录、数据使用记录、推荐调查结果,并且接收调度表和推荐调查。MASN被分成10个主要部件,如图9中示出的。
a.MA调度器:处理与CS的通信并且处理记录或调度表的周期性发送和接收的定时器的子模块。
b.发送Wi-Fi记录:负责向CS发送Wi-Fi记录的子模块。
c.发送电池记录:负责向CS发送电池记录的子模块。
d.发送内容记录:负责向CS发送内容记录的子模块。
e.发送统计记录:负责向CS发送统计记录的子模块。
f.发送数据使用记录:负责向CS发送数据使用记录的子模块。
g.发送推荐调查结果:负责向CS发送推荐调查结果的子模块。
h.发送用户偏好:负责发送用户的偏好的子模块。
i.接收调度表:负责从CS接收调度表的子模块。
j.接收推荐调查:负责从CS接收推荐调查的子模块。
每次定时器识别出它需要与CS通信;它将调用MA调度器以开始执行适当的发送器或接收器,该适当的发送器或接收器转而与MACSH通信以发送记录或接收调度表。
(13)Facebook连接模块(FCM)
此模块负责处理用户到他的/她的Facebook账户的连接并且授权Facebook提取器访问Facebook新闻提要(news feed)从而能够缓存所需要的内容。以java编写的FacebookSDK用于连接到Facebook。
(14)MA VPN处理器(MAVPNH)
此模块处理MA上的VPN连接,并且被配置为如图10中示出的。VPN管理器子模块扩展例如VPN服务类以建立VPN解决方案;它创建虚拟网络接口、配置地址和路由规则,并且向应用返回一个文件描述符(decriptor)。每次从描述符的读取检索一个已被路由到该界面的输出数据包。每次对描述符的编写注入一个输入数据包就像它是从接口接收的。从描述符的读取/对描述符的编写是并行执行的。该接口正运行在互联网协议(IP)上,因此数据包总是以IP头开始。该应用通过处理数据包以及经通道与远程服务器交换数据包来完成VPN连接。VPN管理器子模块研究该数据包以确定它是否是TCP数据包并且保持HTTP通信量从而提取并且将请求方法和“主”HTTP头字段从输出数据包发送到数据包拦截器子模块。VPN处理器模块使用Jpcap库来捕获网络数据包并且扩展其功能以生成网络数据包。
数据包拦截器子模块向内容记录器模块发送所提取的请求方法和“主”HTTP头字段,并且在向缓存处理器模块发送所提取的请求方法和“主”HTTP头字段之前使用主应用表进行过滤。以此方式,仅用于所支持的应用的请求被发送到缓存处理器,从而检索用于该请求的已缓存的内容(如果有的话)。数据包拦截器子模块接收来自缓存处理器模块的结果并且将该结果转发到VPN子模块。如果未发现已缓存的内容,则VPN管理器子模块将输出数据包编写到通道(tunnel)。如果发现已缓存的内容,则VPN管理器子模块丢掉输出数据包并且创建新的数据包注入器以处理已缓存的内容到数据包内的加载。
数据包注入器将大的已缓存内容(例如,音频/视频文件)分解成数据包。VPN管理器子模块在同一时间处理用于为不同应用所请求的不同已缓存内容的多个数据包注入器,同时读取来自通道的输入数据包,并且将所有先前的编写到描述符。VPN管理器子模块还保持对用于不同应用的运行着的数据包注入器的跟踪,以使得如果它拦截一个针对已经运行的应用的新的输出数据包,则它将截断针对已缓存的内容的加载数据包。数据包注入器还向统计计算器模块发送已加载的缓存内容的大小。
如上文所描述的,所有用户设备的VPN处理器模块将HTTP通信量发送到CSVPNH(下文描述的)以用于路由。这可以是该系统的一个可能的瓶颈。如果需要的话,平衡该系统上的额外负载的一种方式是MAVPNH与动态CSVPNH相互作用。每当移动设备具有一个数据连接,在建立VPN网络之前,MAVPNH将启用(invoke)MACSH以从CSMAH请求一个IP端口对。获得的IP端口对然后被用于进行中的连接直到连接被中断。相同的过程被重复用于任何已建立的连接。
(15)MA UI
这是应用的用户界面。它负责显示内容使用统计、为用户提供雅致的方式来浏览已缓存的内容、收集来自用户的数据计划信息以及为用户建议推荐的行动等。
(16)MA云服务器处理器(MACSH)
此模块处理与CS的所有通信。它周期性地向CS发送Wi-Fi、电池和内容记录,接收和保存调度表到文件,以及向分配器模块发送通知。它除了接收来自CS的推荐调查和向CS发送推荐调查结果之外还向CS发送带宽节省统计。在本文中示出和描述的实施方案中,MACSH是唯一与CS通信的模块。MACSH还包括REST客户端以调用由CS提供的REST网络服务。以JSON格式发送和接收请求和响应,并且发送/接收数据作为“数据”参数名称的值。
云服务器(CS)架构
此部分描述云服务器(“CS”)的一个实施方案的架构,包括其模块,这些模块之间的接口,以及由这样的模块执行的操作序列。图11是描绘一个示例性CS配置以及其与移动应用的通信的框图。
CS模块
(1)CS VPN处理器(CSVPNH)
此模块处理CS上的VPN连接。CSVPNH通过已创建的通道转发从MA接收的/向MA发送的IP数据包。它同时处理多个会话并且使用设备ID执行简单的验证。在此阶段内没有完成数据包研究。为了优化性能,提供一个专用机器(或多个机器)用于转发。如描述的,对于MAVPNH,一种用于解决任何可能出现的性能问题的方法是具有CSVPNH的多个实例。CSMAH将从CSLBM请求一个IP端口对,并且该IP端口对然后被用于进行中的连接直到被中断。(应注意的是上文未在图7中描绘CSLBM。)
(2)CS移动应用处理器(CSMAH)
此模块处理与MA的所有通信。它接收Wi-Fi、电池和内容记录,以及向记录管理器模块发送记录。CSMAH还从CSSM检索调度表并且根据请求向MA发送调度表。它还从MA接收带宽节省统计和数据使用记录,并且向CSLMM发送统计和数据使用记录。CSMAH还根据请求向MA发送推荐调查,并且从MA接收推荐调查结果。在示出的示例性实施方案中,在CS中除了CSMAH之外没有其它模块与MA通信。CSMAH使用网络框架来提供REST网络服务。请求和响应是以JSON格式发送/接收的,并且发送/接收数据作为具有“数据”参数名称的值。
(3)CS负载平衡模块(CSLBM)
此模块(如果提供的话)负责在存在多个实例的CSVPNH时平衡负载。每当MA建立一个3G连接,它将为CSVPNH请求一个IP端口对。CSMAH将向CSLBM转发该请求,CSLBM将监控每个CSVPNH实例当前正在处理多少个连接。CSLBM用具有可接受负载的CSVPNH的IP端口对来响应该请求。此模块中使用的算法可以是相对简单的,或是更复杂的,这取决于所估计的单个CSVPNH实例的性能。
(4)CS记录管理器模块(CSLMM)
此模块负责将记录保存至云服务器数据库(“CSDB”)/加载来自云服务器数据库(“CSDB”)的记录。当MA处理器发送一个新的记录时启用CSLMM,从而将新的记录保存到CSDB。CSLMM还启用提供先前记录的CSPMM以重新生成配置文件。CSLMM包括若干个子模块:
a.内容记录管理器模块
此子模块负责将内容记录保存至数据库/加载来自数据库的内容记录。如本文中进一步描述的,从CSMAH接收以被保存在数据库中的输入文件将被格式化。该子模块将解析该文件,在数据库表中创建新的每日记载,并且将记载按行插入。在将新的记录保存到数据库之后,它将启用提供先前内容记录的CSPMM。该CSPMM将使用此数据更新内容配置文件。
b.WiFi记录管理器模块
此子模块负责将Wi-Fi记录保存至数据库/加载来自数据库的Wi-Fi记录。如本文中进一步描述的,从CSMAH接收以被保持在数据库中的输入文件将被格式化。该子模块将解析该文件,在该数据库表中创建新的每日记载,并且将记载按行插入。在将新的记录保存到数据库之后,它将启用提供先前Wi-Fi记录的CSPMM。该CSPMM将使用此数据重新生成连通性配置文件。
c.电池记录管理器模块
此子模块负责将电池记录保存至数据库/加载来自数据库的电池记录。如本文中进一步描述的,待被保存在数据库中的输入文件将被格式化。该子模块将解析该文件,并且将记载按行插入。在将新的记录保存到数据库之后,它将启用提供先前的电池记录的CSPMM。该CSPMM将使用此数据重新生成电池配置文件。
d.统计记录管理器模块
此子模块负责将统计记录保存至数据库/加载来自数据库的统计记录。如本文中进一步描述的,待被保存在数据库中的输入文件将被格式化。该子模块将解析该文件,并且将记载按行插入。在将新的记录保存到数据库之后,它将启用提供先前电池记录的CSPMM。该CSPMM将使用此数据重新生成通信量统计配置文件。
e.数据计划记录管理器模块
此子模块负责将数据计划记录保存至数据库/加载来自数据库的数据计划记录。如本文中进一步描述的,待被保存在数据库中的输入文件将被格式化。该子模块将解析该文件并且将记载按行插入。在将新的记录保存到数据库之后,它将启用提供先前数据计划记录的CSPMM。该CSPMM将使用此数据重新生成数据计划配置文件。
f.推荐调查管理器模块
此子模块负责加载来自数据库的推荐调查问题,并且还将推荐调查答案保存至数据库/加载来自数据库的推荐调查答案。如本文中进一步描述的,待被保存在数据库中的输入文件将被格式化。该子模块将解析答案文件并且将答案插入在数据库中。此模块将由CSSM启用以将所述调查答案反映到调度决定中。
g.用户偏好管理器模块
此子模块负责将数据计划记录保存至数据库/加载来自数据库的数据计划记录。如本文中进一步描述的,待被保存在数据库中的输入文件将被格式化。该子模块将解析该文件并且更新该数据库中的用户偏好。CSSM将从此子模块中得到用户偏好以将它反映在得到的调度表中。
(5)CS配置文件管理器模块(CSPMM)
CSPMM包括许多部件:
a.配置文件管理器
此子模块负责保存和加载用户配置文件。它保存CSPMM其余的子模块生成的配置文件,并且加载CSSM请求的配置文件。
b.内容配置器
这是一个内容请求配置器(profi ler),在此,记载是更结构化的。到此子模块的输入将是从CSLMM返回的内容记录阵列。一些统计被计算,诸如在多个星期中的特定一天做出此请求的最小(最早的)时间和最大(最迟的)时间(例如,在最后五个星期日期间做出对内容X的请求的最晚时间),由某个应用ID针对某个类别做出的所有请求的平均时间,以及此请求(应用配置器)的优先级。每个应用请求被用于计算此应用ID优先级以供稍后在调度器中使用。计算针对每个应用ID的参考计数。此计数反映由此应用做出的请求的数目。大的参考计数意味着对此应用的需求比其他应用更频繁,这提高了此应用的优先级。平均请求时间将被用于在正确的时间调度任务并且最大(最迟的)时间将被用作终止日期。
c.Wi-Fi配置器
此部件负责配置Wi-Fi记录文件。到此子模块的输入将是从CSLMM返回的Wi-Fi记录阵列。此配置器提供两个用于呈现Wi-Fi记录的机制:每日机制,其将所有记录记载处理成每日记载,这意味着所有实体被结合到一个单个24小时的一天;每周机制,其将记录记载处理成分开的多天,因此被结合在一个较长的7天的时段中。
d.电池配置器
此部件负责估计充电时间和放电时间。到此模块的输入将是从CSLMM返回的电池记录阵列。此信息稍后将被用在调度器中。放电周期(电池低)将被反映为BW密度函数中的无Wi-Fi时期。例如,每当发现电池低的时期,这将在估计的可用BW上被反映为没有可用的BW,以减少(或者甚至防止)在此时间段的优先级调度任务。
e.数据计划配置器
此部件负责估计用户的数据计划的使用。到此子模块的输入将是从CSLMM返回的数据计划记录阵列。此信息稍后将被用在调度器中。该数据计划配置文件将被反映在影响是否经由3G缓冲内容的调度中。当前数据使用连同数据计划限度被用于上述决定。
f.带宽建模器
此部件创建BW密度函数。它提供得到每个点中的有贡献的Wi-Fi实体和它们的相应的BW值的装置。可以通过累加所有的在不同周的特定一天的此具体时隙(如果有的话)中有贡献的Wi-Fi实体的BW来获得BW密度函数中的点。例如时间中的点X具有从最后五个星期天的此时间X期间发现的所有Wi-Fi实体的平均的BW值。如果在某个时期不存在Wi-Fi,则将使用一个零值来代替。
(6)CS调度器模块(CSSM)
根据将用户、内容以及移动网络的配置文件纳入考虑的多目标标准来优化此模块。它还从UI支持的动态设置(推荐)功能获得输入。得到的调度表将被发送到移动单元以执行。
(7)CS数据库接口(CSDBI)
此模块负责映射和抽象CS中的数据库服务器。它使用对象关系映射(ORM)设计模式来处理针对CS数据库(CSDB)执行的所有询问和操作。这意味着存在两个层。第一层是数据库抽象层(DBAL),数据库抽象层允许插入任何支持的数据库类型而不需要重新编写所有代码或询问。第二层在两个方向上将数据库表映射到对象,即,它以对象的方式从数据库检索数据,并且当被告知保存数据时将对象映射回数据库中的它的原始表。由图12进一步解释ORM架构。
云服务器操作序列
(1)保存记录操作序列
CS移动应用处理器(CSMAH)操作:每天一次,MA将向CS发送Wi-Fi记录、电池记录和内容记录。CSMA将接受所述文件并且将它们传递到CS记录管理器模块(CSLMM)。
CS记录管理器模块(CSLMM)操作:CSLMM将解析接收的记录文件,并且将已解析的数据保存到CSDB。它还将加载先前数周的记录并且将它们传递到CSPMM以更新用户配置文件。
CS配置文件管理器模块(CSPMM)操作:CSPMM将由CSLMM启用以更新用户配置文件。它将生成新的配置文件,并且将它们保存到数据库。
(2)请求调度表操作序列
CS移动应用处理器(CSMAH)操作:每天一次,MA将从CS请求新的调度表。CSMA将接受该请求,启用CS调度器(CSS),并且发送作为结果的文件。
CS调度模块(CSSM)操作:调度器将在运行中生成调度表并且使它返回到CSMAH。为了生成该调度表,它将需要配置文件。因此它将从CSPMM请求最近的用户配置文件。
CS配置文件管理器模块(CSPMM)操作:配置文件管理器子模块将来自数据库的最近的用户配置文件加载到对象中并且将它们返回到CSSM。
云服务器(CS)-移动应用(MA)界面
CS提供一个API,该API允许MA调用以REST类型JSON响应的方法。在以下表中详述了各个方法。
ID | 网络服务名称 | 描述 |
1 | 注册 | 注册用户的设备id |
2 | 发送Wi-Fi记录 | 发送用户的Wi-Fi记录 |
3 | 发送电池记录 | 发送用户的电池记录 |
4 | 发送内容记录 | 发送用户的通信量内容记录 |
5 | 提取调度表 | 检索用户的缓存调度表 |
6 | 发送统计 | 发送用户的带宽节省统计 |
7 | 发送数据使用 | 发送用户的通信量使用统计 |
8 | 提取推荐调查 | 检索用户的推荐调查 |
9 | 发送推荐调查结果 | 发送用户的推荐调查结果 |
10 | 请求CSVPNH | 请求用于CSVPN实例的IP端口对 |
11 | 发送偏好 | 发送用户的偏好 |
MA界面注册网络服务
发送WiFi记录网络服务
发送电池记录网络服务
发送内容记录网络服务
提取调度表网络服务
发送统计网络服务
发送数据使用网络服务
提取推荐调查网络服务
发送推荐调查结果网络服务
请求CSVPNHW网络服务(发送统计网络服务)
发送偏好网络服务
示例性XML文件格式
下文提供了本文中所描述的系统和方法中使用的一些示例性XML文件格式。
Wi-Fi记录器
这是从MA向CS发送的文件,其含有用户的Wi-Fi记录。
内容记录器
这是从MA向CS发送的文件,其含有用户的内容记录。
电池记录器
这是从MA向CS发送的文件,其含有用户的电池记录。
统计记录器
这是从MA向CS发送的文件,其含有用户的通信量统计记录。
数据使用记录器
这是从MA向CS发送的文件,其含有用户的通信量数据使用记录。
推荐调查记录器
这是从MA向CS发送的文件,其含有用户的推荐调查。
推荐调查结果记录器
这是从MA向CS发送的文件,其含有用户的推荐调查结果。
偏好
这是从MA向CS发送的文件,其含有用户的偏好。
虽然上文已经详细地讨论了本发明的设备和部件,但应理解,使用所讨论的设备的部件、特征、配置和方法不限制于上文提供的环境。尤其,在所述设备之一的环境中描述的部件、特征、配置和使用方法可被纳入到任何其他设备中。此外,不限制于下文提供的进一步描述,鉴于本文中的教导,本领域普通技术人员将明了附加的和替代的合适部件、特征、配置和使用所述设备的方法以及本文中的教导可被结合和互换的多种方式。
本公开内容中已经示出的并描述了多种版本,在不背离本发明的范围的前提下,本领域普通技术人员可通过适当改型完成本文中描述的方法和系统的另一些改动。已经提到了若干个这样的可能的改型,并且本领域技术人员将明了其他改型。例如,上文讨论的实施例、版本、几何图形、材料、尺度、比率、步骤等是例示性的而不是必须的。
Claims (27)
1.一种用于通过包括移动应用客户端的移动设备来优化网络带宽的使用的系统,所述移动应用客户端驻留在所述移动设备上并经由一个网络连接至一个云服务器,所述移动应用客户端包括:
移动应用内容记录器模块,该移动应用内容记录器模块记录移动应用通信量的内容消费,以及
移动应用电池记录器模块,该移动应用电池记录器模块记录移动设备的电池的电池使用,
其中所述系统分析所述移动设备的用户的用户内容消费来创建一个用户配置文件,所述系统基于该用户配置文件编译被预期将由用户所请求的内容的预取调度表,该用户配置文件包括反映从如下一组选择的状况的数据,该组包括:所述移动设备的网络访问、所述移动设备的电池状态、用户内容消费、预期将由用户所请求的内容、之前由用户请求的内容、命中率动态、用户连通性模式、数据消费速率、数据递送效率以及以上的组合,该用户配置文件还包括内容动态更新速率,
其中所述移动应用客户端向所述移动设备提供所述预取调度表,并且其中所述移动设备根据所述预取调度表至少部分地从一个或多个内容源预取内容,以至少部分地基于当前网络资源提供质量优化的服务。
2.根据权利要求1所述的系统,其中虚拟专用网络被设置,通过所述虚拟专用网络路由来自所述移动设备的所有所述移动应用通信量/到所述移动设备的所有所述移动应用通信量。
3.根据权利要求2所述的系统,其中通过所述虚拟专用网络路由的所述移动应用通信量被分析,以确定在不同内容类型中的用户偏好。
4.根据任一项前述权利要求所述的系统,其中用户的内容偏好被存储在所述云服务器和/或所述移动设备处的内容记录文件中。
5.根据权利要求1-3中的任一项所述的系统,其中用户移动性模式确定用户对不同移动网络的访问被存储在记录文件中。
6.根据权利要求1-3中的任一项所述的系统,其中所述移动应用客户端还包括移动应用统计计算器模块和移动应用Wi-Fi记录器模块,所述移动应用统计计算器模块负责确定对于每个应用而言在3G或Wi-Fi上为用户节省的带宽量,所述移动应用Wi-Fi记录器模块接收连通性变化信息以记录所述移动设备何时进入和退出Wi-Fi网络,并且在所述移动设备进入Wi-Fi网络时通过下载云服务器上的指定文件三次以便计算平均带宽来计算带宽。
7.根据权利要求1-3中的任一项所述的系统,其中月度数据计划的使用被存储在记录文件中。
8.根据权利要求1-3中的任一项所述的系统,其中所述当前网络资源指示所述移动设备被连接至短距离网络。
9.根据权利要求8所述的系统,其中所述短距离网络相比于所述用户配置文件中的第二网络是成本更低的网络。
10.根据权利要求1-3中的任一项所述的系统,其中所述预取调度表是由所述云服务器计算的,并且被发送至所述移动设备。
11.根据权利要求1-3中的任一项所述的系统,其中所述预取调度表包含针对每个项目的优先级和每个项目将被缓存的具体条件。
12.根据权利要求1-3中的任一项所述的系统,其中所述预取调度表是由所述移动设备中的一个专用模块执行的。
13.根据权利要求2或3所述的系统,其中由不同移动应用生成的并且通过所述虚拟专用网络路由的通信量请求被拦截和分析,以确定在本地存储器中是否可获得所请求的内容。
14.根据权利要求1-3中的任一项所述的系统,其中如果在本地存储器中可获得所请求的内容,则相应的请求被重新路由至本地存储器而不是被重新路由至互联网。
15.根据权利要求1-3中的任一项所述的系统,其中如果在本地存储器中不可获得所请求的内容,则相应的请求被转发到它们的预期目的地。
16.根据权利要求1-3中的任一项所述的系统,其中如果压缩功能被激活,则多媒体内容被所述云服务器压缩之后被转发到所述移动设备。
17.根据权利要求1-3中的任一项所述的系统,其中用户界面可用于独立于请求已缓存的内容的应用而访问已缓存的内容。
18.根据权利要求17所述的系统,其中所述用户界面配备有推荐引擎以用于不同内容类别。
19.根据权利要求18所述的系统,其中结合形成配置文件和缓存模块来优化所述推荐引擎,以激励用户消费已缓存的内容并且使得下载不会被消费的内容的可能性最小化。
20.根据权利要求17所述的系统,其中所述用户界面向用户提供关于他的/她的偏好、使用模式、数据计划的效用以及涉及数据计划的警告、以及由平台实现的节省的定制报告。
21.根据权利要求17所述的系统,其中所述用户界面为用户提供定制的和动态的设置,以控制缓存功能的某些参数。
22.根据权利要求1-3中的任一项所述的系统,其中根据通过动态设置面板从用户获得的输入来修改所述用户配置文件。
23.根据权利要求1-3中的任一项所述的系统,其中所述预取调度表包含针对每个项目的优先级和每个项目将被缓存的具体条件,所述具体条件为电池水平,用于预取的时间窗口以及某些移动网络的可用性。
24.根据前述权利要求1-3中的任一项所述的系统,其中如果压缩功能被激活,则预取和实时内容被所述云服务器压缩之后被转发到所述移动设备。
25.一种包括根据权利要求1-24中任一项所述的系统的系统架构,用于构造一个平台以用于为多种移动平台预测自动的以用户为中心的内容加载。
26.一种包括根据权利要求1-24中任一项所述的系统的系统架构,其对于云中的通信量转发和/或分析是使用软件实施的,能够使用硬件模块和软件来实施。
27.一种使用权利要求1-24中任一项所述的系统来优化网络带宽的使用的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010413672.0A CN111614980B (zh) | 2012-08-14 | 2013-08-14 | 用于通过移动设备来优化网络带宽的使用的系统和方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261682828P | 2012-08-14 | 2012-08-14 | |
US61/682,828 | 2012-08-14 | ||
PCT/US2013/055021 WO2014028672A1 (en) | 2012-08-14 | 2013-08-14 | System and method for efficient use of network bandwidth |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010413672.0A Division CN111614980B (zh) | 2012-08-14 | 2013-08-14 | 用于通过移动设备来优化网络带宽的使用的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104969604A CN104969604A (zh) | 2015-10-07 |
CN104969604B true CN104969604B (zh) | 2020-06-02 |
Family
ID=50101484
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380053678.XA Active CN104969604B (zh) | 2012-08-14 | 2013-08-14 | 有效使用网络带宽的系统和方法 |
CN202010413672.0A Active CN111614980B (zh) | 2012-08-14 | 2013-08-14 | 用于通过移动设备来优化网络带宽的使用的系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010413672.0A Active CN111614980B (zh) | 2012-08-14 | 2013-08-14 | 用于通过移动设备来优化网络带宽的使用的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (5) | US10178580B2 (zh) |
CN (2) | CN104969604B (zh) |
WO (1) | WO2014028672A1 (zh) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9106721B2 (en) * | 2012-10-02 | 2015-08-11 | Nextbit Systems | Application state synchronization across multiple devices |
US9357021B2 (en) * | 2013-03-14 | 2016-05-31 | Comcast Cable Communications, Llc | Delivery of content |
WO2014201177A1 (en) | 2013-06-11 | 2014-12-18 | Seven Networks, Inc. | Offloading application traffic to a shared communication channel for signal optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols |
US9420056B2 (en) * | 2013-06-26 | 2016-08-16 | International Business Machines Corporation | Analytics caching based on users connected |
CN106416138A (zh) * | 2013-12-31 | 2017-02-15 | 班德韦斯克公司 | 用于分配备选网络接入资源的系统和方法 |
US9591095B2 (en) * | 2014-03-10 | 2017-03-07 | Microsoft Technology Licensing, Llc | Prefetching application data for periods of disconnectivity |
US10075510B2 (en) | 2014-03-13 | 2018-09-11 | Google Llc | Analytics-based update of digital content |
US10432748B2 (en) | 2014-07-16 | 2019-10-01 | Tensera Networks Ltd. | Efficient content delivery over wireless networks using guaranteed prefetching at selected times-of-day |
US11095743B2 (en) * | 2014-07-16 | 2021-08-17 | Tensera Networks Ltd. | Optimized content-delivery network (CDN) for the wireless last mile |
CN107005869A (zh) * | 2014-10-17 | 2017-08-01 | 七网络有限责任公司 | 在移动设备上协同管理策略 |
US20160182286A1 (en) * | 2014-12-19 | 2016-06-23 | Nokia Technologies Oy | Method for provisioning non-real-time data |
US9858191B2 (en) | 2014-12-31 | 2018-01-02 | Samsung Electronics Co., Ltd. | Electronic system with data management mechanism and method of operation thereof |
US9826060B1 (en) * | 2015-02-17 | 2017-11-21 | Amazon Technologies, Inc. | Predictive transmission of digital content |
US10447643B2 (en) * | 2015-02-18 | 2019-10-15 | Facebook, Inc. | Presenting previously presented content items stored by users of a social networking system based on user-specified criteria |
GB201504403D0 (en) | 2015-03-16 | 2015-04-29 | Microsoft Technology Licensing Llc | Adapting encoded bandwidth |
US9978018B2 (en) * | 2015-04-22 | 2018-05-22 | Aeris Communications, Inc. | Method and system for optimizing execution of user commands in relation to power management |
CN106155764A (zh) | 2015-04-23 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 调度虚拟机输入输出资源的方法及装置 |
CN106201839B (zh) | 2015-04-30 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 一种业务对象的信息加载方法和装置 |
CN106209741B (zh) | 2015-05-06 | 2020-01-03 | 阿里巴巴集团控股有限公司 | 一种虚拟主机及隔离方法、资源访问请求处理方法及装置 |
US10581987B2 (en) | 2015-07-06 | 2020-03-03 | Airwatch Llc | Application network usage management |
US10382306B2 (en) * | 2015-07-06 | 2019-08-13 | Airwatch Llc | Application network usage management |
CN106708819A (zh) | 2015-07-17 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种数据缓存的预热方法及其装置 |
US9734068B2 (en) * | 2015-08-11 | 2017-08-15 | International Business Machines Corporation | Cost sensitive browser cache cleanup based on weighted probabilistic cached item usage |
CN106487708B (zh) | 2015-08-25 | 2020-03-13 | 阿里巴巴集团控股有限公司 | 网络访问请求控制方法和装置 |
US9774648B2 (en) | 2015-09-01 | 2017-09-26 | International Business Machines Corporation | Equitable and cooperative bandwidth pooling for a shared media event |
CN106547582A (zh) * | 2015-09-22 | 2017-03-29 | 阿里巴巴集团控股有限公司 | 一种预处理方法及装置 |
US10045211B2 (en) | 2015-09-29 | 2018-08-07 | Bandwidthx Inc. | Authentication and authorization of mobile devices for usage of access points in an alternative network |
CN106657182B (zh) | 2015-10-30 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 云端文件处理方法和装置 |
CN106850722A (zh) * | 2015-12-04 | 2017-06-13 | 上海杰轩智能科技有限公司 | 一种通过http传输客流计数信息的方法 |
US10091264B2 (en) * | 2015-12-26 | 2018-10-02 | Intel Corporation | Technologies for streaming device role reversal |
JP2017130739A (ja) * | 2016-01-19 | 2017-07-27 | 株式会社Nttドコモ | 端末装置及び端末制御プログラム |
US10257305B2 (en) * | 2016-02-08 | 2019-04-09 | International Business Machines Corporation | Preemptive content distribution |
US10652352B2 (en) * | 2016-03-29 | 2020-05-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Server, client device and methods therein for handling |
WO2017195361A1 (ja) * | 2016-05-13 | 2017-11-16 | 楽天株式会社 | 情報処理装置、情報処理方法、プログラム、記憶媒体、情報処理システム |
US10326889B2 (en) | 2016-06-21 | 2019-06-18 | At&T Mobility Ii Llc | Method and apparatus for distributing content via a wireless communication network |
US10218811B1 (en) | 2016-06-29 | 2019-02-26 | Oath (Ameericas) Inc. | Systems and methods for utilizing unused network capacity for prefetch requests |
US10601945B2 (en) * | 2016-09-27 | 2020-03-24 | Facebook, Inc. | Systems and methods for prefetching content items for a feed in a social networking system |
US11122139B2 (en) * | 2016-11-02 | 2021-09-14 | Google Llc | Systems and methods for reducing download requirements |
EP3631682A4 (en) | 2017-05-31 | 2021-02-24 | Carmera, Inc. | SYSTEM OF VEHICLES WITH IMAGING DEVICES FOR HIGH-RESOLUTION MAP GENERATION IN REAL-TIME |
US11463773B2 (en) * | 2018-02-23 | 2022-10-04 | Sony Interactive Entertainment LLC | Providing activity notifications regarding digital content |
US11922187B2 (en) | 2018-03-05 | 2024-03-05 | Tensera Networks Ltd. | Robust application preloading with accurate user experience |
US11915012B2 (en) | 2018-03-05 | 2024-02-27 | Tensera Networks Ltd. | Application preloading in the presence of user actions |
US11184310B2 (en) | 2019-06-11 | 2021-11-23 | International Business Machines Corporation | Social media infused relationship management based on 5G connection speed |
US11824956B2 (en) | 2019-07-30 | 2023-11-21 | Tensera Networks Ltd. | Pre-rendering of application user-interfaces in user devices using off-line pre-render mode |
US10979892B2 (en) * | 2019-07-30 | 2021-04-13 | At&T Intellectual Property I, L.P. | Efficient device capabilities enquiry for 5G or other next generations wireless network |
US11336936B2 (en) | 2020-05-11 | 2022-05-17 | Georgia Tech Research Corporation | Systems and methods for time-shifted prefetching of predicted content for wireless users |
CN116670646A (zh) | 2020-12-03 | 2023-08-29 | 腾赛拉网络有限公司 | 预加载具有现有任务的应用 |
US20220210488A1 (en) * | 2020-12-30 | 2022-06-30 | Comcast Cable Communications, Llc | Method and system for detecting and managing similar content |
CN113891174B (zh) * | 2021-09-27 | 2023-09-29 | 上海哔哩哔哩科技有限公司 | 一种直播视频的带宽统计方法和系统 |
CN114547524B (zh) * | 2022-03-07 | 2023-03-03 | 无锡雪浪数制科技有限公司 | 一种同步http接口数据的方法、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7975025B1 (en) * | 2008-07-08 | 2011-07-05 | F5 Networks, Inc. | Smart prefetching of data over a network |
CN102469505A (zh) * | 2010-11-08 | 2012-05-23 | 宏达国际电子股份有限公司 | 无线通讯系统的处理询问超载的方法 |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5619274A (en) | 1990-09-10 | 1997-04-08 | Starsight Telecast, Inc. | Television schedule information transmission and utilization system and process |
JP4309480B2 (ja) | 1995-03-07 | 2009-08-05 | 株式会社東芝 | 情報処理装置 |
US6324570B1 (en) | 1997-02-25 | 2001-11-27 | E-Parcel, Llc | Prioritized delivery and content auto select system |
JP3382176B2 (ja) | 1999-03-26 | 2003-03-04 | 株式会社東芝 | 要求処理方法および要求処理装置 |
US6701316B1 (en) * | 2000-04-07 | 2004-03-02 | Nec Corporation | Method and apparatus for intelligent network bandwidth and system resource utilization for web content fetch and refresh |
GB2364483A (en) * | 2000-06-30 | 2002-01-23 | Nokia Oy Ab | Accessing more than one item of information from a remote server |
US7403994B1 (en) | 2000-08-29 | 2008-07-22 | International Business Machines Corporation | Method of doing business over a network by transmission and retransmission of digital information on a network during time slots |
US7437438B2 (en) * | 2001-12-27 | 2008-10-14 | Hewlett-Packard Development Company, L.P. | System and method for energy efficient data prefetching |
US8516114B2 (en) | 2002-03-29 | 2013-08-20 | International Business Machines Corporation | Method and apparatus for content pre-fetching and preparation |
US20040029591A1 (en) | 2002-08-07 | 2004-02-12 | Nortel Networks Limited | Method and apparatus for accommodating high bandwidth traffic on a wireless network |
US6915221B2 (en) * | 2002-11-18 | 2005-07-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Self learning system and method for predicting remaining usage time for different modes of a mobile device |
US7093256B2 (en) | 2002-12-13 | 2006-08-15 | Equator Technologies, Inc. | Method and apparatus for scheduling real-time and non-real-time access to a shared resource |
US20050032505A1 (en) * | 2003-07-07 | 2005-02-10 | Himelhoch Richard C. | Calling plan time display and method of display for a cellular phone |
CN101379476A (zh) * | 2005-06-07 | 2009-03-04 | 雅虎公司 | 基于移动用户配置文件预取内容 |
US20060277271A1 (en) | 2005-06-07 | 2006-12-07 | Yahoo! Inc. | Prefetching content based on a mobile user profile |
US7565489B2 (en) | 2005-07-01 | 2009-07-21 | Microsoft Corporation | Identifying relevant data to cache |
GB0517585D0 (en) | 2005-08-30 | 2005-10-05 | Ramakrishna Madhusudana | Intuitive search which delivers fast results on the mobile phone |
US8104054B2 (en) | 2005-09-01 | 2012-01-24 | At&T Intellectual Property I, L.P. | Methods, systems, and devices for bandwidth conservation |
US8447837B2 (en) | 2005-12-30 | 2013-05-21 | Akamai Technologies, Inc. | Site acceleration with content prefetching enabled through customer-specific configurations |
EP2302869A3 (en) * | 2006-07-20 | 2013-05-22 | SanDisk Technologies Inc. | An improved audio visual player apparatus and system and method of content distribution using the same |
KR100833534B1 (ko) | 2006-08-23 | 2008-05-29 | 인하대학교 산학협력단 | 그리드 자원 관리 시스템 및 방법 |
US9420603B2 (en) | 2006-09-08 | 2016-08-16 | Qualcomm Incorporated | Recovery from resource mismatch in a wireless communication system |
US7716425B1 (en) | 2006-09-27 | 2010-05-11 | Hewlett-Packard Development Company, L.P. | Prefetching data in distributed storage systems |
KR101311258B1 (ko) | 2006-09-28 | 2013-09-25 | 퀄컴 인코포레이티드 | 신속한 세션 설정을 위한 예측 QoS 자원 할당 |
US8498628B2 (en) | 2007-03-27 | 2013-07-30 | Iocast Llc | Content delivery system and method |
EP1978704A1 (en) * | 2007-04-02 | 2008-10-08 | British Telecommunications Public Limited Company | Content delivery |
JP5408673B2 (ja) | 2007-09-11 | 2014-02-05 | ワイ−ラン インコーポレイテッド | 持続性資源配分 |
US8561116B2 (en) * | 2007-09-26 | 2013-10-15 | Charles A. Hasek | Methods and apparatus for content caching in a video network |
US9002828B2 (en) | 2007-12-13 | 2015-04-07 | Seven Networks, Inc. | Predictive content delivery |
US9313245B2 (en) * | 2007-12-24 | 2016-04-12 | Qualcomm Incorporated | Adaptive streaming for on demand wireless services |
WO2009087549A2 (en) * | 2007-12-31 | 2009-07-16 | France Telecom | Multimedia content prefetching engine |
US8321568B2 (en) | 2008-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Content management |
US8028081B2 (en) * | 2008-05-23 | 2011-09-27 | Porto Technology, Llc | System and method for adaptive segment prefetching of streaming media |
US20100103820A1 (en) * | 2008-05-28 | 2010-04-29 | Camiant, Inc. | Fair use management method and system |
US9336178B2 (en) * | 2008-12-19 | 2016-05-10 | Velocee Ltd. | Optimizing content and communication in multiaccess mobile device exhibiting communication functionalities responsive of tempo spatial parameters |
US8938548B2 (en) * | 2008-12-23 | 2015-01-20 | At&T Mobility Ii Llc | Streaming enhancements through pre-fetch background |
JP2010211428A (ja) | 2009-03-10 | 2010-09-24 | Fujitsu Ltd | ストレージ装置、中継装置、及びコマンド発行制御方法 |
US20100235473A1 (en) * | 2009-03-10 | 2010-09-16 | Sandisk Il Ltd. | System and method of embedding second content in first content |
JP5340084B2 (ja) * | 2009-08-31 | 2013-11-13 | 株式会社ソニー・コンピュータエンタテインメント | 無線通信端末、その制御方法、プログラム、及び情報記憶媒体 |
US8285218B2 (en) * | 2009-08-31 | 2012-10-09 | The Nielsen Company (Us), Llc | Methods and apparatus to identify wireless carrier performance effects |
US8250145B2 (en) * | 2010-04-21 | 2012-08-21 | Facebook, Inc. | Personalizing a web page outside of a social networking system with content from the social networking system |
US20110276766A1 (en) | 2010-05-05 | 2011-11-10 | Broadcom Corporation | Configurable memory controller |
US8378856B2 (en) | 2010-06-29 | 2013-02-19 | At&T Intellectual Property I, L.P. | Method and system for predictive human interface |
US9203810B2 (en) * | 2010-07-23 | 2015-12-01 | Anchorfree Inc. | Web VPN |
US9531522B2 (en) | 2010-09-28 | 2016-12-27 | Hesham El Gamal | System and method for proactive resource allocation |
WO2012050913A1 (en) | 2010-09-28 | 2012-04-19 | The Ohio State University | Predictive network system and method |
US8750188B2 (en) * | 2010-12-01 | 2014-06-10 | Deutsche Telekom Ag | System support for accessing and switching among multiple wireless interfaces on mobile devices |
US8813144B2 (en) | 2011-01-10 | 2014-08-19 | Time Warner Cable Enterprises Llc | Quality feedback mechanism for bandwidth allocation in a switched digital video system |
US8503978B2 (en) * | 2011-12-09 | 2013-08-06 | Cellco Partnership | Real time data usage metering on a mobile station and reconciliation with billable usage measured by a mobile network |
US9125138B2 (en) * | 2012-02-29 | 2015-09-01 | Apple Inc. | System and method for optimizing video conferencing in a wireless device |
-
2013
- 2013-08-14 US US14/421,655 patent/US10178580B2/en active Active
- 2013-08-14 WO PCT/US2013/055021 patent/WO2014028672A1/en active Application Filing
- 2013-08-14 CN CN201380053678.XA patent/CN104969604B/zh active Active
- 2013-08-14 CN CN202010413672.0A patent/CN111614980B/zh active Active
-
2019
- 2019-01-04 US US16/240,293 patent/US10681585B2/en active Active
-
2020
- 2020-05-11 US US16/871,515 patent/US11184797B2/en active Active
-
2021
- 2021-11-10 US US17/523,569 patent/US11647421B2/en active Active
-
2023
- 2023-05-08 US US18/144,611 patent/US20230276299A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7975025B1 (en) * | 2008-07-08 | 2011-07-05 | F5 Networks, Inc. | Smart prefetching of data over a network |
CN102469505A (zh) * | 2010-11-08 | 2012-05-23 | 宏达国际电子股份有限公司 | 无线通讯系统的处理询问超载的方法 |
Also Published As
Publication number | Publication date |
---|---|
US11647421B2 (en) | 2023-05-09 |
US20220070725A1 (en) | 2022-03-03 |
WO2014028672A1 (en) | 2014-02-20 |
US10178580B2 (en) | 2019-01-08 |
US20200275309A1 (en) | 2020-08-27 |
US20190215718A1 (en) | 2019-07-11 |
US20230276299A1 (en) | 2023-08-31 |
CN111614980A (zh) | 2020-09-01 |
US11184797B2 (en) | 2021-11-23 |
CN111614980B (zh) | 2022-04-12 |
US20150215816A1 (en) | 2015-07-30 |
US10681585B2 (en) | 2020-06-09 |
CN104969604A (zh) | 2015-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104969604B (zh) | 有效使用网络带宽的系统和方法 | |
US20220255877A1 (en) | Delaycast queue prioritization | |
US9807457B1 (en) | Predictive content placement on a managed services system | |
US8898133B2 (en) | User behavior-driven background cache refreshing | |
US9887894B2 (en) | Recommendations for reducing data consumption based on data usage profiles | |
US9813936B2 (en) | System and method for scheduling time-shifting traffic in a mobile cellular network | |
US20140282636A1 (en) | Mobile Content Delivery System with Recommendation-Based Pre-Fetching | |
CN110990138B (zh) | 资源调度方法、装置、服务器及存储介质 | |
US8880467B1 (en) | Smart sync—refreshing application state based on user migration patterns | |
US20130031279A1 (en) | Deferred transfer of content to optimize bandwidth usage | |
WO2016177247A1 (zh) | 应用窗口的调节方法、装置 | |
AU2022200659A1 (en) | Mobile content delivery system with recommendation-based pre-fetching | |
Pang et al. | Joint optimization of data sponsoring and edge caching for mobile video delivery | |
Chunlin et al. | Distributed QoS-aware scheduling optimization for resource-intensive mobile application in hybrid cloud | |
Daniel et al. | Distributed hybrid cloud for profit driven content provisioning using user requirements and content popularity | |
Tolosana‐Calasanz et al. | Computational resource management for data‐driven applications with deadline constraints | |
Chunlin et al. | Joint optimisation of application QoS and energy conservation in grid environment | |
US20230269403A1 (en) | Automatically determining parameter values | |
Higgins | Balancing Interactive Performance and Budgeted Resources in Mobile Computing. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180831 Address after: ohio Applicant after: Ohio state innovation foundation Applicant after: Ohio State University Address before: ohio Applicant before: ABOU-ELKHEIR AHMED Applicant before: Ohio State University |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |