CN108429800A - 一种移动设备 - Google Patents

一种移动设备 Download PDF

Info

Publication number
CN108429800A
CN108429800A CN201810182468.5A CN201810182468A CN108429800A CN 108429800 A CN108429800 A CN 108429800A CN 201810182468 A CN201810182468 A CN 201810182468A CN 108429800 A CN108429800 A CN 108429800A
Authority
CN
China
Prior art keywords
request
mobile device
server
application
response
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.)
Granted
Application number
CN201810182468.5A
Other languages
English (en)
Other versions
CN108429800B (zh
Inventor
迈克尔·卢娜
米克·特瓦浩塔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seven Software Co
Original Assignee
HANGZHOU SHUOWEN SOFTWARE CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=46065380&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN108429800(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by HANGZHOU SHUOWEN SOFTWARE CO Ltd filed Critical HANGZHOU SHUOWEN SOFTWARE CO Ltd
Priority claimed from CN201180063972.XA external-priority patent/CN103404193B/zh
Publication of CN108429800A publication Critical patent/CN108429800A/zh
Application granted granted Critical
Publication of CN108429800B publication Critical patent/CN108429800B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W74/00Wireless channel access
    • H04W74/04Scheduled access
    • H04W74/06Scheduled access using polling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/803Application aware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/043Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • H04W28/14Flow control between communication endpoints using intermediate storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • Primary Health Care (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Multimedia (AREA)
  • Telephone Function (AREA)

Abstract

本发明公开了一种移动设备,该移动设备包括:存储器;处理器;检测应用行为的应用行为检测器,所述应用行为检测器包括:检测及跟踪相对于应用的用户活动的用户活动模块,其中,所检测到的活动包括当应用被移动到后台或前台时进行检测;允许用户设置特定应用优先级的优先级引擎;以及配置为用于基于所检测到的用户行为及用户设定的所述特定应用优先级来调整应用的轮询间隔的流量成型引擎。

Description

一种移动设备
本申请是申请日为2011年11月18日,申请号为CN 201180063972.X的中 国发明专利申请的分案申请,在此通过引用将原母案申请的全部内容结合 到本申请中。
要求优先权
本申请要求以下优先权:2010年11月22日提出的申请号:61/416, 020,名称:“ALIGNING BURSTS FROM SERVER TO CLIENT”的美国临时专 利;2010年11月22日提出的申请号:61/416,033,名称:“POLLING INTERVAL FUNCTIONS”的美国临时专利;2011年1月7日提出的申请号: 61/430,828,名称:“DOMAIN NAME SYSTEM WITH NETWORK TRAFFICHARMONIZATION”的美国临时专利;2011年9月9日提出的申请号:61/533, 007(代理人案号:76443-8138.US00),名称:“DISTRIBUTED CACHING IN AWIRELESS NETWORK OF CONTENTDELIVERED FOR A MOBILE APPLICATION OVER A LONG-HELD REQUEST”的美国临时专利,本申请参考引用了如上所述申请 的全部内容。
本申请涉及2011年7月8日提出的申请号:13/178,598(代理人案 号:76443-8102.US01),名称:“CONTEXT AWARE TRAFFIC MANAGEMENT FOR RESOURCE CONSERVATIONIN A WIRELESS NETWORK”的美国专利,本申请参 考引用上述申请的内容。
本申请涉及2011年7月22日提出的申请号:13/188,533(代理人案 号:76443-8103.US01),名称:“MOBILE APPLICATION TRAFFIC OPTIMIZATION”的美国专利,本申请参考引用上述申请的内容。
本申请涉及2011年5月25日提出的申请号:13/115,631(代理人案 号:76443-8104.US01),名称:“MOBILENETWORK TRAFFIC COORDINATION ACROSS MULTIPLEAPPLICATIONS”的美国专利,本申请参考引用上述申请 的内容。
本申请涉及2011年5月25日提出的申请号:13/115,740(代理人案 号:76443-8105.US01),名称:“PREDICTION OF ACTIVITY SESSION FOR MOBILE NETWORK USEOPTIMIZATION AND USER EXPERIENCE ENHANCEMENT” 的美国专利,本申请参考引用上述申请的内容。
本申请涉及2011年6月8日提出的申请号:13/178,675(代理人案 号:76443-8106.US01),名称:“DISTRIBUTED IMPLEMENTATION OF DYNAMIC WIRELESS TRAFFICPOLICY”的美国专利,本申请参考引用上述申请的内容。
本申请涉及2011年7月5日提出的申请号:13/176,537(代理人案 号:76443-8107.US01),名称:“DISTRIBUTED CACHING AND RESOURCE AND MOBILE NETWORK TRAFFICMANAGEMENT”的美国专利,本申请参考引用上述 申请的内容。
本申请涉及2011年10月14日提出的申请号:13/274,265(代理人 案号:76443-8134.US01),名称:“Caching Adapted For Mobile Application Behavior And NetworkConditions”的美国专利,本申请参 考引用上述申请的内容。
本申请涉及2011年10月14日提出的申请号:13/274,501(代理人 案号:76443-8134.US02),名称:“Request and Response Characteristics based Adaptation ofDistributed Caching in a Mobile Network”的美 国专利,本申请参考引用上述申请的内容。
本申请涉及2011年10月14日提出的申请号:13/274,250(代理人 案号:76443-8138.US01),名称:“Distributed Caching In A Wireless Network Of ContentDelivered For A Mobile Application Over A Long-Held Reques”的美国专利,本申请参考引用上述申请的内容。
本申请涉及2011年10月14日提出的申请号:13/274,248(代理人 案号:76443-8139.US01),名称:“APPLICATION AND NETWORK-BASED LONG POLL REQUEST DETECTIONAND CACHEABILITY ASSESSMENT THEREFOR”的美 国专利,本申请参考引用上述申请的内容。
本申请涉及2011年11月1日提出的申请号:13/287,042(代理人案 号:76443-8108.US02),名称:“Cache Defeat Detection and Caching of Content Addressed byIdentifiers Intended to Defeat Cache”的 美国专利,本申请参考引用上述申请的内容。
本申请涉及2011年11月1日提出的申请号:13/257,085(代理人案 号:76443-8108.US03),名称:“Distributed System for Cache Defeat Detection and Caching ofContent Addressed by Identifiers Intended to Defeat Cache”的美国专利,本申请参考引用上述申请的内容。
本申请涉及2011年11月1日提出的申请号:13/287,046(代理人案 号:76443-8109.US01),名称:“Distributed Management of Keep-Alive Message Signaling forMobile Network Resource Conservation and Optimization”的美国专利,本申请参考引用上述申请的内容。
本申请涉及2011年11月1日提出的申请号:13/287,058(代理人案 号:76443-8110.US01),名称:“Mobile Traffic Categorization and Policy for Network UseOptimization While Preserving User Experience”的美国专利,本申请参考引用上述申请的内容。
本申请涉及年月日提出的申请号:(代理人案号:76443-8112.US01), 名称:“Optimizationof Resource Polling Intervals To Satisfy Mobile Device Requests”的美国专利,本申请参考引用上述申请的内容。
背景技术
不断的连接和断开增加了信令网络流量的量,从而降低网络整体的性 能,并将其传给网络运营商以及迫使他们增加带宽和网络访问。至目前为 止,运营商已经能够投资4G和LTE网络以提高热点的网络容量。然而,这 些解决方案都已达到它们的极限。LTE和4G也显示增加的带宽感知容量造 成用户和应用程序增加使用及数据消费。从长远来看,它可能会增加而不 是帮助拥塞问题。
此外,在大多数情况下,移动设备可以接收来自服务网络中的多个源 (例如,服务器、web站点、网络中的节点等)的数据。服务和客户端之 间的路由器/通信网络确保所有服务都可以通过单个物理连接将更改传播 至客户端。然而,可能出现的问题是,不同的服务(不知道对方的行动) 触发客户端在不同的时间创建连接,并可能存在从服务到客户端的数据传 输的有效的或最佳的调整的缺乏。因此,共享连接的有效地利用缺乏(或 至少最小或次优的),以及有时单个连接实际上仅为单个服务或数据源提 供足够的或实际的服务水平。
当移动或宽带网络可被设计为于大量数据的高输量,它们不必须针对 服务于要求少量数据的频繁的、低输量请求的移动应用程序。现有的网络 也没有考虑到不同类型的移动流量和不同类型的流量的优先级,例如,从 用户体验的角度。
这样的事件使移动无线设备处于相当长时间的高功耗模式——通常 15-30秒。由于高功耗模式下所消耗电能高达闲置模式的100倍,网络启 动的应用程序很耗电并能迅速消耗电池电量。随着具有网络启动功能应用 程序的迅速普及,这种情况越发糟糕,例如推送邮件、新闻提要、状态更 新、多媒体内容共享以及其它移动应用程序等等。此外,不断轮询的问题 是手机也依赖于信号的发送和接收来电和短信,有时这些基本的手机功能 相对于应用程序和其他移动客户端都被迫退居次席。
发明内容
本发明的第一方面涉及一种移动设备,该移动设备包括:
存储器;
处理器;
检测应用行为的应用行为检测器,所述应用行为检测器包括:
检测及跟踪相对于应用的用户活动的用户活动模块,其中,所检测到 的活动包括当应用被移动到后台或前台时进行检测;
允许用户设置特定应用优先级的优先级引擎;以及
配置为用于基于所检测到的用户行为及用户设定的所述特定应用优先 级来调整应用的轮询间隔的流量成型引擎。
可选地,所述移动设备接收来自代理服务器的触发以激活被确定为不 活动的多个应用中的其中一个,并且其中,所述代理服务器与多个应用服 务器进行通信。
可选地,所述触发使得被确定为不活动的所述应用被激活。
可选地,所述触发从不同于所述应用服务器至所述移动设备的信道的 信道发出。
可选地,所述移动设备接收来自所述代理服务器的数据,其中,所述 数据由所述代理服务器基于所述数据的关键度进行传送。
可选地,所述移动设备从代理服务器接收有新数据将要被发送的指示。
可选地,所述流量成型引擎根据多个应用调整所述轮询间隔。
可选地,所述流量成型引擎基于第二应用的所述轮询间隔来调整第一 应用的所述轮询间隔。
可选地,所述流量成型引擎还被配置为用于响应于检测到所述移动设 备的用户不活动时,等待一段时间后发送事件。
附图说明
图1A是系统示例图,其中主机服务器促进移动设备(例如,无线设备) 与无线网络(或者宽带网络)中应用程序服务器或内容提供商之间的流量、 内容缓存和/或资源节约的管理,以节约资源。主机服务器可以进一步基于 应用程序的行为、内容优先级、用户的活动和/或用户的期望分类移动流量 和/或实施交付策略,用于在调整数据传输的进一步使用以优化无线传输的 连接建立。
图1B是分布在主机服务器和设备之间的代理和缓存系统示例图,其为 资源节约及内容缓存促进设备与应用程序服务器/内容提供商之间的网络 流量管理。分布在主机服务器和设备之间的代理系统可以进一步基于应用 程序的行为、内容优先级、用户的活动和/或用户的期望分类移动流量和/ 或实施交付策略,例如,用于在调整数据传输的进一步使用以优化被建立 用于无线传输的连接。
图2A是一框图,展示了位于移动设备(例如,无线设备)上的分布式 代理和缓存系统的客户端组件,其为了资源节约、内容缓存和/或流量管理 而管理无线网络(或宽带网络)中的流量。客户端代理(或本地代理)可 以进一步基于应用程序的行为、内容优先级、用户的活动和/或用户的期望 分类移动流量和/或实施交付策略,例如,用于在调整数据传输的进一步使 用以优化被建立用于移动设备的连接。
图2B是一框图,展示了如图2A所示缓存系统中组件的进一步示例, 其可以为移动应用程序行为和/或网络条件缓存和采取缓存策略。图2B也 说明了组件能够检测长轮询请求以及管理长轮询的缓存。客户端代理(或 本地代理)可以进一步分类移动流量和/或实施交付策略基于应用程序的行 为,内容优先级,用户的活动,和/或用户的期望,例如,用于在调整数据 传输的进一步使用以优化被建立用于移动设备的连接。
图2C是一框图,展示了图2A中所示的缓存系统中的应用程序行为检 测器以及缓存策略管理器中的另一组件。其进一步能够检测缓存失败并执 行由旨在击败缓存的标识符处理的内容的缓存。
图2D是一框图,展示了如图2A的例子中所示的在本地缓存中的附加 组件的例子。该例子能进一步基于应用程序的行为和/或用户的活动实现移 动流量分类和策略实施。
图2E是一框图,展示了如图2A的例子中所示的流量整形引擎和应用 程序行为检测器中的附加组件的例子。这些例子能够进一步促进到移动或 宽带设备或其用户的输入的数据传输的调整以优化需要被建立用于通过无 线网络或宽带网络接收数据的连接的数量。
图3A是一框图,展示了分布式代理和缓存系统的服务器端组件的例 子,其为资源节约、内容缓存和/或流量管理而管理无线网络(或宽带网络) 中的流量。服务器端代理(或代理服务器)可以进一步基于应用程序行为、 内容优先级、用户的活动和/或用户的期望分类移动流量和/或实施交付策 略,例如,用于在调整数据传输的进一步使用以优化被建立用于至移动设 备的无需传输的连接。
图3B是一框图,展示了如图3A所示的缓存系统的缓存策略管理器中 的组件的进一步的示例,其能够为移动应用程序行为和/或网络条件缓存并 适配策略。同时展示了组件能够检测长轮询请求并管理长轮询的缓存。
图3C是一框图,展示了如图3A所示的代理系统中的组件的另一示例, 其进一步能够管理并检测击败机制及监测内容源的缓存。
图3D是一框图,展示了如图3A的例子中所示的代理服务器中的附加 组件的例子。该例子进一步能够基于移动应用程序行为和/或流量优先级实 现流量分类和策略实施。
图3E是一框图,展示了图3A的流量整形引擎的例子中的附加的组件 的例子。该例子还能够调整至移动或宽带设备或其他接收器的数据传输, 以优化被建立用于无线网络或宽带网络中的传输的连接。
图4是一时序图,展示了分布式代理系统如何协调无线网络(或宽带 网络)中从移动设备(例如,任何无线设备)至应用程序服务器/内容提供 商的数据请求,通过利用分布式代理系统执行的内容缓存和监控,以达节 约网络和电池资源的目的。
图5是一框图,展示了在移动设备(例如,任何无线设备)上利用分 布式代理和缓存系统(如图1B所示分布式系统),执行混合型IP和SMS 省电模式的示例过程;
图6是一流程图,展示了在移动设备(例如,任何无线设备)和远程 代理之间的分布式内容缓存以及内容缓存的分布式管理的示例过程。
图7是一交互图,展示了内容的分布式代理系统的缓存管理,内容经 由长期保留请求传递至移动应用程序,同时保证被传递内容的新鲜度。
图8展示了长轮询请求中的搜寻模式行为的时序图以及当长轮询确时 序的时间特征的时序图。
图9是一交互图,展示了轮询如何通过无线网络(或宽带网络)获取 从移动设备(例如,任何无线设备)至应用程序服务器/内容提供商的数据 请求,其可以被缓存在本地代理上并且由分布式缓存系统管理。
图10是一交互图,展示了如何通过无线网络(或宽带网络)轮询来自 应用程序服务器/内容提供商的内容,其可以被检测并本地缓存,应用程序 服务器/内容提供商采用标识符中的缓存击败机制(例如,旨在击败缓存的 标识符)。
图11是一流程图,展示了收集关于请求的信息以及相关的识别缓存性 能的响应并且缓存该响应的示例过程。
图12是一流程图,展示了判断请求的响应是否能被缓存的决定流程的 示例过程。
图13是一流程图,展示了基于请求周期性和/或响应重复性判断潜在 的缓存性能的示例过程。
图14是一流程图,展示了动态调节给定请求或客户端的缓存参数的示 例过程。
图15是一流程图,展示了使用请求时间间隔以确定和设置轮询间隔或 速率的示例过程,在该间隔或速率时代理服务器监视应用程序服务器/内容 主机以代表移动设备(例如,任何无线设备)。
图16是一示例时序图,展示了请求响应序列的各种类型的时间特征。
图17A是时序图的一示例,展示了请求响应序列的时间特征。
图17B是时序图的一示例,展示了长轮询的请求响应序列特性的时间 特征。
图18是一时序图,展示了可能适于缓存的周期请求的检测的示例。
图19是一数据时序图,展示了请求间隔中的变化的检测以及响应中的 服务器轮询速率的更新的示例。
图20是一数据时序图,展示了服务具有缓存条目的前台请求的示例。
图21是一数据时序图,展示了发生在过时的内容可能再次服务于请求 应用程序之后的缓存失效的可能影响的示例。
图22是一数据时序图,展示了为缓存条目考虑生存时间(TTL)组合 的缓存管理和响应的示例。
图23是缓存存储的组件API层的示例的图。
图24是展示缓存存储的数据模型的示例的图。
图25是展示在缓存存储中缓存条目的数据模型的例子的概念图。
图26A-B是示例请求-响应对,展示了由具有变化参数的标识符处理的 可缓存的响应。
图27A展示了移动设备的应用程序或客户端的默认或初始轮询间隔的 列表示例。
图27B展示了移动设备的应用程序或客户端的调整后的轮询间隔的列 表示例。
图28是一流程图,展示为多个移动设备或移动设备用户执行的示例过 程以经由多个事件批处理接收到的数据用于至给定移动设备的传输,以使 得移动设备不需要在每次事件发生时建立或开启无线电。
图29是一流程图,展示了在无线网络中通过操纵轮询间隔管理到移动 设备的数据传输的示例性过程。
图30是一流程图,展示了基于同一设备上的其他服务的时间间隔为第 一服务产生调整的轮询间隔的示例性过程。
图31是一流程图,展示了调整数据传输以优化被建立用于通过无线网 络的传输的连接的示例性过程。
图32是一机器的图像化表现,以包含指令集的计算机系统为例,执行 该指令,使得机器运行本申请所探讨的一种或多种方法。
发明详述
以下详细说明和附图具有说明性,而并不解释为限制性。本申请描述 了许多具体的细节,已完全公开本发明内容。然而,某些实例中,为避免 说明内容的模糊化,一些惯用或常规细节并未描述。本发明公开的参照“一 个实施例”或“某一实施例”可以,但不必然指参照同一实施例,并且参 照指至少参照其中一个实施例。
本说明书中参照“一个实施例”或“某个实施例”是指与所述实施例 相联系的特定特性、结构或特征,都至少包含在所公开的一个实施例中。 本说明书中出现的短语“一个实施例”并不必然指代同一实施例,也不表 示除其他实施例之外的独立或替代实施例。此外,说明书中所述的各种特 性可能仅呈现在某些实施例上,未呈现在其他实施例上。同样地,说明书 中所述的各种要求可能仅限制某些实施例,而不限制其他实施例。
本说明书中所使用的术语通常都在本领域内具有一般含义,在本申请 公开范围以及每一术语所使用特定语境中。某些术语用于描述下文所探讨 的公开内容,或说明书之中,是就所公开的说明书给业内人士提供额外指 导。为方便起见,某些术语被突出显示,例如:加斜体和/或引号。突出显 示不影响该术语的范围和含义,当上下文一致时,无论是否突出显示,该 术语的范围和含义都保持不变。同一事件可能以多种方式进行说明,希望 能够理解。
因此,本申请所述的任一或多个术语可能使用替代用词和同义词,但 无论本申请是否阐述或探讨某一术语,该术语也不具备任何特殊含义。某 些术语存在同义词。阐述一个或多个同义词并不排除其他同义词的使用。 本说明书中所使用的实例,包含本申请中的术语实例,仅用于说明,并无 进一步限制所公开或任意示例术语的范围和含义之义。同样,该公开不限 于本说明书中给出的各实施例。
根据本申请如下所公开的实施例,各工具、设备、方法及相关结果的 举例没有限制公开范围之义。注意:本申请在举例时使用的序号或子序号 是为方便读者,绝不应限制公开的范围。除另行规定,本申请中所使用的 所有技术和科学术语的含义与本申请所属领域技术人员的通常理解含义一 致。一旦出现冲突,本文档,含定义在内均优先。
本申请所公开的实施例包含调整数据传输以优化被建立用于通过无线 网络、蜂窝网络或宽带网络的传输的连接的系统和方法。为了促进数据突 发(以及因此来自多个数据源的数据传输)的调整,本发明的实施例调整 数据传输过程以更接近(在临时的或其他相关意义中)数据的来源。换句 话说,在一个实施例中,系统可以尝试调整部分或全部服务以按调整的时 间间隔轮询数据和/或按调整的时间间隔接收新的内容,而不是在随机时间获取并缓冲数据,从而使得最小的内存中的缓冲是必要的以及使得需要在 移动设备建立的连接的数量可以减少。
有多种因素有助于数据的增殖:最终用户、移动设备、无线设备、移 动应用程序和网络。随着移动设备的发展,这样与它们相关的各种元素— 可用性、应用程序、用户行为、位置,从而改变网络与设备和应用程序进 行交互的方式。
公开的技术提供了全面的和终端到终端的解决方案,其通过利用移动 内容具有可定义的或相关的“新鲜度”值的前提能够为运营商和设备制造 商处理每个元素以同时支持移动或无线设备中的转移和数据的激增。移动 内容的“新鲜度”可以被确定,无论是肯定的,或有些具有在被增强的用 户体验范围内的容限的试探,或不受负面影响地,或受到负面影响但可以 不被用户察觉地或在可容忍的阈值水平内地。
公开的创新通过监测、分析、并应用规则(其可能是试探性地确定) 应用程序(例如,移动应用程序)和伙伴(相应的服务器或其他的客户端) 之间的交易(请求/响应)显而易见地确定了这样的“新鲜度”。此外,该 技术还能够有效地缓存内容,其可能被它的始发/主机服务器标记为“不可 缓存的”和标识一些“新鲜度”值,其可以稍后被用于执行应用程序特定 的缓存。在一般情况下,“新鲜度”值有一个近似的最小值,其通常使用 应用程序和对应的服务器/主机之间的更新间隔(例如,被发送请求时间间 隔)进行确定。
所公开的技术实施例之一包含,通过设备和应用程序活动的完整视图, 最优化有线和无线网络和设备各方面连接的系统,该活动包含:设备所需 加载或当前应用程序,控制访问类型(推送vs.拉式或混合式)、访问位 置、访问单一区域的用户集中度、访问时间、用户与应用程序、内容或设 备互动的频率,并利用如上信息定型合作型客户/服务器的流量或在缺乏合 作型客户时,同时定型各移动设备的流量。因为公开的服务器未与特定的网络提供商进行绑定,服务器对所有服务提供商的网络性能具有可视性。 服务器进行的最优化能适用所有设备,不论是运营商还是服务提供商,在 漫游时,能够提升用户体验、管理网络利用率。如今带宽被视为无线网络 的一大难题,对增加额外带宽,以解决访问需要,已进行了大量的研究—— 许多提高性能的解决方案和新一代标准,例如:那些通常被称为3.5G、LTE、 4G和WiMAX,关注于提供加大的带宽。虽然由标准进行部分地处理,关键 问题仍然是信令通道的带宽比数据通道更不足并且标准不能很好的解决电 池寿命。
所公开的技术实施例包含,例如,调节多个应用程序的请求,尽量减 少需要的数个轮询请求;利用特定的内容类型,确定如何代理/管理连接/ 内容;以及应用与设备相联系的特定试探式、用户行为模式(用户与设备/ 应用程序互动的频率)和/或网络参数。
现有技术的实施例还包括:各控件或RSS阅读器执行的移动、反复的 HTTP轮询,网络节点远程调控(例如,网络操作中心(NOC)),从而大 大降低了设备消耗的电池/功率、无线信道信令和使用的带宽。此外,程序 卸载能透明地执行,因此无需改变现有的应用程序。
一些实施例中,利用移动设备(例如,任何无线设备)的本地代理, 自动检测符合特定规则(如时间间隔为15分钟)相同内容的反复请求(RSS 资源,控件数据集),能实现这一功能。本地代理将轮询指派给服务器时, 能自动缓存移动设备上内容(例如,代理服务器作为通信网络元件之一)。 若内容变化,服务器则通知移动/客户端代理;若内容未变化(变化不充分, 或改变方式或数额不明显),移动代理将其缓存的最新内容提供给用户(根 本无需使用无线)。利用此方式,如果请求的内容被监控,且未标记新/ 更改,移动或无线设备(例如:移动电话,智能手机、M2M模块/调制解调 器或其它任何无线设备等)无需打开(例如,因此打开无线电)或使用数 据连接。
自动添加被监控的内容源/应用程序服务器(如包括网址/内容)的逻 辑还能检查各种因素:内容一致的频率,提出相同请求的频率(是否存在固定的时间间隔/模式?),请求数据的应用程序等。本地代理和/或服务 器也可实施和执行类似规则,确定是使用缓存还是向原始资源请求数据。
例如,请求在未预定/非预期时间提出(用户启动的检查),或连续几 次在缓存已提出响应后,亦或应用程序处于后台运行或前台的频繁互动模 式。随着越来越多移动应用程序或无线启用应用程序的特性以其在网络中 的可用资源为基础,这也显得愈发重要。此外,所公开的技术可以消除不 必要的网络对话,使试图最优化无线频谱应用的运营商从中受益。
调整从服务器至接收器的数据突发
在某些情况下,移动设备或移动客户端(例如,图1B和图2A-2E的本 地代理175或275)可以接收来自在无线或宽带网络中的多个源(例如, 不同的服务、不同的服务器、Web网站、网络的各个节点等)的数据。服 务和移动客户端或移动设备之间的路由器/通信网络网络使得多种服务,包 括由不同的服务器或内容主机托管的不同的服务,通过单个的物理连接或 比原本需要的更少的连接传播变化至客户端。然而,因为由不同服务器托 管的不同的服务(无需知道对方的行动)可以触发他们各自的在移动设备 上的客户端/移动应用程序以在不同时间创建连接,一般存在有效或最优的 从服务至移动设备的数据传输的调整的缺乏以与相应的移动客户端或应用 程序进行通信。因此,共享连接的有效地利用的缺乏(或至少最小或次优) 以及有时单个连接实际上只为单个服务或数据源提供足够的或现实的服务 水平。
本发明的实施例使数据突发从而进一步使来自多个源或服务器到移动 设备的数据的传输是更有效的。例如,本发明的实施例调整的数据传输过 程以更接近(在临时的或其他相关意义中)数据的源。换句话说,系统调 整部分或全部服务以按调整的时间获取数据,而不是在随机时间获取并缓 冲数据,从而使得最小的内存中的缓冲是必要的以及/或者使得数据的批处 理发送至移动客户端/设备。
例如,考虑一个例子,其中移动设备用户订阅,或以其他方式注册/ 签约了以下服务:
1)来自雅虎的电子邮件:每30分钟在后台中的服务轮询以及当新的 通知被接收时;
2)来自通用IMAP的电子邮件:每13分钟一次的服务,没有通知可用;
3)Twitter的智能代理:每4分钟一次服务轮询;
4)RSS客户端的智能代理:每10分钟一次服务轮询;以及
5)ESPN体育提要的智能代理:每3分钟一次服务轮询。
如果所有的这些上述服务/手机客户端的一些在移动或无线宽带设 备由他们原来的轮询间隔在随机时间启动,则轮询将相当均匀分布在每一 个小时,很少或小的调整或彼此对应。由于这些服务不一定在服务器端知 道对方(这种依赖不应该/不会建立在它们之间),移动设备(如移动设备 的本地代理175或275)可以获得来自在调整这些努力以及因此在更好的 优化数据传输中的移动应用程序的信息。
一些实施例中,移动设备(例如,本地代理175或275)进行计算和 分析以驱动在移动设备的移动应用的这些轮询间隔之间的调整。由于本地 代理与公开的系统中的主机服务器100的远程代理服务器125协同工作以 轮询原始应用程序服务器/内容提供商(例如,应用程序服务器/内容提供 商110),所以本地代理125可以为一个或多个移动应用程序或客户端至 远程代理125指定轮询间隔以用于轮询。当所有的服务(例如,移动客户 端或移动应用程序)传播他们的轮询间隔到客户端(不是给双方),本地 代理175或275的将看到整体画面。
使用本地代理175或275具有的与单独的应用程序、用户、移动设 备、操作系统或平台、网络条件、应用程序的优先级/流量或内容的临界有 关的单独的轮询间隔和附加信息,本地代理175可以以智能的方式为每个 移动客户端或应用程序调整轮询间隔以尽量减少所需要的数据传输的数 量,以满足用户的期望和应用程序需求,从而不会引起应用程序发生故障。
公开的策略是调整的轮询时间间隔以使得至少对某些移动应用程 序、轮询、在时间间隔调整后,可以至少部分地临时地一致。例如,一种 方法是调整和设时序间间隔为一组移动应用程序的原始的或默认的轮询间 隔的共同因素或分母的倍数。在上述的例子中,这个所使的用分母可以为 3分钟以及轮询时间间隔可以被调整为3分钟的倍数。在必要时,在一个 例子中可以产生以下的调整的时间间隔:
服务/移动应用程序 初始轮询时间间隔 调整的轮询时间间隔
Yahoo! 30秒 30秒
IMAP 13秒 15秒
Twitter 4秒 6秒.
RSS 10秒 12秒
ESPN 3秒 3秒
注意进一步地移动设备或本地代理可以确定每个服务的紧迫性并能 基于基于应用程序类型或时间临界或其他设置如用户喜好,在为Twitter 将4分钟凑整至6分钟或压缩到3分钟之间做决定以确保传递时间。本地 代理也可以确定共同的时间间隔并不一定基于最小的时间间隔(这里是3 分钟)而是基于最小的硬性时间间隔(这意味着,最小时间间隔不可以被 扩展,例如,再基于用户的喜好、或应用程序类型/行为或其他优先级/临 界参数)。在该例子中,在具有时间临界内容或高优先级应用程的Twitter 或其他应用程序上的传递时间要求可以导致本地代理基于4分钟设置所有 的时间间隔以确保Twitter要求被满足,同时其他时间间隔被向上而不是 向下取整以节约资源。
此外,本地代理确定值为(t0),或为各服务之间的每个轮询确定 共有起点。当本地代理通信服务,这个数据返回至服务,在数据达到中可 能存在延迟并且延迟在服务之间可以有所不同。为了保持同步,本地代理 不能使用(t0)作为当前时间,相反可以可以固定开始时间为在服务中的 相同的绝对时间点。
服务器通常是在UTC中并可以使用NTP以留在同一时间,这提供了 解决问题的一种方式。例如,本地代理可以挑选一分钟标记并传达标记给 远程代理(代理服务器)。这一分钟标记可以是随机的,并且所选择的标 记可作为这一分钟标记(例如:13)的下一次发生中所有服务的基础。在 未来分钟标记可能是上到59分钟,并避免未轮询59分钟的延误或效率低 下,该服务也可以计算任何必要的从t0返回的轮询时间间隔。
一旦本地代理传播数据突发时间表(例如,调整后的时间间隔和/或 起点)至公开的分布式系统的远程代理上的服务,它取决于远程代理以确 保所接收的数据在指时序间间隔内也被发送回至移动设备,而不仅仅是在 指定的时间间隔内代表移动客户端开始轮询。该服务可以使用来自过去的 平均轮询时间以确保它准备好至少在某些时间在调整的突发中发送数据。 本文描述的逻辑,在它们发现在轮询内新数据发送到客户端的情况下可以 显著改善调整它们至移动设备(本地代理)的传播的多个服务到移动设备 (本地代理)的可能性。
其他示例。
基于服务的通知:雅虎或其他移动客户端,其中包括在任何时间点 可接收通知的实时通知。还有其他处理通知的方式:
应用程序轮询并立即发送数据以满足实时通知的要求并能按计划使 用调整后的轮询间隔并进一步调整接收到的其他数据的响应以调整下一后 台的轮询。
本地代理服务器与所有服务进行通信时间间隔的的共同基础(在上 面的例子中,3分钟),以使得应用程序轮询器可为新的电子邮件安排轮 询并将其在最早的共用时间间隔(这是可以计算的,例如,通过每3分钟 一个步骤返回默认的/原始轮询时间间隔)发送到客户端。
流量分类及策略
一些实施例中,公开的代理系统是能够为选择流量(数据、内容、 信息、更新等)建立策略以缓存和/或整形。此外,通过结合来自观察作出 网络请求的应用程序的信息,获得来自应用程序中的明确信息,或获知应 用程序到达的网络目的地,所公开的技术可确定或推断所发送的流量属于 哪个类别。
例如,在一个实施例中,移动或无线流量可以分类为:(a1)交互 式流量或(a2)后台流量。区别在于(a1)中的用户正在积极等待响应, 而(a2)的用户并不期待响应。这种分类可以配合或代替第二类型的流量 分类使用:(b1)即时;(b2)低优先级;(b3)如果发出请求的应用程 序在前台且活跃的,则为即时。
例如,(b1)类别中的新的更新、消息或电子邮件为立即交付,但 它仍然是(a2)后台流量-用户并不积极地等待。当它们来自活跃的聊天会 话之外时,类似的分类适用于即时消息。在活跃的聊天会话期间,用户期 待更快速的响应。这种用户的期望当在进行流量分类和策略执行中优化网 络的使用和设备资源时被确定或推断并被考虑到。
所述分类方案的应用程序的一些例子包括以下内容:(a1)交互流 量可以被归类为(b1)即时-但(a2)后台流量也可以是(b2)或(b3)。 低优先级传输例子是电子邮件或消息维护事件,例如,删除电子邮件或其 他消息或将电子邮件在邮件或应用程序服务器中标记为已读。这样的传输 通常发生在早于(a)时序器超过一个超时值(例如,2分钟)以及(b) 发送的数据用于其他用途。
(b3)的例子是IM状态更新、股票代码更新、气象更新、状态更新、 新闻提要。当应用程序的用户界面在前台和/或是活跃的(例如,由设备/ 电话的背光源的点亮或从其他传感器的状态所确定或推断出的表示)更新 可以被认为立即通知服务器有东西要推送至设备。当应用程序没有在前台 或不活跃时,这样的更新可被抑制直到应用程序到前台以及是活跃的。
一些实施例,网络可以被选择或同时优化(a1)互动流量和(a2) 后台流量。
一些实施例中,由于无线设备或移动设备代理(单独或连同服务器 代理)是能够分类为(例如)(a1)交互式流量或(a2)后台流量,其可 以应用不同的策略至不同类型的流量。这意味着,它可以在内部不同地操 作(a1)和(a2)流量(例如,通过允许交互式流量经过全部或部分的网 络,并应用严格的流量控制至后台流量;或设备端只允许激活无线电的请求,如果其已接收到来自服务器的主机的内容已经更新,等等的信息)。
当请求需要通过无线网络访问,所公开的技术可以请求无线层适用 不同网络配置至不同的流量。根据不同的流量和网络,这可通过不同的手 段实现:
(1)为(a1)使用3G/4G以及为(a2)使用2G/2.5G;
(2)明确为数据集FACH(前向接入信道)与DCH(专用信道)的不 同数据集的使用指定网络配置,或以其他方式为后台流量要求较低/更多的 网络高效数据率;或者
(3)为不同的数据集利用不同的网络接入点(接入点将被配置为使 用类似上述(1)和(2)的不同的网络资源)。
此外,3GPP快速休眠电话的改进以使得应用程序、操作系统或移动 设备将意识到流量类型在未来更有效。具有流量分类的知识并能适当地利 用快速休眠的公开系统的实施例可解决在快速休眠中确定的问题。通过这 种方式,移动或宽带网络并不需要配置一个妥协的配置,该配置产生电池 消耗和网络信令的不利影响。
轮询时间表
检测(或确定)轮询时间表允许代理服务器(分布式缓存系统的服 务器端)尽可能使其轮询接近应用程序轮询。许多应用程序使用预定的时 间间隔轮询(例如,每4小时或每30秒,在其他时间间隔)。客户端代理 可以基于时间测量检测自动轮询并且为应用程序创建一个自动轮询配置文 件。作为一个例子,本地代理尝试检测请求之间的时间间隔和在2、3、4 之后的或更多的轮询,如果所有时间间隔各自都在1秒(或相对接近的另 一测量)内,则确定一自动的速率。如果没有的话,客户端可从更大数量 的轮询事件(例如,10-12个轮询)中收集数据并且应用统计分析以确定、 计算或估计所使用的平均时间间隔的值。轮询配置文件传递到其被使用的 服务器。如果它是一个频繁地手动请求,本地代理可以为这个应用程序用 默认的时间间隔替代它,这个应用程序来自非临界应用程序的配置文件。
在一些实施方案中,本地代理(例如,设备端代理)可能保持监控 应用程序/客户端轮询并更新轮询间隔。如果其从当前值变化了30%以上 (或另一个预定/动态/条件值),则它被传递到代理服务器(例如,服务 器端代理)。这种方法可以称为“失去兴趣”的情况。在某些情况下,本 地代理只能识别时间表之外作出的请求,认为他们是“手动的”,并相应地处理它们。
应用程序类别/缓存模式
在一些实施例中,应用程序可以被分成三组或缓存模式。取决于一 个或多个条件,每个移动客户端/应用程序可以被分类为以其中的一种模式 进行处理,或使用多个模式进行处理处理。
A)完全缓存—本地代理仅在代理服务器告诉本地代理更新时进行更 新(例如,通过网络直接发送应用程序请求以由应用程序服务器/内容主机 服务)。在这种模式中,本地代理可以忽略手动请求并且代理服务器使用 检测到的自动配置文件(例如,体育比分的小程序、Facebook,每10、15、 30或更多轮询)轮询应用程序服务器/内容提供商。
B)部分缓存—本地代理为自动请求或其他预定的请求使用本地或内 部缓存(例如,应用程序自动刷新),但通过一些手工请求(例如,电子 邮件下载、EBay或一些Facebook请求);以及
C)从不缓存(例如,实时股票行情、体育比分/状态,然而,在某 些情况下,15分钟延迟引用可以安全地放置在30秒时间表—B乃至A)。
实际应用程序或缓存模式分类可基于内容变化率和数据临界特征被 确定。未分类的应用程序默认情况下可以设置为C类。
背光灯和活动应用程序
在一些实施例中,本地代理通过检测设备背光灯状态来启动。如果 具有同一签名的请求被向代理服务器进行注册,显示屏灯“关闭”的请求 可以被允许使用本地缓存,其轮询请求定向至的始发主机服务器/内容服务 器。如果显示屏灯是“打开”,进一步的检测可以被作出以确定其是否是 后台应用程序或者对于其它指示器,本地缓存条目可以或不可以被用于满 足请求。当被识别时,本地条目可以被用于的请求可被相同地处理为显示 屏灯关闭的状态。当缓存的数据可安全地用于处理请求时,前台请求可以 使用上述应用程序分类以进行评估。
图1A为系统示例图,其中主机服务器100促进流量管理、内容缓存 和/或在客户端(例如,移动设备、任何无线设备或客户端设备150上的客 户端/应用程序)和应用程序服务器或无线网络(或宽带网络)106或108 中的内容提供商110之间的资源节约,以节约资源。主机服务器100可以 进一步基于应用程序的行为、内容优先级、用户的活动和/或用户的期望来 分类移动流量和/或实施交付策略。
客户端设备150可以为能够创建连接,包括与其他设备、服务器和/ 或其他系统,如主机服务器100和/或应用程序服务器/内容提供商110的 有线、无线和蜂窝连接,的任意系统和/或设备,和/或设备/系统的任意组 合。客户端设备150通常包括一个显示屏和/或其他输出功能,以显示设备 150和/或主机服务器100和/或应用程序服务器/内容提供商110所互动的 信息和数据。
例如,客户端设备150包含移动、手持或便携式、无线设备或非便 携式设备和任意,但不限于:台式服务器、台式电脑、计算机集群或便携 式设备,包括笔记本电脑,手提电脑,便携电脑,掌上电脑,移动电话, 手机,智能手机,PDA,黑莓设备,Palm设备,手持平板电脑(如iPad或 其它任何平板电脑),手持控制台,手持游戏设备或控制台,任何超级手 机如iPhone,和/或任何其它便携式、移动、手持设备或固定无线接口如 M2M设备,等等。一个实施例中,客户端设备150、主机服务器100和应用 程序服务器110通过网络106和/或网络108,耦合在一起。一些实施例中, 设备150和主机服务器100直接相连。
客户端设备150的输入机制包含触摸屏键盘(包括单点触摸,多点 触摸,平面或三维手势感应等)、物理键盘、鼠标、指针、触模板,运动 检测器(如包括1轴,2轴,3轴加速度计等)、光传感器、电容传感器、 电阻传感器、温度传感器、接近性传感器,压电器件,设备方向探测器(例 如:电子罗盘、倾斜传感器、旋转传感器、陀螺仪、加速度计)或上述任 意组合。
通过如上所述的一个或多个输入机制或其他接收或检测信号,表明 客户端设备150的用户活动,能用于公开的技术获取客户端设备150的上 下文感知。客户端设备150的上下文感知一般包括,列举但不限于:客户 端设备150活动或状态的确认、管理、用户活动/行为/互动感知、检测、 传感、跟踪、趋势和/或应用程序类型(如移动应用程序)、行为、活动或 运行状态等。
本申请所公开的上下文感知还包含网络端上下文数据的知识和检 测,并且包括网络信息,例如:网络容量、带宽、流量、网络/连接类型, 和/或任何其他操作的状态数据。网络端上下文数据可以从网络106和/ 或网络108(例如:主机服务器和/或设备150)的网络服务提供商处(例 如:手机提供商112和/或互联网服务提供商)接收和/或查询。除从客 户端150确定的应用程序上下文感知外,应用程序上下文感知也可从各自 的应用程序/服务提供商处110接收或获得/查询(通过主机100和/或客 户端设备150)。
主机服务器100可以使用,例如,客户端设备150、网络106/108、 应用程序(如移动应用程序)、应用程序服务器/提供商110或上述任意 组合所获取的上下文信息,管理系统流量,满足客户端设备150的数据要 求(例如,满足应用程序或其他请求,包括HTTP请求)。一个实施例中, 主机服务器100管理流量,满足所作出的数据请求,以响应显名或隐名用户103的请求和/或设备/应用程序的维护任务。管理流量能节约网络消 耗,例如蜂窝网络,保证高效的带宽利用率。此外,主机服务器100能在 最优化性能和用户体验的同时,管理和协调系统流量,秉承节约资源的总 思路,最优化使用设备端150的资源(例如:包括但不限于:电池消耗电 量、使用的无线、使用的处理器/内存)。
例如,在节约电池方面,设备150能观察用户活动(例如,通过一 个或多个输入机制观察用户的按键、背光状态或其他信号等),并且更改设 备150的行为。基于用户活动或行为,设备150还可请求主机服务器100 改变行为,降低消耗的网络资源。
一个实施例中,利用主机服务器100和客户端设备150之间的分布 式系统执行流量管理,以节约资源。分布式系统能包含服务器端100和设 备/客户端的代理服务器和缓存组件,如服务器端100的缓存服务器135和 客户端150的本地缓存185所示。
本申请所公开上下文感知流量管理的功能与技术,节约网络(例如: 网络106和/或108)和设备150的资源,放置于分布式代理和缓存系统。 代理和缓存系统能部分或全部分布,并放置于给定的客户端设备150,和/ 或主机服务器100。分布式代理和缓存系统,将在如图1B所示的示例图 作进一步描述。客户端设备150、主机服务器100和本申请中所述的相关 组件中的代理和缓存部件执行该功能与技术,进一步详细描述分别参考示 例图2-3。
一个实施例中,客户端设备150与主机服务器100和/或应用程序服 务器110通过网络106,可以为蜂窝网络和/或宽带网络,进行通信。为促 进设备150和各应用程序服务器/内容提供商110的总体流量管理,以执 行网络(带宽利用率)和设备资源(如电池消耗),主机服务器100可以 与应用程序服务器/提供商110通过网络108,包含互联网(例如,宽带网 络),进行通信。
一般来说,客户端设备150与主机服务器100和/或应用程序服务器 110通过网络106和/或108进行通信,网络可以为蜂窝网络、宽带网络、 电话网络、开放网络,如互联网、专用网络,如内联网和/或外联网、或其 任意组合。例如,互联网可以通过任何已知或方便协议提供文件传输、远 程登录、电子邮件、新闻、RSS、云计算服务、即时消息、可视语音邮件、 推送邮件、VoIP和其他服务,协议的列举包括,但并不限于:TCP/IP协 议、UDP、HTTP、DNS、文件传输协议(FTP)、UPnP、NSF、ISDN、PDH、RS 232、SDH、SONET等。
网络106和/或108可以是部分或全部运营网络的任意组合,结合后 向客户端设备150和主机服务器100提供连接,对于服务的系统和设备, 作为一个或多个网络。一个实施例中,开放网络,如互联网、专用网络, 宽带网络,如内联网和/或外联网都能实现客户端设备150通信的发送和接 收。一个实施例中,安全通信协议,如安全套接层协议层(SSL)或安全传 输层协议(TLS),也能实现此类通信。
此外,一个或多个网络可以实现通信,包括但不限于:一个或多个 WiMax、局域网(LAN)、无线局域网(WLAN)、个人区域网(PAN)、校园区域 网(CAN)、城域网(MAN)、广域网(WAN)、无线广域网(WWAN)、或任何宽 带网络并进一步由以下技术启用,例如:全球移动通信系统(GSM)、个人通 信服务(PCS)、蓝牙、WiFi、固定无线数据、2G、2.5G,3G、4G,高级国际移动通信IMT-Advanced、预-4G、高级长期演进技术(LTE Advanced)、 移动WiMax、WiMax2、WirelessMAN高级网络,增强型数据速率GSM演进技 术、通用分组无线服务技术(GPRS)、增强型通用无线分组业务、iBurst、UMTS、HSPDA、HSUPA、HSPA、UMTS-TDD,1xRTT,EV-DO、消息传送协议, 例如:TCP/IP、SMS、MMS、可扩展消息与存在协议(XMPP)、实时消息传 送协议(RTMP)、即时信息和空间协议(IMPP)、即时消息、USSD、IRC或 其他无线数据网络、宽带网络或消息传送协议。
图1B为代理和缓存系统示例图,分布在主机服务器100和设备150 之间,该设备促进管理设备与应用程序服务器/内容提供商(如源服务器) 的网络流量,以节约资源和内容缓存。分布在主机服务器100和设备150 之间的代理系统可以进一步基于应用程序行为、内容优先级、用户的活动 和/或用户的期望来分类移动流量和/或实施交付策略。
分布式代理和缓存系统可包括,例如,服务器端组件:代理服务器 125(如远程代理)和服务器缓存135。如图所述,服务器端代理服务器125 和缓存135能放置在主机服务器100内部。此外,服务器端代理服务器125 和缓存135可部分或全部放置在主机服务器100外部,通过一个或多个网 络106和108进行通信。例如,代理服务器125放置在主机服务器外部, 而服务器缓存135保持在主机服务器100内部。亦或,代理服务器125 放置在主机服务器内部,而服务器缓存135在主机服务器100外部。此外, 代理服务器125和缓存135都可能部分置于主机服务器100内部,部分置 于主机服务器100外部。
分布式系统也能包括,一个实施例中,客户端组件,包括列举但不 限于:本地代理175(如移动设备的移动用户)和/或本地缓存185,如图 所示,能放置在设备150(如移动设备)内部。
此外,客户端代理175和本地缓存185能部分或全部放置于设备150 外部,并通过一个或多个网络106和108进行通信。例如,将本地代理175 置于设备150外部,而本地缓存185保持在设备150内部。亦或,将本地 代理175置于设备150内部,而本地缓存185则置于设备150外部。此外, 代理175和缓存185都可能部分置于主机服务器100内部,部分置于主机服务器100外部。
一个实施例中,分布式系统可以包括一个可选的缓存代理服务器 199。缓存代理服务器199为一组件,由应用程序服务器/内容提供商110、 主机服务器100、或网络服务提供商112,或以上任意组合,为促进网络流 量管理而执行,目的在于节约网络和设备资源。代理服务器199可用于, 例如,为设备150提供从一个或多个应用程序服务器/提供商110、主机服 务器100,和/或网络服务提供商112的内容缓存。远程代理125也能全部 或部分地执行内容缓存,以满足应用程序请求或设备150的其他数据请求。
在上下文感知流量管理和最优化中,为节约网络资源(如蜂窝或其 他无线网络),本地代理175跟踪移动设备150(例如,任何无线设备) 的用户活动/行为和/或应用程序行为特征,并通过网络106与主机服务器 100的代理服务器125组件进行通信,例如连接元数据。代理服务器125, 依次与应用程序服务器/提供110相耦合,提供内容和数据,以满足设备 150提出的请求。
此外,本地代理175能够识别和检索移动设备的属性,包含一个或 多个电池电量、设备的注册网络、无线状态、移动设备使用在是否(例如, 由用户互动)。一些实例中,本地代理175在传输数据给代理服务器前, 一定情况下,能够延迟、加快(预取)和/或修改数据,具体情形参见示例 图2和图3的相关说明。
本地数据库185能包含或耦合至本地代理175,用于本地存储数据的 查询,在数据请求被转发到代理服务器125前,回应该数据请求。本地代 理175通过检索存储在缓存存储器185的缓存内容,若该内容仍然有效, 使用本地的缓存响应,以满足移动设备150某些应用程序的请求。
同样,在本地代理服务器传输数据给内容源(例如:应用程序服务 器/内容提供商110)之前,主机服务器100的代理服务器125可也延迟、 加快或修改数据。此外,代理服务器125利用设备属性和连接元数据,生 成满足移动设备150应用程序请求的规则。代理服务器125能够收集有关 应用程序请求的实时流量信息,后续用于最优化与移动设备150或其他移 动设备的类似连接。
一般来说,本地代理175和代理服务器125清楚移动设备上执行的 多个应用程序。本地代理175通常清楚移动设备的操作系统或平台,并且 可能或可能不明确设备的制造商。一些实例中,本地代理175可以选择自 定义部分或全部具体设备。一些实施例中,本地代理175可能被捆绑进无 线模型,防火墙,和/或路由器。
一个实施例中,主机服务器100在一些实例中,利用短消息服务中 心(SMSC)112的存储和转发功能,由网络服务提供商所提供,与设备150 进行互动,实现网络流量管理。请注意112也可以使用任何其他类型的替 代信道,包括USSD或其他网络控制机制。如图3示例所作的详细描述,主 机服务器100将内容或HTTP响应转发给SMSC112,若设备150可用则自动 转发,若设备150当前不可用,则后续转发。
一般来说,公开的分布式代理和缓存系统能最优化网络利用率,例 如,通过回应本地缓存185的请求,本地代理175能减少需要通过网络106 满足的请求数量。另外,本地代理175和代理服务器125能从通信数据中 过滤无关数据。此外,为避免发送单个数据片段的协议消耗,本地代理175 和代理服务器125也能累积低优先级数据,将其批量发送。本地代理175 和代理服务器125还能将流量压缩或转码,减少通过网络106和/或108发 送的数据量。由于网络的使用频率降低,网络流量在各应用程序间能实现 同步,网络106和/或108的信令流量则会减少。
至于移动设备150的电池寿命,通过回应本地缓存185的应用程序 或内容请求,本地代理175能减少无线模块的上电次数。当无线上电时, 本地代理和代理服务器125能相互结合,累积低优先级的数据批量发送, 以减少发送次数和/总时间。通过同时执行所有连接的批量数据传输,本地 代理175能同步网络的使用。
图2A为一框图,展示了放置于设备250的分布式代理系统客户端组 件,管理无线网络的流量,以节约资源、内容缓存和/或流量管理。客户端 代理(或本地代理275)可以进一步基于应用程序行为、内容优先级、用 户的活动和/或用户的期望来分类移动流量和/或实施交付策略。
设备250,可以为便携式或移动设备(例如,任何无线设备),如手 提电话,通常包括:网络接口208、操作系统204、上下文API206,和感 知代理210或未感知代理的移动应用程序220。注意:设备250指如图2 具体描述的移动设备,但不限定,该设备250可能是能够通过网络,包括 有线或无线网络(例如:WIFI,蜂窝网络,蓝牙,LAN,WAN等),接收、 传输信号的任意无线、宽带、便携式/移动或非便携式设备,以满足数据请 求。
网络接口208可以是网络模块,通过主机和外部实体支持的任何已 知和/或方便协议,使设备250调解外部主机服务器250网络中实体的数据。 网络接口208能包括:一个或多个网络适配卡、无线网络接口卡(例如: 短信接口、WiFi接口、移动通信各代标准的接口,包括但不限于2G、3G、 3.5G、4G、LTE等)、蓝牙、或者连接是否经由路由器、接入点、无线路由器、交换机、多层交换机、协议转换器、网关、网桥、桥接路由器、集 线器、数字媒体接收器和/或中继器。
设备250还能包含分布式代理和缓存系统的客户端组件,其中包括 本地代理275(如移动设备的移动客户端)和缓存285。一个实施例中,本 地代理275包括用户活动模块215,代理API225,请求/事件管理器235, 具有应用程序协议模块248的缓存策略管理器245,流量定型引擎255和/ 或连接管理器265。流量定型引擎255可以更包含校准模块256和/或批处 理模块257,连接管理器265可能会包括无线控制器266。请求/事件管理 器235还能包含应用程序行为检测器236和/或优先级引擎241,其中应用 程序行为检测器236还能包含模式检测器237和/或应用程序配置文件发生 器239。本地代理275和所述的任一组件均可另外增加或减少组件/模块/ 引擎。
本申请所使用的“模块”、“管理器”、“处理程序”、“检测器”、 “接口”、“控制器”、“规范化器”、“发生器”、“验证器”或“引 擎”包含一般用途,专用或共享处理器,和通常由处理器执行的固件或软 件模块。基于具体实施或其他因素的考量,该模块、管理器、处理器、检 测器、接口、控制器、规范化器、验证器或引擎,可集中或依功能分布实 施。该模块、管理器、处理程序或引擎包含嵌入在计算机可读(存储)介 质,具有一般或特殊用途的硬件,固件或软件,由处理器予以执行。
本申请所使用的计算机可读介质或计算机可读存储介质,包含所有 法定介质(如根据美国专利法第101条),并明确排除所有非法定的介质, 本质上说排除的必要范围,使得包含计算机可读(存储)介质的权利要求 能成立。已知的法定计算机可读介质包含硬件(例如:寄存器,随机存储 器(RAM)、非易失(NV)存储器,仅举几例),但可能或可能不限于硬件。
一个实施例中,用于管理网络流量的部分分布式代理和缓存系统放 置在设备250内或与其进行通信,包含本地代理275(移动客户端)和/或 缓存285。本地代理275能为设备250提供接口,供用户访问设备的应用 程序和服务,包含电子邮件、即时消息、语音信箱、可视语音邮件、源订 阅、互联网、游戏、效能工具或其他应用程序等。
代理服务器275通常独立于应用程序,能被应用程序(例如,代理 感知和未感知应用程序210和220或移动应用程序)用于打开至远程服务器 的TCP连接(例如:图1A-1B示例中的服务器100和/或图1B和图3A示例 中的代理服务器125/325)。一些实例中,本地代理275包含代理API 225, 可以选择用于感知代理服务器应用程序220(或移动设备(例如任何无线 设备)上的应用程序(移动应用程序))的接口。
应用程序210和220通常包含用户应用程序,控件,软件,基于HTTP 的应用程序,web浏览器,视频或其他多媒体播放器或下载应用程序,视 频游戏,社交网络应用程序,电子邮件客户端,RSS管理应用程序,应用 商店,文档管理应用程序,生产力促进应用程序等。设备制造商或网络服 务提供商能够向应用程序提供设备的操作系统,该操作程序可由用户下载 或其他人提供。
本地代理275的一个实施例包含,或耦合到上下文API 206。上下 文API 206可能为操作系统204或设备平台的一部分,亦或独立于操作系 统204,如图示。操作系统204可包含任意操作系统,但不限于:以前、 目前和/或未来版本/版本的Windows Mobile,iOS,Android,Symbian, Palm OS,Brew MP,Java 2Micro Edition(J2ME),黑莓等。
上下文API206可能为操作系统204的插件或设备250上特定客户端 应用程序。上下文API206能够检测用户的指示信号或设备活动,例如检测 位置,手势,设备位置的变化,设备背光,按键,点击,触摸屏被激活, 鼠标点击或检测其他指针设备。上下文API206可以耦合至设备250的输入 设备或传感器来识别这些信号。此信号通常包含接收的输入信息,以响应 用户在设备250输入设备/机制的明确输入,和/或收集到的环境信号/上下 文线索,在设备250内或毗邻处检测得到(如光,动作,压电等)。
一个实施例中,用户活动模块215与上下文API206互动,用于识别、 确定、推断、检测、计算、预测和/或预计设备250上用户活动特征。用户 活动模块215汇总上下文API206收集的各输入值,生成用户活动特征的侧 写。这一侧写由用户活动模块215利用各临时特征生成。例如,通过提供 用户在给时序间所做之事或未做之事,瞬间生成实时的用户活动侧写(例 如由时间窗口定义最后一分钟或最后30秒等);用户活动侧写也能由应用 程序或网页定义的“时域”生成,“时域”描述了设备250上进行的特定 任务,或在特时序间内用户行为的特征(例如前2小时或前5小时)。
此外,用户活动模块215通过描绘用户活动和行为的历史趋势(例 如1周,1个月,2个月等),生成上述特征侧写。这些历史文件还可用于 推断用户行为的趋势,例如:不同时间的访问频数、每周各天访问频率的 趋势(周末或工作日)、基于位置数据的用户活动趋势(例如IP地址, GPS或基站协调数据)或位置数据的变化(例如基于用户位置的用户活动,或基于用户在忙碌中或在外旅行的用户活动等),以获取用户活动特征。
一个实施例中,用户活动模块215能检测和跟踪设备250上应用程 序、文档、文件、窗口、图标和文件夹的用户活动。例如,当一个应用程 序或窗口(如Web浏览器或任何其它类型的应用程序)被退出,关闭,最 小化,最大化,打开,移至前台,或后台,播放多媒体内容时,用户活动 模块215都能检测到。
一个实施例中,设备250上的用户活动特征可以用于本地调整设备 行为(如移动设备或任何无线设备),最优化消耗资源,如电池/功率消耗 和更普遍地,包含内存、存储和处理能力的其他设备资源的消耗。一个实 施例中,基于耦合到用户活动模块215的用户行为特征,可调整设备使用 的无线(如通过连接管理器265的无线控制器266)。例如,根据设备250 上的用户活动特征,无线控制器266打开或关闭无线。此外,无线控制器 266能依据用户活动特征,调整无线的功耗模式(如高功耗模式或低功耗 模式)。
一个实施例中,设备250的用户活动特征也可用于引发其他与设备 250存在通信(如通过蜂窝网络或其他网络)的设备(例如其他计算机、 移动设备、无线设备或非便携式设备)或服务器(例如图1A-B和图3A示 例的主机服务器100和300),修改其与设备250的通信频率。利用用户 活动模块确定的用户行为特征信息,本地代理275能指示远程设备如何校 准其通信频率(例如,若用户处于闲置状态,降低通信频率,如数据推送 频率,或当新数据、更改数据或某重要性的数据可用时,请求远程设备通 知设备250等)。
在一个实施例中,用户活动模块215能确定用户行动的特征,作为 响应确定用户行为特征,指示用户在闲置一段时间后的活跃,请求远程设 备发送因之前降低通信频率的缓冲数据(例如图1A-B和图3A示例的主机 服务器100和300)。
此外,或本地代理275可另外选择将设备250的用户活动特征传输 给远程设备(例如图1A-B和图3A示例的主机服务器100和300),并且 远程设备确定改变与设备250的通信频率,以节约网络资源和设备250资 源。
实施例之一的本地代理275还包含请求/事件管理器235,能检测、 识别、截获、处理和管理设备250提出的数据请求,例如通过应用程序210 和/或220,和/或直接/间接的用户请求。基于事件特征,请求/事件管理 器235能够确定处理给定的请求/事件或一组请求/事件的方式和时间。
请求/事件管理器235能对设备250上应用程序和/或用户作出的请 求或事件进行优先级排序,例如通过优先级引擎241。该请求/事件管理器 235通过使用规则集,确定请求/事件的重要性或优先级,例如,根据事件 的时间敏感性、事件内容的时间敏感性、事件的时间紧迫性,事件中传输 数据的时间紧迫性,和/或应用程序发出请求的时间紧迫性/重要性。
此外,事件特征也取决于该事件是否为用户互动或其他用户在设备 上启动的操作(例如用户与应用程序(例如,移动应用程序)的互动)。 一般来说,一项时间紧迫性事件包含一项由用户启动的数据传输事件,能 被列为优先事件。事件特征还取决于根据所请求的事件中将传输或预计传 输的数据量。例如,跟据需传输的数据量,连接管理器265调整无线模式 (例如通过无线控制器266调整高功耗或低功耗模式)。
此外,无线控制器266/连接管理器265能依据事件的时间紧迫性/ 敏感性,调整无线的功耗模式(高或低)。当启动或检测到一项时间紧迫 性事件时,无线控制器266触发使用高功耗无线模式(例如:由用户启动 的数据传输事件,前台运行的应用程序,或符合特定条件的其他事件)。
一般来说,优先级通常为默认设置,例如,基于设备平台、设备制 造商、操作系统等。优先级也能,或由特定的应用程序另外设置,例如, Facebook应用程序(例如,移动应用程序)为自己设置各项事件的优先级 (例如,状态更新的优先级高于添加朋友请求或戳请求,发送消息请求的 优先级高于删除消息请求),电子邮件客户端或IM聊天客户端有自己的 优先级配置。优先级引擎241可能包含分配优先级的规则集。
优先级引擎241还可以跟踪网络提供商对应用程序或事件优先级确 定请求/事件整体优先性状态的限制条件或详细说明。此外,优先级部分或 全部,明确或隐含地取决于用户的喜好。用户一般能设置不同层次的优先 级,例如为各时域、类型或应用程序设置具体的优先级(以浏览时域、游 戏时域和IM聊天时域为例,用户可能设置游戏时域优先于IM聊天,而IM 聊天的优先于浏览时域)。用户能设置应用程序的具体优先级(例如用户 可设置Facebook的相关事件优先于LinkedIn的相关事件)、事件类型的 具体优先级(例如所有应用程序的发送信息请求优先于删除信息请求,所 有日程相关的事件具有优先级等),和/或文件夹的具体优先级。
优先级引擎241跟踪和解决不同实体优先级设置的冲突。例如,用 户具体的手动设置可能优先于设备操作系统设置,网络提供商参数/限制条 件(例如,默认设置的网络服务领域,地理区域,具体时间或基于服务/ 费用类型的设置)可能会限制用户的具体设置和/或应用程序设置的优先 级。一些实例中,用户的同步手动请求能优先于一些、大多数或全部的优 先级设置,一经提出,该同步请求的执行不受单独分配的优先级或请求操 作在所有优先级事件中的排序限制。
优先级能以任何已知和/或简便方式在内部被指定并跟踪,包含但不 限于:二进制表示形式,多值表示形式或分级表示形式,所有被认为的都 在公开技术的范围内。
表1
如上述表1所示,为描述目的,展示了二进制表示方案中分配示例 事件优先级的一些例子。针对另外的事件类型、请求或事件,存在其他的 分配方式,如上所述,优先级的分配可在更多或更少层级进行,例如,时 域层或应用程序层等。
如上述表格的例子所示,优先级较低的请求/事件通常包含:更新信 息状态为已读,未读、删除信息、删除联系人;优先级较高的请求/事件, 一些实例包含:状态更新、新IM聊天消息、新电子邮件、日程事件的更改 /取消/删除、手机游戏时域中的事件,其他娱乐相关事件、网络购买或在 线购物确认,加载或下载附加内容请求,通讯录相关事件,更改设备配置 的事件,位置感知或基于位置的事件/事件,或任何由用户启动的事件/请 求/事件,或已知、预计或猜想用户在等待响应等。
收件箱整理事件(如电子邮件或其他类型的消息),通常被认为是 低优先级和不含紧迫性的事件,一般不会触发使用设备250的无线。具体 来说,在预定的整理时间内,若没有无线,移除旧邮件或其他内容的整理 事件可作为其它通信的“背驮”事件。例如,如果用户喜好的设置为“信 息保存7天”,当启动无线时,再删除邮件,而非一旦邮件超过7天,就给设备的无线上电以启动设备250的删除信息操作。如果已打开无线,则 在预时序间执行整理事件。
请求/事件管理器235,可以利用请求的优先级(如通过优先级引擎 241)管理设备250的输入流量,以最优化资源(例如,为节约电池更有效 地利用设备无线)。例如,若无线未启用,低于一定优先级的事件/请求可 能不会触发使用设备250上连接管理器265控制的无线。与此相反,当 检测到某一事件请求超过一定优先级,无线控制器266则打开无线,发送 该请求。
一个实施例中,利用优先级分配(如由本地代理275或其他设备/实 体确定),引发远程设备修改其与移动设备或无线设备的通信频率。例如, 远程设备被配置为当重要性较高的数据可以被发送到移动设备或无线设备 时,发送通知至设备250。
一个实施例中,事件优先级结合用户活动特征,能用于定型或管理 流量,如通过流量定型引擎255。例如,检测到用户处于休眠或不活跃状 态,作为响应,流量定型引擎255等待一段时间,再发送设备250的低优 先级事件。此外,流量定型引擎255可以允许累积多个低优先级事件,实 现设备250的批量传输(如通过批量模块257)。一个实施例中,用户能设置、配置或调整优先级。例如,表1相同或类似表格中所述内容能在设 备250的用户界面上获取,并且用户可用来调整或查看优先级。
批量模块257可以基于一定标准启动批量传输。例如,批量传输(例 如,事件重复出现,其中一些事件发生在不同的实例)在检测到一定数量 的低优先级事件,或在第一批低优先级事件启动后一时序间,可能启动。 此外,当设备250启动或检测到较高优先级事件时,批量模块257能启动 所累积低优先级事件的批量传输。不然当其他原因触发使用无线时,批量 传输也能被传输(例如,从远程设备,如主机服务器100或300处接收 数据)。一个实施例中,当发生批量传输时,可以执行即来的整理事件(整 理收件箱)或其他低优先级的事件。
一般来说,批量功能可以在事件/事件层,应用程序层,或时域层被 禁用或启用,根据以下任一或组合:用户配置、设备局限性/设置、制造商 详细说明、网络提供商参数/限制性、平台具体限制条件/设置,设备操作 系统设置等。一个实施例中,当应用程序/窗口/文件被关闭、退出或移至 背景模式时,批量传输被启动;用户可以选择在启动批量传输前进行提示, 用户还可以手动触发批量传输。
在一个实施例中,本地代理275通过缓存285中的缓存数据,本地 调整设备250使用的无线。若缓存285所存储的内容能满足设备250的请 求或事件,无线控制器266无需激活无线,向远程实体发送请求(例如图 1A和图3A所示主机服务器100,300,或内容提供商/应用程序服务器,如 图1A和1B示例中的服务器/提供商110)。正因如此,本地代理275可以使用本地缓存285和缓存策略管理器880本地存储数据,满足数据请求, 为节约网络资源和消耗的设备电池减少或降低设备使用的无线。
利用本地缓存,一旦请求/事件管理器225截获设备250应用程序的 数据请求,本地仓库285被查询后确定是否具有本地存储的响应,并确定 该响应是否有效。若本地缓存285存在一个有效响应,设备250可以将该 响应提供给设备的应用程序,而无需访问蜂窝网络或无线宽带网络。
若不存在有效响应,本地代理275可以查询远程代理服务器(如图 3A所示的代理服务器325),以确定是否存在远程存储的有效响应。若存 在,远程存储的响应(例如,存储在服务器缓存135或如图1B示例中的可 选缓存服务器199)可以提供给移动设备,无需移动设备250访问蜂窝网 络,从而降低了消耗的网络资源。
若不存在有效响应,或缓存的响应不适用被截获的数据请求,本地 代理275,如缓存策略管理器245,可以将该数据请求发送至远程代理(如 图3A所示代理服务器325),后者将数据请求转发内容源(如图1A所示 应用程序服务器/内容提供商110),内容源通过远程代理提供响应,这将 在图3示例主机服务器300的相关说明中作进一步详述。缓存策略管理器 245可以管理或处理使用不同的协议请求,包含但不限于:HTTP、HTTPS、 IMAP、POP、SMTP、XMPP和/或ActiveSync。缓存策略管理器245能为本地 数据库285中的数据请求本地存储响应,作为缓存条目,以满足以后相同 或类似的数据请求。
缓存策略管理器245可以请求远程代理监控数据请求的响应,并且 当检测到数据请求的意外响应时,远程代理通知设备250。在这种情况下, 当被通知意外响应时(例如,新数据、更改数据、附加数据等),缓存策 略管理器245能够清除或替换设备250上本地存储的响应。一个实施例中, 缓存策略管理器245能够检测或识别具体请求所使用的协议,包含但不限 于:HTTP、HTTPS、IMAP、POP、SMTP、XMPP和/或ActiveSync。一个实施 例中,本地代理275应用程序的具体处理程序(例如通过缓存管理器245 的应用程序协议模块246)允许最优化任何端口映射到分布式代理服务器上 处理程序的协议(例如图3A示例中代理服务器325的端口映射)。
在一个实施例中,本地代理275通知远程代理,以便其监视从内容 源接收的数据请求响应的更改结果,在将结果返回至移动设备之前更改结 果,例如,当内容源的数据请求所产生的结果与返回到移动设备的结果一 致。一般来说,本地代理275能使用本地缓存的内容,为设备250上应用 程序模拟应用程序服务器的响应。这可以防止利用蜂窝网络传输不可获取 的新/更改数据,从而释放网络资源,防止网络堵塞。
一个实施例中,本地代理275包含应用程序行为检测器236,用于跟 踪、检测、观察、监控可访问的应用程序(例如感知代理和/或未感知应用 程序210和220)或设备250上安装的应用程序。本地代理275可使用应 用程序行为,或设备250上可访问应用程序所检测行为模式(如通过模式 检测器237),最优化所需的无线网络流量,以满足这些应用程序的数据 需要。
例如,根据所检测的多个应用程序的行为,流量定型引擎255可以 通过网络(无线网络)校准至少一些应用程序的内容请求(如通过校准模 块256)。校准模块256能延迟或加快之前接收的请求以实现校准。当请 求经校准后,流量定型引擎255能利用连接管理器进行网络论调,以满足 应用程序的数据请求。多个应用程序的内容请求能以行为模式或规则/设置 为基础进行校准,例如包含多个应用程序(音频,视频,文本等)请求的 内容类型、设备(例如,移动设备)参数、和/或网络参数/流量情况、网 络服务提供商限制/详细说明等。
一个实施例中,模式检测器237可以检测由多个应用程序所提请求 的重复,例如通过跟踪应用程序的行为模式。跟踪模式包含:检测某些应 用程序,后台进程,定期轮调应用程序服务器,一天的某些时间,一周的 某些天,以预定方式定期执行,某些频率,响应某些类型事件的某些频率, 响应某种类型的用户查询,请求内容一致的频率,请求间歇,提出请求的 应用程序,或任何上述组合。
流量定型引擎255能利用这类重复,卸载从内容源(如图1A所示应 用程序服务器/内容提供商110)轮询的内容,使得本该在移动设备或无线 设备250执行的应用程序请求,转而由设备250的远程代理执行(如图1B 所示代理服务器125或图3A所示代理服务器325)。当重复请求匹配某一 规则时,流量匹配引擎255卸载查询内容。例如,相同资源的多个事件或 请求具有完全相同的内容或返回的值或者基于请求和响应之间的可重复时 间周期的检测,如在白天的特时序间请求的资源。卸载该轮询能降低移动 设备250为重复内容轮询,创建与内容源的无线(蜂窝或其它无线宽带) 连接所需的总带宽消耗。
由于卸载查询内容,当未检测到内容源查询内容的更改时,存储在 本地缓存285的缓存内容能被提供给设备250,满足数据请求。正因为如 此,当数据没有更改时,应用程序的数据需求能得到满足,而无需使用无 线或占用蜂窝无线网络的带宽。当数据已更改和/或接收到新数据时,被卸 载内容的远程实体能通知设备250。远程实体可以为如图3A示例中的主机 服务器300。
一个实施例中,本地代理275能降低所需/使用以维持TCP/IP连接 的定期保活信息(心跳信息),其会消耗大量电能,从而不利于移动设备 的电池寿命。本地代理(如心跳管理器)的连接管理器265能检测、识别, 并拦截任何或所有从应用程序发送的心跳(保活)信息。
心跳管理器267可以阻止任何或所有通过蜂窝或其他网络发送的心 跳消息,并改由分布式代理系统的服务器组件(如图1B所示)生成并发送 的心跳消息,以维持与后台的连接(如图1A示例中的应用程序服务器/提 供商110)。
本地代理275通常代表所述单一管理器、模块、和/或引擎的任一或 部分功能。本地代理275和设备250在不偏离本申请所公开新颖性范围时, 可另外增加或减少组件;增多或减少功能;整体或部分。
图2B为一框图,展示了如图2A所示缓存系统中的组件的进一步示 例,其能够为移动应用程序行为和/或网络条件缓存和适配缓存策略。
在一个实施例中,缓存策略管理器245包括元数据发生器203、缓存 查找引擎205、缓存适当性决策引擎246、轮询时间表发生器247、应用程 序协议模块24、缓存或连接选择引擎249和/或本地缓存验证器244。缓存 适当性决策引擎246可进一步包括时序预测器246a、内容预测器246b、请 求分析器246c和/或响应分析器246d,以及缓存选择引擎249包括:响应 排程器249a。元数据生成器203和/或缓存查找引擎205耦合至缓冲285 (或本地缓存)以用于缓存条目及其查询的修改或增补。
缓存查找引擎205可以进一步包括ID或URI过滤器205a、本地缓存 验证器244可进一步包括TTL管理器244a,以及轮询时间表发生器247可 以进一步包括时间表更新引擎247a和/或时间调整引擎247b。缓存策略管 理器245的一个实施例包括应用程序缓存策略库243。在一个实施例中, 应用程序行为检测器236包括模式检测器237、轮询间隔检测器238、应用 程序配置文件发生器239和/或优先级要求241。轮询间隔检测器238可进 一步包括具有响应/请求搜寻引擎238b的长轮询检测器238a。轮询间隔检 测器238可进一步包括长轮询搜寻检测器238c。应用程序配置文件发生器 239可以进一步包括响应延迟间隔追踪器239a。
缓存适当性决策引擎246可以检测、评估或确定来自内容源(例如, 图1B所示例子中的应用程序服务器/内容提供商110)的内容是否与移动设 备250进行交互,以及是否具有可适合于缓存的内容。例如,决策引擎246 可以使用与针对移动设备250启动的请求收到的请求和/或响应有关的信 息以确定缓存能力、潜在缓存能力或者无缓存能力。在某些情况下,决策 引擎246可以初步确认请求是否被定向到黑名单目的地或请求本身是否来 源于黑名单的客户端或应用程序。如果是这样的话,额外的处理和分析可 能不会被决策引擎246执行,并且请求可以被允许通过空中发送到服务器 来满足该请求。黑名单目的地或应用程序/客户端(例如,移动应用)可被在 本地代理(例如,在应用程序配置文件存储库242)中本地地维持或远程(例 如,在代理服务器325或其他实体中)维持。
在一个实施例中,决策引擎246,例如,通过请求分析器246c,收 集与在移动设备250产生的应用程序或客户请求有关的信息。请求信息包 括请求特征信息,其包括,例如,请求方法。例如,请求方法可以表示移 动应用程序或客户端产生的HTTP请求的类型。在一个实施例中,如果请求 方法为GET请求或POST请求,响应一个请求可以被识别为可缓存的或潜在 的可缓存的。其他类型的请求(例如,选项、头部、提交、删除、跟踪或连 接)可能会或可能不会被缓存。在一般情况下,具有不可缓存请求方法的 HTTP请求将不会被缓存。
例如,请求特征信息可以进一步包括关于请求的大小的信息。主体 大小超过一定尺寸的响应请求(如,HTTP请求)将不会被缓存。例如,如果 有关请求的信息表明请求的请求主体大小没有超过一定的尺寸,缓存能力 能够被确定。在某些情况下,最大可缓存请求体的大小可以设置为8092字 节。例如,在其他情况下,取决于网络容量或网络运营商的特定设置,可 能会使用不同的值。
在一些情况下,基于一组标准,例如,标准指定内容的时间关键性, 该内容正从内容源被请求,来自给定应用程序服务器/内容提供商(例如, 图1B的服务器/内容提供商110)中的内容被确定为适合于缓存。在一个实 施例中,本地代理(例如,图1B和图2A的本地代理175或275)应用一个 选择标准以存储主机服务器中的内容,其被应用程序请求作为移动设备上 的本地缓存中被缓存的元素以满足由应用程序作出的后续请求。
进一步地基于检测到的请求和/和接收到的响应的模式模式,所述请 求从移动设备250发送(例如,由移动应用程序或设备250上其它类型的客 户端),缓存适当性决策引擎246可以检测请求和/或响应中的可预测性。 例如,由决策要求246(例如,请求分析器246c)收集的请求特征信息,可 进一步包括在请求和其它由移动设备上同一客户端生成的请求或其他定向 到同一个主机(例如,具有相同或相似的标识参数)的请求之间的可预测信息。
当由相同客户端产生的请求和其他请求,以固定速率或几乎固定速 率或以具有一些可识别的或部分地或全部地可复制的变化模式的动态速率 发生时,周期性可以被决策引擎246或请求分析器246c所检测。如果请求 以一些可识别的模式被提出(例如,定期的间隔、具有可检测的模式的间隔 或趋势(例如,增加、减少、恒定的,等等),时序预测器246a中可以确定 由设备上给定应用程序作出的请求是可预测的并确定它是潜在的适于缓 存,至少从时序的角度来看。
可识别的模式或趋势通常可以包括任何应用程序或客户端行为,其 可被本地地模拟,例如,在移动设备上250的本地代理275上,或被远程 模拟,例如,由主机300上的代理服务器325,或本地和远程模拟结合的 模拟应用程序的行为。
在一个实施例中,决策引擎246,例如,通过响应分析器246d,可 以收集关于移动设备250产生的应用程序或客户端请求的响应的信息。响 应通常是从应用程序的服务器或主机(例如,移动应用程序)或在移动设备 250上发送请求的客户端处接收。在某些情况下,移动客户端或应用程序 可以是应用程序的移动版本(例如,社交网络、搜索、旅游管理、语音邮件、 联系人管理器、电子邮件)或通过网络浏览器或桌面客户端访问的网站。
例如,响应特征信息可以包括是否传输编码或块传输用于发送响应 的编码的指示。在某些情况下,具有传输编码或块传输编码的HTTP请求的 响应未被缓存,因此也可从进一步分析中被删除。基本原理是分块响应通 常是很大的和非最佳缓存的,因为这些事件的处理可能减慢整体性能。因 此,在一个实施例中,当传输编码未用于发送响应中时,可缓存能力或潜 在的可缓存能力可以被确定。
此外,响应特征信息可以包括相关联的响应状态码,其可被响应分 析器246d识别。在某些情况下,具有不可缓存状态码的HTTP响应通常不 被缓存。响应分析器246d可以从响应中提取状态码,并确定它是否匹配缓 存或不可缓存的状态码。一些可缓存的状态码以举例的方式包括:200-OK、 301-重定向、302-发现、303-查看其他、304-未修改、307-暂时重定向或 500-内部服务器错误。一些不可缓存状态码可以包括,例如,403-禁止或 404-未找到。
在一个实施例中,如果响应信息不表示不可缓存状态码或表示可缓 存的状态码,则可缓存能力或潜在的可缓存能力可以被确定。如果响应分 析器246d检测与给定响应相关的不可缓存的状态码,则具体的事件(请求/ 响应对)可能被从进一步的处理中淘汰并在临时性、半永久性或永久性的基 础上被确定为不可缓存。如果状态码表示可缓存能力,事件(例如,请求和 /或响应对)可能会受到进一步的处理和分析以确定可缓存能力,如图9-13 的示例流程图中所示。
响应特征信息还可以包括响应大小信息。在一般情况下,如果响应 未超过一定的大小,响应可被本地缓存在移动设备250上。在某些情况下, 默认最大被缓存的响应的大小被设置为128KB。在其他情况下,基于操作 条件、网络条件、网络容量、用户偏好、网络运营商的要求,或其他应用 程序特性、用户特性和/或设备特性原因,最大可缓存的响应的大小可能是 不同的和/或动态调整的。在一个实施例中,响应分析器246d可以识别响 应的大小,并且如果响应的大小不超过给定阈值或最大值,则可缓存能力 或潜在的可缓存能力可被确定。
此外,响应特征信息可以包括请求的响应的响应主体信息,以及其 它请求的其它响应的响应主体信息,其它请求由在移动设备上的相同客户 端生成或被定向至相同内容主机或应用服务器。如果由缓存条目提供,响 应和其它响应的响应主体信息可以被比较,例如,由响应分析器246d进行 比较以防止动态内容的缓存(或频繁变化的以及不能有效配合于缓存条目 的内容的响应,如财务数据、股票行情、新闻、实时的体育赛事活动等), 如不再相关的或最新的内容。
缓存适当性决策引擎246(例如,内容预测器246b)可以明确地识别 重复性或识别重复性、潜在重复性或从内容源(例如,图1A-B的示例中所 示的内容主机/应用程序服务器110)接收的响应中的可预测性的指示的。 重复性可以通过,例如,跟踪从内容源接收的至少两个响应被检测,并确 定两个响应是否相同。例如,如果响应的响应主体信息和由相同移动客户 端发送的其它响应或或定向到同一主机/服务器其它响应的响应主体信息 是相同的或基本相同的,则可缓存能力可以由响应分析器246d确定。两个 响应可能是或可能不是在响应连续中被发送的响应。在一个实施例中,为 了一般的应用程序和/或特定的请求,接收到的来自给定应用程序请求的响 应的散列值被用来确定内容的可重复性(带或不带试探)。对于某些应用程 序或在某些情况下,可能需要额外的相同的响应。
接收内容中的重复性不需要100%确定。例如,如果一定数量或一定 比例的响应是相同的或类似的,响应可以被确定为是可重复的。一定数量 或一定比例的相同/相似的响应可以被跟踪一选时序间段,设置为默认或基 于应用程序产生的请求被设置(例如,无论应用程序是具有不断更新的高动 态或具有不频发更新的低动态)。任何指定的可预测性或可重复性,或者可 能的可重复性,可以由缓存内容的分布式系统所利用以被提供至移动设备 250上的请求应用程序或客户端。
在一个实施例中,对于长轮询类型的请求,当前两个响应的响应延 迟时间是相同的、基本相同的,或检测到在间隔中的增加时,本地代理175 可以开始在第三请求上缓存响应。一般情况下,前两个响应的接收到的响 应应该是相同的,以及基于验证第三个请求的接收到的第三响应是相同的 (例如,如果R0=R1=R2),第三响应可以本地缓存在移动设备上。取决于 应用程序的类型、数据的类型、内容的类型、用户偏好或运营商/网络运营 商的规格,可能需要更少或更多的相同的响应以启动缓存。
为长轮询增加相同响应的响应延迟可以指明搜索时期(例如,给定网 络将允许一时段,在该时段中移动设备上的应用程序/客户端正在寻求的请 求和响应之间的最长时间,显示时序特性的时序图被在图8中说明),搜索 时期由应用程序行为检测器236的长轮询搜索检测器238c检测。
使用T0、T1、T2的例子将被描述如下,其中T表示当请求被发送和 当连续请求的响应(例如,响应头部)被检测/接收之间的延迟时间:
T0=响应0(t)-请求0(t)=180秒(+/-公差)
T1=响应1(t)-请求1(t)=240秒(+/-公差)
T2=响应2(t)-请求2(t)=500秒(+/-公差)
在上示的时序例子中,T0<T1<T2,这可能表明当网络超时尚未达 到或已超过时的长轮询搜索模式。此外,如果三个请求的接收到的响应R0、 R1和R2是相同的,R2可以被缓存。在这个例子中,R2是在长轮询搜索期 间被缓存而无需等待处理长轮询,从而加快响应缓存(例如,这是可选的加 速缓存行为,其可以实现所有的或选定的应用程序)。
因此,本地代理275可以指定信息,该信息可以从上面显示的时序(如 轮询排程,轮询间隔,轮询类型)中提取到代理服务器并开始缓存,请求代 理服务器开始轮询和监测来源(例如,使用T0、T1、T2的任何一个,但通 常为T2,作为轮询间隔或没有超时的最大的检测到的间隔,以及来自源的 响应被接收将被发送到图3A的代理服务器325以用于轮询内容源(如应用 服务器/服务提供商310))。
然而,如果检测到的间隔越来越短,应用程序(例如,移动应用程序)/ 客户端可能仍然搜索能够从内容源(例如,应用程序/服务器的服务器/提供 者110或310)可靠地被接收的响应的间隔,并作为这样的缓存通常不应该 启动,直到请求/响应的间隔表示相同的间隔或增加的间隔,例如,用于长 轮询类型的请求。
处理检测到的下降的延迟的例子使用T0、T1、T2、T3和T4描述如 下,其中T表示当请求被发送和当连续请求的响应(例如,响应头部)被检 测/接收之间的延迟时间:
T0=响应0(t)-请求0(t)=160秒(+/-公差)
T1=响应1(t)-请求1(t)=240(+/-公差)
T2=响应2(t)-请求2(t)=500秒(+/-公差)
T3=700秒超时(+/-公差)
T4=响应4(t)-请求4(t)=600(+/-公差)
如果检测到响应延迟T1<T2<T3>T4的模式,如上述时序(例如, 由应用程序行为检测器236的长轮询搜索检测器238c检测到的)所示,其 可以判定T3在长轮询搜索期间可能超出网络时间。请求3中,在响应被发 送或可获得之前,由于连接被网络、应用程序、服务器或其他原因终止, 响应很可能不会被收到。请求4(在T4后),如果一个响应(例如,响应4) 被检测或接收,本地代理275稍后可以使用响应用于缓存(如果内容重复性 条件得到满足)。本地代理也可以使用T4作为为代理服务器设置的轮询时 间表中轮询间隔以监测/轮询内容源。
请注意上面的描述表明只要收到回应以及给定请求没有超时,则在 长轮询在检测增加的响应延迟的事件中的搜索模式中时缓存可以开始。这 可以被作为在长轮询期间的可选的加速缓存。缓存也可以在搜索模式(例 如,在轮询请求确定在恒定或接近恒定的延迟值之后)完成之后开始。请注 意,长轮询的搜索在搜索发生时可能会或可能不会发生,代理275通常可 以检测到这个并决定是否在搜索期间开始缓存(增加相同响应的间隔),或等待直到搜索定到一个稳定的值。
在一个实施例中,缓存适当性决策引擎246的时序预测器246a可以 跟踪从来自应用程序(例如,移动应用程序)或客户端的出站请求接收到的 响应的时序以检测到任何可识别的模式,该模式可以是部分地全部重现性 以使得本地缓存响应可以以模拟内容源(例如,应用服务器/内容提供商110 或310)行为的方式被提供给移动设备250上的请求客户端。例如,以何种 方式(例如,从时序的角度来看)响应或内容将被传递到移动设备250上的请求应用程序/客户端。当应用程序或移动客户端请求的响应被从本地和/ 或远程缓存提供而不是被直接从内容源(例如,应用程序、内容提供商110 或310)检索/接收时,这将确保用户体验的保存。
在一个实施例中,决定引擎246或时序预测器246a确定给定的应用 程序(例如,移动设备应用程序)或客户端的时序特性,该应用程序或客户 端来自,例如,请求/响应跟踪引擎238b和/或应用程序配置文件生成器 239(例如,响应延迟间隔跟踪器239a)。时序预测器246a使用时序特性确 定接收到响应请求的内容是否适合或潜在适合缓存。例如,来自给定的应 用程序的两个连续请求之间的轮询请求间隔可以用来确定请求间隔是否是 可重复的(例如,恒定的、接近恒定的、随模式增加,随模式减少等)并可 预测的,从而在至少一些时间精确地或近似地在公差范围水平内复制。
在一些情况下,为特定应用程序、应用程序的多个请求或多个应用 程序的给点请求的时序特性可以存储在应用程序配置文件存储库242中。 应用程序配置文件存储库242通常可以存储任何类型的关于应用程序请求 /响应特点,包括时序模式、时序重复性、内容重复性等的信息或元数据。
应用程序配置文件存储库242也可以存储元数据,该元数据指示由 给定应用程序使用的请求的类型(例如,长轮询,长期持有的HTTP请求, HTTP流,推送,COMET推送,等等)。应用程序配置文件由应用程序指示请 求类型,可以用于当检测到随后的相同/相似的请求时或当从已被分类的应 用程序检测到请求时。以这种方式,已被跟踪和/或分析的给定请求类型或 特点应用程序的请求的时序特性不需要被重新分析。
应用程序配置文件可以与生存时间(例如,或者默认的过期时间)相 关联。应用程序配置文件或应用程序或请求的配置文件的各个方面的过期 时间的使用可以按个别情况来使用。应用程序配置文件条目的生存时间或 实际到期时间可以设置为默认值或单独确定或以其组合确定。网络应用程 序配置文件也可以具体到无线网络、物理网络、网络运营商或特定的运营 商。
实施例包括应用程序黑名单管理器201。黑名单管理器201可以被耦 合到应用程序缓存策略存储库243并可以部分或全部内置于本地代理或缓 存策略管理器245。同样,黑名单管理器201可以部分或全部内置于本地 代理或应用程序行为检测器236。黑名单管理器201可以在永久或临时的 基础上聚集、跟踪、更新、管理、调整或动态监测列入“黑名单”的、或 认定为不缓存的服务器/主机的目的地列表。目的地的黑名单,当在请求中 的确定时,有可能被使用以允许该请求被经由(蜂窝)网络发送用于服务。 额外的处理请求可能不会被执行,因为它检测到引导至被列为黑名单的目 的地。
列入黑名单的目的地可在应用程序缓存策略存储库243中由地址标 识符识别,该地址标识符包括标识符的特定的URI或模式,该标识符包括 URI模式。一般情况下,被列入黑名单的目的地可以被任何一方设置或因 任何原因被任何一方修改,该任何一方包括用户(拥有者/移动设备250的 使用者)、设备250的操作系统/移动平台、目的地本身、网络运营商(蜂窝 网络)、互联网服务提供商、其他第三方,或可根据已知不能被缓存/不适 于缓存的应用程序的目的地列表。一些在黑名单目的地中的条目可能包括 基于由本地代理(例如,缓存适当性决策引擎246)执行的分析或处理的聚 集的目的地。
例如,在移动设备上的应用程序或移动客户端的已被确定为不适合 用于缓存的响应可以加入到黑名单。其相应的主机/服务器可能会增加以补 充或代替在移动设备250上的请求应用程序/客户端的标识。部分或全部的 这样的由代理系统标识的客户端的可以被添加到黑名单中。例如,对于所 有的暂时标识为不适于缓存的应用程序客户端或应用程序中,仅有那些具 有某些检测到的特征(基于时序、周期性、响应内容变化的频率、内容的可 预测性、大小等)可以被列为黑名单。
被列入黑名单的条目可包括在移动设备(而不是目的地)上的请求应 用程序或请求客户端以使得当从给定应用程序或给定客户端检测到请求 时,它有可能通过网络发送至响应,因为列入黑名单的客户端/应用程序的 响应在大多数情况下不被缓存。
给定应用程序配置文件还可以被不同地对待或处理(例如,本地代理 275和325远程代理的不同的行为),这取决于与移动设备相关的应用程序 正在访问的移动帐户。例如,更高的付费帐户,或最初的帐户可能允许更 频繁访问无线网络或更高的带宽分配,从而影响本地代理275和代理服务 器325之间实施的缓存策略,该策略相比于节约资源,其强调更好的性能。 给定的应用程序配置文件也可以根据不同的无线网络条件(例如,基于拥塞 或网络中断等)被不同地等待或处理。
需注意的是可以为移动设备上250上的多个客户端或应用程序确定、 跟踪和管理缓存适当性。也可以为移动设备250上的给定客户端或应用程 序发起的不同的请求或请求类型确定缓存适当性。缓存策略管理器245与 时序预测器246a和/或试探性地确定或估计可预见性或潜在的可预见性的 内容预测器246b,可以跟踪,管理和存储可缓存给定的应用程序的各种应 用程序或各种请求的可缓存信息。可缓存信息可能还包括条件(例如,应用程序可以在一天的某些时候、一周的某几天被缓存,或者给定的应用程序 的某些请求可被缓存,或所有具有给定目标地址的请求可以被缓存),在该 条件下,缓存是适当的,其可由缓存适当性决策引擎246确定和/或跟踪以 及当在适当的时候应用程序缓存策略存储库243耦合到缓存适当性决策引 擎246时被存储和/或更新。
当相同的请求被检测到时,应用程序缓存策略存储库243中的关于 请求、应用程序的缓存性能和/或相关条件的信息以后可以稍后使用。以这 种方式,决策引擎246和/或时序和内容预测器246a/b不需要跟踪并分析 请求/响应时序和内容特征以作出关于缓存性能的评估。此外,缓存性能信 息可在某些情况下与其他移动设备的本地代理通过直接通信或通过主机服 务器(例如,主机服务器300的代理服务器325)的方式共享。
例如,在各种移动设备是的本地代理275检测到的缓存性能信息可 以被发送到主机服务器上的代理服务器325或远程主机服务器(例如,图3A的示例中所示的主服务器300或代理服务器325,图1A-B的示例中所示 的主机100和代理服务器125)。然后远程主机或代理服务器分发信息,该 信息关于应用程序-特定、请求-特定的缓存性能信息和/或各种移动设备或 在无线网络中或跨越多个无线网络(相同的服务提供商或多个无线服务提 供商)的本地代理的用于它们使用的任何相关条件
一般来说,缓存的选择标准可以进一步包括,通过举例的方式但不 限制于,指示移动设备是否是有效或无效、网络条件和/或无线电覆盖范围 统计信息的移动设备的状态。缓存适当性决策引擎246可在标准的任何一 种或任何组合之中,并可以以任何顺序,识别缓存可能适合的源。
一旦应用程序服务器/内容提供商具有可能适合于在移动设备250上 本地缓存的被识别的或被检测的内容,缓存策略管理器245通过存储从内 容源接收到的内容为在移动设备250上的本地缓存(例如,图1B和图2A的 例子中分别所示的本地缓存185或285)中的缓存元素可以缓存从所识另的 源接收的相关的内容。
响应可以被存储在缓存285(例如,也称为本地缓存)作为缓存条目。 除了请求的响应,缓存条目可包括具有关于响应缓存的附加信息的缓存元 数据。元数据可以由元数据生成器203生成,并且可以包括,例如,时序 数据,例如缓存条目的访问时间或者缓存条目的创建时间等等。元数据可 以包括附加的信息,如适合于在确定作为缓存条目存储的响应是否用于满 足随后的响应中使用的任何信息。例如,元数据信息可以进一步包括,请 求时序历史(例如,包括请求时间、请求启动时间、请求结束时间),请求 和/或响应的哈希值,间隔或在间隔中的变化等。
缓存条目通常存储在与生存时间(TTL)相联的缓存285中,例如可能 会由缓存无效器244的TTL管理器244a指定或确定。缓存条目的生存时间 保持在缓存285中的条目时间的总量,不管响应是否依然有效或者与给定 请求或在移动设备250上的客户端/应用程序相关。例如,如果设置的给定 的缓存条目的生存时间为12个小时,即使包含在缓存条目的响应主体仍然 是当前的并适用于相关请求的,缓存条目被清除、删除或以其他方式指明为超过生存时间。
默认生存时间除非另有规定可以自动使用于所有的条目(例如,由TTL管理器244a),或每个缓存条目可以创建其个自的TTL(例如,基于各 种动态或静态的标准由TTL管理器244a所确定)。注意,每个条目可以有 与响应数据和任何相关联的元数据相关联的单个的生存时间。在某些情况 下,相关联的元数据可具有不同于响应数据的生存时间(例如,较长的生存 时间)。缓存条目的数据模型代表例子在图24和图25中被说明。
具有用于缓存的内容的内容源,除了或可替代的,被确定为代理服 务器(例如,分别在图1B和图3A的例子中所示的代理服务器125或325) 远离移动设备250并与移动设备250无线通信以使得代理服务器可以为新 的或更改的数据监测内容源(例如,应用服务器/内容提供商110)。类似地, 本地代理(例如,分别在图1B和图2A的本地代理175或275)可以识别到 代理服务器,从特定的应用服务器/内容提供商接收的内容作为缓存的元素 285被存储在本地缓存中的。
一旦内容已经在本地缓存,缓存策略管理器245,基于接收未来轮询 请求以与应用服务器/内容主机(例如,110或310)联系,可以从本地缓存 检索缓存的元素以响应在移动设备250作出的轮询请求以使得移动设备的 无线电未被激活为服务轮询请求。例如,缓存查找引擎205可以查询缓冲 285以确定响应被提供至响应。响应可以从缓存中提供以响应识别匹配的 缓存条目和使用任何在缓存条目中与响应一起存储的元数据。缓存条目可被缓存查找引擎通过使用请求的URI或另一种类型的标识符(例如,通过 ID或URI过滤器205a)进行查询。缓存查找引擎205还可以使用与与匹配 的缓存条目一起存储的元数据(例如,提取任何时序信息或其他有关信息) 以确定响应是否仍然适合在被提供至当前请求中使用。
需要注意的是缓存查找可以由引擎205通过使用一个或多个不同的 多种策略执行。在一个实施例中,可以按顺序存储在缓冲285中的每个条 目上执行多个查找策略,直到至少有一个策略识别匹配的缓存条目。进行 缓存查找所采用的策略可以包括严格匹配标准或允许非匹配参数的匹配标 准。
例如,查找引擎205可以执行严格的匹配策略,该策略寻找在代理 试图识别缓存条目的目前的请求中引用的标识符(例如,一个主机或资源的 URI)以及与缓存条目一起储存的标识符之间的精确匹配。在标识符包括URI(s)的情况下,严格匹配的匹配算法将查找在URL匹配中的所有参数的 缓存条目。例如:
例1
1、缓存包含条目http://test.com/products/
2、请求正在作出URIhttp://test.com/products/
严格策略将发现匹配,因为这两个URI是相同的。
例2
1、缓存包含条目http://test.com/products/?query=all
2、请求正在作出URIhttp://test.com/products/?query=sub
在上述严格的策略下,匹配将不会被发现,因为URI在查询参数中 不同。
在另一个示例性策略中,查找引擎205的用标识符查找缓存,该标 识符部分匹配在代理试图识别匹配缓存条目的目前的请求中引用的标识 符。例如,查找引擎205可查找具有与由查询参数识别的请求不同的标识 符的缓存条目。在运用这一策略中,查找引擎205可以收集信息,该信息 收集多个之前请求(例如,标识符中任意参数的列表)用于稍后检查在目前 请求中的检测到的任意参数。例如,在缓存条目存储与URI或URL的标识 符一起存储的情况下,查找引擎搜索具有URI的缓存条目,该URI随查询 参数不同而不同。如果找到了,引擎205可以检查缓存条目在以前的请求 (例如任意参数列表)中收集的信息并检查在目前的URI/URL中检测到的或 从目前的URI/URL中提取的任意参数是否属于任意参数列表。
例1
1、缓存包含条目http://test.com/products/?query=all,其中 查询被标记为任意。
2、请求正在作出URIhttp://text.com/products/?query=sub
匹配将被发现,因为查询参数被标记为任意。
例2
1、缓存包含条目http://test.com/products/?query=all,其中 查询被标记为任意。
2、请求正在作出URIhttp://test.com/products/?query=sub&sort=asc
匹配将不会被发现,因为目前的请求包含没有在缓存条目中标记为 任意的分类参数。
可采用附加策略以检测缓存命中。这些策略可以单独使用或以其任 意的组合实施。当这些策略中的任何一个决定匹配时,缓存命中可被确定。 当查找引擎205确定请求的数据因任何原因不能从缓存285提供时,缓存 未命中可被指示。例如,当没有缓存条目被识别为任何或所有的被使用的 查找策略,缓存未命中被确定。
当匹配的缓存条目存在但被确定为无效或当前请求无关时,缓存未 命中也可以被确定。例如,查找引擎205还可以分析与匹配的缓存条目有 关的元数据(例如,其可以包括缓存条目的时序数据)以确定它是否仍然是 适合用于响应当前请求。
当查找引擎205已经识别了缓存命中(例如,指示请求的数据可以从 缓存中提供的事件),在匹配缓存中的存储的响应可以由缓存提供以满足应 用程序/客户端的请求。
通过使用存储在缓存285中的缓存条目服务请求,网络带宽和其他 资源不需要被用于请求/接收轮询响应,该轮询响应未从已经在移动设备 250接收的响应改变。这种服务和实现应用程序(例如,移动应用程序)通 过在本地缓存285中的缓存条目本地请求,以允许更有效的资源和移动网 络流量的利用和管理,因为不需要通过无线网络发送的请求进一步消耗带 宽。在一般情况下,缓存285可在移动设备250电源的开/关之间保持,并 在应用程序/客户端刷新和重启时保持。
例如,基于收到的来自其移动设备250或移动设备250上的应用程 序或其他类型客户端的出站请求,本地代理275可以拦截该请求并确定缓 存响应是否在移动设备250的缓存285中可用。如果是这样,出站请求由 本地代理275使用移动设备的缓存上的缓存的响应作出响应。因此,发出 的请求可以被填充或满足,而不需要通过无线网络发送出站请求从而节省 了网络资源和电池消耗。
在一个实施例中,响应设备250上的请求的应用程序/客户端定时至 对应到内容服务器将通过持续连接响应出站请求的方式(例如,通过持续连 接或长期持有的HTTP连接,长轮询式连接,将由本地代理建立缺席拦截)。 通过由本地缓存285提供存储的内容而不是从预期内容源接收到的新鲜内 容(例如,图1A-B的内容主机/应用程序服务器110),响应时序可以由本 地代理275仿真或模拟以保存应用程序行为,以使得最终用户体验不会受到影响,或受到最小影响。时序可以准确地复制或在公差参数内被估计, 其可能会被用户忽视或由应用程序类似处理以便不引起操作问题。
例如,出站请求可以是用于内容服务器(例如,图1A-1B的例子的应 用程序服务器/内容提供商)的持久连接的请求。在内容源(服务器)的持久 连接(例如,长轮询、COMET式推送或任何其他在异步HTTP请求中推送模 拟、长期持有的HTTP请求、HTTP流媒体或其他)中,在请求被发送之后连 接被保持一定的时间。连接通常可以在移动设备和服务器之间被保存,直 到内容在服务器上被提供以发送到移动设备。因此,当长轮询请求被发送 以及当响应从内容源接收之间时间上通常有一些延迟。如果内容源没有为 一定量的时间提供响应,如果响应未被发送,则可能由于网络原因(例如, 套接字关闭)终止该连接。
因此,模拟来自内容服务器的经由持久连接(例如,长轮询方式连接) 发送的响应,内容服务器的响应的方式可以是通过在响应具有缓存的响应 的出站请求之前允许间隔消逝来模拟。例如,间隔的长度可以在请求-请求 的基础上或者应用程序-应用程序(客户端-客户端的基础上)被确定。
在一个实施例中,间隔时间确定基于产生出站请求的移动设备上的 应用程序的请求特性(如时序特性)被确定。例如,轮询请求的间隔(例如, 它可以被跟踪、检测以及由轮询间隔检测器238的长轮询检测器238a确定) 可以用来确定在响应具有本地缓存的请求之前的等待的间隔,并可以由响 应排程器249a进行管理。
缓存策略管理器245的一个实施例包括为移动设备250上的一个或 多个应用程序产生轮询时间表的轮询时间生成器247。轮询时间表可以指 定轮询间隔,该轮询间隔可由物理上不同于和/或独立于移动设备250的实 体在监测代表移动设备的一个或多个应用程序(例如缓存的响应可以通过 轮询请求被定向至的主机服务器(主机服务器110或310)来进行定期验证) 的内容源中采用。这样的可以监测移动设备250的源的内容的外部实体的例子是代理服务器(例如,图1B和图3A-C的例子中的代理服务器125或 325)。
轮询时间表(例如,包含轮询率/频率)可以被确定,例如,基于定向 至来自移动设备的内容源的轮询请求之间的间隔。轮询时间表或轮询速率 可以在移动设备250(由本地代理)确定。在一个实施例中,为了确定由任 何或所有应用程序(例如,移动设备应用程序)作出的轮询请求之间的间隔, 应用程序行为检测236的轮询间隔检测器238可以监测定向至来自移动设 备250的内容源的轮询请求。
例如,轮询间隔检测器238可以跟踪设备250上的应用程序或客户 端的请求和响应。在一个实施例中,连续的请求在由相同的移动客户端或 应用程序(例如,移动设备应用程序)作出在移动设备250上的应用程序(例 如,移动设备应用程序)发起的出站请求的检测之前被跟踪。在一个实施例 中,速率由在由相同的产生请求的客户端产生的在先请求之间的间隔的平 均值来确定。例如,第一间隔可能被在当前请求和前一请求之间被计算, 第二间隔可以在前两个请求之间被计算。轮询速率可由第一和第二间隔的 平均来设置并在设置缓存策略中发送到代理服务器。
可选的间隔可在产生平均值中被计算,例如,除了前两个请求的多 个先前的请求可用于,以及多于两个的间隔可用于计算平均值。一般情况 下,在计算间隔中,给定请求不需要导致响应从主机服务器/内容源接收以 便它用于间隔计算。换句话说,给定请求的时序特性可以在间隔计算中被 使用,只要该请求已被检测到,即使请求在发送中失败或如果响应检索失 败。
轮询时间表生成器247的实施例包括时间表更新引擎247a和/或时 间调整引擎247b。时间表更新引擎247a确定更新速率的需要或者或轮询 来自先前设定值的给定应用程序服务器/内容主机具有的间隔,基于在移动 设备250上的客户端或应用程序(如移动设备应用程序)产生的实际请求中 检测到的间隔变化。
例如,监测率确定的请求现在可以被从应用程序(例如,移动应用程 序)或客户端以不同的请求间隔发送。预定的更新引擎247a可确定实际请 求更新的轮询间隔,并生成一个不同于先前设定速率的新的速率以轮询代 表移动设备250的主机。更新的轮询率可经由蜂窝网络传播至远程代理(代 理服务器325)用于远程代理监测给定主机。在某些情况下,更新的轮询速 率可在远程代理或监测主机的远程实体被确定。
在一个实施例中,时间调整引擎247b可以进一步优化的被生成用来 监测应用程序服务器/内容源(110或310)的轮询时间表。例如,时间调整 引擎247b可选地指定开始轮询到代理服务器的时间。例如,除了设置代理 服务器监测应用程序的轮询间隔,服务器/内容主机也可以指定在移动客户 端/应用程序产生的实际请求的时间。
然而,在某些情况下,由于固有的传输延迟或增加的网络延迟或其 他类型的恢复时间,远程代理服务器接收来自本地代理的具有一些延迟(例 如,几分钟或几秒钟)的轮询设置。在请求由移动客户端/应用程序产生后, 这在源具有检测响应改变的效果,在响应不再是最新的或有效的之后,缓 存的响应一旦再次被供应到应用程序则会引起缓存的响应发生的无效。这 种差异进一步在图21的数据时序图中被示意性地说明。
为了在无效之前,再次解决供应超时内容的这种非最优的结果,时 间调整引擎247b可以指定轮询应该开始除速率之外的时间(t0),其中指定 的到代理服务器325的初始时间t0作为一个时间是小于当请求被移动应用 程序/客户端产生时的实际时间的。通过这种方式,在由移动客户端产生实 际请求稍前服务器轮询资源使得在实际应用程序请求之前任何内容的变化 可以被检测。这可以防止无效的或不相关的超时内容/响应在提供新鲜内容 之前被再次发送。
在一个实施例中,基于来自移动设备250上的相同应用程序或客户 端的在先请求的时序特性,来自移动设备250的出站请求被检测到以用于 持久连接(例如,长轮询、COMET式推送和长期持有的(HTTP)请求)。例如, 请求和/或相应响应可以由轮询间隔检测238的长轮询检测器238a的请求/ 响应跟踪引擎的238b进行跟踪。
连续请求的时序特性可以被确定以设置应用程序或客户端的轮询时 间表。轮询时间表可用于监测内容源(内容源/应用程序服务器)的内容变 化,以使得存储在移动设备250的本地缓存上的缓存内容可被适当管理(例 如,更新或丢弃)。在一个实施例中,时序特性可包括,例如,响应延迟时 间(D)和/或空闲时间(IT)。
长轮询的典型响应延迟时间和空闲时间在如下所示的时序图中被说 明,并被进一步在图17A-B中详细描述。在一个实施例中,响应/请求跟踪 引擎238b可以跟踪请求和响应以确定、计算和/或估计请求者或客户端的 请求的时序图。
例如,响应/请求跟踪引擎238b检测到移动设备上的客户端启动的 第一请求(请求0)和在响应于第一请求的移动设备处接收响应之后在移动 设备上的客户端启动的第二请求(请求1)。第二请求是在第一次请求之后。 请求之间的关系可见于图17A-B的时序图。
在一个实施例中,响应/请求跟踪引擎238b可以跟踪请求和响应以 确定、计算、和/或估计请求者或客户端的请求的时序图。响应/请求跟踪 引擎238b可以检测移动设备上的客户端启动的第一请求和在响应于第一 请求的移动设备处接收响应之后在移动设备上的客户端启动的第二请求。 第二请求是在第一次请求之后。
响应/请求跟踪引擎238b进一步确定在第一、第二请求以及接收到 的响应于第一个请求的响应之间的相对时序。一般情况下,相对时序可被 长轮询检测器238a用于确定由应用程序生成的请求是否是长轮询请求。
需注意的是,在一般情况下,由响应/请求跟踪引擎238b在计算相 对时序中使用的第一和第二请求被选择用于在长轮询搜索期间固定之后或 在长轮询搜索不会发生时进行使用。典型的长轮询搜索期间的时序特性被 在图8的例子中说明并可以,例如,由长轮询搜索检测器238c检测。换言 之,由响应/请求跟踪引擎238b跟踪的请求并被用于确定给定的请求是否 是长轮询请求的请求发生在长轮询固定之后(例如,在搜索模式805完成之后,图8的810所示)。
在一个实施例中,通过识别增加的请求间隔(例如,增加的延迟), 长轮询搜索检测器238c可以识别或检测搜索模式。长轮询搜索检测器238a 也可以通过检测增加的跟随有没有响应的请求(例如,连接超时)的请求间 隔来检测搜索模式,或通过检测增加的跟随有在间隔中的减少的请求间隔 来检测搜索模式。此外,长轮询搜索检测器238c可以应用过滤器的值或阈 值的请求-响应时间的延迟值(例如,一个绝对值)检测的延迟高于该值则可以被认为是一个长轮询请求响应延迟。该过滤器的值可以是任何适当长轮 询和/或网络条件的值特征(例如,2秒、5秒、10秒、15秒、20秒,等等), 并可以用作过滤器的值或阈值。
响应延迟时间(D)是指在请求发送后开始接收响应的时间以及空闲 时间是指在响应接收之后发送后续请求的时间。在一个实施例中,出站请 求被检测用于持久连接,其基于响应延迟时间相对(D)或(D)的平均值(例如 在一段时间的任何平均值)与空闲时间(IT)的比较(例如,由跟踪引擎238b 执行的),例如,长轮询检测器238a。所使用的平均的数量可以是固定的、 动态调整的或在一段较长的时间内可改变的。例如,由客户端发起的请求 被确定为长轮询请求,如果响应延迟间隔大于空闲间隔(D>IT或D>> IT)。在一个实施例中,长轮询检测器的跟踪引擎238b计算、确定或估计 响应延迟间隔作为在第一请求的时间和初始检测或完整接收响应之间所经 历的时间量。
在一个实施例中,当空闲时间(IT)短暂时,请求被检测为持久连接, 因为持久连接被建立至长轮询请求或长轮询的HTTP请求的响应中,例如, 在收到前一个请求的响应(例如,IT~0)之后,也可以在检测随后请求的即 时或接近即时的发布中被特征化。因此,空闲时间(IT)也可以被使用来检 测这样的即时或接近即时的重新请求以识别长轮询请求。第一请求的响应 被收到后,由跟踪引擎238b确定的绝对或相对时序被用于确定第二请求是 否是即时或接近即时的重新请求。例如,一个请求可能被归类为一个长轮 询请求,如果D+RT+IT~D+RT因为IT较小是成立的。如果IT小于阈值, 则它可能被确定为小。请注意,该阈值可以是固定的或在有限的时间段(一 个会话、一天、一个月等)计算出的或在一个较长的时间周期(例如,数月 或分析的寿命)中计算出的。例如,对于每一个请求,平均IT可被确定, 并可使用该平均(例如,平均IT小于百分比可能被作为阈值)确定阈值。这 可以允许阈值随时间自动适应网络条件和服务器性能、资源的可用性或服 务器响应中的变化。固定的阈值时可以采取任何值,包括但不限于(例如, 1秒、2秒、3秒.....等等)。
在一个实施例中,长轮询检测器238a可以比较相对时序(例如,由 跟踪引擎238b所确定的)和其他应用程序的请求-响应时序特性以确定应 用程序的请求是否是长轮询请求。例如,由客户端或应用程序启动的请求 可以被确定为长轮询请求,如果响应延迟间隔(D)或平均响应延迟间隔(例 如,平均x个请求或任何数目的延迟间隔时间平均x时间量)大于一个阈值。
阈值可以使用由其他客户端,例如,请求/响应跟踪引擎238b和/或 应用程序配置文件生成器239(例如,响应延迟间隔跟踪器239a),所产生 的请求的响应延迟间隔时间所确定。其他客户端可能在同一移动设备上, 并通过在移动设备上的组件本地确定阈值。例如,所有网络的所有资源服 务器的所有请求的该阈值可被确定。该阈值可以被设置为一个特定的恒定 值(例如,30秒)被用于所有的请求,或任何不具有可适用的阈值(例如, 如果D>30秒,则检测到长轮询)的请求。
在一些情况下,其他客户端位于不同的移动设备上并且阈值可以由 代理服务器(例如,图3A-B的例子中所示的主机300的代理服务器325)确 定,该代理服务器在移动设备的外部并能够通过无线网络与多个不同的移 动设备进行通信,正如将由图3B进一步地描述。
在一个实施例中,缓存策略管理器245发送轮询时间表到代理服务 器(例如,图1B和图3A的例子中所示的代理服务器125或325),并被由 代理服务器在监测内容源中使用,例如,用于改变的或新的内容(不同于缓 存的响应的更新的响应,缓存的响应与请求或应用程序相关联)。发送到代 理的轮询时间表可以包括多个时序参数,包括但不限于间隔(从请求1请求 2的时间)或超时间隔(例如,在长轮询中使用的等待响应的时间)。参照图 17A-B的例子中所示的请求/响应时序的时序图,间隔RI、D、RT和/或IT, 或上述值的一些统计操作(例如,平均值,标准偏差等)可全部或部分地被 发送到代理服务器。
例如,当本地代理275检测到到长轮询的情况下,请求/响应时序中 的不同的间隔(例如,D、RT和/或IT)可以被发送到代理服务器325以轮询 内容源(如应用程序服务器/内容主机110)中使用。本地代理275还可以识 别至代理服务器325,被监测的给定的应用程序或请求是长轮询请求(例如, 指示代理服务器设置“长轮询标志”)。此外,代理服务器使用不同的间隔 以确定何时发送代表移动设备的保活指令。
缓存策略经理245的本地缓存无效器244可以无效缓存在本地缓存(例如,缓存185或285)中的缓存元素,当从应用服务器/内容源检测到给 定请求的新的或更改的数据(例如,更新的响应)。基于从代理服务器(例如, 代理325或主机服务器300)收到的一份通知,缓存的响应可为出站请求被 确定为无效。供到响应至移动客户端的请求的源可以被监测以确定存储在 移动设备250的缓存中的请求中的缓存的响应的相关性。例如,当缓存的 响应对于给定的请求或给定的应用程序不再有效时,缓存无效器244可以 进一步从移动设备的缓存中移除/删除缓存的响应。
在一个实施例中,在缓存的响应再次被提供给应用程序后,缓存的 响应被从缓存中移除,该应用程序在确定缓存的响应不再有效后生成出站 请求。缓存的响应在无需等待间隔的情况下可以被再次提供,或在等待间 隔(例如,确定为特定的模拟长轮询中的响应延迟的间隔)之后被再次提供。 在一个实施例中,间隔是响应延迟“D”或响应延迟“D”的两个或多个值 的平均值。
新的或更改的数据可以,例如,由代理服务器(例如,图1B和图3A 的例子中的代理服务器125或325)检测。当给定请求/轮询的缓存条目失效 时,移动设备250上的无线电的使用可以启用(例如,由本地代理275或者 缓存策略管理器245)以满足后续的轮询请求,参考图4的交互图表将进一 步说明。
缓存策略管理器245的一个实施例包括缓存或连接选择引擎249,缓 存或连接选择引擎249可以决定是否使用本地缓存的条目以满足轮询/内 容在移动设备250处由应用程序或部件产生的请求。例如,本地代理275 或缓存策略管理器245可以拦截移动设备上的应用程序(例如,移动应用程 序)作出的轮询请求以联系应用服务器/内容提供商。选择引擎249可以确 定拦截的请求接收到的内容是否已被本地存储为缓存元素以用于决定移动设备的无线电是否需要被激活以满足由应用程序(例如,移动应用程序)作 出的请求,也确定缓存的响应在使用缓存的响应响应于出站的请求之前是 否仍然对出站请求是有效的。
在一个实施例中,响应于确定相关的缓存的内容存在并仍然有效, 本地代理275中可以从本地缓存中检索缓存的元素以提供响应给应用程序 (例如,移动应用程序),该应用程序作出轮询请求以使得移动设备的无线 电不被激活以提供响应至应用程序(例如,移动设备应用程序)。在一般情 况下,每次收到出站请求本地代理275继续提供缓存的响应直到检测到不 同于缓存的响应的更新的响应。
当确定缓存的响应已不再有效时,对于给定的请求的新的请求被通 过无线网络发送以获取更新的响应。该请求可以被发送到应用服务器/内容 提供商(例如,服务器/主机110)或主机服务器上的代理服务器(例如,主 机300上的代理325)的以获取新的和更新的响应。在一个实施例中,在缓 存的响应从移动设备上的缓存移除之前,如果新的响应在间隔内未被接收, 可以再次提供缓存的响应作为出站请求的响应。
图2C是一框图,展示了图2A的例子中所示的分布式代理系统中的 客户端上的本地代理275中的应用程序行为检测器236以及缓存策略管理 器245中的另一组件。例如,图示的应用程序行为检测器236和缓存策略 管理器245可以使本地代理275检测缓存失败并由旨在战胜缓存的标识符 处理的缓存的内容进行执行。
在一个实施例中,缓存策略管理器245包括缓存失败解析引擎221、 标识符规化器211、缓存适当性决策引擎246、轮询时间表生成器247、应 用程序协议模块248、具有缓存查询模块229的缓存或连接选择引擎249 和/或本地缓存无效器244。缓存失败解析引擎221还可以包括模式提取模 块222和/或缓存失败参数检测器223。缓存失败参数检测器223还可以包 括随机参数检测器224和/或时间/日期参数检测器226。一个实施例中还 包括耦合到决策引擎246的应用程序缓存策略存储库243。
在一个实施例中,应用程序行为检测器236包括模式检测器237、轮 询间隔检测器238、应用程序配置文件生成器239和/或优先级引擎241。 模式检测器237还可以包括缓存失败参数检测器223,该缓存失败参数检 测器223还具有,例如,随机参数检测器233和/或时间/日期参数检测器 234。一个实施例中还包括耦合至应用程序配置文件生成器239的应用程序 配置文件存储库242。应用程序配置文件生成器239,已被描述的优先级引 擎241与图2A的例子中的应用程序行为检测器236的描述相关联。
缓存失败解析引擎221能够检测、识别、跟踪、管理和/或监测内容 或内容源(例如,服务器或主机),其采用标识符和/或由标识符(例如,资 源标识符,如URL和/或URI)与一个或多个击败缓存或旨在击败缓存的机 制进行处理。例如,缓存失败解析引擎221可以从由应用程序或客户端产 生的给定的数据请求检测,该应用程序或客户端标识失败或潜在的失败缓 存,其中数据请求不同的处理内容或来自主机或服务器(例如,应用程序检 测服务器/内容主机110或310)的响应是可缓存的。
在一个实施例中,缓存失败解析引擎221使用在移动设备250检测 到的数据请求的标识符检测或识别由内容源(例如,应用服务器/内容主机 110或310)所使用的缓存失败机制。缓存失败解析引擎221可以检测或识 别表明缓存失败机制被使用的标识符中的参数。例如,参数的格式、语法 或模式可用于标识缓存失败(例如,由模式提取模块222确定或提取的模 式、格式或语法)。
模式提取模块222可以解析标识符为多个参数或组件并在每个参数 上执行匹配算法,以识别任何匹配一个或多个预定的格式(例如,日期和/ 或时间的格式,如图7中所示的参数702)。例如,来自标识符的匹配或解 析出的参数的结果可用于(例如,由缓存失败参数检测器223)以确定包括 一个或多个改变参数的缓存击败参数。
在一个实施例中,缓存失败参数检测器223可以检测随机参数(例如, 由随机参数检测器224)和/或时间和/或日期参数,其典型地用于缓存失败。 缓存失败参数检测器223使用这些参数通常采用的格式并执行匹配算法和 测试的模式可以检测随机参数(例如,图7中所示的参数752中所示出的) 和/或时间/日期。
除了检测模式、格式和/或语法,缓存失败参数检测器223进一步确 定或确认给定参数是否击败缓存以及和被处理的内容是否可以被分布式缓 存系统缓存。缓存失败参数检测器223可以通过分析收到的由给定的数据 请求使用的标识符的响应检测到这种动作。在一般情况下,当响应对应的 多个数据请求相同时,即使当多个数据请求使用具有变化的参数的标识符 因多个数据请求的每个而不同,该标识符中的变化的参数被标识为指明缓存失败。例如,图7的例子中所示的请求/响应对展示了接收到的响应(图 7中的704和754)是相同的,即使资源标识符包括随每个请求而变化的参 数(图7中的702和752)。
例如,至少有两个相同的响应可能被要求识别变化参数表明为指示 缓存失败。在某些情况下,可能需要至少三个相同的响应。相同响应的数 量的要求可以是应用程序特定、上下文相关和/或用户依赖的/用户指定的, 或上述的组合,该相同响应需要确定具有在请求之间的变化值的给定参数 是缓存击败。这样的要求也可以由分布式缓存系统静态地或动态地调整以 满足某些性能阈值和/或显式/隐式关于用户体验(例如,用户或应用程序是 否正在接收响应于请求的相关的/新鲜的内容)的反馈。如果应用程序由于 响应缓存开始出现故障和/或如果用户表示不满(显式用户反馈)或系统检 测到用户受挫(隐式用户提示),可能需要更多的相同的响应以确认缓存失 败,或为系统处理给定的参数用于缓存失败。
缓存适当性决策引擎246可以检测、评估或确定是否来自移动设备 250进行交互的内容源(例如,图1B的例子中的应用服务器/内容提供商110) 的内容是否具有可适合于缓存的内容。在某些情况下,基于一套标准(例如, 指定被从内容源请求的内容的时间关键性的标准),来自给定应用程序服务 器/内容提供商(例如,图1B的服务器/提供商110)的内容被确定为适合于 缓存。在一个实施例中,本地代理(例如,图1B和图2A的本地代理175或275)应用选择标准存储来自主机服务器的内容,该主机服务器由应用程序 请求作为在移动设备上的本地缓存中的缓存的元素以满足由应用程序作出 的后续请求。
选择标准也可以包括,通过举例的方式但不限于,指示移动设备是 否是活跃或不活跃的移动设备的状态、网络条件和/或无线电覆盖范围的统 计信息。缓存适当性决策引擎246可采用标准的任何一个或任何组合,并 以任何顺序,以识别缓存可能适合的源。
一旦应用程序服务器/内容提供商具有被识别的或被检测到的可能 适合在移动设备250上本地缓存的内容,缓存策略管理器245通过存储从 内容源接收到的内容为在移动设备250上的本地缓存中的缓存元素(例如, 分别在图1B和图2A的例子中显示的本地缓存185或285)可以缓存从所识 别的源接收到的相关联的内容。内容源也可以被识别至远离移动设备250 并与移动设备250无线通信的代理服务器(例如,分别在图1B和图3A的例 子中显示的代理服务器125或325)以使得代理服务器可以为新的或变更的 数据监测内容源(例如,应用服务器/内容提供商110)。类似地,本地代理 (例如,分别在图1B和图2A中的本地代理175或275)可以识别到代理服 务器,从特定应用程序服务器/内容提供商接收的内容被存储为本地缓存中 的缓存的元素。
在一个实施例中,缓存的元素被存储在本地缓冲285中作为与标识 符的归一化版本相关联以用于标识符采用一个或多个只在击败缓存的参 数。标识符可以由标识符规化器模块211标准化以及规化过程可以包括, 通过举例的方式,一个或多个:转化URI方案和主机为小写,大写在百分 比转义序列中的字母,移除默认的端口并删除重复的斜线。
在另一个实施例中,标识符取可以通过移除缓存失败的参数和/或通 过更换参数为静态值进行标准化,该静态值可用于处理接收到的缓存的响 应或与接收到的缓存的响应相关联,该接收到的缓存的响应由规化器211 或缓存失败参数处理器212利用标识符响应于请求。例如,存储在本地缓 冲285(图2A中所示)中的缓存的元素可使用标识符的归一化版本或标识符 的归一化版本的哈希值进行识别。该标准化的标识符或标识符的哈希值可 由哈希引擎213产生。
一旦内容已经在本地缓存,缓存策略管理器245可以,基于接收未 来轮询请求以与内容服务器联系,检索来自本地缓存中的缓存的元素以响 应在移动设备250作出的轮询请求以使得未激活的移动设备的无线电维护 轮询请求。这样的通过本地缓存条目本地地维护和实现应用程序(例如,移 动应用程序)请求允许更有效的资源和移动网络流量利用率和管理,因为网 络带宽和其他资源不需要被用于请求/接收轮询响应,该轮询响应可能没有 从已经在移动设备250接收到的响应改变。
缓存策略管理器245的一个实施例包括轮询时间表生成器247,该轮 询时间表生成器247可以为在移动设备250上的一个或多个应用程序产生 轮询时间表。轮询时间表可以指定由代理服务器(例如,图1B和图3A的例 子中所示的代理服务器125或325)在监测一个或多个应用程序的内容源中 采用的轮询间隔。轮询时间表可以被确定,例如,基于定向至来自移动设 备的内容源的轮询请求之间的间隔。在一个实施例中,应用程序行为检测器的轮询间隔检测器238可以监测定向至来自移动设备250的内容源的轮 询请求,以确定的任何或所有的应用程序(例如,移动应用程序)作出的轮 询请求之间的间隔。
在一个实施例中,缓存策略管理器245发送轮询时间表发送到代理服 务器(例如,图1B和图3A的例子中所示的代理服务器125或325)并可被由 代理服务器在监测的内容源中,例如,为改变的或新的内容所使用。当从应 用程序服务器/内容源检测到给定请求的新的或变更的数据时,缓存策略管 理器245的本地缓存无效器244可以无效在本地缓存(如缓存185或285)中 缓存的元素。新的或更改的数据,例如,可以被代理服务器检测。当给定请求/轮询的缓存条目在无效后被失效和/或移除(例如,从缓存中删除)时,移 动设备250上的无线电的使用可以被启用(例如,由本地代理或策略管理器245)以满足随后的轮询请求,参照图4的交互图表将进一步描述。
在另一个实施例中,代理服务器(例如,图1B和图3A的例子中所示 的代理服务器125或325)使用在数据请求中使用的资源标识符的修改后的 版本用于为新的或更改的数据监测给定的内容源(图1A和图1B中的数据请 求向其提出的应用程序服务器/内容主机110)。例如,在该实施例中,在 其中内容源或标识符被检测到采用缓存击败机制的情况下,修改(例如,标 准化)后的标识符可以用来代替轮询的内容源。标识符的修改或归一化版本可以通过缓存策略管理器245传送到代理服务器,或更具体地,标识符规 化器211的缓存失败参数处理器212。
由代理服务器所使用的用于轮询代表移动设备/应用程序(例如,移 动应用程序)的内容源的修改后的标识符,可能或可能不会与标准化的标识 符相同。例如,标准化的标识符可以是具有被移除的改变缓存参数的原始 标识符,然而修改后的标识符使用替代参数来替代被用于击败缓存的参数 (例如,由本地代理和/或代理服务器已知的静态值或其他预定值替代改变 的参数)。修改后的参数可以由本地代理275确定并传送到代理服务器。修 改后的参数也可由代理服务器(例如,由图3C的例子中所示的标识符修改 器模块353)产生。
缓存策略管理器245的一个实施例包括缓存或连接选择引擎249,该 引擎可以决定是否使用本地缓存条目以满足在移动设备250由应用程序或 部件产生的轮询/内容请求。例如,本地代理275或缓存策略管理器245可 拦截由移动设备上的应用程序(例如,移动应用程序)作出的轮询请求以与 应用服务器/内容提供商联系。选择引擎249可以确定拦截请求的已接收到 的内容是否被本地存储作为缓存元素以用于决定移动设备的无线电是否需 要被激活来满足由应用程序(例如,移动应用程序)作出的请求。在一个实 施例中,响应于确定相关的缓存的内容存在并仍然是有效的,本地代理275 可以从本地缓存检索缓存的元素以提供到应用程序(例如,移动应用程序) 的响应,该应用程序作出轮询请求以使得移动设备的无线电没有被激活以 提供到应用程序(例如,移动应用程序)的响应。
在一个实施例中,存储在本地缓存285(图2A中所示)中的缓存的元 素可以使用标识符的归一化版本或标识符的归一化版本的哈希值被识别, 例如,使用缓存查询模块229。缓存的元素可以与标准化的标识符一起存 储,该标识符具有被移除的或以其他方式被替代的缓存击败参数以使得相 关的缓存的元素可以在未来被识别并检索以满足采用相同类型的缓存击败 的其他请求。例如,当在后续请求中使用的标识符被确定为采用相同的缓存击败参数时,该标识符的归一化版本可以被生成的并用于识别存储在移 动设备缓存中的缓存的响应以满足数据请求。标识符或标准化的标识符的 哈希值可由标识符规化器211的哈希引擎213产生。
图2D是一框图,展示了如图2A的例子中所示的在本地缓存275中 的附加组件的例子。该例子能进一步基于应用程序行为和/或用户的活动执 行移动流量分类和策略实施。
在本地代理275的实施例中,用户活动模块215还包括一个或多个 的:用户活动跟踪器215a、用户活动预测引擎215b和/或用户期望管理器 215c。应用程序行为检测236可以进一步包括优先级引擎241a、时间关键 性检测引擎241b、应用程序状态分类器241c和/或应用程序流量分类器 241d。本地代理275还可以包括背光检测器219和/或网络配置选择引擎 251。网络配置选择引擎251可以进一步包括一个或多个的:无线代标准选 择器251a、数据速率指示器251b,接入信道选择引擎251c和/或接入点选 择器。
在一个实施例中,应用程序行为检测器236能够检测、确定、识别 或推断流量源自或定向至的移动设备250上的应用程序的活动状态,例如, 通过应用程序状态分类器241c和/或流量分类器241d。活动态可以由应用 程序是否是在移动设备上的前台后台状态(通过应用程序的状态分类241c) 进行确定,因为前台应用程序与后台应用的流量可被进行不同地处理。
在一个实施例中,活动状态可以一确定性启发法被确定、检测、识 别或推断,基于移动设备250的背光状态(例如,由背光源检测器219)或 在移动设备上的其他软件代理或硬件传感器,包括但不限于,电阻传感器、 电容传感器、环境光传感器、运动传感器,触摸传感器等。在一般情况下, 如果背光打开,流量可以被处理作为或确定将从应用程序中产生,该应用 程序是活跃的或在前台中的,或者流量是交互的。此外,如果背光打开, 流量可以被处理作为或确定为来自用户交互或用户活动的流量,或流量包 含用户在一段时间帧内所期望的数据。
在一个实施例中,活动状态被基于流量是否是交互式流量或维护流 量来确定。交互式流量可以包括来自直接由具有应用程序的用户活动/交互 生成的响应和请求的事件,并且可以包括用户等待或期待收到的内容或数 据。维护流量可用于支持应用程序的功能,该应用程序不直接由用户检测。 维护流量还包括可能发生响应用户动作的动作或事件,但用户不是积极等 待或预期响应。
例如,移动装置250的邮件或消息的删除动作产生一个请求以删除 在服务器上的相应的邮件或消息,但用户通常不会等待响应。因此,这样 的请求可能被归类为维护流量,具有较低优先级(例如,由优先级引擎241a) 的流量和/或非时间关键性(例如,由时间关键性检测引擎214b)。
相对地,移动设备250的用户发起的邮件‘读’或消息‘读’请求 可以被归类为“交互式流量,因为当用户要求阅读信息或邮件时,他们通 常等待访问内容或数据。同样,这样的请求可以被归类为具有较高优先级 (例如,由优先级发动机241a)的和/或为时间关键性/时间敏感的(例如, 由时间关键性检测引擎241b)。
时间关键性检测引擎241b可大致确定、识别、推断流量中所含的数 据的时间敏感性,该流量从移动设备250发送或发送至来自主机服务器(例 如,主机300)或应用程序服务器(例如,应用程序服务器/内容源110)的移 动设备。例如,时间敏感数据可以包括状态更新、股票信息更新、IM状态 信息、电子邮件或其他信息、手机游戏应用程序产生的动作、网页请求、 位置更新等等。不是时间敏感或时间关键性的数据,按内容或请求的性质, 可以包括请求删除消息、标记为已读或编辑操作、应用程序特定的操作, 如添加或删除朋友朋友的请求,某些类型的消息,或其他性质不经常变化 的信息等等。在某些情况下,当数据不是时间关键性时,允许流量通过的 时间基于当附加数据需要从移动设备250被发送时被设置。例如,流量整 形引擎255可以调整流量和一个或多个后续的事件以在移动设备的无线电 (例如,使用调整模块256和/或批次处理模块257)的单电源事件上被一起 发送。调整模块256还可以调整轮询请求,该轮询请求在时间上接近定向 到同一个主机服务器时发生,因为这些请求可能使用相同的数据进行响应。
在替代选择或组合中,活动状态可从评估、确定、估计、推论、识 别移动设备250的用户的活动(例如,通过用户活动模块215)中被确定。 例如,可以直接检测出用户活动并使用用户活动跟踪器215a进行跟踪。然 后,由此产生的流量可以适当地进行分类以进行后续程序确定处理策略。 此外,用户活动可由用户活动预测引擎215b进行预测的或预期。通过预测 用户活动或预测用户活动,因此发生在预测之后的流量可以被作为用户活 动产生的进行处理并适当分类以确定传输策略。
另外,用户活动模块215也可以管理用户期望(例如,通过用户期望 管理器215c和/或与活动跟踪器215和/或预测引擎215b的结合)以确保流 量适当地被分类以使得用户的期望通常被满足。例如,用户发起动作应被 分析(例如,由期望管理器215)以确定或推断用户是否将等待响应。如果 是的话,这样的流量应按照策略被处理以使得用户不会经历在接收这样的 响应或动作中的不愉快的延迟。
在一个实施例中,基于流量源自并定向至的移动设备上的应用程序 的活动状态,高级的新生代无线标准网络被选择用于发送在无线网络中的 移动设备和主机服务器之间的流量。高级的技术标准,如3G、3.5G、3G+、 4G或LTE网络,可以被选择用于处理作为用户交互、用户活动的结果的流 量,或含有用户期待或等待的数据的流量。高级的新生代无线标准网络也 可以被选择以用于传输包含在定向至移动设备的流量中的数据,该移动设 备响应前台的活动。
在流量分类和定义移动流量的传输策略中,网络配置可以被选择在 发送移动设备和代理服务器(325)和/或应用程序服务器(例如,应用程序服 务器/主机110)之间的流量中的移动设备250上使用(例如,通过网络配置 选择引擎251)。被选择的网络配置可以基于应用程序行为模块236收集的 关于应用程序活动状态(例如,后台或前台流量)、应用程序流量分类(例如, 互动或维护流量)、任何数据/内容的优先级、时间敏感/关键性的信息被确 定。
网络配置选择引擎2510可以选择或指定在任何组合中的一个或多个 新生代标准(例如,通过无线新生代标准选择器251a)、数据速率(例如, 通过数据速率指示器251b)、接入信道(例如:接入信道选择引擎251c)和/ 或接入点(例如,通过接入点选择器251d)。
例如,当活动状态与用户交互或在移动设备上的前台时,更高级的 新生代(例如,3G、LTE或4G或更高版本)可以被选择或指定流量。相反, 当检测到一个或多个下列内容时,老一代的标准(如2G、2.5G、3G或更老 的版本)可以指定流量:应用程序不与用户进行交互,应用程序是在移动设 备上的后台运行,或包含在流量中的数据不是时间关键性,或另外的被确 定为具有较低的优先级。
同样地,当检测到一个或多个下列内容时,具有较慢的数据速率的 网络配置可以指定流量:应用程序不与用户交互,应用程序在移动设备上 的后台运行,或者包含在流量中的数据不是时间关键性。接入信道(例如, 前向接入信道或专用信道)可以被指定。
图2E是一框图,展示了如图2A的例子中所示的流量整形引擎255 和应用程序行为检测器236中的附加组件的例子。这些例子能够进一步促 进到移动或宽带设备或其用户的输入的数据传输的调整以优化需要被建立 用于通过无线网络或宽带网络接收数据的连接的数量。
在本地代理275的实施例中,流量整形引擎255,除了调整模块256、 批次处理模块257外,还包括轮询间隔调节器258。轮询间隔调节器258 可以包括因子或分母检测引擎258a、关键性应用程序检测器258b、关键性 间隔标识符258c和/或轮询间隔设置引擎258d。此外,在一个实施例中, 本地代理275的应用程序行为检测器236还包括轮询间隔检测器238。
在促进到移动设备250的各种服务或主机的数据突发的调整中,本 地代理275可以初步确定、检测、识别、计算、推断,提取原始的或默认 的轮询间隔以用于移动设备250上的应用程序和移动客户端(例如,由轮询 间隔检测器238)。原始的或默认的轮询间隔通常是移动设备应用程序本身 和/或它的主机(例如,其相应的显示在图1A-1B中的应用程序服务器/内容 主机110)所特有的特性。轮询间隔检测器238可以为任何数量的或所有的 移动应用程序检测原始的或默认的轮询间隔,基于其上安装的应用程序和 他们各自的轮询时序特性,该移动应用程序由代理275在生成或调整轮询 间隔中定期轮询它们的应用服务器或主机,以适合于设备250使用。
例如,设备250上的移动客户端或应用程序的轮询间隔(原始的或默 认的)可以由轮询间隔调节器258使用。在一般情况下,第一服务的调整的 轮询间隔是基于第二服务的轮询间隔产生的,该第二服务由来自第一服务 (例如,Twitter=服务1;ESPN.com=服务2)的不同的主机服务。由于在 第一和第二服务的移动设备上的访问,计算第一服务和/或第二个服务的调 整的轮询间隔可用于调整至少一些从不同的主机接收的流量。
例如,在一个实施例中,第一服务的调整的轮询间隔可以是第一服 务的原始的轮询间隔和第二服务的原始的轮询间隔共有的因子或分母(例 如,正如由因子或分母检测引擎258a所确定的),并可以进一步基于第一 服务的原始的轮询间隔被确定。注意当第一服务的原始的轮询间隔和第二 服务的轮询间隔是彼此的因子或分母时,第一服务的调整的轮询间隔不必 要不同于第一服务的原始的轮询间隔。
在一个实施例中,检测引擎258a可以进一步确定第二服务的轮询间 隔和第一服务的调整的轮询间隔的因子或分母的倍数是第二服务的轮询间 隔的因子的倍数或分母的倍数。此外,引擎258a可确定在移动设备250上 的多个应用程序的大多数的默认的轮询间隔的因子的共同倍数或分母的共 同倍数。
此外,基于相对于来自第二服务的流量的时间关键性的来自第一服 务的流量的时间关键性,或在移动设备250上的附加服务,第一服务的调 整的轮询间隔可以被进一步确定、调整、或重新配置(例如,通过轮询间隔 设置引擎258d)。例如,关键性应用程序检测器258b可以识别、检测或接 收作为比其他更重要的识别或指定一个或多个在设备250上的应用程序的 输入(如,更高的优先级、时间敏感内容/流量、用户首选的应用程序、操 作系统赞助的应用程序、运营商赞助的内容等),如果需要并进一步调整第 一和/或第二的服务的轮询间隔。
例如,关键性应用程序检测器258b可以识别关键性应用程序为在移 动设备上的所有应用程序的最重要的时间关键性,或者数据突发调校正在 其上应用或试图应用的一组应用程序。对于关键性应用程序,关键性应用 程序的轮询间隔被识别为为最小的关键性间隔(例如,由关键性间隔标识符 258c),其不能在调整关键性应用程序的更新的轮询间隔中被超过从而使得 在数据中的优先级需要(例如,无论是用户需要、设备需要或应用程序需要) 推进和及时传递来自应用程序服务器或内容主机的数据。
高优先级信息/数据或应用程序可以包括,例如,财务数据、运动数 据或其他本质上不断变化的数据、其之前的值几乎没有相关性的任何数据、 用户希望立即被实时或接近实时通知的任何数据(例如,订阅或提要),任 何被应用服务器/内容主机指定为实时或接近实时特征的特定特征(例如, 实时状态更新、或实时通知、高优先级的邮件或其他消息、即时消息等等) 或服务任何类型的高优先级/时间敏感内容的应用程序。
一旦在移动设备250上的一个或多个应用程序的轮询间隔已经设置, 本地代理275传播轮询时间表,该轮询时间表包括至代理服务器(例如,图 3A-3E的远程代理325)的调整的轮询间隔以用于在调整中使用,在时间上, 至少一些流量由于访问移动设备上的第一和第二服务,以及任何额外的服 务而从不同的主机接收。
在一个实施例中,轮询间隔设置引擎258d也选择在时间中的共同起 点用于服务多个应用程序的内容主机的初始轮询。轮询间隔设定引擎258d 可以设置开始时间以固定至设备250上的多个应用程序在时间中的相同的 绝对时间点。在一般情况下,应用程序服务器/内容主机通常在UTC中并使 用NTP以留在相同时间。例如,间隔设置引擎258d可以旋转任何分钟标记、 第二标记,小时标记或其他的时间指标,并传送这个至远程代理服务器(例 如,代理325)作为调整的轮询参数的一部分。标记可以随机选择以由所有 的应用程序使用作为共同的“初始时间t0”。
需注意的是虽然上述描述使用两个应用程序的示例,但相同的过程 可以被执行用于移动设备250上的任意数量的应用程序或所有应用程序/ 客户端。在某些情况下,由一个或多个组件的轮询间隔调节器258执行的 一些或所有的功能中可被远程执行,例如,在远程代理服务器(例如,代理 325)使用在移动设备250本地检测到的轮询间隔(例如,由轮询间隔检测器 238)。注意远程代理(例如,代理服务器325)可接收在多个设备中的应用 程序轮询间隔并跟踪在多个设备上的应用程序的调整的间隔,参考图3E将 进一步描述。
图3A是一框图,展示了分布式代理和缓存系统的服务器端组件,放 置于主机服务器300,管理无线网络的流量,以节约资源。服务器端的代 理(或代理服务器325)可以基于应用程序行为、内容优先级、用户的、活 动和/或用户的期望进一步分类移动流量和/或实施交付策略。
主机服务器300一般包含,例如,网络接口308和/或一个或多个存 储库312、314和316。注意:该服务器300可以为任何便携/移动或非便 携设备、服务器、计算机集群和/或(例如图11示例中所示任何机器)能通 过网络,包含任何有线或无线网络(例如,WiFi、蜂窝、蓝牙等),用于接 收或传输信号满足数据请求的其他类型处理单元。
网络接口308可以包含网络模块或设备,能使服务器通过任何由主 机和外部实体所支持的已知和/或方便通信协议,与主机服务器300外部实 体调解网络数据。具体而言,网络接口308允许服务器300与多台设备进 行通信,含移动电话设备350,和/或一个或多个应用程序服务器/内容提 供商310。
主机服务器300可以将设备的连接信息(例如,网络特征、条件、连 接类型等)存储至连接元数据存储库312。此外,第三方应用程序或内容提 供商的相关信息也可以存储在存储库312中。主机服务器300可以存储设 备信息(例如,硬件性能、属性、设备设置、设备语言、网络性能、制造商、 设备模型、操作系统、操作系统版本等)至设备信息存储库314。此外,主 机服务器300可以将网络提供商和各类网络服务区域的信息存储至网络服 务提供商存储库316。
具备通信功能的网络接口308允许与设备350进行即时连接(如包含 蜂窝连接)和/或与内容服务器/提供商310的连接(例如,包含有线/无线, HTTP,互联网连接,网卡,WIFI等),为最优化网络资源利用率和/或节约 服务设备350消耗的电源(电池),管理设备350和内容提供商310的流量。 主机服务器300能与由不同的网络服务提供商和/或在相同/不同的网络服 务区域内提供服务的移动设备350进行通信。主机服务器300能操作,并 且兼容各类型或各整体性能水平的设备350,包含如下列举但不限于:1G、 2G、2G过渡(2.5G,2.75G)、3G(IMT-2000)、3G过渡(3.5G,3.75G,3.9G), 4G(IMT-Advanced)等。
一般来说,网络接口308可以包含一个或多个网络适配卡、无线网 络接口卡(例如:SMS接口、WiFi接口、各代移动通信标准接口,包含但不 限于:1G,2G,3G,3.5G,4G类型网络,例如LTE、WiMAX等)、蓝牙、WiFi 或任何其他是否经由路由器,接入点、无线路由器、交换机、多层交换机、 协议转换器、网关、网桥、桥接路由器、枢纽、数字媒体接收方,和/或中 继器连接的网络。
主机服务器300还包含,包含代理服务器325和服务器缓存335的 分布式代理和缓存系统服务器端组件。一个实施例中,代理服务器325可 以包含HTTP访问引擎345,缓存策略管理器355,代理控制器365,流量 定型引擎375,新数据检测器347,和/或连接管理器395。
HTTP访问引擎345还能包含心跳管理器398;代理控制器365还能 包含数据无效模块368;流量定型引擎375还能包含控制协议376和批次 处理模块377。代理服务器325和各所述组件能增加或减少包含的组件/模 块/引擎。
本申请所使用的“模块”,“管理器”,“处理程序”,“检测器”, “接口”,“控制器”、“规化器”、“生成器”、“无效器”或“引擎” 包含一般用途,专用或共享处理器,和通常由处理器执行的固件或软件模 块。基于具体实施或其他因素的考量,该模块、管理器、处理器、检测器、 接口、控制器、规化器、生成器、无效器或引擎,可集中或依功能分布式 实施。该模块、管理器、处理器、检测器、接口、控制器、规化器、生成 器、无效器或引擎能包含嵌入在计算机可读(存储)介质,具有一般或特殊 用途的硬件,固件或软件,由处理器予以执行。本申请所使用的计算机可 读介质或计算机可读存储介质,包含所有法定介质(例如,美国专利法第 101条),并明确排除所有非法定的介质,本质上说排除必要范围,使得包 含计算机可读(存储)介质的权利要求能成立。已知的法定计算机可读介质 包含硬件(例如:寄存器,随机存储器(RAM)、非易失(NV)存储器,仅举几 例),但可能或可能不限于硬件。
示例中设备(如移动设备350)向应用程序服务器或内容提供商310 提出应用程序或内容请求,该请求可能被截获,并路由到代理服务器325, 其耦合至设备350和应用程序服务器/内容提供商310。具体来说,代理服 务器能够与移动设备350的本地代理进行通信(例如图1和图2示例中各自 的代理服务器175和275),本地代理将数据请求转发到代理服务器325, 某些实例中,如需要进一步处理,为响应数据请求将其发送至应用程序服 务器/内容服务器310。
在这样的配置下,主机300或主机服务器300的代理服务器325可 以利用本地代理提供的智能信息,调整其与设备的通信方式,以最优化网 络使用和设备资源。例如,代理服务器325可以识别设备350的用户活动 特征,修改其通信频率。用户活动特征可以由,例如,代理控制器365的 活动/行为感知模块366,通过设备350上本地代理所收集的信息进行确定。
一个实施例中,代理服务器325的连接管理器395可以控制通信频 率,例如,调整设备350内容的推送或更新频率。例如,当用户活动特征 表明用户处于不活跃状态时,连接管理器395可以降低推送频率。在一个 实施例中,当用户活动特征表明用户处于闲置一段时间后的活跃状态,连 接管理器395能调整与设备350的通信频率,将因降低通信频率的缓冲数 据发送至设备350。
此外,代理服务器325包含感知优先级的各项请求、事件、时域、 应用程序,和/或特定事件。这种感知由设备350的本地代理确定,并提供 给代理服务器325。代理服务器325的优先级感知模块367一般能评估各 事件或应用程序的优先级(例如,包含时间的紧迫性,时间敏感性等);此 外,优先级感知模块367能跟踪设备350的本地代理所确定的优先级。
一个实施例中,连接管理器395通过优先级感知还能修改服务器300 与设备350的通信频率(例如,使用或无线由无线控制器396控制)。例如, 当需要发送满足一定重要性/优先级标准的数据或更新时,若未使用无线, 服务器300可以通知设备350,请求使用无线。
一个实施例中,代理服务器325能检测事件的重复(如从服务器/提 供商310接收的事件、内容或数据),并允许事件累积,批量传输至设备 350。基于模块367和/或模块366所跟踪的优先级感知和/或用户活动/应 用程序行为感知,批量传输可以累积,并且能延迟传输事件。例如,当服 务器300上检测到高优先级事件(满足阈值或标准)时,批次处理模块377 可以启动批量传输多个事件至设备350(低优先级)。此外,当服务器从设 备350接收数据,表明已在使用无线设备,这能触发服务器300的批量传 输。一个实施例中,代理服务器325可以基于事件/事件的优先级对传输的 批量信息/数据包进行排序,高优先级内容优先发送,防止连接中断或电池 耗尽等。
一个实施例中,服务器300缓存数据(例如,由缓存策略管理器355 管理),能通过网络(例如,蜂窝网络)修改(如降低)其与设备350的通信频 率。数据能缓存,例如至服务器缓存335,为后续检索或批量发送至设备 350减少设备350打开无线的需要。服务器缓存335可以部分或者全部放 置于主机服务器300内,尽管在图3A示例中,其置于主机服务器300外部。 某些实例中,服务器缓存335可能相同于和/或部分或全部统一于另一缓 存,由另一实体进行管理(例如图1B所示的可选缓存代理服务器199),如 被应用程序服务器/内容提供商310、网络服务提供者,或其他第三方进行 管理。
在一个实施例中,内容缓存由设备350在主机服务器300的支持下 本地执行。例如,主机服务器300的代理服务器325向应用程序服务器/ 提供商310查询请求,监测响应的变化。当检测到更改或新响应时(如通过 新数据检测器347),代理服务器325通知移动设备350,因此设备350上 本地代理可以确定本地缓存存储作为响应的相关缓存条目无效(如标记为 陈旧)。另外,数据无效模块368能基于从应用程序服务器/提供商310接 收的响应,自动指示设备350的本地代理使某些缓存数据失效。当新的内 容被从内容服务器310接收时,缓存的数据被标记为无效,也可以被替换 或删除。
应注意的是,检测器347能通过一种或多种方式检测到数据更改。 例如,服务器/提供商310能将更改通知主机服务器300。为响应源服务器 /提供商310的直接检索,主机服务器300也能检测到更改。某些实例中, 代理服务器325可以另外,预加载设备350上本地缓存的新/更新数据。当 主机服务器300检测到移动设备上的无线已在使用时,或服务器300有附 加内容/数据发送至设备350,可以执行此操作。
一或多个上述机制可以同时被执行或基于应用程序(例如不同服务 器/提供商310的不同策略)进行调整/配置。某些实例中,源提供商/服务 器310可通知主机300某些类型的事件(如满足优先级阈值级别的事件)。 此外,提供商/服务器310被配置为不论事件优先级,均在特定间隔期通知 主机300。
一个实施例中,主机300的代理服务器325可以监测/跟踪从内容源 接收的数据请求的响应,在将结果返回至移动设备之前更改结果,当内容 源的数据请求所产生的结果与返回到移动设备的结果一致时,这种监测才 适合,从而在特定的请求不存在新/更新时,防止使用网络/功耗。设备350 的本地代理能指示代理服务器325执行这种监测或代理服务器325对于一 特定请求,接收到几个相同的响应时,能自动启动这一过程(或在一段时间 内几个相同的响应)。
一个实例中,服务器300,例如,通过活动/行为感知模块366,能 够在独立于移动设备350的设备中识别或检测用户活动。例如,模块366 可以检测被访问的用户收件箱(例如电子邮件或收件箱类型)。这可以表明, 用户利用设备,而非移动设备350与他/她的应用程序进行互动,可能根本 无需频繁的更新。
在本实例中,服务器300降低将新或更新后内容发送至移动设备350 的频率,或只要检测到用户使用另一台设备访问,消除所有通信。降低具 体应用程序的频率(例如,用户在另一台设备上与应用程序互动)或普遍降 低与移动设备350的频率(例如,因为用户被检测到通过另一台设备与服务 器或应用程序进行互动,他/她同时利用该设备访问其他服务)。
在一个实施例中,主机服务器300能够代表设备350轮询内容源310, 以节约电能或设备350的电池消耗。例如,移动设备350上的某些应用程 序可以预定的方式反复轮询其各自服务器310。代理控制器365的活动/行 为模块366能够跟踪其重复或其他类型的应用程序行为。主机服务器300 从而可以轮询移动设备350上应用程序的内容源,要不然设备350通过无 线(如包含蜂窝连接)也能执行。主机服务器通过HTTP访问引擎345,创建 HTTP连接或利用无线控制器396通过蜂窝网络连接到源310,轮询源310 新或更改数据。当检测到新或更改数据时,新数据检测器347通知设备350, 该数据可用和/或将新/更改数据提供给设备350。
在一个实施例中,连接管理器395确定移动设备350不可用(例如无 线已关闭),并利用SMS传输内容至设备350,如通过图1B所示的SMSC。 SMS是用来传输无效消息、批次无效消息,甚至在内容足够小以适应到仅 有几个(通常是一个或两个)SMS消息的情况下的内容。这就避免了访问的 无线电信道发送的开销信息的必要。主机服务器300可以将SMS用于某些 优先级高于阈值或满足其他标准的事件或响应。主机服务器300还能将SMS 作为带外抑制触发器维持或唤醒IP连接,这是维持I P持续连接的替代之 法。
一个实施例中,代理服务器325的连接管理器395(如心跳管理器398) 能够生成和/或代表连接的设备350传输心跳信息,为设备350上运行的应 用程序维持与提供商310的后台连接。
例如,在分布式代理系统中,设备350的本地缓存可以防止通过蜂 窝网络或其他网络发送任何或全部维持应用程序必要TCP/IP连接所需心 跳信息,却反而依赖主机服务器300的代理服务器325生成和/或发送心跳 信息,以维持与后台的连接(例如图1A所示应用程序服务器/提供商110)。 代理服务器能够独立于移动设备本地代理的操作,生成保活(心跳)信息。
存储库312、314和/或316可以另外存储软件、说明性数据、图像、 系统信息、驱动程序、和/或任何由主机服务器300的其他组件和/或任何 其他服务器操作所使用的数据项目。存储库可以由数据库管理系统(DBMS) 管理,例如但不限于:Oracle、DB2、MicrosoftAccess、MicrosoftSQLServer、 PostgreSQL、MySQL,FileMaker等。
存储库可以通过面向对象技术和/或文本文件实施,由分布式数据库 管理系统,面向对象的数据库管理系统(OODBMS)(例如:概念库、FastDB 主存数据库管理系统、JDOInstruments、ObjectDB等),对象-关系数据库 管理系统(ORDBMS)(例如:Informix、OpenLinkVirtuoso、VMDS等),文件 系统,和/或任何其他方便或已知的数据库管理程序包进行管理。
图3B是一框图,展示了如图3A的例子中所示的缓存系统的缓存策 略管理器中的组件的进一步的示例,其能够为移动应用程序(例如,移动应 用程序)行为和/或网络条件缓存并适配缓存策略。
在一个实施例中,缓存策略管理器355可以进一步包括元数据生成 器303、缓存查找引擎305、应用协议模块356、具有轮询时间表管理器358 的内容源监测引擎357、响应分析器361和/或更新的或新的内容检测器 359。在一个实施例中,轮询时间表管理器358还包括主机时序模拟器358a、 长轮询请求检测器/管理器358b、时间表更新引擎358c和/或时间调节引 擎358d。为修改或增补,元数据生成器303和/或缓存查找引擎305可以 耦合到缓存335(或服务器缓存)以缓存条目或其查询。
在一个实施例中,代理服务器(例如,图1B和图3A的例子的代理服 务器125或325)可以通过监测引擎357监测新的或更改的数据的内容源。 如图所示的代理服务器是图2A-B的移动设备250的外部的实体。内容源(例 如,图1B的应用程序服务器/内容提供商110)可以是已被识别至代理服务 器(例如,由本地代理)作为具有被本地缓存在移动设备(例如,移动设备 150或250)上的内容的一种。例如,内容源可以由监测引擎357以一频率 进行监测,该频率是基于移动设备的内容源的轮询频率。例如,轮询时间 表可以由本地代理产生并发送到代理服务器。轮询频率可以被轮询时间表 管理器358跟踪和/或管理。
例如,代理服务器可以轮询代表移动设备的主机(例如,内容提供商 /应用服务器)和通过主机定时模拟器358a模拟至主机的客户端行为。轮询 行为可以被模拟以包括在主机持久连接(例如,通过长轮询请求检测器/管 理器358b)中经历的长轮询请求-响应序列的特征。请注意,一旦轮询间隔 /行为被设定,设备端上的本地代理275和/或服务器端上的代理服务器325 可以验证应用程序和应用服务器/内容主机行为是否匹配或是否可以被这 种预测模式所表示。在一般情况下,本地代理和/或代理服务器可以检测出 偏差,并且在适当的时候,重新评估和计算、确定或估计另一项轮询间隔。
在一个实施例中,分布式代理的服务器端的缓存策略管理器355可 以配合或独立于移动设备上的代理服务器275识别或检测长轮询请求。例 如,缓存策略管理器355可以确定阈值,该阈值被用于与在请求-响应序列 中的应用程序请求的响应延迟间隔时间(图17A-B的示例时序图中所示的 间隔时间‘D’)进行比较以识别或检测长轮询请求、可能的长轮询请求(例 如,用于与客户端通信的主机的永久连接的请求,包括但不限于,长期持 有的HTTP请求、能够以COMET式推送的持久连接、HTTP流的请求,等等) 或其他可以以不同方式被作为长轮询请求处理的请求。
例如,该阈值可以由代理服务器325使用由移动设备的客户端/应用 程序生成的请求的响应延迟间隔时间进行确定,该移动设备由多个不同的 蜂窝或无线网络提供服务。由于代理325位于主机300上能够通过多个网 络与多个移动设备通信,缓存策略管理器355在全球层面上访问应用程序/ 客户端信息,其可用于设置阈值以分类和检测长轮询中。
通过经由不同或相同的网络跟踪设备的应用程序的响应延迟间隔时 间,缓存策略管理器355可以设置一个或多个阈值以用于与长轮询检测的 响应延迟间隔时间的比较。由代理服务器325设置的阈值可以是静态或动 态的,并且可以与条件和/或生存时间(相对或绝对的过期时间/日期)相关 联。
另外,代理服务器325的缓存策略管理器355可以进一步确定该阈 值,全部或部分地基于给定无线网络的网络延迟、由给定运营商(服务提供 商)服务的网络,或多个无线网络。代理服务器325还可以基于一个或多个 应用程序(例如,移动应用程序)或移动客户端请求定向至的应用服务器/ 内容提供商(例如,110)的延迟确定长轮询请求识别的的阈值。
代理服务器可以在被监测的内容源检测到新的或更改的数据并传输 消息到移动设备通知其这样的改变以使得移动设备(或移动设备上的本地 代理)可以采取适当的动作(例如,无效在本地缓存中的缓存的元素)。在某 些情况下,代理服务器(例如,缓存策略管理器355)基于检测到新的或更 改的数据也可以在其缓存(例如,分别在图1B和图3A的例子中的服务器缓 存135或335)中存储新的或更改的数据。存储在服务器缓存335中的新的/更新的数据可以在某些情况下被使用以满足移动设备的内容请求,例如, 它可以用于代理服务器通知移动设备新的/更改的内容之后以及本地缓存 的内容已无效之后。
类似于图2B的例子中所示的元数据生成器203的元数据生成器303 可以在移动设备250生成为请求缓存的响应的元数据。元数据生成器303 可以生成存储在服务器缓存335中的缓存条目的元数据。同样地,缓存查 找引擎305可以包括相同或相似的用于描述图2B的例子中所示的缓存查找 引擎205的功能。
响应分析器361可以执行任何或所有的功能,该功能与分析为请求 接收的响应相关,该请求在移动设备250以相同或类似的方式被生成至, 图2B的例子中所示的本地代理的响应分析器246d。由于代理服务器325 能够从定向至移动设备250的应用程序服务器/内容源310接收响应,代理 服务器325(例如,响应分析器361)可以执行类似的响应分析步骤以确定如 描述本地代理的响应分析器的缓存性能。响应分析程序的例子也结合图 11-13的例子中所示的流程图被描述。响应可以被分析以补充或代替可以 被在移动设备250上的本地代理275执行的分析。
此外,基于如为本地代理275的时间表更新引擎描述的移动设备250 的应用程序的应用程序请求间隔改变,时间表更新引擎358c可以更新给定 应用程序服务器/内容主机的轮询间隔。时间调整引擎358d可以设置应用 程序服务器/内容主机的轮询即将开始的初始时间,以防止在服务为在本地 代理275中的时间表更新引擎所描述的新鲜内容之前再次地过时内容的服 务。时间表更新和时间调整算法可连同或替代移动设备250上的本地代理275执行的类似的过程。
图3C是一框图,展示了如图3A的例子所示的分布式代理系统中的 服务器端组件上的代理服务器375中的缓存策略管理器355中的组件的另 一示例,其能够管理并检测缓存击败机制及监测内容源。
在一个实施例中,缓存策略管理器355可以进一步包括:缓存击败 源管理器352、具有轮询时间表管理器358的内容源监测引擎357,和/或 更新或新的内容检测器359。缓存击败源管理器352可以进一步包括标识 符修改器模块353和/或标识符模式跟踪模块354。
在一个实施例中,代理服务器(例如,图1B和图3A的例子中的代理 服务器125或325)可以通过监测引擎357的为新的或更改的数据检测内容 源。内容源(如图1B的应用服务器/内容提供商110或图3A的310)可以是 已被识别至代理服务器(例如,由本地代理)以具有在移动设备(例如,移动 设备150或250)上被本地缓存的内容。例如,内容源310可以由监测引擎 357以一基于移动设备的内容源的轮询频率监测。例如,轮询时间表可以 由本地代理产生并发送到代理服务器325。轮询频率可以被轮询时间表管 理器358跟踪和/或管理。
在一个实施例中,代理服务器325在轮询内容源310中使用标准化 的标识符或修改的标识符以检测新的或更改的数据(响应)。标准化标识符 或更改的标识符也可由代理服务器325用于在服务器缓存335上存储响应。 在一般情况下,标准化的或修改的标识符可以被当为缓存的内容采用击败 机制时使用。缓存击败机制可以是在例如URI或者URL的标识符中的变化 参数的形式,并且可以包括变化的时间/数据参数、随机变化的参数或其它类型的参数。
标准化标识符或更改标识符删除或以其他方式取代变化参数为相关 联的后续请求和相关响应的标识,也可以被用于轮询内容源。在一个实施 例中,修改后的标识符由代理服务器325(分布式代理系统的服务器端组件) 上的缓存策略管理器355的缓存击败源管理器352(例如,标识符修改器模 块353)的生成。修改后的标识符可以利用替代参数(一般在一段时间是静 止的)代替用来击败缓存的改变的参数。
缓存击败源管理器352可选地包括标识符模式跟踪模块354以跟踪、 存储和监测各种标识符的修改或为一个或多个内容源(如应用服务器/内容 主机110或310)处理内容的标识符以不断验证由代理服务器325使用修改 的标识符和/或标准化的标识符以轮询的作为预测或意图的内容源(例如, 接收相同的响应或以其他方式与相比原始的、未修改的标识符相关的响 应)。
模式跟踪模块354检测导致内容源上的不稳定或不可预知行为(例 如,将被发送的意想不到的响应)的标识符的修改和标准化,跟踪模块354 可以登录修改并指示缓存击败源管理器352生成另一个修改/标准化或通 知本地代理(例如,本地代理275)生成另一个修改/标准化以在轮询内容源 中使用。在替代方案或并行方案中,来自移动设备(例如,移动设备250) 的给定应用程序/客户端的请求可以暂时通过网络发送到内容源用于提供 直接响应给移动设备和/或直到工作可以产生标识符的修改。
在一个实施例中,当新的或更改的数据被检测用于已经存储在移动 设备(例如,移动的移动设备250)上的本地缓存(例如,缓存285)中的响应 时,响应被作为服务器缓存原始被存储在服务器缓存中。因此,移动设备 或本地代理275可以连接到代理服务器325以检索请求的响应的新的或更 改的数据,该请求是之前被本地地缓存在本地缓存285中(现在是无效的, 过时的,或以其他方式确定为无关的)。
代理服务器325可以在被监测的应用服务器/内容主机310检测新的 或改变的数据并传输消息至移动设备通知它这样的变化以使得移动设备 (或在移动设备上的本地代理)可以采取适当的措施(例如,无效在本地缓存 中的缓存的元素)。在某些情况下,代理服务器(例如,缓存策略管理器355), 基于检测到新的或更改的数据,也可以存储新的或更改的数据在其缓存中 (例如,分别在图1B和图3A的例子中的服务器缓存135或335)。存储在服务器缓存中的更新的/新的数据可以被使用,在某些情况下,以满足移动 设备的内容请求,例如,它可以在代理服务器通知移动设备新的/更新的内 容以及本地缓存的内容已经失效之后被使用。
图3D是一框图,展示了如图3A的例子中所示的代理服务器中的附 加组件的例子。该例子进一步能够基于移动应用程序行为和/或流量优先级 实现流量分类和策略实施。
在代理服务器325的一个实施例中,流量整形引擎375进一步耦合 到流量分析器336以分类定义策略的移动流量和移动流量以及被定向至一 个或多个移动设备(例如,图2A-2D的移动设备250)或应用程序服务器/内 容主机的事件(例如,图1A-1B的110)。在一般情况下,代理服务器325 远离移动设备和主机服务器,如图1A-1B的例子中所示。代理服务器325 或主机服务器300可以监测多个移动设备的流量,并能够为不同的移动设 备分类流量和制定流量策略。
另外,代理服务器325或主机服务器300可以与多个运营商或网络 运营商合作并可以实施关于各种类别的流量分类和流量策略实施的运营商 特定策略。例如,代理服务器325或主机服务器的300的流量分析器336 可以包括一个或多个:优先引擎341a,时间关键性检测引擎341b、应用程 序状态分类器341c和/或应用程序流量分类器341d。
这些引擎或模块的每一个可以跟踪基于不同的无线运营商被认为是 优先级、时间关键性、后台/前台或互动/维护的不同标准。不同的标准也 可能存在不同的移动设备类型(例如,设备的型号、制造商、操作系统等)。 在某些情况下,移动设备用户可以调整有关的流量类别的设定或标准以及 代理服务器325能够跟踪和实施这些用户调整的/配置的设置。
在一个实施例中,流量分析器336能够检测、确定、识别或推断一 个或多个移动设备(如移动设备150或250)上的应用程序的活动状态,例 如,流量通过应用程序状态分类器341c和/或流量分类器341d源自或被定 向到该设备。活动状态可以基于应用程序是否是处于一个或多个移动设备 (通过应用程序状态分类器341c)的前台或后台状态,因为前台应用程序与 后台应用的流量可以被区别处理以优化网络使用。
在备用或组合中,应用程序的活动状态可以由无线连接的移动设备 确定(例如,通过在本地代理中的应用程序行为检测器)并传输给代理服务 器325。例如,活动状态可以确定、检测、确定或推断出启发式确定性水 平,基于移动设备的背光状态(例如,通过背光检测器)或其他软件代理或 移动设备上的硬件传感器,包括但不限于电阻传感器、电容传感器、环境 光传感器、运动传感器、触摸传感器等。在一般情况下,如果背光开启, 流量可以视作为或确定为被从应用程序产生,该应用程序是活跃的或在前 台中固定,或者流量是是互动的。此外,如果背光开启,流量可以视作为 或确定来自从用户交互或用户活动的流量,或包含用户期望在一段时间帧 内的数据的流量。
活动状态可以从评估、确定、评价、推断、识别移动设备250(例如, 通过用户活动模块215)识别用户的活动并传达给代理服务器325。在一个 实施例中,活动状态被基于流量是否是交互式流量或维护流量而确定。交 互式流量可以包括直接从用户活动/与应用程序的交互生成的响应和请求 的事件,并且可以包含用户等待或期待收到的内容或数据。维护流量可以 被用于支持不直接由用户检测的应用程序的功能。维护流量还包括可能发 生响应用户动作的行动或事件,但用户不是积极等待或期待响应。
时间关键性检测引擎341b可以大致确定、识别、推断包含在流量或 应用程序服务器(例如,应用程序服务器/内容源110)中的数据的时间敏感 性,该流量从移动设备250发出或发至主机服务器300或代理服务器325 的应用程序服务器。例如,时间敏感数据可以包括状态更新、更新股票信 息、IM状态信息、电子邮件或其他信息、从手机游戏应用程序产生的动作、 网页请求、位置更新等。
不是时间敏感或时间关键性的数据,内容或请求的本质,可包括删 除消息、标记读取或编辑操作、应用程序特定动作,例如添加-朋友或删除 -朋友的请求、某些类型的消息,或其他本质上不经常变化的消息等等的请 求。在某些情况下,当数据不是时间关键性时,允许流量被发送到移动设 备的时序是基于当存在需要被发送到相同移动设备的附加数据时。例如, 流量整形引擎375可以以一个或多个后续事件调整流量,事件将在移动设备无线电的单个电源开启事件中被一起发送(例如,使用调整模块378和/ 或批次处理模块377)。调整模块378还可以调整时间上接近定向至相同主 机服务器的轮询请求,因为这些请求可能使用相同的数据进行响应。
在一般情况下,无论是从主机服务器传送到移动设备的新的或更改 的数据,可基于新的或更改的数据相关的移动设备上的应用程序是否正在 前台中运行(例如,通过应用程序状态分类器341c),或新的或更改的数据 的优先级或时间关键性被确定。如果应用程序是在移动设备上的前台中, 或者如果应用程序是在前台并处于与移动设备上的用户交互的活跃状态, 和/或是用户否在等待将被在新的或更改的数据中提供的响应,代理服务器 325可以发送新的或更改的数据到移动设备。代理服务器325(或流量整形 引擎375)可以发送高优先级或时间关键性的新的或更改的数据。
同样地,如果应用程序是在移动设备上的后台,代理服务器325(或 流量整形引擎375)可以抑制新的或更改的数据的发送。如果用户不是在等 待将被在新的或更改的数据中提供的响应,代理服务器325也可以抑制新 的或变更数据的发送,其中抑制是由耦合到主机服务器的代理服务器实施 的并能够以无线连接到移动设备。
一般来说,如果数据,包括新的或更改的数据,是低优先级的或不 是时间关键的,代理服务器可以等待传输数据,直到一段时间之后或直到 有额外的数据要被发送(例如,通过调整模块378和/或批次处理模块377)。
图3E是一框图,展示了图3A的流量整形引擎375的例子中的附加 的组件的例子。该例子还能够调整至移动或宽带设备或其他接收方的数据 传输,以优化被建立用于无线网络或宽带网络中的传输的连接。
在代理服务器325的一个实施例中,流量整形引擎375还包括通知 引擎379,调整模块378包括调整的轮询跟踪器378a以及批次处理模块377 还包括连接触发器377a。
在一个实施例中,代理服务器325可以轮询不同的主机,该主机以 一时间表服务给定的移动设备上的各种应用程序(例如,第一和第二服务)。 轮询时间表可由本地代理(如,图2A-2E的代理275)设置,可以包括在已 被调整的移动设备(例如,设备250)上的应用程序分配的轮询间隔。轮询 时间表可以由例如代理服务器325中的流量整形引擎375的调整模块378 中的调整后轮询跟踪器378a进行跟踪。服务/应用程序的调整的轮询间隔 可以根据在移动设备上的其他服务的轮询间隔被确定以使得在远程代理服 务器325处接收到的数据可以在批次处理中被提供至移动设备,例如,由 批次处理模块377。
轮询时间表也可以包括初始启动时间(t0)以启动代表在给定移动设 备上的多个应用程序轮询。不同的主机的第一轮询的初始启动时间(例如, 共有的起始时间点)可以被选择,主机服务于第一和第二服务,例如,由本 地代理275(例如,图2A-2E的代理服务器275),在某些情况下,由代理服 务器325。当由本地代理确定时,本地代理传播轮询的共有的起始时间点 至代理服务器325。在一个实施例中,共有的起始时间点被设定为在未来 延补通信偿迟。
在一个实施例中,如果给定移动客户端/移动应用程序并未打开或激 活,或者如果给定移动设备250没有连接至无线网络,连接触发器377a可 以发送触发(例如,在带外)触发到移动设备或移动设备上的本地代理以请 求无线电供电和/或激活一个或多个相关的应用程序。例如,批次处理模块 377可批次处理的各种内容或数据发送至给定移动设备上的多个应用程序, 如果移动客户端/移动应用程序并未打开或激活,连接触发器377a请求可 以发送触发请求应用程序被激活。另外,通知引擎379可以发送移动设备 250一指示,表明数据已准备好要被发送,请求移动设备250打开无线电, 如果目前是在关闭模式的话。
需要注意的是代理服务器325监测多个移动设备并跟踪应用程序特 性和/或多个设备、用户和网络的用户行为/特性。因此,上述有关调整轮 询间隔跟踪器的特征,虽然描绘了定向至给定设备上的多个应用程序的一 个例子,请注意,同样对多个设备进行跟踪,在其上安装其自己的其他的 应用程序集,基于每个移动设备上的应用程序,例如位于之上的本地代理 (例如,本地代理275的图2E中示出的组件,本地代理275可被安装在一 个或多个的由代理服务器325提供服务的多个移动设备上),为该应用程序 集计算调整轮询间隔或轮询时间表。
需要注意的是,因为代理服务器325管理至/来自多个移动设备的流 量,移动设备在一个网络中、跨越多个网络、在一个地理区域中、跨越多 个地域,一个网络运营商或跨越多个网络运营商,代理服务器325可以基 于流量条件或网络条件的数据概述或汇总调整数据的流量和批量传输。代 理服务器325可以优先考虑移动设备的数据传输,例如,当检测到网络拥 塞时。例如,代理服务器325可以将数据传送到移动设备,其中移动设备 用户的订阅的类型或级别基于传递到移动设备的内容的最高优先级被分层 或交错(例如,当设备A的最高优先级数据具有高于设备B的最高优先级数 据的优先级,则一批数据可能被首先传递到移动设备A相比于被传递至移 动设备B)。
需要注意的是,例如,有可能存在用于地理区域、特定的网络运营 商、网络服务的类型,或所述的任何组合的代理服务器325。基于不同的 服务实体,代理服务器325可以聚合有关网络流量、运营商设置、应用程 序喜好/需求、用户偏好,订阅相关的参数的不同类型的信息,上述的各种 组合可以由代理325在优化需要由接收移动设备建立的连接中使用。多个 代理服务器325服务在地理区域中的不同的网络,不同的运营商可以共享 其间的流量、订阅、用户或应用程序级别信息,以进一步促进网络资源的 利用率、流量管理以及在某些情况下促进至移动设备的数据传输。
图4展示了分布式代理系统460如何协调无线网络中从移动设备450 到应用程序服务器/内容提供商495的数据请求,通过分布式代理系统460 执行的内容缓存和监测,以达节约网络和电量资源的目的。
为满足移动设备450的应用程序或服务器请求,移动设备450或其 执行的软件控件在缺少分布式代理系统460时,直接执行应用程序服务器 495的数据请求402(如HTTP、GET、POST或其他请求),并且直接接收服务 器/提供商495的响应404。如果数据已更新,移动设备450的控件455自 我刷新以反映更新,等待一段时间后向服务器/提供商495提出另一数据请 求。
一个实施例中,设备450上提出请求的客户端或软件控件455可以 利用分布式代理系统460处理服务器/提供商495的数据请求模式。一般来 说,分布式代理系统460能包含本地代理465(通常被认为是系统460的客 户端组件,可放置在移动设备450内),缓存代理475(被认为是系统460 的服务器端组件470,可放置在主机服务器485内,或全部或部分置于主 机服务器485外部)和主机服务器485。本地代理可以通过任何网络或网络 组合连接到缓存代理475和主机服务器485。
当分布式代理系统460用于数据/应用程序请求时,控件455能通过 本地代理465执行数据请求406。本地代理465可以截获设备应用程序的 请求,并识别请求的连接类型(如HTTP获取请求或其他类型的请求)。本地 代理465能查询本地缓存该请求的之前信息(例如,以确定本地存储的响应 是否可用和/或是否有效)。如果本地存储的响应不可用,或所存储的响应 无效,本地代理465能更新或存储请求的信息,请求时间或任何附加数据 至本地缓存。该更新的信息可能用来满足后续的请求。
然后本地代理465将请求发送到主机服务器485,主机服务器485 执行该请求406,并返回结果作为响应408。本地代理465可存储结果和结 果另外的相关信息,将结果返回给请求控件455。
一个实施例中,如果同样的请求出现多次(在特定时序内),并且产 生结果相同,本地代理465可以通知服务器485,在将结果返回至本地代 理465或请求控件455前,应该监测该请求的结果变化(如步骤412和414)。
一个实施例中,如果请求被标记监测,本地代理465即可存储结果 至本地缓存。当控件455提出数据请求416,且请求具有可用的本地响应, 为本地代理465所截获,本地代理465无需通过无线网络创建连接通信, 便可从本地缓存中返回响应418。
此外,服务器代理执行被标记监测420的请求,以确定是否更改给 定请求的响应422。一般来说,主机服务器485独立于控件455或本地代 理465的操作执行监测。当接收到请求的意外响应422时,服务器485通 知本地代理465该响应已更改(例如步骤424的无效通知),并且应该删除 客户端上本地存储的响应或替换为新响应。
这种情况下,设备450上控件455的后续数据请求导致主机服务器 485的数据被返回(如通过缓存代理475),以及在步骤428中,请求从缓存 代理475被满足。因此,当移动设备450上控件或软件应用程序的内容/ 数据实际更改时,通利用分布式代理系统460智能地使用无线网络(蜂窝)。 正因为如此,检查应用程序数据的变化所需要的流量不通过无线网络(蜂窝) 执行。这样能减少产生的网络流量,缩短总时间和移动设备450无线模块 的上电次数,从而降低电池消耗,还能释放网络带宽。
图5展示了在移动设备550上利用分布式代理和缓存系统(例如图1B 示例中的分布式系统),执行混合型IP和SMS省电模式的示例过程。
步骤502中,本地代理(如图1B所示代理175)监测设备的用户活动。 当确定用户活跃时,服务器推送也活跃。以这种方式,如果该推送可用, 也能维持持续推送的IP连接,并且在其可用时,SMS触发器立即被发送至 移动设备550。
步骤504中,当用户被检测为不活跃或闲置一段期间(如本实例所示 的闲置期为20分钟),本地代理可以调整设备进入省电模式。在省电模式 下,当本地代理接收到信息或源自分布式代理和缓存系统服务器端的远程 代理(例如图1B所示服务器代理135)的回应,本地代理能够以指令回应, 表明该设备550目前处于省电模式(例如通过远程节电过程指令)。某些实 例下,本地代理可以借此机会通知各帐户或提供商(如图510A和510B)的 当前节电状态(例如时序使用相同的无线上电事件)。
一个实施例中,本地代理的响应可以包含,当设备550将要接收更 改或附加数据时,表示远程代理(例如服务器代理135)的时间(例如节电期) 和/或应用程序服务器/提供商510A/B。本地代理可以设置默认的节电期。
在一个实施例中,如果在任一省电期间结束前接收到新的、更改的 或不同的数据或事件,与服务器510A/B通信的等待期为现存期间,而非之 后的时间段。远程代理服务器自接收到设备550的节电通知,作为回应, 在请求时间内(等待期)停止发送更改信息(数据或短信)。等待期结束时, 能执行所接受的任何通知,例如更改信息作为单一批量事件或独立事件发 送至设备550。若没有通知,以数据恢复推送,或将短信发送至设备550。 代理服务器可以安排轮询或数据收集事件的时间以最优化批量发送至移动 设备550的内容以增加客户端在下一次无线上电事件中接收数据的概率。
需注意的是,等待期能实时更新操作,以适应操作情况。例如,本 地代理能够调整等待时间,以适应发生在系统中的不同的延迟。
在步骤508中,检测设备550的用户活动需要退出省电模式。当设 备550退出省电模式时,它可以开始接收与任何待定通知相关的任何更改。 如果节电期间已过,则无需节电取消指令,因为代理服务器将处在传统的 推送操作模式中。
一个实施例中,当设备550插入充电器时,省电模式不能适用。用 户或另一方可以重新配置或调整此设置。一般说来,用户通过设备550上 的用户界面可以开启和关闭省电模式。一般说来,电源事件接收数据的时 间与节点指令同步,以最优化使用无线。
图6是一流程图,展示了在移动设备和远程代理之间的分布式内容 缓存以及内容缓存的分布式管理的示例过程。
如图4的例子中的分布式交互图所示,所公开的技术是一种具有各 方面缓存任务的分布式缓存模型,该缓存任务在客户端/移动设备端(例如, 图4的例子中的移动设备450)以及服务器端(例如,服务器端470包括主 机服务器485和/或可选的缓存代理475)之间拆分。
一般而言,设备端的责任可包括确定特定请求的响应是否可以是和/ 或应该被缓存的。代理的设备端可以基于从请求和响应中/在请求和响应期 间收集的信息(例如,时序特性、检测模式、具有启发法的检测模式、可预 测性或重复性的指示)做出这个决定并缓存这个决定(例如,把它存储在移 动设备上的本地缓存中)。设备端也可以通知在分布式缓存系统中的服务器 端的本地缓存事件,并通知其监测内容源(如图1A-B的应用程序服务器/内容提供商110)。
设备端可以进一步指示分布式代理的服务器端定期验证缓存响应 (例如,通过轮询的方式或发送轮询请求到内容源)。设备端可以进一步决 定特定缓存请求的响应是否应从本地缓存(例如,是否检测缓存击中)返回。 设备端(例如,设备上的本地代理)可以通过使用信息作出决定,该信息从 由内容源接收到的请求和/或响应中收集/在由内容源接收到的请求和/或 响应的过程中收集。
在一般情况下,服务器端的责任可包括验证缓存的响应的关联(例 如,确定缓存的响应是否依然有效或有关于其相关的要求)。当缓存的响应 被检测到不再有效或不再是相关的时候(例如,服务器无效给定的内容源), 服务器端可发送移动设备无效的请求以通知设备。然后设备端可从本地缓 存移除响应。
图6显示了为每个检测到的或在移动设备(例如,分布式代理的客户 端)检测到的拦截的请求(例如,HTTP请求)所执行的缓存逻辑流程。在步 骤602中,代理的客户端(例如,在图2A-B示出的本地代理275或图4的 移动设备450)接收到一个请求(从应用程序(例如,移动应用程序)或移动 客户端)。在步骤604中,URL被标准化,并在步骤606中客户端检查以确 定该请求是否是可缓存的。如果在步骤612中该请求被确定为不可高速缓 存,则该请求在步骤608中被发送到源(应用服务器/内容提供商),并在 610中接收到响应以及交付给请求应用程序622,类似于无需由客户端代理 的拦截的请求-响应序列。
如果该请求被确定为是可缓存的,在步骤612中,客户端查找缓存 以确定当前请求的缓存条目是否存在。如果存在,在步骤624中,客户端 能够确定该条目是否是有效的,如果有效,客户端可以检查请求以查看是 否在步骤628中包括一个验证器(例如,修改后的头部或实体标签)。例如, 验证的概念是躲避至RFC2616的13.3节,其描述头部的可能类型(例如, 电子标签、修改_何时、需要_重新生效,编译指示未_缓存)并形成无效响 应632,如果是这样,则在步骤622中被传递到请求应用程序。如果请求 不包含步骤628所确定的验证,在步骤630中从本地缓存中形成一个响应, 并在步骤622中传送到请求应用程序。该验证步骤可用于通常被认为不能 被缓存的内容。
相反地,如果在步骤624中缓存条目被发现但被确定为不再有效或 无效,则在步骤618中,代理的客户端发送请求616至内容源(应用程序服 务器/内容主机),并直接从源接收响应。同样,如果在步骤612中,缓存 条目在查找过程中被发现,该请求在步骤616中也被发送。一旦接收到响 应,客户端检查响应以确定在步骤626中它是否是可缓存的。如果是这样, 在步骤620中响应被缓存。然后客户端在步骤614中发送另一个轮询,然 后在步骤622中传递响应至请求应用程序。
图7是一交互图,展示了内容的分布式代理系统的缓存管理,内容 经由长期保留请求传递至移动应用程序,同时保证被传递内容的新鲜度。
该图展示了在长期持有的请求(如长期持有的HTTP请求、长轮询、 或HTTP流)中接收的缓存的响应如何被提供至请求应用程序755和过期/ 无效/非相关的缓存条目的管理。长期持有的请求可以是持久连接的任何一 个请求,该持久连接是在设备和服务器之间被持有直到响应被在服务器获 得并被发送(推送)至设备。长期持有的请求或长期持有的HTTP请求可以允 许设备/服务器交互以模拟内容经由持久连接推送(例如,COMET式推送),例如,通过HTTP的持久连接。
在步骤702中,应用程序755发送一个请求,该请求被代理系统760 的客户端/设备端上的移动设备750上的本地代理765的检测并截获。需要 注意的是所示的请求-响应序列702、704、706和708会在长轮询搜索期间 之后出现,该长轮询搜索期间有时由应用程序(例如,移动应用程序)发送 长轮询请求来执行。长轮询搜索期间可能会或可能不会被执行,但执行时, 它允许请求应用程序755找到它可以持有请求的最长的时间量,在该请求 结束时服务器/提供商795连接超时之前(例如,由于网络的原因,如套接 字关闭)打开。
特性请求-响应的时序的时序图进一步被在图8的例子中被说明。在 一般情况下,设备代理750或本地代理765能够检测到来自应用程序755 发起的请求-响应模式序列,而长轮询搜索和可以等待直到搜索期间在缓存 来自长轮询请求之前固定。如果它被请求应用程序755执行,702和710 之间所示的请求-响应步骤在长轮询搜索请求/响应对之后发生。
当服务器795在步骤708中发送响应返回到设备端750的应用程序 755时,在步骤704中请求被发送到服务器/提供商795或706以及在步骤 706中请求超时或关闭。由于在步骤702中长期持有的请求发送的性质, 当服务器795在步骤708中发送响应时连接超时。发送时的响应也由分布 式代理760的移动端750上的本地代理765截获以用于本地缓存。
一旦缓存,在步骤712中,本地代理765通知系统760的代理的服 务器端770并请求服务器端770代理(例如,主机服务器785)开始监测的 服务器/提供商795。在步骤714中,服务器端的代理770现在开始将请求 发送到服务器/提供商795以为了监测从服务器/提供商795收到的响应 716。
下一次应用程序755发送请求718,在步骤722中,本地代理765 确定现在存在的本地缓存条目并在提供缓存的响应返回应用程序755之前 等待一段时间720(例如,长轮询间隔)。本地代理765允许经过一段时间 以模拟具有应用程序755的服务器/提供商795的实际行为。由于在通过网 络的实际的长轮询请求中,直到经过一些延迟才收到响应,给定的长轮询 的特性。
开始于步骤724,当在步骤726中来自服务器/提供商795的响应被 验证时,从应用程序(例如,移动应用程序)发送的另一个请求755。在步 骤744中,在回复缓存条目之前,在步骤728中本地代理765等待间隔。 然而,在此期间,步骤730中服务器端代理770在监测响应中发送请求至 服务器/提供商795并步骤734中在从服务器/提供商795接收的响应中检测内容的变化。因此,在步骤736中服务器端770代理在服务器端代理缓 存更改的/更新的响应数据,并通知本地代理765无效相关联的缓存条目 738。
在步骤740中,本地代理765,响应于接收到的无效通知,设置相关 联条目为“瞬态”无效,或以其他方式附加说明或表示被标记为删除或移 除。在这点上,在步骤744中,本地代理765再次回复给应用程序755瞬 态缓存。步骤742中,本地代理765也可以连接到服务器端代理770以服 务器端770获得新的缓存数据在和在步骤746接收响应(新的/更新的响应)。
在步骤748中,下一次从应用程序(例如,移动应用程序)发送的同 样的请求,在步骤750中,本地代理765现在可以回答从服务器接缓存收 到的响应。因此,即使在缓存条目无效时,应用程序(例如,移动应用程序) 请求不需要通过网络(例如,无线或蜂窝网络)发送以接收当前的/有关的响 应。在步骤754中,后续请求752被发送到本地代理765用于处理(例如, 转发至应用服务器/内容提供商795)。
图8展示了长轮询请求中的搜寻模式行为805的时序图以及当长轮 询确定时的时间特征的时序图。
在搜索模式805中,请求时间被保持增加的时间量(180,360....1024 秒)直到请求超时无需接收来自服务器(如802、804、806、808中所示)的 响应。在这个时间被检测后,请求时间现在被保持在小于超时所花费的时 间(例如,现在500秒),并用于未来的长轮询请求。图810显示在长轮询 搜索期间确定之后的请求/响应对的时序特性。这些特性可以在操作中由由 本地代理和/或远程代理检测到并识别以用于缓存期间的处理。如前所述, 分布式缓存系统可以开始缓存(可选),同时应用程序仍然在长轮询搜索模 式,或在搜索期间805完成之后开始缓存以及应用程序在如810的固定模 式中。一般情况下,如果在间隔中检测到减少,则响应不被缓存直到本地 或远程代理可以验证随后接收到的响应满足缓存性能条件。
在一般情况下,长轮询搜索可能会或可能不会由移动应用程序或客 户端执行,但分布式系统包括为应用程序长轮询检测长轮询搜索活动的机 制以及可以可以简单地忽略长轮询搜索请求并在经过搜索之后开始缓存, 长轮询被在一些恒定或接近恒定的间隔值处确定或应用逻辑开始在搜索期 间内缓存,从而加速缓存以提升性能和改善用户体验。
过程802中,决定被作出以开始缓存从主机服务器受到的内容。决 定可以通过在图9的例子中所示的示例流程被作出,图9描述了一个流程 图,该流程图示出确定是否通过确定在步骤802中被主机服务器作出的轮 询请求的频率和/或通过在步骤804中确定主机服务器的内容的变化的频 率以缓存来自特定的主机服务器(内容源)的内容。在步骤806中,这两个 步骤可以在决定来自主机服务器的内容是否是要被缓存中被结合使用或彼 此独立地使用。
在过程804中,来自内容服务器的内容被存储为在移动设备上的本 地缓存中的缓存的元素。在过程806中,联系内容服务器的轮询请求通过 分布式缓存系统被接收。在过程808中,如果确定移动设备的无线电没有 被激活,以及在过程810中,即使当采用缓存击败机制时,缓存的元素被 从本地缓存中检索响应轮询请求而不激活无线电。
缓存击败机制,或使用的旨在击败由这样的标识符处理的缓存,可 以由内容服务器采用(使用标识符的轮询请求所定向至的服务器)。在一般 情况下,缓存击败机制或用于缓存击败的标识符可以被从包括在识别内容 服务器的轮询请求中的源标识符的语法或模式检测的吞吐量的内容服务器 的轮询请求中包含的资源标识符。
例如,该资源标识符可以包括URI或URL并且URI/URL被通过执行 一个或多个的下列步骤标准化:转化URI方案和主机为小写,大写在百分 比转义序列中的字母,移除默认的端口并删除重复的斜线。此外,采用缓 存击败的标识符的标识符的归一化过程移除任何部分的标识符,该标识符 旨在击败缓存(例如,通常是在请求之间的变化的参数,该请求由参数的格 式、模式、语法进行检测)。
需要注意的是,旨在击败缓存的缓存击败机制或标识符的检测不需 要100%的确定。具有某些特征的标识符(例如,具有参数匹配特定的格式) 可以除了确定采用缓存击败外,可仅被作为缓存击败处理或用于为经由无 限网络的缓存内容的目的击败缓存,例如这些可能被以分布式的方式进行 管理。
图9是一交互图,展示了具有通过无线网络从移动设备至应用程序 服务器/内容提供商995的数据请求的应用程序(例如,移动应用程序)955 轮询如何被缓存在本地代理上并且由分布式缓存系统(包括本地代理965 和主机服务器985(具有服务器缓存935或缓存代理服务器975))管理。
在一个例子中,当移动应用程序/部件955轮询应用程序服务器/提 供商932时,轮询可以在移动设备上由本地代理965进行本地拦截934。 本地代理965可以检测缓存的内容是可用于请求中的轮询内容并因此可以 从本地缓存中检索响应以满足被拦截的轮询936,而无需使用无线网络带 宽或其他无线网络资源。移动应用程序/部件955可随后接收响应至来自缓 存条目938的轮询。
在另一个例子中,移动设备应用程序部件955轮询应用服务器/提供 商940。轮询由本地代理965拦截942并检测缓存内容无法在本地缓存中 可用并决定为缓存944设置被轮询的源。为了满足要求,轮询被转发至内 容源946。应用程序服务器/提供商995接收来自应用程序的轮询请求并提 供响应以满足当前的请求948。在950中,应用程序(例如,移动应用程序)/ 部件955接收来自应用服务器/提供商的响应以满足请求。
为了设置内容缓存,结合本地代理965跟踪应用程序的轮询频率并 可以设置轮询时间表以被发送到主机服务器952。本地代理发送缓存设置 至主机服务器954。主机服务器985可以使用缓存设置,其包括,例如, 应用程序服务器/提供商的识别将可选地被轮询时间表956轮询。主机服务 器985现在可以轮询应用程序服务器/提供商995以监测代表移动设备的请 求958的响应。主机服务器985确定被接收的相同的响应并根据特定的轮 询时间表962轮询应用程序服务器995。应用服务器/内容提供商995接收 轮询并做出相应的响应964。
主机服务器985检测更改的或新的响应并通知本地代理965。主机服 务器985可以额外存储在服务器中缓存或缓存代理968中的更改的或新的 响应。本地代理965从主机服务器985收到新的或更改的数据现已可用并 可使受影响的缓存条目970无效的通知。下一次,应用程序(例如,移动应 用程序)/部件955为同一服务器/内容提供商972产生了同样的请求,本地 代理确定没有有效的缓存条目而检索来自服务器缓存974的响应,例如, 通过HTTP连接。主机服务器985接收新响应的请求并发送响应回976至本 地代理965。请求被从服务器缓存或缓存代理978满足,而不需要利用移 动设备使用其无线电或消耗移动网络带宽,从而节省了网络资源。
另外,当应用程序(例如,移动应用程序)在步骤980产生相同的请 求,本地代理965,响应于确定没有有效的缓存条目可用,则在步骤982 通过移动网络转发轮询到应用程序服务器/提供商。应用程序服务器/提供 商995接收轮询并在步骤984中通过移动网络将响应返回到移动设备。因 此,在步骤986中该请求使用移动网络从服务器/提供商被满足。
图10是一交互图,展示了应用程序1055如何轮询来自应用程序服 务器/内容提供商1095的内容,其通过无线网络采用标识符(例如,旨在击 败缓存的标识符)中的缓存击败机制仍可以被检测并本地缓存。
在一个示例中,当应用程序(例如,移动应用程序)/部件1055在步 骤1032中轮询应用程序服务器/提供商时,在步骤1034中轮询可以在移动 设备上由本地代理1065本地地拦截。在步骤1034中,在移动设备上的本 地代理1065也可能确定(以某种程度的确定性和启发式)缓存击败机制由 服务器提供商采用或可能采用。
本地代理1065可以为请求中的轮询的内容检测缓存的内容是可用 的,因此可以从本地缓存中检索响应以满足被拦截的轮询1036,而无需使 用无线网络带宽或其他无线网络资源。在步骤1038中,应用程序(例如, 移动应用程序)/部件1055可随后接收响应至来自缓存条目(例如,在移动 设备上本地存储的缓存条目)的轮询。
在另一个例子中,在步骤1040中,应用程序(例如,移动应用程序) 部件1055轮询应用服务器/提供商1095。该轮询在步骤1042中被由本地 代理1065拦截,本地代理1065确定缓存击败机制由服务器/提供商1095 采用。本地代理1065也可以检测该请求在本地缓存中的缓存的内容是不可 用,并决定在步骤1044中为缓存设置轮询内容源。本地代理1065可以稍 后提取请求的标识符的的模式(例如,格式或语法)并在步骤1046中跟踪应 用程序的轮询频率以设置主机服务器1085的轮询时间表。
为了满足该请求,在步骤1048中,轮询请求被转发给内容提供商 1095。应用服务器/提供商1095从应用程序中接收轮询请求并在步骤1050 中提供响应以满足当前的请求。在步骤1052中,应用程序(例如,移动应 用程序)/部件1055从应用服务器/提供商1095接收响应以满足请求。
为了设置内容缓存,结合本地代理1065缓存响应并存储标识符(或 标准化的标识符的哈希值)的归一化版本,该标识符与接收到的响应相关联 以用于未来在步骤1054中的识别和检索。在步骤1056中,本地代理发送 缓存设置到主机服务器1085。缓存设置包括,例如,标识符和/或标识符 的归一化版本。在某些情况下,不同于标准化的标识符的修改后的标识符 被发送到主机服务器1085。
主机服务器1085可以使用缓存设置,其中包括,例如,将要轮询的 应用程序服务器/提供商的识别和在步骤1058中可选的的轮询时间表。主 机服务器1085现在可以轮询应用服务器/提供商1095以监测在步骤1060 中代表移动设备的请求的响应。在步骤1062中,应用程序服务器1095从 主机服务器1085接收轮询响应。主机服务器1085确定相同的响应已被接 收并轮询应用程序服务器1095,例如,根据指定的轮询时间表并在步骤 1064中使用标准化的或修改过的标识符。在步骤1066中,应用程序服务 器/内容提供商1095接收投票并做出相应的响应。
这一次,在步骤1068中,主机服务器1085检测更改的或新的回应 并通知本地代理1065。在步骤1070中,主机服务器1085可附加地在服务 器缓存中1035或缓存代理1075中存储更改的或新的响应。在步骤1072中, 本地代理1065从主机服务器1085接收新的或更改的数据现已可用并可以 使受影响的缓存条目无效的通知。下一次,在步骤1074中,应用程序(例 如,移动应用程序)/部件为同一服务器/内容提供商1095产生同样的请求, 本地代理1065确定没有有效的缓存条目可用,而在步骤1076中,从服务 器缓存中检索响应,例如,通过一个HTTP连接。在步骤1078中,主机服 务器1085接收新的响应的请求并将响应发送回本地代理1065。在步骤1080 中,请求被因此从服务器缓存或缓存代理满足,而不需要为移动设备利用 其无线或消耗移动网络带宽,从而节省了网络资源。
可替代地,当应用程序(例如,移动应用程序)1055产生了同样的要 求,在步骤1084中,本地代理1065响应于确定没有有效的缓存条目,在 步骤1082中,通过移动网络转发轮询到应用服务器提供商1095。应用服 务器/提供商1095接收轮询并在步骤1086中将响应通过移动网络返回到移 动设备。在步骤1088中,通过使用移动网络1086,该请求因此被从服务 器/提供商满足。
图11是一流程图,展示了收集关于请求以及相关的识别缓存性能的 响应的信息并缓存该响应的示例过程。
在过程1102中,关于请求的信息和关于请求的接收到的响应的信息 被收集。在过程1104和1106中,关于在移动设备发起的请求和信息以及 关于请求的接收到的响应的信息被合计或独立使用以在步骤1108确定缓 存性能。使用请求和响应信息以用于评估缓存性能的步骤的细节被将在图 12的例子中进一步描述的流程A进行说明。
在步骤1108中,如果基于流程A它确定响应是不可缓存的,那么响 应在步骤1110中不可被缓存,并且流程可选的在1102重新开始以收集关 于请求或响应的信息以用于再次评估缓存性能。
在步骤1108中,如果从流程A确定响应是可缓存的,则在1112响 应可以作为缓存条目被存储在缓存中,缓存条目包括具有有关响应缓存的 附加信息的元数据。缓存条目,除了响应,包括具有响应有关响应缓存的 附加信息的元数据。元数据可以包括,例如,缓存条目的访问时间或缓存 条目的创建时间。
在响应被存储在缓存中之后,可出现并行的过程以确定存储在缓存 中的响应是否需要在过程1120中被更新。如果是,在过程1122中,存储 在移动设备的缓存中的响应是无效的或从移动移动设备的缓存被移除。例 如,响应的相关性或有效性可以通过定期轮询请求被定向至的代表移动设 备的主机服务器而被定期验证。主机服务器可以通过使用被收集用于响应 请求的请求信息以在移动设备上所确定的速率进行轮询。该速率由产生请求的相同客户端产生的之前的请求之间的间隔的平均所确定。
验证可以由物理上不同于移动设备的实体进行执行。在一个实施例 中,该实体是耦合到移动设备的代理服务器并能够与移动设备进行无线通 信并且以及基于由产生请求的相同客户端产生的之前的请求之间的间隔, 代理服务器以一移动设备所确定的速率轮询请求所定向的主机服务器。
在过程1114中,相同的客户端或应用程序的后续请求被检测到。在 过程1116中,本地缓存中的缓存查找被执行以确定的缓存条目被用于响应 后续请求。在一个实施例中,元数据被用确定存储作为缓存条目的响应是 否被使用以满足随后的的响应。在过程1118中,可以从缓存中提供响应以 满足后续请求。响应可以提供以响应为后续请求识别匹配的缓存条目,该 后续请求至少部分地使用元数据来确定。
图12是一流程图,展示了确定请求的响应是否能被缓存的决定流程 的示例过程。
过程1202确定如果请求被定向到被列为黑名单的目的地。如果是这 样的话,响应不会在步骤1285中被缓存。如果被列为黑名单的目的地被检 测到或如果请求本身与被列为黑名单的应用程序相关联,图中所示分析的 其余部分可能无法执行。如果请求及其目的地不被列入黑名单,这个过程 可以继续到步骤1204和1206中。
在过程1204中,与该请求关联的请求特征信息被分析。在分析该请 求中,在过程1208中,请求方法被识别,并且在步骤1214中,判断响应 是否可以基于请求方法被缓存。如果检测到不可缓存的请求,该请求不被 缓存并且过程可能会在1285终止。如果请求方法被确定为可缓存的,或不 不可缓存的,那么在步骤1295响应可以被识别为可缓存的或潜在可缓存的 (例如,缓存,但受其他的测试和分析图中所示)。
在过程1210中,该请求的大小是确定的。在过程1216中,确定请 求的大小是否超过可缓存的大小。如果是的话,响应不被缓存以及在分析 可能在过程1285终止。如果在步骤1216中请求的大小不超过可缓存的大 小,那么在步骤1295中响应可以被识别为可缓存的或潜在可缓存的(例如, 可缓存但受限于图中所示的其他的测试和分析)。
在步骤1212中,相同的客户端产生的请求和其它请求之间的周期性 的信息被确定。在步骤1218中,判断周期性是否已被确定。如果不是,响 应不被缓存并分析可在1285终止。如果是,那么在步骤1295中响应可以 被识别为可缓存的或潜在可缓存的(例如,可缓存但受限于图中所示的其他 的测试和分析)。
与请求收到的响应相关的请求特性信息在过程1206中被分析。
在过程1220中,状态代码被识别并确定在过程1228中状态代码是 否表示可缓存的响应状态码。如果不可缓存的状态代码被检测到,请求不 被缓存并且过程可能会在1285终止。如果响应状态代码表示缓存性能,或 不可缓存的,那么在步骤1295中响应可以识别为可缓存的或潜在可缓存的 (例如,可缓存但受限于图中所示的其他测试和分析)。
在过程1222中,确定响应的大小。在过程1230中,判断响应的大 小是否超过可缓存的大小。如果是的话,响应不被缓存以及分析可能在在 1285终止。如果响应的大小不超过在步骤1230中的可缓存的大小,那么 在步骤1295中响应可以识别为可缓存的或潜在可缓存的(例如,可缓存但 受限于图中所示的其他测试和分析)。
在过程1224中,响应主体被分析。在过程1232中,判断响应是否 包含动态内容或高动态内容。由于数据的内在本质(例如,股票行情、体育 比分、快节奏的体育赛事等)动态内容包括以高频率进行改变的和/或具有 较短生存时间或较短相关时间的数据。如果是的话,响应是不被缓存以及 分析可能在1285终止。如果不是,那么在步骤1295中响应可以识别为可 缓存的或潜在可缓存的(例如,可缓存但受限于图中所示的其他测试和分 析)。
过程1226确定传输编码或块传输编码是否在响应中使用。如果是的 话,响应是不被缓存以及分析可能在1285终止。如果不是,那么在步骤 1295中响应可以识别为可缓存的或潜在可缓存的(例如,可缓存但受限于 图中所示的其他测试和分析)。
不是所有的上述测试需要被执行以确定响应是否被缓存。未示出的 附加的测试也可以被执行。需要注意的是,测试1208、1210、1212、1220、 1222、1224和1226中的任何一个都可以被单独或以任何组合执行以确定 缓存性能。在某些情况下,所有的上述产测试都被执行。在某些情况下, 所有被执行的测试(任意数量的上述被实际执行的测试)需要为确定为可缓 存的响应确认缓存性能。换句话说,在某些情况下,如果上述的测试中任 一项指示非不可缓存性能,则响应不被缓存,而不管其他测试的结果在其 他情况下,基于请求特性和响应特性的组合,可以使用不同的标准以确定 哪些测试或多少测试需要通过系统来决定缓存给定的响应。
图13是一流程图,展示了基于请求周期性和/或响应重复性判断潜 在的缓存性能的示例过程。
在过程1302中,由客户端生成的请求被跟踪以检测请求的周期性。 在过程1306中,判断在请求的时序中是否有可预测的模式。如果是,响应 内容可在过程1395中被缓存。如果不是,在过程1308中,判断请求间隔 是否落入公差范围内。如果是,响应内容可以在过程1395中被缓存。如果 不是,响应在过程1385中不被缓存。
在过程1304中,由客户端产生的请求的接收到的响应被跟踪以检测 响应内容中的重复性。在过程1310中,为客户端接收的响应的响应主体的 哈希值被检查并在过程1312中检查与响应相关的的状态码。在过程1314 中,通过使用哈希值和/或状态码判断是否在至少两个响应的内容中存在相 似。如果是的话,响应在过程1395中可以被缓存。如果不是,响应在1385 中不被缓存。
图14是一流程图,展示了为给定请求或客户端动态调节缓存参数的 示例过程。
在步骤1402中,由客户端生成的或定向至主机的请求被在移动设备 处跟踪以检测请求的周期性。过程1404确定两个或多个请求之间的请求间 隔是否是相同的或大致相同的。在过程1406中,判断两个或多个请求的请 求之间的请求间隔是否落入公差范围内。
基于步骤1404和1406的结果,周期性被检测的请求的响应被在过 程1408中接收。
在过程1412中,响应被缓存作为移动设备的缓存中的缓存条目。在 过程1414中,主机被以一速率进行检测以验证缓存条目的相关性或有效 性,同时在过程1416中,响应可以从缓存中被提供以满足后续请求。
在步骤1410中,监测主机的速率从请求的间隔确定,使用,例如, 过程1404和/或1406的结果。在过程1420中,给定主机被监测所使用的 速率被设置以验证请求的缓存条目的相关性或有效性。在过程1422中,由 客户端生成的请求的请求间隔的变化被检测。在过程1424中,不同的速率 基于请求的间隔的变化被技术。在过程1420中,给定主机被监测所使用的 速率被更新以验证请求的缓存条目的相关性或有效性。
图15是一流程图,展示了使用请求间隔以确定和设置轮询间隔或速 率的示例过程,在该间隔或速率,代理服务器监测代表移动设备的应用程 序服务器/内容主机。
流程图1500是图17A-B中的动态所示的请求/响应序列的各种时序 参数。时序参数“IT”、“RI”、“D”、“RT”被定义如下并显示在图 17A-B中。
1、RI-请求间隔-在“请求发送0”和“请求发送1”之间的时间。
2、D-延迟-“请求发送”和“响应(头部)的第一个字节到达”之间 的时间。
3、IT-空闲时间-“整个响应内容收到0”和“请求发送1”之间的 时间。
4、RT-响应时间-“响应(头部)的第一个字节到达”和“整个响应内 容收到”之间的时间。
当本地代理以代理服务器设置轮询时,轮询间隔或速率可以通过时 序参数RI、IT、D或上述任何组合进行指定。本地代理以代理服务器设置 轮询的方式的一些例子包括:a)仅指定IT-可以在稳定的IT间隔的情况下 使用;b)指明IT和D-这可以在稳定的IT和长D的情况下使用;c)仅RI- 在稳定RI的情况下(例如,检测到的线性模式);d)RI和D-这可在稳定的 RI和长D的情况下使用。
设置中的每一个都可以被基于流程图中所示的标准被选择,在开始 于步骤1502,其中判断给定客户端/应用程序(例如,移动应用程序)的请 求的IT是否是稳定的。如果IT并不稳定,在过程1512中,判断RI是否 是周期性的,若否,在步骤1520中无模式被检测到。RI是周期性的,则 该过程继续到步骤1522,如下文所详述。
如果在1502中IT是稳定的,在步骤1504判断‘IT’是否为0。如 果在步骤1504‘IT’不是零,在步骤1514判断‘RI’是否比‘IT’更稳 定。若否,过程继续到1506。如果是的话,则过程继续判断‘D’是否稳 定,或者在步骤1522中是否检测到长轮询搜索模式。如果不是,那么在步 骤1526轮询被设置以‘RI’轮询。如果在步骤1522中,D是稳定的并且 搜索模式被检测到,则过程继续到步骤1524以确定‘D’是否是长的,若 是,则轮询被以‘RI’和‘D’设置。若否,在过程1526中,轮询仅以‘RI’ 设置。
如果在1504检测到‘IT’为零,则稍后在步骤1506判断‘D’是否 稳定或搜索模式(长轮询)是否被检测到。若是,在步骤1508中判断′D′ 是否是长的,并且如果是,则在步骤1510中‘D’和‘IT’的间隔可以用 于轮询。因此,所确定的‘D’和/或‘IT’可以被指定至代理服务器或监 测代表移动设备或本地代理的内容源的其他实体。如果‘D’在步骤1508 被确定为不是长的,则在步骤1518中轮询可仅以‘IT’设置。但是,如果 在1506中,‘D’还没有被检测为是稳定并且搜索模式未被检测到,则在 步骤1516中没有模式被检测到。
‘稳定’的间隔一般都可以用来指在两个或更多请求之间的一些公 差阈值之内的间隔的某种程度的重复性或可预见性。例如,‘稳定’可以 表示两个间隔在彼此的5%、10%、15%、或20%之内。在一些实例中, 一个较大的差也可能被允许。用于量化‘稳定’的阈值可能是静态值,或 者它可能是随实时操作条件而改变的动态值和/或基于设备、用户、操作系 统、应用程序、网络运营商、ISP和/或其他第三方规格而不同的值。不需 要采用严格的‘稳定’的定义,只要被用于代表移动设备上的代理服务器 的轮询的指定的间隔并没有显著负面影响用户感知性能或用户体验。
图16是一示例时序图,展示了请求-响应序列的各种类型的时序特 征。
在图16中,8时间线组合被展示,每一个含2块请求-响应序列。在 每个序列中,虚线表示在请求-响应的间隔中的响应。序列1602的特点是 很短的‘D’、‘RT’和长的‘IT’。因此,序列1602可能是一个典型的 轮询。序列1604的特点是短的‘D’、短的‘RT’、短的‘IT’,并是高 轮询率的指示。序列1604也可以指示用户是积极与应用程序交互和/或积 极更新应用程序。
序列1606的特点是很短的‘D’、长的‘RT’和短的‘IT’,其可 以指示可能的流。序列1608的特点是短的‘D’、长的‘RT’和长的‘IT’ 其可指示较大内容的轮询。序列1610的特点是长的‘D’、短的‘RT’和 长的‘IT’,其可能以高延迟指示长轮询,该高延长在应用程序级别被允 许。
序列1612,具有长的‘D’、短的‘RT’、短的‘IT’,其可能指示 长轮询。序列1614,具有长的‘D’、长的‘RT’、短的‘IT’,其可以 指示较大内容的流或长轮询。序列1616有很长的′D′一个′长′RT′长 ′IT′可以是1614和1610的组合。
图17A系时序图1700的一示例,展示了请求响应序列的时间特征。。
本技术包括分布式缓存模型,其中包括设备端代理和服务器端的合 作。为了缓存的响应之后的工作,客户端组件需要通知服务器端代理并提 供特定的资源(应用程序服务器/内容提供商)必须被轮询的速率(验证缓存 的内容的有效性)。收到此通知后,服务器端代理可以监测资源更改资源(验 证资源),一旦改变被检测到,则服务器端组件可以通过发送无效请求通知 设备端组件。
客户端组件需要提供正确的和合适的轮询间隔至服务器端代理(例 如,服务器端代理的间隔轮询资源以用于监测)以用于最佳性能,因为如果 轮询间隔太低,负荷不必要在服务器端代理上被增加。通过增加轮询间隔, 本地代理承担提供过期的/不相关的信息至用户设备的用户的风险。
正如前面描述的,请求客户端/应用程序和内容提供商/应用程序服 务器之间的请求-响应序列的时序特性可以用于确定应用程序行为和/或分 类请求类型。这些信息可以用来确定、识别、估计或预测应用程序的轮询 间隔,例如,服务器端代理需要监测资源的最佳轮询间隔可以被确定并提 供至服务器端代理。
时序特性可以包括,例如,请求被发送之后的接收响应的响应/延迟 时间以及在响应被接收之后发送后续请求的空闲时间。响应请求序列中的 各间隔的的关系可见于图1700。
每个请求-响应时间序列可以使用全部或部分的下列事件被描述:1) 启动发送请求(1705);2)请求发送;3)响应启动(1710);4)响应结束(1720); 5)下一个请求发送(1715)。“启动响应”(1710)指示响应(头部)的第一个 字节何时到达。“响应结束”(1720)指示何时收到所有的响应内容。
使用这些事件,设备端可以计算出在1700所示的以下间隔:
1、RI1708-请求间隔-“请求发送0”和“请求发送1”之间的时间。
2、D1704-延迟-“请求发送”和“响应(头部)的第一个字节到达” 之间的时间。
3、IT1706-空闲时间-“整个响应内容收到0”和“请求发送1”之 间的时间。
4、RT1712-响应时间-“响应(头部)的第一个字节到达”和“整个响 应内容收到”之间的时间。
请求-响应序列(RI=D+RT+IT)的时序特性的关系可以被考虑以提取 应用程序行为信息用于以分布式的方式在缓存内容中使用。不同的间隔之 间的相对比较也可以用来描述应用程序和及其请求的特征。
一般情况下,分布式代理的设备端组件可以保持跟踪在请求-响应序 列中的个别时序间隔并以相对(例如,大于或小于另一个间隔)或绝对(相比 于动态或静态阈值的具体期间,长的,短的等)的方式比较这两个值。设备 端组件可以跟踪这些随时间变化的间隔值,检查稳定的组件并确定或识别 趋势或模式。例如,设备端组件可以检测长轮询请求的长轮询搜索模式的 情况下的增加或减少的‘D’1704。图17B系时序图1750的一示例,展示了长轮询的请求响应序列特性的时序特征。注意,时序图1750可能并不适 用于高延迟长轮询。
在一个实施例中,基于相对于请求01755和响应启动时间1760之间 的空闲时间(IT1756)的响应/延迟时间(D1754)的比较,请求可以被检测、 确定或为长轮询请求。例如,当空闲时间相比于响应延迟时间(IT1756< D1754)较短时,请求可以被检测为长轮询请求。当IT1756是零或基本为零 (~0)时,请求也可被确定是长轮询。
此外,如果空闲时间(IT1756)指示在响应接收(例如,短的IT1756) 之后的随后请求的即时或接近即时的发行,则请求可以被确定或归类为长 轮询请求。此外,如果RI1758=D1754+RT1762+IT1756~D1754+RT1762, 则请求可以被确定为长轮询。在一个实施例中,响应时间‘RT’1762可以 用于确定比特率(例如,字节大小*8/时间)。
一般来说,间隔的不同的组合提供关于特定的应用程序或请求的轮 询模式的指示并可被设备端组件用于生成服务器端组件的轮询间隔以在检 测内容源中使用。
图18是一时序图1800,展示了可能适于缓存的周期请求的检测的示 例。
在所示的例子中,来自移动设备上的客户端/应用程序的第一请求被 时间1:00(t1)检测到。此时,缓存条目可以被在步骤1802中创建。在时 间2:00(t2),第二请求被从同一客户端/应用程序检测到,并且被创建的 缓存条目现在可被在步骤1804中的时间t2与t1之间的1小时的间隔更新。 来自同一客户端的第三请求现在可以在时间t3=3:00检测到,并且它现在 可以被确定周期性的请求在步骤1806中被检测到。本地代理现在可以缓存 响应并发送指定到代理服务器的间隔(例如,在这种情况下,1小时)的启 动轮询请求。
时序图进一步示出2:54和3:06之间的时序图,这指示一个窗口的 边界,如果第三请求在时间帧1810中被接收,则在该窗口内的周期性将被 确定。2:54和3:06分之间的时序窗口1808对应于以前的间隔的20%并且 是所示公差的示例。其他公差也可以被使用,以及可以动态地确定或根据 不同的情况(应用程序)被确定。
图19是一数据时序图1900,展示了请求间隔中的变化的检测以及响 应中的服务器轮询速率的更新的示例。
在步骤1902中,代理确定周期性请求被检测到,本地代理缓存响应 并设置轮询请求到代理服务器,并且,例如,间隔被在第三请求设置为1 小时。在时间t4=3:55,请求在55分钟而不是1小时之后被检测到。55 分钟的间隔仍适合窗口1904给定的20%的公差。然而,在步骤1906中, 在五请求在时间t5=4:50被接收,其不再适合从第一和第二,以及1小时的第二和第三请求之间的间隔被确定的公差窗口设置。现在本地代理从代 理服务器中检索资源或响应,并刷新本地缓存(例如,不用来提供第五请求 的缓存条目)。本地代理也以一更新的间隔(例如,在本例中为55分钟)重 发启动轮询请求至代理服务器并且窗口由公差定义,例如设置为20%,现 在变成了11分钟,而不是12分钟。
需注意的是,在一般情况下,当间隔的改变被检测到时和/或当新的 速率已经被确定时,本地代理以一更新的轮询间隔通知代理服务器。然而, 这通常只用于后台应用程序请求或自动/程序化的刷新(例如,不涉及用户 交互的请求)。一般情况下,如果用户与应用程序在前台进行交互并导致检 测到一段请求,指定至代理服务器的轮询或轮询间隔的速率通常不会被更 新,如图20所示。图20描绘了数据时序图2000,其显示提供具有缓存条目的前台请求的一个例子。
例如,时代t=3:00和3:30之间,本地代理在t=3:10和t=3:20 检测第一和第二前台请求。这些前台请求在为检测前台应用程序或自动应 用程序请求的周期性之外。然而,为前台请求检索的响应数据可以被缓存 和更新,前台请求的请求间隔在过程2008不被发送到服务器。
如图所示,在t=4:00从应用程序(例如,后台请求,程序性/自动 刷新)检测到的下一次周期请求,响应是从缓存中提供,作为在t=5:00的 请求。
图21是一数据时序图,展示了发生在过时的内容可能再次服务于请 求应用程序之后的缓存失效的非最佳影响的示例。
由于代理服务器轮询的间隔设置为大致相同的间隔,应用程序(例 如,移动应用程序)以该间隔发送请求,有可能的情况是代理服务器通常在 缓存的条目(现在已过时)已经被提供至请求之后检测改变的内容(例如,在 t=5:02)(例如,在t=5:00至第五请求)。在所示例子中,资源在t=4:20 更新或更改以及之前的发生在t=4:02d服务器轮询不能够捕获这种改变 直到在5:02的下一个轮询,并在2100发送缓存失效至本地代理。因此, 在第五请求在时间t=5:00已经被提供旧内容之后,本地缓存不能在某些 时间无效缓存。新鲜的内容现在不会提供给请求应用程序直到第六请求在 t=6:00,在过程2106的1周期以后。
要优化缓存性能并解决这个问题,本地代理可以通过指定请求的初 始时间调节时间设置,除了到代理服务器的轮询间隔。在此的请求的初始 时间在请求实际发生之前设置为某些时间(例如,几分钟),以使得代理服 务器轮询稍微发生在未来的实际应用请求之前。通过这种方式,代理可以 及时获得响应中的任何改变以被提供至随后的应用程序请求。
图22是一数据时序图,展示了缓存管理和考虑缓存条目的生存时间 (TTL)设置的和响应的示例。
在一个实施例中,在本地缓存中的缓存的响应数据指定时间量,缓 存条目可以存储在本地缓存中直到它被删除或移除。
在给定的缓存条目中的响应数据将被移除的时间可以使用下面的公 式确定:<响应数据_缓存时间>+<TTL>,如图所示在t=3:00,响应数据在 TTL过期后由于在步骤2212中的缓存(例如,在这个例子中,在步骤2212 中的缓存之后的24小时)被自动移除。在一般的情况下,生存时间(TTL) 适用于整个缓存条目(例如,包括响应数据和包括有关周期性和用于计算周 期的信息的信息的任何元数据)。在一个实施例中,缓存的响应数据TTL由 默认值或某些其他值(例如,6小时、12小时、48小时等)被设定为24小 时。TTL也可能是动态可调节的或在管理员/用户重新配置和/或基于不同 情况、设备、应用程序、网络提供商,网络条件、运营商和/或特定用户而 不同。
图23系缓存存储的组件API层的示例的图。
缓存存储的组件API层的一个例子可以包括以下实体:1)缓存管理 器2312。面临缓存管理系统的切入点的客户端。这可以允许多个应用程序 /客户端的不同的缓存的注册,当需要时为他们提供相关的应用程序/客户 端。2)高速缓存2314。这个实体代表缓存存储,即,维持一些缓存条目的 机制。在高速缓存中的缓存条目可以进行查询、编辑、删除和/或用新的条 目更新。3)高速缓存侦听器2304。这允许在应用程序/客户端的特征的执 行以使得收到相关通知的缓存。4)缓存事件2302。这代表缓存相关事件。 5)迭代器2320。这提供了缓存条目的收集的迭代机制。6)高速缓存过滤器 2306。这提供过滤缓存条目的机制。7)URI过滤器2308。这是允许基于条 目的URI执行缓存查找的缓存过滤器。8)身份过滤器2310。这是允许基于 条目ID进行缓存查找的缓存过滤器。9)高速缓存条目2316。这个实体代 表一个单独的缓存条目。缓存条目由ID或URI标识,两者都通常在单个的 缓存的范围中是独一无二的。10)高速缓存条目数据2318。这是一个命名 的与一些数据相关的缓存条目。
图24系展示缓存存储的数据模型的示例的图。缓存存储可能是移动 平台特定的。在一个实施例中,缓存存储可以利用混合存储,包括以下组 件:1)用于存留缓存条目的SQL文件数据库,或2)用于存留元数据和二进 制响应数据文件系统。这个配置可以用于如Android的移动平台。
图25系展示在缓存存储2502中缓存条目2504的数据模型的例子的 概念图。给定缓存条目2504可以被识别符(例如,URI)识别。在一般情况 下,缓存条目包括响应数据的组件(如,响应数据字段2508)和任何相关的 元数据(例如,元信息字段2506)
图26A-B系示例请求-响应对,展示了由具有变化参数2602和2652 的标识符处理的可缓存的响应2604和2654。
图26A中所示的请求/响应对说明用于缓存默认的时序参数2602,因 为为每个请求接收的响应2604是相同的即使时序参数2602每次都更改。 基于第二次的‘响应’或第三次,或之后随后的响应被检测到是相同的, 资源标识符和参数2602可以被识别作为缓存击败。‘响应=x’的缓存同 样可以启动第二检测到的同样的响应,第三检测到的相同的响应,或者以 后随后检测到的相同的响应。
类似地,图26B中所示的实施例的请求响应对说明用于缓存击败的 随机参数2652,因为为每个请求接收的响应2654是相同的,即使标识符 中的随机参数2652每次都不同。基于第二次的‘响应’或第三次,或之后 随后的响应被检测到是相同的,资源标识符和参数2602可以被识别作为缓 存击败。‘响应=x’的缓存同样可以启动第二检测到的同样的响应,第三 检测到的相同的响应,或者以后随后检测到的相同的响应。
虽然变化参数的两种类型被示出(时序/日期2602和随机参数 2652),变化参数的其他类型可能被用于缓存击败,以及可以被系统同样地 检测到。
图27A展示了移动设备的应用程序或客户端的默认或初始轮询间隔 的示例列表2700。
应用程序列表可以是全部或部分的移动应用/客户端轮询或检测到 在移动设备轮询。轮询间隔和任何其他轮询行为或网络访问可以在移动设 备(例如,由本地代理275)检测到。每个应用程序的相对优先级(如,雅虎 邮件与通用IMAP电子邮件、Twitter、RSS或ESPN)也可以由移动设备上的 本地代理275确定或推断。
图27B展示了移动设备的应用程序或客户端的调整的轮询间隔的示 例列表2706。
调整轮询间隔的多种方式可以被设置以及根据列2706示出的列表是 给定应用程序的许多可能的情况中的一个例子。在这个例子中,在大部分 轮询间隔之间选择的共同分母或因子是‘3秒’以及其他应用程序的间隔 可以向上或向下被选择或设置。例如,IMAP、Twitter、RSS的轮询间隔以 最小化传输和减轻网络流量的优势被被向上取整。在某些情况下,该系统 可以检测在应用程序之间的更高优先级,例如,Twitter以及设置调整的 轮询间隔设置为3秒而不是6秒以确保更新后的内容在其无需适用数据调 整策略就能被最初交付之时或之前被接。轮询间隔也可以设置为更多或更 少频率轮询,例如,基于优先级、用户偏好、网络状况,运营商设置,等 等。基于例如应用需求、应用程序行为、运营商指定的设置、用户设置或 偏好,上述的组合,轮询间隔可以为某些应用程序被设置为更频繁的轮询以权衡设置其他为较少频繁轮询。
图28是一流程图,展示为多个移动设备或移动设备用户执行的示例 过程以经由多个事件批次处理接收到的数据用于至给定移动设备的传输, 以使得移动设备不需要在每次事件发生时建立或开启无线电。
在步骤2802中,定向到移动设备的数据在多个事件中被接收。请注 意,并非所有或任何的多个事件需要在同一时间发生。例如,有些可能会 发生在同一时间以及它们都可能发生在不同的时间。
在步骤2804中,数据在传输之前被批次处理。通过批次处理数据, 数据传送到移动设备可以被调整以优化由在蜂窝网络中的移动设备作出的 连接。一般情况下,在多个事件中接收到的数据在时间窗口内发生,该时 间窗口可被预定和/或还可以是动态可调的,例如,基于应用程序特性、行 为、应用程序的关键性或其承载的流量、用户的喜好、实时的网络条件、 网络拥塞、网络类型、网络运营商/运营商设定或喜好、用户订阅类型、用 户帐户类型、移动设备制造商设置(例如,设备硬件设置和性能)、平台或 操作系统特定设置,等等。
需注意的是,多个事件中的接收到的数据可以被定向到移动设备上 的多个不同的客户端(例如,到不同的移动客户端或应用程序),或者来自 不同的移动设备用户订阅的Web服务。例如,在一个事件中,收到一封电 子邮件,以及在第二个事件中,为网络应用程序(例如,Facebook和 Linkedin等)的接收状态更新或新闻提要。其他可以批量处理的时间可以 包括相同或不同应用程序在相同或不同时间的数据或内容(例如,IM通知/ 消息、网络浏览器的内容、短信、通知等)。
在过程2806中,批次处理的数据被通过蜂窝网络传输至移动设备以 使得无线连接不需要在每次发生多个事件时被移动设备建立。例如,来自 一些事件的的数据子集可以在一个事件中批次处理至移动设备以及在另一 个事件中的第二子集可批次处理至该移动设备。在一个实施例中,在过程 2808中,批次处理的数据被在单个事件中经由移动设备的无线网络连接的 实例发送至移动设备,例如所有在多个事件中接收到的数据被在一个事件 中批次处理至移动设备。
图29是一流程图,展示了通过操纵轮询间隔管理至无线网络中移动 设备的数据传输的示例性过程。
在过程2902中,内容主机的多个应用程序的默认轮询间隔被从各自 的内容主机确定。来自默认的轮询间隔,例如,第一服务的调整的轮询间 隔可基于由不同内容主机服务的第二服务的轮询间隔被确定或生成。
在过程2904中,更新的轮询时间间隔被分配到多种应用程序,例如, 至少一些的多个应用程序的轮询时间时间上是一致的。由于第一和第二服 务的移动设备上的访问,更新的间隔可以进一步用于调整从不同的主机接 收到的至少一些流量。
更新的轮询间隔可以被确定,例如,从多个应用程序的间隔的共同 的因子或分母中。间隔时间也被确定同时因子分解考虑到在其中包含的流 量的应用程序关键性和/或优先级/时间敏感。用于确定或设置轮询间隔的 示例性过程被在图30中进行说明。一般情况下,当第一服务的原始的轮询 间隔和第二服务的轮询间隔是彼此的因子或分母时,给定服务的调整的轮 询间隔也是基于第一服务的原始的轮询间隔以及调整的轮询间隔不需要不同于第一服务的原始的轮询间隔。在一个实施例中,调整的轮询间隔是另 一服务的轮询间隔的因子的倍数或分母的倍数。调整的轮询间隔可以进一 步基于相对于第二服务的流量的时间关键性的第一服务的流量时间关键性 被确定。
在过程2906中,时间中的共同起点选择为服务于多个应用程序的内 容主机的初始轮询。在过程2908中,基于时间中的共同起点和更新的轮询 间隔,内容被从内容主机轮询。
图30是一流程图,展示了基于同一设备上的其他服务的间隔为第一 服务产生调整的轮询间隔的示例性过程。
在过程3002中,一些默认轮询间隔的共同因子的倍数被确定。在过 程3004中,一些默认轮询间隔的共同分母的倍数被确定。在过程3050中, 更新后的轮询间隔通过使用共同的因子和/或共同的分母被确定。
在过程3012中,相对于移动设备上的其他应用程序的应用程序的流 量的时间关键性被确定。在过程3014中,关键性的应用程序被确定为在移 动设备上的多个应用程序的最关键的时间。
在过程3016中,关键性的应用程序的默认轮询间隔被识别为最低关 键性间隔。在一般情况下,在为关键性的应用程序分配更新的轮询间隔中, 最低关键性间隔不会被超过。在过程3050中,更新的轮询间隔可以被确定, 例如,使用在任何关键性的应用程序和/或时间敏感流量中的默认的轮询间 隔和因子分解。
图31是一流程图,展示了调整数据传输以优化被建立用于通过无线 网络的传输的连接的示例性过程。
在过程3102中,定向到收件人的第一数据集被在第一实例接收。在 过程3104中,定向到收件人的第二数据集被在第二个实例接收。第一和第 二实例可以是不同的时间并且第一和第二数据集被从不同的Web服务的 (例如,用户/收件人被订阅至的服务)接收。第一和第二数据集被定向到同 一移动设备的不同的移动应用程序,以使得它们在调整中可以被批次处理 并传输至移动设备,即使它们可能会在不同的时间被接收。
在步骤3106中,无线网络中的单个的无线连接被建立。在一个实施 例中,至收件人的传输被发起以响应确定包括用于更新移动设备上的缓存 的内容的改变的数据的第一和第二数据集。此外,单个无线连接的建立被 触发以响应检测在第二数据集所定向至的移动设备上的第二数据集或应用 程序的优先级或时间关键性。在过程3108中,在第一和第二实例被接收的 第一和第二数据集被通过无线网络传输至收件人。
图32是一机器的图形表示形式,以包含指令集的计算机系统为例, 执行该指令,使得机器运行本申请所探讨的一种或多种方法。
其他实施例中,该机器能作为独立运行的设备,或可连接(如网络) 到其它机器。在网络部署中,机器可能作为服务器或客户端机器在客户端 服务器网络环境中运行,或作为对等(或分布式)网络环境中的同行机。
该机器可能为服务器计算机、客户端计算机、个人电脑(PC)、用户 设备、平板电脑、便携式电脑、机顶盒(STB)、个人数字助理(PDA)、移动 电话、iPhone、iPad、黑莓、处理器、电话、web装置、网络路由器、交 换机或网桥、控制台、手持式的控制台、(手持式)游戏设备、音乐播放器、 笔记本电脑、移动,手持设备或能够执行该机器所采取具体操作指令集的机器(顺序或其它)。
示范实施例中的机器可读介质或机器可读存储介质为单一介质,术 语“机器可读介质”和“机器可读存储介质”应包含存储一个或多个指令 集的单一或多个介质(例如:集中式或分布式数据库,和/或相关的缓存和 服务器)。术语“机器可读介质”和“机器可读存储介质”也应包含能够存 储,编码或执行机器所带指令集,并能够使机器执行一种或多种所公开的 技术和创新方法的介质。
一般来说,执行例程可作为一部分操作系统或特定应用程序,组件, 程序,对象,模块或称为“计算机程序”的指令序列来实施公开的实施例。 计算机程序通常由不同时期计算机内各内存和存储设备中的一个或多个指 令集构成,当计算机一个或多个处理单元或处理器读取和执行指令集时, 导致计算机执行涉及所公开各方面元素的操作。
此外,本申请描述了实施例计算机和计算机系统的全部功能,本领 域技术人员能够领会各实施例能分布成各种形式的程序产品,且所公开内 容对实际影响分布均适用,不论机器的特定类型或使用的计算机可读介质。
机器可读存储介质,机器可读介质或计算机可读(存储)介质的更多 实例包含但不限于:可刻录类型介质,如易失性和非易失性存储设备、软 盘和其它可移动磁盘、硬盘驱动器、光盘(例如:只读光盘存储器(CDROMS)、 数字多功能磁盘(DVD)等)及其他,和传输类型介质,如数字和模拟通信链 路。
除非文中明确要求之外,否则在整个说明书和权利要求中,词语“包 含”“包含”之类都解释为包含的含义,与排除的或穷举的含义相对;也 就是说,意为“包含,但不限于”。本文所使用“连接”,“耦合”或类 似词语,意为两个或多个元件之间直接或间接的连接或耦合;连接元件的 耦合可以是实体的、逻辑的或两者组合。另外,词语“这里”、“以上”、 “以下”与所引入的类似的词语,当用于本申请中时,通常应该指作为整 体的本申请而不是指本申请的任何特定部分。在上下文允许的情况下,在 上面详细说明中所使用的单数的或复数数目的词语也可以分别包含复数的 或单数的数目。涉及到两个或多个项目的列表的词语“或”,覆盖该词语 的以下所有的解释:列表中任何一个项目、列表中所有的项目和列表中项 目的任意组合。
本发明实施例的以上详细描述并不是为了穷举或者限制本发明上述 公开的紧缺形式。上面所描述的本发明的特定实施例和示例基于阐述的目 的,但在本发明的范围内可以进行各种等同的修改,正如相关领域技术人 员所认识的那样。例如,尽管处理或模块以给定的顺序呈现,但可选择的 实施例可以执行具有不同顺序的步骤的程序,或利用具有不同顺序的模块 的系统,并且一些处理或模块可以被删除、移动、增加、分割、组合和/ 或修改来提供可选择例或子组合。这些处理或模块中的每一个可以以各种 不同的方式实现。而且,尽管处理或模块以串行的方式在所示的时间执行, 作为替代这些处理或模块可以以并行的方式执行,或者在不同的时间执行。 此外,本发明所记录的具体序号仅为举例;替换执行方案需部署不同值或 范围。
在这里所提供的本发明的教导能应用到其他系统,而不必是上面所 描述的系统。上面所描述的各种实施例中的要素和动作可以被组合或改变 以提供进一步的实施例。
上面所记录的专利、应用和其他参考,包含附属申请文件中所列的 参考,均属于本申请的参考。所公开方面如有必要可以被修改,以使用如 上所述各参考的系统、功能和概念,提供进一步的实施例。
根据上文详细的说明,可以对本发明进行这些或其他的变化。尽管 上述说明描述本发明特定实施例,并且描述所考虑的最佳方式,但上述描 述在文章中多么详细,本发明都可以以多种方式实现。系统的各细节可以 在其实施细节上产生相当大的变化,同时仍然包含在这里所公开的发明内。 如上所述,用来描述某些公开的特征或方面的特定的术语不应理解为该术 语在本文被重新定义为限于与该术语相关,公开的具体特性,特征或方面。一般来说,下面权利要求所使用的术语不应该被解释为将本发明限制到说 明书中所公开的具体实施方式,除非上面的详细说明部分明确的定义了这 种术语。因此,本发明的实际内容不仅包含所公开的实施例,而且也包含 在权利要求下实现或实施本发明的所有等同的方式。
尽管本发明的某些方面在下面以某些权利要求的形式提出,但发明 人期望本发明的各个方面体现在任意数量的权利要求形式中。例如,尽管 根据35U.S.C.§112,6,仅仅将本发明的一个方面作为装置加功能权利要 求来叙述,但其他方面可同样地作为装置加功能权利要求体现(35U.S.C.§ 112所保护的权利要求必须以“...方法”开头)。因此,申请人在提交申 请之后,保留添加附加的权利要求的权利,从而寻求为本发明的其他方面 追加这种附加权利要求形式。

Claims (9)

1.一种移动设备,包括:
存储器;
处理器;
检测应用行为的应用行为检测器,所述应用行为检测器包括:
检测及跟踪相对于应用的用户活动的用户活动模块,其中,所检测到的活动包括当应用被移动到后台或前台时进行检测;
允许用户设置特定应用优先级的优先级引擎;以及
配置为用于基于所检测到的用户行为及用户设定的所述特定应用优先级来调整应用的轮询间隔的流量成型引擎。
2.根据权利要求1所述的移动设备,其特征在于,所述移动设备接收来自代理服务器的触发以激活被确定为不活动的多个应用中的其中一个,并且其中,所述代理服务器与多个应用服务器进行通信。
3.根据权利要求1所述的移动设备,其特征在于,所述触发使得被确定为不活动的所述应用被激活。
4.根据权利要求2所述的移动设备,其特征在于,所述触发从不同于所述应用服务器至所述移动设备的信道的信道发出。
5.根据权利要求2所述的移动设备,其特征在于,所述移动设备接收来自所述代理服务器的数据,其中,所述数据由所述代理服务器基于所述数据的关键度进行传送。
6.根据权利要求1所述的移动设备,其特征在于,所述移动设备从代理服务器接收有新数据将要被发送的指示。
7.根据权利要求1所述的移动设备,其特征在于,所述流量成型引擎根据多个应用调整所述轮询间隔。
8.根据权利要求7所述的移动设备,其特征在于,所述流量成型引擎基于第二应用的所述轮询间隔来调整第一应用的所述轮询间隔。
9.根据权利要求1所述的移动设备,其特征在于,所述流量成型引擎还被配置为用于响应于检测到所述移动设备的用户不活动时,等待一段时间后发送事件。
CN201810182468.5A 2010-11-22 2011-11-18 一种移动设备 Active CN108429800B (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US41602010P 2010-11-22 2010-11-22
US41603310P 2010-11-22 2010-11-22
US61/416,033 2010-11-22
US61/416,020 2010-11-22
US201161430828P 2011-01-07 2011-01-07
US61/430,828 2011-01-07
US201161533007P 2011-09-09 2011-09-09
US61/533,007 2011-09-09
CN201180063972.XA CN103404193B (zh) 2010-11-22 2011-11-18 调校数据传输以优化为通过无线网络的传输建立的连接

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201180063972.XA Division CN103404193B (zh) 2010-11-22 2011-11-18 调校数据传输以优化为通过无线网络的传输建立的连接

Publications (2)

Publication Number Publication Date
CN108429800A true CN108429800A (zh) 2018-08-21
CN108429800B CN108429800B (zh) 2020-04-24

Family

ID=46065380

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810182602.1A Active CN108156265B (zh) 2010-11-22 2011-11-18 一种应用程序控制方法及移动设备
CN201810182468.5A Active CN108429800B (zh) 2010-11-22 2011-11-18 一种移动设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201810182602.1A Active CN108156265B (zh) 2010-11-22 2011-11-18 一种应用程序控制方法及移动设备

Country Status (3)

Country Link
US (5) US20150081906A1 (zh)
CN (2) CN108156265B (zh)
GB (3) GB2504634B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110838988A (zh) * 2019-10-29 2020-02-25 深圳市高德信通信股份有限公司 一种网络流量限流系统
CN111183628A (zh) * 2017-11-21 2020-05-19 惠普发展公司,有限责任合伙企业 用于保持长轮询连接的响应延迟时间确定
CN112148508A (zh) * 2020-09-30 2020-12-29 深圳市晨北科技有限公司 一种信息处理的方法及相关装置

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1466261B1 (en) 2002-01-08 2018-03-07 Seven Networks, LLC Connection architecture for a mobile network
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US8437748B2 (en) * 2010-07-07 2013-05-07 At&T Mobility Ii Llc Method for managing multiple radio access bearers in a single handset
EP3651028A1 (en) 2010-07-26 2020-05-13 Seven Networks, LLC Mobile network traffic coordination across multiple applications
PL3367252T3 (pl) 2010-07-26 2020-05-18 Seven Networks, Llc Zarządzanie ruchem z uwzględnieniem kontekstu w celu zaoszczędzenia zasobów w sieci bezprzewodowej
WO2013015835A1 (en) 2011-07-22 2013-01-31 Seven Networks, Inc. Mobile application traffic optimization
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
US11595901B2 (en) * 2010-07-26 2023-02-28 Seven Networks, Llc Optimizing mobile network traffic coordination across multiple applications running on a mobile device
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
GB2504634B (en) * 2010-11-22 2014-04-09 Seven Networks Inc Aligning data transfer to optimize connections established for transmission over a wireless network
US20120271903A1 (en) 2011-04-19 2012-10-25 Michael Luna Shared resource and virtual resource management in a networked environment
GB2493473B (en) 2011-04-27 2013-06-19 Seven Networks Inc System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
KR20130024739A (ko) * 2011-08-31 2013-03-08 성균관대학교산학협력단 실시간 경험 분석 시스템 및 방법
WO2013086225A1 (en) 2011-12-06 2013-06-13 Seven Networks, Inc. A mobile device and method to utilize the failover mechanisms for fault tolerance provided for mobile traffic management and network/device resource conservation
US8918503B2 (en) 2011-12-06 2014-12-23 Seven Networks, Inc. Optimization of mobile traffic directed to private networks and operator configurability thereof
US9277443B2 (en) 2011-12-07 2016-03-01 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9009250B2 (en) 2011-12-07 2015-04-14 Seven Networks, Inc. Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US9021021B2 (en) 2011-12-14 2015-04-28 Seven Networks, Inc. Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
EP2677719A1 (en) * 2012-06-19 2013-12-25 Alcatel Lucent A method for interfacing a communication terminal with networked objects
US8775631B2 (en) 2012-07-13 2014-07-08 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US10430047B2 (en) * 2012-10-02 2019-10-01 Razer (Asia-Pacific) Pte. Ltd. Managing content on an electronic device
EP2929670B1 (en) * 2012-12-10 2019-07-03 Koninklijke KPN N.V. System to protect a mobile network
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US8750123B1 (en) 2013-03-11 2014-06-10 Seven Networks, Inc. Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
WO2015058546A1 (zh) * 2013-10-25 2015-04-30 优视科技有限公司 网页预加载方法及装置
US10937062B1 (en) * 2014-03-12 2021-03-02 Groupon, Inc. Method and system for facilitating download of application programs on mobile computing device
US11010793B1 (en) * 2014-03-12 2021-05-18 Groupon, Inc. Method and system for determining user profile data for promotion and marketing service using mobile application program information
US10269043B1 (en) 2014-03-12 2019-04-23 Groupon, Inc. Method and system for distribution of application program for promotion and marketing service
US10846749B1 (en) 2014-03-12 2020-11-24 Groupon, Inc. Method and system for offering promotion impressions using application programs
US11042904B1 (en) * 2014-03-12 2021-06-22 Groupon, Inc. Method and system for detecting application programs on mobile computing device
US10891651B1 (en) * 2014-03-12 2021-01-12 Groupon, Inc. Method and system for launching application programs using promotion impressions
WO2015172741A1 (en) * 2014-05-15 2015-11-19 Mediatek Inc. Apparatus and method for switching networks
US10185577B2 (en) * 2014-12-08 2019-01-22 Oracle International Corporation Run-time adaption of external properties controlling operation of applications
US10375620B2 (en) * 2015-03-06 2019-08-06 Apple Inc. Determining routing of proxy traffic between mobile client and proxy devices
CN106155764A (zh) 2015-04-23 2016-11-23 阿里巴巴集团控股有限公司 调度虚拟机输入输出资源的方法及装置
CN106201839B (zh) 2015-04-30 2020-02-14 阿里巴巴集团控股有限公司 一种业务对象的信息加载方法和装置
CN106209741B (zh) 2015-05-06 2020-01-03 阿里巴巴集团控股有限公司 一种虚拟主机及隔离方法、资源访问请求处理方法及装置
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
CN106708819A (zh) 2015-07-17 2017-05-24 阿里巴巴集团控股有限公司 一种数据缓存的预热方法及其装置
US20170041389A1 (en) * 2015-08-03 2017-02-09 DGS Development, LLC System and method for unified synchronization of relationship connections across multiple social network databases
US9906590B2 (en) * 2015-08-20 2018-02-27 Verizon Digital Media Services Inc. Intelligent predictive stream caching
CN106487708B (zh) 2015-08-25 2020-03-13 阿里巴巴集团控股有限公司 网络访问请求控制方法和装置
EP3148157B1 (en) * 2015-09-22 2017-12-06 Comptel OYJ Method and system of identifying an access request of an application on a mobile device in a telecommunication network
US20170090910A1 (en) * 2015-09-29 2017-03-30 International Business Machines Corporation Mobile device application installation with performance enhancement
CN108780446B (zh) * 2015-10-28 2022-08-19 维尔塞特公司 时间依赖的机器生成的提示
CN106936662B (zh) * 2015-12-31 2020-01-31 杭州华为数字技术有限公司 一种实现心跳机制的方法、装置及系统
US9699673B1 (en) * 2016-02-23 2017-07-04 At&T Intellectual Property I, L.P. Maintaining active sessions during subscriber management system maintenance activities
US10171605B2 (en) * 2016-07-15 2019-01-01 Apple Inc. Dual channel delivery
CN106789431B (zh) * 2016-12-26 2019-12-06 中国银联股份有限公司 一种超时监控方法及装置
US20210051110A1 (en) * 2017-05-10 2021-02-18 Telefonaktiebolaget Lm Ericsson (Publ) Communication Node and Method for Handling Communications between Nodes of a System
US11190374B2 (en) 2017-08-28 2021-11-30 Bright Data Ltd. System and method for improving content fetching by selecting tunnel devices
LT3767493T (lt) 2017-08-28 2023-03-10 Bright Data Ltd. Būdas pagerinti turinio parsisiuntimą, naudojant tunelinius įrenginius
KR101964050B1 (ko) * 2017-08-31 2019-04-01 아토리서치(주) 폴링 제어 장치, 방법 및 컴퓨터 프로그램
US20190190986A1 (en) * 2017-12-19 2019-06-20 Avaya Inc. Long polling for clustered application load balancing
CN109725909B (zh) * 2018-05-07 2023-07-21 中国平安人寿保险股份有限公司 代码文件打包部署方法、持续集成服务器及系统
US10999216B2 (en) * 2018-07-13 2021-05-04 EMC IP Holding Company LLC Resource allocation and provisioning in a multi-tier edge-cloud virtualization environment
US11252070B2 (en) * 2018-10-09 2022-02-15 Vmware, Inc. Adaptive polling in software-defined networking (SDN) environments
CN109413186B (zh) * 2018-10-31 2021-07-30 Oppo广东移动通信有限公司 应用程序更新方法、终端、服务器及系统
WO2020112144A1 (en) 2018-11-30 2020-06-04 Hewlett-Packard Development Company, L.P. Software patch difference devices
US11449332B2 (en) 2018-11-30 2022-09-20 Hewlett-Packard Development Company, L.P. Polling computing devices
LT4075304T (lt) 2019-02-25 2023-07-25 Bright Data Ltd. Turinio parsisiuntimo, naudojant url bandymų mechanizmą, sistema ir būdas
CN111695112B (zh) * 2019-03-15 2023-06-02 北京数聚鑫云信息技术有限公司 一种动态控制访问权限的方法及装置
EP4027618B1 (en) 2019-04-02 2024-07-31 Bright Data Ltd. Managing a non-direct url fetching service
CN110138837B (zh) * 2019-04-15 2021-12-28 平安科技(深圳)有限公司 请求处理方法、装置、计算机设备和存储介质
US11082354B2 (en) 2019-06-12 2021-08-03 Vmware, Inc. Adaptive polling in software-defined networking (SDN) environments
US11683666B2 (en) 2019-06-18 2023-06-20 Nokia Technologies Oy Data transmission
RU2726829C1 (ru) * 2019-08-05 2020-07-15 Сергей Олегович Крюков Способ управления календарем мобильного приложения телефона
FR3100630B1 (fr) * 2019-09-05 2021-10-29 Amadeus Validation de la mise en mémoire-cache étendue et du temps de requête
US11652724B1 (en) * 2019-10-14 2023-05-16 Amazon Technologies, Inc. Service proxies for automating data center builds
EP3816800A1 (en) * 2019-10-31 2021-05-05 ABB Schweiz AG Assignment of tasks between a plurality of devices
US10848567B1 (en) * 2019-11-29 2020-11-24 Cygnus, LLC Remote support for IoT devices
CN111026462B (zh) * 2019-12-10 2023-08-29 百度在线网络技术(北京)有限公司 小程序控制方法、装置、设备和介质
US11316806B1 (en) * 2020-01-28 2022-04-26 Snap Inc. Bulk message deletion
CN111600952B (zh) * 2020-05-15 2021-09-07 华人运通(上海)云计算科技有限公司 场景推送方法、执行方法、装置、终端、服务器和系统
CN111628987B (zh) * 2020-05-22 2022-08-09 北京金山云网络技术有限公司 鉴权方法、装置、系统、电子设备及计算机可读存储介质
CN112965823B (zh) * 2021-03-24 2023-12-26 百度在线网络技术(北京)有限公司 调用请求的控制方法、装置、电子设备和存储介质
US11893651B2 (en) 2022-04-04 2024-02-06 Motorola Solutions, Inc. Systems for collecting digital witness statements and detecting electronic resources referenced during collection
CN115208801B (zh) * 2022-05-27 2024-07-30 奇安信科技集团股份有限公司 一种api协同识别方法、装置、电子设备、介质及产品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1457457A (zh) * 2000-06-05 2003-11-19 米拉林克公司 远程资料弹性复制系统与方法
CN1728047A (zh) * 2004-07-28 2006-02-01 佳能株式会社 图像处理装置及其控制方法
CN1864371A (zh) * 2003-08-07 2006-11-15 蒂蒙系统公司 基于正和负轮询事件提供自适应轮询的通信系统和相关方法
WO2007103888A1 (en) * 2006-03-03 2007-09-13 Qualcomm Incorporated Multicast and broadcast traffic with power management
CN101395846A (zh) * 2006-03-03 2009-03-25 高通股份有限公司 待机时间的改进
CN101500299A (zh) * 2008-02-02 2009-08-05 华为技术有限公司 用户设备及不连续接收状态下的上行发送方法
CN101536420A (zh) * 2006-09-11 2009-09-16 摩托罗拉公司 用于在无线网络中对准传输的方法和装置
WO2010035108A1 (en) * 2008-09-23 2010-04-01 Nokia Corporation Optimized polling in low resource devices

Family Cites Families (152)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5969705A (en) * 1993-06-28 1999-10-19 Apple Computer, Inc. Message protocol for controlling a user interface from an inactive application program
JP4309480B2 (ja) 1995-03-07 2009-08-05 株式会社東芝 情報処理装置
US5744991A (en) 1995-10-16 1998-04-28 Altera Corporation System for distributing clocks using a delay lock loop in a programmable logic circuit
US5940813A (en) * 1996-07-26 1999-08-17 Citibank, N.A. Process facility management matrix and system and method for performing batch, processing in an on-line environment
US5944829A (en) 1996-09-30 1999-08-31 Intel Corporation Adjusting software characteristics by user interface based upon battery level and the amount of time the user wants the battery to last
US6005575A (en) 1998-03-23 1999-12-21 Microsoft Corporation Foreground window determination through process and thread initialization
US6463307B1 (en) 1998-08-14 2002-10-08 Telefonaktiebolaget Lm Ericsson Method and apparatus for power saving in a mobile terminal with established connections
US7103065B1 (en) 1998-10-30 2006-09-05 Broadcom Corporation Data packet fragmentation in a cable modem system
US6140885A (en) 1999-02-23 2000-10-31 International Business Machines Corporation On-chip automatic system for impedance matching in very high speed input-output chip interfacing
US6557026B1 (en) 1999-09-29 2003-04-29 Morphism, L.L.C. System and apparatus for dynamically generating audible notices from an information network
US7020690B1 (en) * 1999-10-19 2006-03-28 Netzero, Inc. Inactivity timer for an internet client
US6799209B1 (en) 2000-05-25 2004-09-28 Citrix Systems, Inc. Activity monitor and resource manager in a network environment
US7149798B2 (en) * 2000-09-06 2006-12-12 Xanboo, Inc. Method and system for adaptively setting a data refresh interval
US7062567B2 (en) 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
JP2004530958A (ja) 2000-11-28 2004-10-07 フォースパス インコーポレイテッド 無線アプリケーションを保持および配信する方法およびシステム
US6961896B1 (en) * 2000-11-30 2005-11-01 Microsoft Corporation Method and system for setting document-linked timed reminders
EP1346593B1 (en) 2000-12-21 2007-11-07 Nokia Corporation Over-the-air (ota) service provisioning in a mobile communications system
US7334031B2 (en) 2001-01-12 2008-02-19 Siemens Medical Solutions Health Services Corporation System and user interface supporting processing and activity management for concurrently operating applications
US20020156921A1 (en) 2001-04-19 2002-10-24 International Business Machines Corporation Automatic backup of wireless mobile device data onto gateway server while device is idle
JP4015428B2 (ja) 2001-05-16 2007-11-28 株式会社日立コミュニケーションテクノロジー インアクティビティタイマを備えた無線基地局/無線基地局制御装置、無線端末及び状態制御方法
JP2003037545A (ja) 2001-07-23 2003-02-07 Nec Corp 近距離無線機能付き移動局及びその消費電力低減方法
US6898718B2 (en) * 2001-09-28 2005-05-24 Intel Corporation Method and apparatus to monitor performance of a process
US7506059B2 (en) 2001-10-26 2009-03-17 Nokia Corporation Mobile client provisioning web service
US7237240B1 (en) * 2001-10-30 2007-06-26 Microsoft Corporation Most used programs list
US7254601B2 (en) * 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
SE0202845D0 (sv) 2002-05-13 2002-09-23 Ericsson Telefon Ab L M Measurements for radio resource management for high-speed downlink shared channel (HS-DSCH)
US8036718B2 (en) 2002-06-17 2011-10-11 Nokia Corporation Power management profile on a mobile device
US7551546B2 (en) 2002-06-27 2009-06-23 Nortel Networks Limited Dual-mode shared OFDM methods/transmitters, receivers and systems
GB2391963B (en) 2002-08-14 2004-12-01 Flyingspark Ltd Method and apparatus for preloading caches
US7069326B1 (en) * 2002-09-27 2006-06-27 Danger, Inc. System and method for efficiently managing data transports
US7280537B2 (en) 2003-08-07 2007-10-09 Teamon Systems, Inc. Communications system providing adaptive polling based upon positive and negative polling events and related methods
WO2004059447A2 (en) 2002-12-24 2004-07-15 Simdesk Technologies, Inc. Internet-based messaging system
US7480907B1 (en) 2003-01-09 2009-01-20 Hewlett-Packard Development Company, L.P. Mobile services network for update of firmware/software in mobile handsets
US7801092B2 (en) * 2003-03-21 2010-09-21 Cisco Technology, Inc. Method for a simple 802.11e HCF implementation
EP2755345B1 (en) * 2003-03-31 2020-04-29 Apple Inc. A radio telecommunications system and method of operating the same with polling
US20040264396A1 (en) 2003-06-30 2004-12-30 Boris Ginzburg Method for power saving in a wireless LAN
GB0315492D0 (en) 2003-07-02 2003-08-06 Symbian Ltd A method of enabling a multitasking wireless information device to conserve battery power
EP1517572B1 (en) 2003-09-16 2010-12-08 Research In Motion Limited Method and apparatus for selecting a wireless network based on quality of service (QOS) criteria associated with an application
US7353512B2 (en) 2003-09-29 2008-04-01 International Business Machines Corporation Mobile applications and content provisioning using web services technology
US7577180B2 (en) * 2003-12-18 2009-08-18 Vtech Telecommunications Limited Method and system for maintaining synchronization in low-power mode over a frequency hopping radio link
US20050190714A1 (en) 2004-02-28 2005-09-01 Intel Corporation System and associated methods for network aware dynamic power management
CN101019089A (zh) 2004-03-22 2007-08-15 皇家飞利浦电子股份有限公司 在移动终端中用于进行功率管理的方法和设备
WO2006002379A2 (en) * 2004-06-22 2006-01-05 Ntt Docomo Inc. Power mode aware packet communication method and apparatus
TWI260137B (en) * 2004-06-23 2006-08-11 High Tech Comp Corp Method for wireless network establishment between devices and apparatus thereof
US7769863B2 (en) * 2004-11-19 2010-08-03 Viasat, Inc. Network accelerator for controlled long delay links
US7826874B2 (en) 2004-11-24 2010-11-02 Research In Motion Limited System and method for selectively activating a communication device
GB0426736D0 (en) 2004-12-06 2005-01-12 Omnifone Ltd MyFone
US20080098476A1 (en) 2005-04-04 2008-04-24 Bae Systems Information And Electronic Systems Integration Inc. Method and Apparatus for Defending Against Zero-Day Worm-Based Attacks
US7631007B2 (en) 2005-04-12 2009-12-08 Scenera Technologies, Llc System and method for tracking user activity related to network resources using a browser
US7613111B2 (en) 2005-04-18 2009-11-03 Santera Systems, Llc Methods, systems, and computer program products for dynamic blocking an unblocking of media over packet resources
US8176027B1 (en) * 2005-07-06 2012-05-08 Navteq B.V. Spatial index for data files
CA2513018A1 (en) 2005-07-22 2007-01-22 Research In Motion Limited Method for training a proxy server for content delivery based on communication of state information from a mobile device browser
US20070073766A1 (en) 2005-09-28 2007-03-29 Diversified Multimedia, Llc System, Method, and Computer-Readable Medium for Mobile Media Management
US7774781B2 (en) * 2005-09-30 2010-08-10 Intel Corporation Storage subsystem access prioritization by system process and foreground application identification
GB0522079D0 (en) 2005-10-29 2005-12-07 Griffin Ian Mobile game or program distribution
US9489187B2 (en) 2005-11-07 2016-11-08 Yahoo, Inc. Adaptive deployment of applications for mobile devices
KR100879269B1 (ko) 2005-12-16 2009-01-16 삼성전자주식회사 광대역 무선 통신 시스템에서 맵 채널 오버헤드를감소시키기 위한 장치 및 방법
TWI533721B (zh) 2006-01-31 2016-05-11 內數位科技公司 無線通信系統中提供及利用非競爭基礎頻道方法及裝置
US20070192763A1 (en) 2006-02-15 2007-08-16 Helvick Richard E Method and system for scheduling application of software updates
CN101395894B (zh) * 2006-03-03 2011-09-28 日本电气株式会社 移动电话和应用程序
CN101496387B (zh) 2006-03-06 2012-09-05 思科技术公司 用于移动无线网络中的接入认证的系统和方法
US20080242370A1 (en) 2006-03-31 2008-10-02 Ixi Mobile (R&D) Ltd. Efficient server polling system and method
US8634399B2 (en) 2006-04-12 2014-01-21 Qualcomm Incorporated Uplink and bi-directional traffic classification for wireless communication
US7644139B2 (en) 2006-05-02 2010-01-05 Research In Motion Limited Method and system for optimizing metadata passing in a push content processing protocol
US7680478B2 (en) 2006-05-04 2010-03-16 Telefonaktiebolaget Lm Ericsson (Publ) Inactivity monitoring for different traffic or service classifications
US7689664B2 (en) 2006-08-10 2010-03-30 Sony Ericsson Mobile Communications Ab System and method for installing and configuring software applications on a mobile networked terminal
KR100752135B1 (ko) 2006-09-15 2007-08-27 삼성전자주식회사 휴대용 단말기에서 절전 모드 관리를 위한 장치 및 방법
JP4601596B2 (ja) 2006-10-03 2010-12-22 株式会社エヌ・ティ・ティ・ドコモ 基地局装置及び方法
US8504999B2 (en) 2006-10-05 2013-08-06 Palo Alto Research Center Incorporated System and method for transferring code to a data producer
US8015249B2 (en) 2006-10-10 2011-09-06 Microsoft Corporation Mitigating data usage in messaging applications
CN101170725B (zh) * 2006-10-24 2010-06-09 华为技术有限公司 数据接收、发送方法及数据接收、发送装置
US8315616B2 (en) 2006-10-24 2012-11-20 International Business Machines Corporation Mobile device solution that provides enhanced user control for outgoing data handling
US20100022225A1 (en) * 2006-10-29 2010-01-28 Neatcall Ltd. Methods and systems for setting, scheduling, optimizing, and initiating personal communication and prioritizing communication channels and devices
US20080177872A1 (en) 2006-11-10 2008-07-24 Vengroff Darren E Managing aggregation and sending of communications
KR101106689B1 (ko) 2007-02-26 2012-01-18 한국과학기술원 광대역 무선통신 시스템에서 상향링크 무선자원을 할당하기위한 장치 및 방법
US8914786B2 (en) 2007-03-23 2014-12-16 Zumobi, Inc. Systems and methods for controlling application updates across a wireless interface
US8456300B2 (en) 2007-05-09 2013-06-04 Sony Ericsson Mobile Communications Ab Methods, electronic devices, and computer program products for generating presence information associated with a user of an electronic device based on environmental information
US8180407B1 (en) 2007-05-23 2012-05-15 Sprint Spectrum L.P. Automatic reduction of background wireless communication in a media player mode
US8832220B2 (en) 2007-05-29 2014-09-09 Domingo Enterprises, Llc System and method for increasing data availability on a mobile device based on operating mode
EP1998478A2 (en) 2007-06-01 2008-12-03 Kabushiki Kaisha Toshiba Mobile communication device
US7974574B2 (en) 2007-07-25 2011-07-05 Microsoft Corporation Base station initiated proximity service discovery and connection establishment
US20090030769A1 (en) 2007-07-27 2009-01-29 Rearden Commerce, Inc. System and Method for Latency Management Assistant
US8284706B2 (en) 2007-09-20 2012-10-09 Qualcomm Incorporated Semi-connected operations for wireless communications
US20090093281A1 (en) 2007-10-07 2009-04-09 Mustafa Demirhan Device, system, and method of power saving in wireless communication
US7800251B2 (en) * 2007-10-18 2010-09-21 Hammerhead International, Llc System and method for load control
US20090124284A1 (en) 2007-11-14 2009-05-14 Shimon Scherzer System and method for providing seamless broadband internet access to web applications
WO2009070415A1 (en) * 2007-11-27 2009-06-04 Motorola, Inc. A wireless communication device and method op disabling an idle of one operational mode
US8082459B2 (en) 2008-02-26 2011-12-20 Microsoft Corporation Power management based on policy
US8099505B2 (en) 2008-03-26 2012-01-17 Microsoft Corporation Aggregating connection maintenance to optimize resource consumption
US8289891B2 (en) 2008-05-09 2012-10-16 Samsung Electronics Co., Ltd. Flexible sleep mode for advanced wireless systems
US8555201B2 (en) * 2008-06-05 2013-10-08 Qualcomm Incorporated Wireless communication device having deterministic control of foreground access of the user interface
US8135392B2 (en) 2008-06-06 2012-03-13 Apple Inc. Managing notification service connections and displaying icon badges
CN102017548B (zh) * 2008-06-12 2013-08-28 松下电器产业株式会社 网络监视装置、总线系统监视装置以及方法
US8078158B2 (en) 2008-06-26 2011-12-13 Seven Networks, Inc. Provisioning applications for a mobile device
CN102067143A (zh) * 2008-06-26 2011-05-18 雷德尼有限公司 用于电子装置的安全管理的系统、方法和装置
US8112475B2 (en) 2008-06-27 2012-02-07 Microsoft Corporation Managing data delivery based on device state
US20100016011A1 (en) * 2008-07-15 2010-01-21 Motorola, Inc. Method for Collecting Usage Information on Wireless Devices for Ratings Purposes
US7848756B2 (en) 2008-09-22 2010-12-07 Telefonaktiebolaget L M Ericsson (Publ) Radio access technology selection
US20100083255A1 (en) 2008-09-26 2010-04-01 Microsoft Corporation Notification batching based on user state
US20100088387A1 (en) 2008-10-03 2010-04-08 Apple Inc. Email Notification Proxy
US8914510B2 (en) * 2008-11-17 2014-12-16 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for enhancing internet security for network subscribers
US8170589B2 (en) * 2008-12-01 2012-05-01 Sony Ericsson Mobile Communications Mobile station and application server for providing a service to the mobile station and operation methods for the same
US9392462B2 (en) 2009-01-28 2016-07-12 Headwater Partners I Llc Mobile end-user device with agent limiting wireless data communication for specified background applications based on a stored policy
US20100250986A1 (en) 2009-03-27 2010-09-30 Motorola, Inc. Method and Device for Improving Battery Life of a Mobile Computing Device
CN101854340B (zh) 2009-04-03 2015-04-01 瞻博网络公司 基于访问控制信息进行的基于行为的通信剖析
US8862416B2 (en) 2009-04-27 2014-10-14 Motorola Mobility Llc Method and device for improving battery life of a mobile computing device
US20100299455A1 (en) 2009-05-21 2010-11-25 Motorola, Inc. Mobile Computing Device and Method with Enhanced Poling Management
US8185165B2 (en) 2009-06-01 2012-05-22 Hewlett-Packard Development Company, L.P. Method and apparatus for adaptive power saving in a mobile computing device
US8498657B1 (en) 2009-06-11 2013-07-30 Sprint Communications Company L.P. User interface update signaling
US8200626B1 (en) 2009-09-18 2012-06-12 Sprint Communications Company L.P. Mobile device file management
US8490075B2 (en) 2009-11-23 2013-07-16 Nokia Corporation Method and apparatus for optimizing an exchange of service updates
US8688826B2 (en) 2009-11-30 2014-04-01 Motorola Mobility Llc Mobile computing device and method with intelligent pushing management
US20110177847A1 (en) * 2010-01-18 2011-07-21 Chien-Jen Huang Power-saving Method for Mobile Communication Device
US8228832B2 (en) 2010-01-25 2012-07-24 Motorola Mobility, Inc. USSD transport method and device
US8904206B2 (en) 2010-01-26 2014-12-02 Motorola Mobility Llc Mobile computing device and method for maintaining application continuity
TW201129037A (en) 2010-02-03 2011-08-16 Ralink Technology Corp Management method for internet protocol sharing communication mechanism
US8391142B2 (en) 2010-02-11 2013-03-05 Verizon Patent And Licensing, Inc. Access window envelope controller in wireless network
US8644204B2 (en) 2010-03-05 2014-02-04 Industrial Technology Research Institute Systems and methods for operation mode transition in wireless communications
US8825731B2 (en) 2010-05-18 2014-09-02 International Business Machines Corporation Mobile device workload management for cloud computing using SIP and presence to control workload and method thereof
WO2012018556A2 (en) * 2010-07-26 2012-02-09 Ari Backholm Mobile application traffic optimization
WO2013015835A1 (en) 2011-07-22 2013-01-31 Seven Networks, Inc. Mobile application traffic optimization
US20120303834A1 (en) 2010-10-07 2012-11-29 Stellatus, LLC Seamless digital streaming over different device types
US8750207B2 (en) * 2010-10-15 2014-06-10 Apple Inc. Adapting transmission to improve QoS in a mobile wireless device
US8599014B2 (en) * 2010-11-05 2013-12-03 Nokia Corporation Method and apparatus for managing notifications
EP2636268B1 (en) * 2010-11-22 2019-02-27 Seven Networks, LLC Optimization of resource polling intervals to satisfy mobile device requests
GB2504634B (en) * 2010-11-22 2014-04-09 Seven Networks Inc Aligning data transfer to optimize connections established for transmission over a wireless network
CN103404193B (zh) * 2010-11-22 2018-06-05 七网络有限责任公司 调校数据传输以优化为通过无线网络的传输建立的连接
US8644211B2 (en) * 2010-12-16 2014-02-04 Palo Alto Research Center Incorporated Energy-efficient content retrieval in content-centric networks
EP3706494A1 (en) 2011-04-29 2020-09-09 Samsung Electronics Co., Ltd. Apparatus and method of resource allocation for data and control channels in a wireless communication system
US9148861B1 (en) 2012-07-25 2015-09-29 Sprint Spectrum L.P. Offset to data rate control based on transmission power in neighbor sector
EP2564611B1 (en) 2011-07-01 2015-02-18 Ofinno Technologies, LLC Synchronization signal and control messages in multicarrier OFDM
US8984581B2 (en) 2011-07-27 2015-03-17 Seven Networks, Inc. Monitoring mobile application activities for malicious traffic on a mobile device
US9270603B2 (en) 2011-11-02 2016-02-23 Wichorus, Inc. Methods and apparatus for improving idle mode performance using deep packet inspection (DPI) idle mode agent
US20130142062A1 (en) 2011-12-05 2013-06-06 Esmael Hejazi Dinan Channel State Information Feedback
WO2013102220A2 (en) 2011-12-30 2013-07-04 Scrutiny, Inc. Frame (forced recuperation, aggregation and movement of exergy)
WO2013155419A1 (en) 2012-04-12 2013-10-17 Maxlinear, Inc. Method and system for wifi communication utilizing full spectrum capture (fsc)
EP2845430A1 (en) 2012-05-04 2015-03-11 Interdigital Patent Holdings, Inc. Coexistence management service for spectrum sharing
US9203673B2 (en) 2012-05-13 2015-12-01 Broadcom Corporation Multi-channel support within single user, multiple user, multiple access, and/or MIMO wireless communications
DE102012015035B3 (de) 2012-07-31 2014-02-06 Casco Schoeller Gmbh Fahrzeug mit einer induktiven Messeinheit zur Erfassung der Position eines Fahrzeugteils
US9184886B2 (en) 2012-08-10 2015-11-10 Blackberry Limited TD LTE secondary component carrier in unlicensed bands
US8868025B2 (en) 2012-08-14 2014-10-21 Qualcomm Incorporated Methods, systems and devices for prioritizing access to wireless networks
US9380125B2 (en) 2012-09-11 2016-06-28 Qualcomm Incorporated Apparatus and method for delivery control of application data to a mobile device in a communication network
WO2014074055A2 (en) 2012-11-12 2014-05-15 Telefonaktiebolaget L M Ericsson (Publ) Transmission mode selection and downlink scheduling using primary and dedicated pilot signals
US9179409B2 (en) 2012-12-03 2015-11-03 Qualcomm Incorporated Multiple access scheme for narrowband channels
US9955403B2 (en) 2012-12-20 2018-04-24 Lg Electronics Inc. Method for communicating in wireless communication system supporting multiple access network and apparatus supporting same
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US8750123B1 (en) 2013-03-11 2014-06-10 Seven Networks, Inc. Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
US9237453B2 (en) 2013-03-14 2016-01-12 Blackberry Limited Spectrum channel sharing system
US9526105B2 (en) 2013-05-13 2016-12-20 Qualcomm Incorporated Enhanced GSM cell acquisition
WO2014197521A1 (en) 2013-06-03 2014-12-11 Seven Networks, Inc. Blocking/unblocking algorithms for signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
EP3454594B1 (en) 2013-06-11 2020-11-04 Seven Networks, LLC Offloading application traffic to a shared communication channel for signal optimisation in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US10798599B2 (en) 2015-07-30 2020-10-06 Futurewei Technologies, Inc. System and method for controlling user equipment offloading

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1457457A (zh) * 2000-06-05 2003-11-19 米拉林克公司 远程资料弹性复制系统与方法
CN1864371A (zh) * 2003-08-07 2006-11-15 蒂蒙系统公司 基于正和负轮询事件提供自适应轮询的通信系统和相关方法
CN1728047A (zh) * 2004-07-28 2006-02-01 佳能株式会社 图像处理装置及其控制方法
WO2007103888A1 (en) * 2006-03-03 2007-09-13 Qualcomm Incorporated Multicast and broadcast traffic with power management
CN101395846A (zh) * 2006-03-03 2009-03-25 高通股份有限公司 待机时间的改进
CN101536420A (zh) * 2006-09-11 2009-09-16 摩托罗拉公司 用于在无线网络中对准传输的方法和装置
CN101500299A (zh) * 2008-02-02 2009-08-05 华为技术有限公司 用户设备及不连续接收状态下的上行发送方法
WO2010035108A1 (en) * 2008-09-23 2010-04-01 Nokia Corporation Optimized polling in low resource devices

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111183628A (zh) * 2017-11-21 2020-05-19 惠普发展公司,有限责任合伙企业 用于保持长轮询连接的响应延迟时间确定
US11317002B2 (en) 2017-11-21 2022-04-26 Hewlett-Packard Development Company, L.P. Response delay time determination to maintain long polling connection
CN110838988A (zh) * 2019-10-29 2020-02-25 深圳市高德信通信股份有限公司 一种网络流量限流系统
CN112148508A (zh) * 2020-09-30 2020-12-29 深圳市晨北科技有限公司 一种信息处理的方法及相关装置

Also Published As

Publication number Publication date
US20170126840A1 (en) 2017-05-04
US20180255156A1 (en) 2018-09-06
US20150181617A1 (en) 2015-06-25
GB2504634A (en) 2014-02-05
US20200186614A1 (en) 2020-06-11
US10397367B2 (en) 2019-08-27
GB201309204D0 (en) 2013-07-03
GB2573235B (en) 2020-01-22
CN108429800B (zh) 2020-04-24
US9661103B2 (en) 2017-05-23
GB201910524D0 (en) 2019-09-04
GB2573235A (en) 2019-10-30
GB201318908D0 (en) 2013-12-11
GB2504634B (en) 2014-04-09
US20150081906A1 (en) 2015-03-19
GB2499747A (en) 2013-08-28
CN108156265A (zh) 2018-06-12
CN108156265B (zh) 2019-03-26
US20170142744A9 (en) 2017-05-18
GB2499747B (en) 2014-04-09
US10601951B2 (en) 2020-03-24

Similar Documents

Publication Publication Date Title
CN108156265B (zh) 一种应用程序控制方法及移动设备
CN103404193B (zh) 调校数据传输以优化为通过无线网络的传输建立的连接
CN103620576B (zh) 适用于移动应用程序行为和网络条件的缓存
CN107005597A (zh) 基于用户特征在移动设备缓存的无线流量管理系统
CN105637926B (zh) 将应用流量分载至共享通信信道进行无线网络中的信令优化用于使用专有和非专有协议的流量
KR101227769B1 (ko) 폴링 간격을 이용한 모바일 네트워크 배경 트래픽 데이터 관리
KR101227821B1 (ko) 모바일 네트워크 트래픽 경감을 위한 원자 프로세스를 기반으로 하며 모바일 장치를 대신하여 요청을 하기 위한 시스템 및 방법
EP2636268B1 (en) Optimization of resource polling intervals to satisfy mobile device requests
FI123227B (fi) Sovellus- ja verkkoperusteinen pitkän pollauspyynnön havaitseminen ja sen välitallennuksen arviointi
EP2556441B1 (en) System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
US9203864B2 (en) Dynamic categorization of applications for network access in a mobile network
CN105814931A (zh) 基于移动网络信号的网络建模
CN106664254A (zh) 优化移动网络中的网络流量管理
CN105637919A (zh) 优化无线网络中的保活和其他后台流量
EP2755356B1 (en) Optimized and Selective Management of Policy Deployment to Mobile Clients in a Congested Network to Prevent Further Aggravation of Network Congestion
WO2013155208A1 (en) Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system in a mobile network
WO2013177390A1 (en) Wireless network traffic routing through traffic optimization and tracking of destination address to facilitate service provider billing
JP2013537754A (ja) モバイルアプリケーショントラフィック最適化
CN110990706B (zh) 语料推荐方法及装置
Li et al. A measurement-based prioritization scheme for smartphone applications
WO2014204995A1 (en) Methods and systems for providing application programming interfaces and application programming interface extensions to third party applications for optimizing and minimizing application traffic
CN108696406A (zh) 推送信息的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210201

Address after: 2660 east end Avenue South, Marshall, Texas, USA

Patentee after: Seven software Co.

Address before: 310000 Room 802, building 3, Wangjiang International Center, Shangcheng District, Hangzhou City, Zhejiang Province

Patentee before: Hangzhou Shuowen Software Co.,Ltd.

TR01 Transfer of patent right