CN106105160B - 预取断开连接时段的应用数据 - Google Patents

预取断开连接时段的应用数据 Download PDF

Info

Publication number
CN106105160B
CN106105160B CN201580013378.8A CN201580013378A CN106105160B CN 106105160 B CN106105160 B CN 106105160B CN 201580013378 A CN201580013378 A CN 201580013378A CN 106105160 B CN106105160 B CN 106105160B
Authority
CN
China
Prior art keywords
data
application
mobile computing
computing device
identified
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201580013378.8A
Other languages
English (en)
Other versions
CN106105160A (zh
Inventor
S·阿加瓦尔
A·沃尔曼
D·丘
P·巴尔
L·迪克
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106105160A publication Critical patent/CN106105160A/zh
Application granted granted Critical
Publication of CN106105160B publication Critical patent/CN106105160B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/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/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

呈现了应用数据预取实施例,其预取并且提供应用数据,以在与通信网络的断开连接的时段期间由在移动计算设备上操作的应用使用。通过这种方式,即使在网络断开连接的时段期间,也可以实现在线体验。在一个实施方式中,通过基于云的应用数据预取服务,将应用数据推送给移动计算设备。在另一实施方式中,移动计算设备承担预取应用数据并且将应用数据提供给应用的任务。

Description

预取断开连接时段的应用数据
背景技术
随着移动计算设备的增多,移动应用也激增。也已存在无线部署的激增,这扩大并且改善了因特网连接的区域。通常地,在当移动计算设备经由某种形式的通信网络无线连接到因特网时的时间期间,要么在移动计算设备上运行的应用请求来自应用服务器的网络内容等,要么应用服务器尝试向应用推送内容。
在应用服务器尝试向应用推送内容的情况下,通常采用推送***。这样的***是当前由多个移动操作***平台支持的一个特色。这些推送***通常地使得应用服务器能够将新的内容推送给在移动计算设备上操作的应用。一个这样的广泛使用的***是推送通知。当新数据可用时,推送通知允许应用服务器对移动计算设备用户进行提醒。通常,推送通知包括嵌入式动作。当移动设备用户点击通知时,嵌入式动作发起应用并且此后启动对新数据的下载。另外,应用服务器通常被允许在没有用户动作的情况下将有限数目的字符递送给用户的移动设备。例如,最新新闻的标题可以被推送给在移动计算设备上运行的新闻应用。
最近已经出现了其他推送***,其寻求在没有设备或用户的参与的情况下通过迫使或启动将内容下载到移动计算设备来促进将内容递送给应用。更特别地,在这些新推送***之一中,当移动计算设备上电时,下载内容。这些新推送***中的其他推送***允许每隔24小时的后台下载一次单个文件,此后推送通知用于递送有限的内容。又一新推送***实际上不将内容推送给应用,而是其在应用发起之前预取内容以便减少发起等待时间。一旦被发起,应用就以正常的方式请求内容。
发明内容
提供该发明内容以引入以在详细描述中下文进一步描述的简化形式的概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或基本特征,其也不旨在用作辅助确定所要求保护的主题的范围。
本文所描述的应用数据预取实施例通常预取并且提供应用数据,以用于在与通信网络的断开连接的时段期间由在移动计算设备上操作的应用使用。通过这种方式,即使在移动计算设备离线时,也可以实现在线体验。
更特别地,一个示例性实施例涉及将应用数据推送给移动计算设备。首先,从移动计算设备接收应用流量数据。该应用流量数据包括指定网络站点的至少一个计算机网络地址,在网络站点中,能够获得与应用有关的数据。分析所接收的应用流量数据以标识待预取的应用数据,以在与通信网络断开连接的时段期间启用对应用的操作。然后,对所标识的应用数据进行预取,并且在当移动计算设备被连接到通信网络时的时间期间,将该数据中的至少一些数据提供给移动计算设备。
在一个实施方式中,通过基于云的应用数据预取服务处理将应用数据推送给移动计算设备。在该实施方式中,移动计算设备收集并且存储前述应用流量数据,并且经由通信网络将其周期性地提供给服务。另外,移动计算设备经由通信网络接收并且存储来自服务器或中间预分级站点的预取应用数据。如先前所指示的,预取应用数据由应用用于在断开连接的时段期间启用操作。
在另一示例性实施例中,不涉及基于云的服务,并且移动计算设备承担预取应用数据并且将其提供给应用的任务。在该示例性实施例中,移动计算设备收集并且存储前述应用流量数据,并且然后对其进行分析以标识待预取的应用数据,以在与通信网络的断开连接的时段期间启用对应用的操作。另外,移动计算设备对所标识的应用数据进行预取。然后,当在断开连接的时段期间应用在移动计算设备上操作时,针对应用模拟虚拟连接的网络接口。该模拟接口截获来自应用的针对应用数据的请求,并且当已经存储对应于所截获的请求的预取的应用数据时,将对应于每个所截获的请求的预取的应用数据提供给应用。如果尚未预取并且存储所请求的应用数据,那么发出不可用性消息。
附图说明
本公开的特定特征、方面和优点将关于以下描述、所附的权利要求和附图变得更好理解,其中:
图1是以用于实现本文所描述的应用数据预取实施例的架构框架的简化形式的示例性实施例的示图。
图2是通常概括用于将应用数据推送给移动计算设备的过程的一个实施例的流程图。
图3示出了列出可以被用于标识嵌入式URL的正则表达式的示例性集合的符号和文件类型的表。
图4是通常概括用于标识包括将展示经修改的形式的地址转译为可以用于访问网络站点的可用形式的一个或多个计算机网络地址的过程的一个实施例的流程图。
图5示出了提供可以用于转译经修改的URL的语法规则的示例性集合的表。
图6是通常概括用于基于关于相同应用的其他用户的URL的流行度来获得URL以添加到所标识的URL的列表的过程的一个实施例的流程图。
图7A-图7B描述了通常概括用于在与通信网络的断开连接的时段期间将预取的应用数据提供给应用的过程的一个实施例的继续流程图。
图8是描绘了构成用于实现本文所描述的应用数据预取实施例的示例性***的通用计算设备的示图。
图9A-图9B描绘了通常概括用于移动计算设备预取应用数据以用于在与通信网络的断开连接的时段期间由在其上操作的应用使用的过程的一个实施例的继续例程图。
具体实施方式
在应用数据预取实施例的以下描述中,对形成其一部分并且其中以说明的方式示出其中可以实践应用数据预取的特定实施例的附图进行参考。应理解到,在不脱离应用数据预取的范围的情况下,可以利用其他实施例并且可以做出结构改变。
还应指出,出于清楚的原因,将采取特定术语描述本文所描述的应用数据预取实施例并且其不旨将这些实施例限于这样所选择的特定术语。而且,应理解到,每个特定术语包括用于实现类似目的的宽广地类似的方式操作的所有其技术等同物。在本文中对“一个实施例”、或“另一实施例”、或“示例性实施例”、或“备选实施例”、或“一个实施方式”、或“另一实施方式”、或“示例性实施方式”、或“备选实施方式”意味着结合实施例或实施方式所描述的特定特征、特定结构或特定特性可以被包括在应用数据预取的至少一个实施例中。在说明书中的各个地方的短语“在一个实施例中”、“在另一实施例中”、“在示例性实施例中”、“在备选实施例中”、“在一个实施方式中”、“在另一实施方式中”、“在示例性实施方式中”和“在备选实施方式中”的出现不必全部指代相同实施例或实施方式,也不是对其他实施例/实施方式相互排斥的分离或备选的实施例/实施方式。然而此外,表示应用数据预取的一个或多个实施例或实施方式的工作流的顺序没有固有地指示任何特定顺序并且不隐含其任何限制。
将贯穿描述描述使用以下术语并且出于方便此处将这样定义。术语“应用数据”在本文中用于一般地指代web内容,诸如文本、视觉或听觉内容,包括但不限于在网络站点(例如,因特网或专有内联网站点)上找到的文本、图像、声音、视频和动画以及任何相关联的元数据等。另外,术语“移动计算设备”在本文中用于指代便携式设备,诸如以示例而非限制的方式,膝上型计算机或笔记本计算机、智能电话、平板计算机、个人数字助理(PDA)等。而且,术语“断开连接”(如在断开连接的时段中)在本文中和在权利要求中被用于一般地指代基于规定阈值不存在、或太弱、或太慢的通信网络的连接。
1.0针对断开连接的时段的预取应用数据
本文所描述的应用数据预取实施例通常预取应用数据,以用于在与通信网络的断开连接的时段期间由在移动计算设备上操作的应用使用。这样,不仅在断开连接的时段期间实现在线体验。而且连接体验的错觉可以扩展到断开连接的时段。
考虑到移动计算设备通常地在一天期间的至少一个点处被连接到通信网络,利用连接的时段获得预取的应用数据是可能的。然后,预取的应用数据被用于在断开连接的时段期间创建在线体验的错觉。这具有在无缝在线用户体验方面的暗示,潜在地通过较便宜的网络(诸如Wi-Fi)的使用和电池寿命的更高效的使用降低带宽成本。
本文所描述的应用数据预取实施例聚焦于在移动计算设备上操作的应用。通常,通过应用比经由移动浏览器访问更多web内容。这使聚焦于应用而不是与通用浏览密切相关。应当注意,对web内容的应用行为和访问(其更宽广地被称为下面的描述中的应用数据)与通用浏览器的方式显著地不同。
图1图示了以用于实现本文所描述的应用数据预取实施例的架构框架的简化形式的示例性实施例。如在图1中所示例的,架构框架包括一个或多个移动计算设备100(示出其中之一)、一个或多个通信网络102和云104。如在云计算领域中所理解的,云104一般地包括可以位于不同的地理区域中的多个云计算设备106(示出其中之一)。网络102允许移动计算设备100与云计算设备106通信并且与云计算设备106交换信息。将理解到,网络102可以采用各种各样的局域网和广域网技术。以示例但非限制的方式,在示例性实施例中,使用因特网或任何适当的通信网络102上的专有内联网(诸如蜂窝或Wi-Fi网络或因特网服务提供商的电缆循环利用或DSL(数字订户线)网络)完成前述通信。
再次参考图1,以示例但非限制的方式,移动计算设备100可以是智能电话、或平板计算机、或个人数字助理或可穿戴设备等。用户(未示出)采用移动计算设备100运行应用110。应当注意,用户可以分离地或者同时运行移动计算设备上的多个应用。然而,为了方便起见,当针对其他应用简单地重复架构和过程时,在该描述中将仅提出一个应用。移动计算设备用于托管预取应用数据管理器112。
再次参考图1,云计算设备106中的一个或多个云计算设备用于托管应用数据预取服务108。应当注意,虽然应用数据预取服务108在图1中被示出为在单个计算设备106上操作,但是并不需要是这种情况。相反,服务的部件可以分布在经由(未示出的)任何适当的通信网络彼此通信的多个云计算设备之间。
现在将更详细地描述基于云的应用数据预取服务108和基于移动设备的预取应用数据管理器112。
1.1应用数据预取服务
再次参考图1,应用数据预取服务108包括两个高层组件—即,应用数据标识和预取模块114和预取数据提供模块116。应用数据标识和预取模块114通常标识计算机网络地址,其然后用于预取由在移动计算设备上运行的应用所需要的应用数据,以在断开连接的时段期间进行操作。预取数据提供模块116以各种智能地确定并且成本效益的方式将预取的应用数据推送给移动计算设备100。
图2概括了用于使用上文所描述的模块将应用数据推送给移动计算设备的过程的通用实施例。首先,一个或多个计算设备从移动计算设备接收应用流量数据(过程动作200)。该应用流量数据通常包括指定其中可以获得与应用相关的应用数据的网络站点的至少一个计算机网络地址。分析所接收的应用流量数据以标识待预取的应用数据,以在与通信网络断开连接的时段期间启用对应用的操作(过程动作202)。然后,对所标识的应用数据进行预取(过程动作204)。在一个实施方式中,利用前述过程动作对先前所描述的应用数据标识和预取模块进行分派任务。接下来,在当该设备被连接到通信网络时的时间期间,将应用数据中的至少一些应用数据提供给移动计算设备。在一些实施方式中,先前所描述的预期数据提供模块执行该最后的任务。现在将更详细地描述前述动作中的每一个动作。
1.1.1接收应用流量数据
应用流量数据共同地指代由在移动计算设备上运行的应用经由通信网络针对应用数据做出的请求的和移动计算设备的用户与应用的交互(过去的应用流量),以及响应于那些请求返回的应用数据(获取的应用数据流量)。如将稍后在该描述中更详细描述的,利用收集当应用操作时的时间期间的应用流量数据并且利用与在其中获得应用数据的站点进行交互和/或利用用户,对驻留在移动计算设备上的预取应用数据管理器进行分派任务。其是由应用数据预取服务从移动计算设备接收的收集的应用流量数据。
在一个实施例中,为了最小化当分析应用流量数据时由应用流量数据施加的负载,采用适当的过滤器来消除由非文本和非应用MIME类型有效载荷创建的不必要的开销。应当注意,在备选的应用数据预取实施例中,在该过滤动作被发送到应用数据预取服务之前,相反可以通过驻留在移动计算设备上的预取应用数据管理器执行该过滤动作。应用数据预取服务分析应用流量数据(过滤的或未过滤的),如下文将描述的。
1.1.2分析应用流量数据
一旦已经接收到应用流量数据,就分析应用流量数据以标识相关的应用数据。应当注意,通常经由在前述应用流量数据中找到的计算机网络地址来获得由在移动计算设备上运行的应用使用的应用数据。因此,在一个实施例中,分析所接收的应用流量数据以标识相关的应用数据涉及标识一个或多个计算机网络地址,其可以用于访问在其中可以获得相关的应用数据的网络站点。通常,计算机网络地址将是统一资源定位符(URL)。为了方便起见,以下描述将指代URL,然而,应理解到,替换或者除了URL之外,可以采用任何其他计算机网络地址格式。
存在应用通常请求以获得应用数据两种一般类型的URL:静态URL和嵌入式URL。静态URL是自身硬编码为应用代码的URL。因此,在一个实施例中,一个或多个计算机网络地址的前述标识包括硬编码在应用中的一个或多个计算机网络地址。
通常,当首先发起应用时或者当选择应用的主要占位符以用于查看(诸如新闻应用的体育专栏)时,一致地获取与静态URL相关联的应用数据。如此,在一个实施例中,标识静态URL涉及找到跨越给定app的多个运行频繁或一致地获取的那些URL。然而,高速缓存终止也应当考虑到静态URL的标识中。在其中在给定运行中没有获取到特定URL的情况下,可能副本已经存在于应用的高速缓存中,并且副本尚未终止。这意味着虽然没有获取到URL,但是由其访问的应用数据可以仍然由应用使用。在一个实施例中,由于访问移动应用的私有高速缓存的内容通常是不可行的,因而相反对超文本传输协议(HTTP)消息的高速缓存控制生存时间(TTL)指示符进行监视,以便跟踪高速缓存终止时间。利用该知识,独立于是从本地高速缓存还是从应用服务器获取相关联的应用数据,准确地预测应用请求给定URL的次数是可能的。这通过改进计算URL请求频率的准确度来改进静态URL预测。
关于嵌入式URL,可以在与静态URL相关联的文本和标签数据中被找到或可以从先前所接收的应用数据提取这些嵌入式URL。考虑到可以在静态URL或在先前所接收的应用数据中找到链接到应用数据的URL,在一个实施例中,一个或多个计算机网络地址的前述标识包括标识使用所标识的(一个或多个)硬编码的计算机网络地址获得的应用数据中列出的一个或多个补充计算机网络地址。更进一步地,可以在使用补充URL访问的先前所接收的应用数据中找到更多URL。鉴于此,在一个实施例中,一个或多个计算机网络地址的前述标识包括标识使用所标识的(一个或多个)补充计算机网络地址获得的应用数据中列出的一个或多个附加的计算机网络地址。
在一个实施例中,使用正则表达式的规定列表来从先前所标识的URL地址中的文本和标签或经由先前所标识的URL地址访问的应用数据中标识(并且提取)嵌入式URL。应当注意,这些正则表达式能够绕开编码限制。图3中所示的表列出可以被用于标识嵌入式URL的定界符和文件类型。
应当注意,嵌入式URL可以采取两种不同的形式—即,修改的和逐字的。两个嵌入式URL形式之间的差异在于,当在被请求之前改变HTTP响应有效载荷中的嵌入式链接时(例如,通过添加文字和/或替换链接中的其他文字),链接被认为是修改的URL,然而如果其当其出现时被请求时,链接被认为是逐字的URL。估计应用的所请求的应用日期的多达50%与修改的URL相关联。
因此,在一个实施例中,标识一个或多个计算机网络地址的部分包括:将展示修改的形式的地址转译为可以被用于访问网络站点的可用形式。参考图4,在一个示例性实施方式中,该转译涉及首先使用常规URL分割方法将修改的URL分割为组件部分(过程动作400)。其次,选择先前未选择的组件部分(过程动作402),并且确定是否存在与所选择的组件相关联的规定替换组件或规定附加组件主题(过程动作404)。如果存在的话,则对所选择的组件做出所指示的替换或者添加。如果不存在的话,则不对所选择的组件做出改变。然后,确定是否存在剩余的修改的URL的任何未选择的组件(过程动作408)。如果是的话,那么适当重复过程动作402到过程动作408。否则,现在完整地转译的URL被指派为可用URL(过程动作410),并且程序结束。
可以使用机器转译方案生成与修改的URL组件相关联的规定的替换组件或规定的附加组件主题的列表,以基于修改的URL与由应用用于访问应用数据的对应的URL的比较以及通过使用常见转译创建转译库。图5中所示的表提供可以被用于转译修改的URL的语法规则的示例性集合。
除了上文所描述的静态URL和嵌入式URL之外,在一个实施例中,由移动计算设备的用户通过应用访问的URL从应用流量数据被提取并且被包括在所标识的URL的列表中。而且,在一个实施例中,应用数据预取服务获得URL以基于关于相同应用的其他用户的其流行度将URL添加到所标识的URL的列表。例如,参考图6,该一个实施方式涉及首先监视由在采用应用数据预取服务的其他计算设备上操作的相同应用访问的计算机网络地址(例如,URL)。标识由具有超过规定阈值的频率的、在其他计算设备上操作的应用访问的一个或多个流行计算机网络地址(过程动作602),并且指定在经由所标识的流行计算机网络地址可访问的(一个或多个)网络站点上找到的应用数据以用于预取(过程动作604)。然后,预取该应用数据连同与其他所标识的URL相关联的应用数据(过程动作606)。
应当注意,在一些情况下,当应用获取应用数据时,应用要求用户鉴别证书。在这样的情况下,在没有通过利用用户的证书冒充用户的情况下,获取与所标识的URL相关联的应用数据可以是不可能的。因此,需要标识并且模仿应用鉴别机制(诸如cookie***或OAuth2协议)。
1.1.3预取应用数据
如上文所指示的,对先前所标识的应用数据进行预取。在一个实施例中,这涉及对所有所标识的应用数据进行预取,而在另一实施例中,仅对所标识的应用数据中的一些所标识的应用数据进行预取。
在对所标识的应用数据中的仅一些所标识的应用数据进行预取的情况下,一个实施方式采用排名方案。在该实施方式中,分析所接收的应用流量数据涉及标识多个计算机网络地址(例如,URL)。这些地址中的每个地址可以用于访问在其中可以获得相关的应用数据的网络站点。对地址进行排名,并且然后仅对在对应于规定数目的最高排名的所标识的计算机网络地址的站点上找到的应用数据进行预取。
当对所标识的计算机网络地址进行排名时,可以考虑多个排名因素。在一个实施例中,确定每个网络地址被应用访问的频率,并且至少部分以其被访问的频率对地址进行排名。在该方案中,频率越高,排名就越高。在另一实施例中,确定包括应用访问所标识的计算机网络地址的时间顺序的访问模式,并且至少部分通过时间顺序对地址进行排名。在这种情况下,更早访问的计算机网络地址比更晚访问的地址排名更高。在又一实施例中,确定与在所标识的计算机网络地址中找到的文本相关联的、或和标签或经由所标识的计算机网络地址可获得的应用数据相关联的、或以上二者相关联的关键字的频率。然后,至少部分通过其相关联的关键字的频率对地址进行排名。此处,相关联的关键字的频率越高,地址的排名越高。应当注意,还可以采用其他排名方案,并且这些排名方案可以单独使用或组合用于建立针对所标识的计算机网络地址中的每个计算机网络地址的排名。用于组合排名因素的任何适当的常规方法可以被用于完成该后者任务。
一旦已经对所标识的计算机网络地址进行排名,决定就将对由其访问的内容的哪个部分进行预取。在一个单个实施例中,对于最高排名地址相关联的应用数据进行预取直到达到规定字节限制(例如,100MB)。换句话说,预取将以最高排名的URL开始并且然后对列表向下进行并且当所下载的应用数据的总数量达到规定限制时停止。
然而,在一个备选实施例中,其中预取应用数据的规定数目的最高排名地址取决于一个或多个外部因素而变化。以示例而非限制的方式,该数目可以基于以下因素中的至少一个。第一,可以考虑在移动计算设备上可用的剩余的电池电源。在一个实施方式中,与可用的剩余的电池电源的数量成正比更高地设定规定数目。可以考虑的另一因素是通信网络的当前性能的度量。在一个实施方式中,与当前网络性能的更高的度量成正比更高地设定规定数目。又一因素是延长的断开连接的时段的预期。在一个实施方式中,由于假定针对在该延长的时间段期间操作的应用将需要更多应用数据,因而每当预期断开连接的延长时段,更高地设定规定数目。
为了实现在确定预取多少应用数据的前述因素中的一些因素,并且当在一个实施例中时,除接收应用流量数据之外,还从移动计算设备接收环境数据。在一个实施方式中,该环境数据预测断开连接的时段将何时发生(并且如果可能的话,时段可以是多长)。如上文所指示的,该预测性信息可以用于促进应用对数据预取(和数量)的调度,使得其可以在所预测的断开连接的时段之前提供。应当注意,已经广泛地研究可以由移动计算设备收集和提供的环境数据的类型(诸如移动设备电池状态、用户移动性、位置和网络历史(包括Wi-Fi连接、蜂窝连接和断开连接的时段))、用户数据(包括日历事件和电子邮件)以及在估计断开连接时段和长度时所涉及的逻辑。如此,出于本文所描述的应用数据预取实施例的目的,当前可用的方法用于完成移动计算设备环境数据的收集和分析。
1.1.4提供预取应用数据
如先前所描述的,在当该设备被连接到通信网络时的时间期间,向移动计算设备提供可用的预取的应用数据中的至少一些应用数据。理想地,将提供自从应用数据最后被提供给移动计算设备以来预取的所有应用数据。然而,即使采取前述措施来预期针对潜在的即将到来的断开连接的时段需要多少应用数据并且当其应当被提供时,其仅仅是估计。因此,有时可以在连接的可用时段期间提供并非所有最后获取的应用数据。在这样的情况下,提供可用数据中的至少一些可用数据,并且理想地提供尽可能多的数据。
应当注意,可以从分析从移动计算设备所接收的环境数据来获知的事情之一是通常将在何时并且何处在某一位置找到设备,其中在该位置中,连接的时段可用于移动计算设备。如果预期Wi-Fi连接的时段,则这是特别有价值的。可以常常以降低的成本经由Wi-Fi连接下载到移动计算设备。例如,经由Wi-Fi连接下载数据有时是免费的。为了这个目的,在一个实施例中,在该设备被连接到通信网络时的时间期间将预取的应用数据中的至少一些应用数据提供给移动计算设备的任务涉及在Wi-Fi连接的时段期间提供应用数据,以便降低移动计算设备的用户对于接收应用数据的成本。这由何时和何处Wi-Fi连接的这样的时段将发生的前述预测促进。
还注意到,由于可以预测连接的时段的位置,可以在移动通信设备在这样的时段期间经由通信网络访问的网络站点处方便地对预取的应用数据进行预分级。例如,通信网络可以是Wi-Fi网络和Wi-Fi热点的位置。这将不仅是提供预取的应用数据的高效的方式而且也是成本效益的方式。再次参考图1,通过移动计算设备100与云104之间的折线框示出上文所描述的任选的预分级站点122。注意在架构的一个实施例中,通信网络102可以分为多个不同的通信网络(未示出)。例如,将云104链接到任选的预分级站点122的通信网络可以是一种类型的通信网络(例如,DSL),而将任选的预分级站点122连接到移动计算设备100的通信网络可以是不同的类型的通信网络(例如,Wi-Fi)。即使在没有可选的预分级站点的实施例中,由移动计算设备用于将应用数据流量(和可能的环境数据)发送给应用数据预取服务的通信网络的类型可以是一种类型的通信网络(例如,蜂窝),而由应用数据预取服务用于将预取应用数据发送给移动计算设备的通信网络可以是不同的通信网络(例如,Wi-Fi)。而且,关于应用数据的前述预分级,预取应用数据可以被封装在一个或多个文件中(诸如在压缩的压缩文件中)并且然后被分级。例如,在其中下载的预取应用的数量限于规定数量的字节(例如,100MB)的实施例中,该数据量可以封装在文件中并且预分级以用于下载。
在又一实施例中,除了应用数据预取服务在连接的预期时段期间将应用数据推送到移动计算设备之外,响应于接收到来自移动计算设备的指令以提供数据,还可以将预取应用数据发送到移动计算设备。例如,移动计算设备的用户可以实现他或她将意外地离线并且希望提前下载应用数据。为了这样做,用户将诸如通过选择移动计算设备的触摸屏上的预取的应用数据下载图标来使得经由常规用户界面从移动计算设备发送前述指令。
1.2预取应用数据管理器
再次参考图1,驻留在移动计算设备100上的预取应用数据管理器112包括两个高层组件—即,收集和存储模块118和虚拟连接的网络接口模块120。收集和存储模块118通常收集并存储先前所描述的应用流量数据(以及在一个实施例中,移动设备环境数据)。还利用将应用流量数据(和可能的环境数据)周期性地提供给应用数据预取服务108对模块118进行分派任务。虚拟连接的网络接口模块120通常在断开连接的时段期间使所存储的应用数据可用于应用。
图7A-图7B概括了用于在与通信网络的断开连接的时段期间将预取应用数据提供给应用的过程的通用实施例,其中应用正在移动计算设备上操作,并且经由具有由移动计算设备可执行的程序模块的计算机程序实现过程。过程以收集并且存储在移动计算设备中的应用流量数据开始(过程动作700)。如先前所描述的,应用流量数据包括指定其中可以获得与应用相关的应用数据的网络站点的至少一个计算机网络地址。经由通信网络将所存储的应用流量数据周期性地提供给服务(诸如先前所描述的应用数据预取服务)。作为响应,经由通信网络从服务或中间预分级站点接收并且存储(过程动作708)预取应用数据。预取应用数据表示用于在断开连接的时段启用操作的应用。在一个实施方式中,利用前述过程动作对先前所描述的收集和存储模块进行分派任务。然后确定在断开连接的时段期间应用是否正在移动计算设备上操作(过程动作710)。如果不是的话,则移动计算设备继续监视断开连接的时段。然而,如果确定在断开连接的时段期间应用在移动计算设备上操作,那么模拟针对应用的虚拟连接的网络接口(过程动作712)。虚拟连接的网络接口截获来自应用的针对应用数据的请求(过程动作714)。然后,确定是否存在对应于所截获的请求的、可用于提供给应用的所存储的预取数据(过程动作716)。如果存在的话,则将对应于所截获的请求的所存储的预取应用数据提供给应用(过程动作718)。然而,如果尚未存储对应于所截获的请求的预取应用数据,那么虚拟连接的网络接口发出不可用性消息(过程动作720)。在一个实施方式中,不可用性消息是HTTP 404消息。然后确定在断开连接的时段期间应用是否仍然在移动计算设备上操作(过程动作722)。如果是的话,重复过程动作714到过程动作722。否则,过程结束。在一个实施方式中,利用以过程动作710开始的前述动作对先前所描述的虚拟连接的网络接口模块进行分派任务。还应当注意到,关于前述不可用性消息,在备选实施例中,当尚未存储对应于所截获的请求的预取应用数据时,不发出不可用性消息。相反,虚拟连接的网络接口模块使应用认为URL将被获取但是工作是简单缓慢的。由于通常地以关于网络通信的异步方式写入应用,因而这不会阻碍用户体验。另外,由于其将不期望不可用性消息,因而其可以甚至避免应用崩溃或将错误消息发给用户。
应当注意,在其中先前所描述的移动计算设备环境数据还被供应到应用数据预取服务的实施例中,修改前述过程以包括收集并且存储移动计算设备中的环境数据(过程动作702)。另外,经由通信网络将环境数据周期性地提供给服务(诸如先前所描述的应用数据预取服务)(过程动作706)。通过图7A中的折线框指示这两个动作的可选的性质。
还应当注意,在收集和存储模块和虚拟连接的网络接口模块二者的设计中,期望这些模块不要求对应用功能的修改或来自相关联的应用服务器的贡献。如在以下描述中将看到,这已经被完成。
1.2.1收集并且存储应用流量数据
如先前所指示的,在移动计算设备中收集并且存储应用流量数据。在一个实施例中,这通过运行移动计算设备上的本地代理服务器而被完成,其截获并且监视前述应用流量数据并且将该数据周期性地馈送给应用数据预取服务。在一个实施方式中,至少部分地通过记录URL HTTP GET请求来收集应用流量数据。可以使用Telerik公司的FiddlerCore.net类库实现本地代理服务器,其设计有在没有用户界面的情况下作为后台过程运行的能力。
先前所描述的是,应用数据预取服务可以通过使用适当的过滤器消除由非文本和非应用MIME类型有效载荷创建的不需要的开销来最小化当分析应用流量数据时施加的负载。备选地,在该过滤被发送到应用数据预取服务之前,相反可以通过驻留在移动计算设备上的预取应用数据管理器完成该过滤。
另外,先前所描述的是,应用数据预取服务分析应用流量数据以标识计算机网络地址(例如,URL)。然而,在备选实施例中,相反将由驻留在移动计算设备上的预取应用数据管理器完成该功能。在该备选实施例中,预取应用数据管理器将向应用数据预取服务发送列出所有所标识的URL的URL概要来代替应用流量数据。
1.2.2虚拟连接的网络接口
还如先前所指示的,虚拟连接的网络接口模块使所存储的预取应用数据可用于在与通信网络的断开连接的时段期间在移动计算设备上运行的应用。在一个实施例中,这使用具有高速缓存功能的本地代理服务器而被完成,其截获应用请求并且反馈其在高速缓存中可用的预取应用数据。实现本地代理服务器的一个方式是通过使用前述Telerik公司的FiddlerCore.net类库。
然而,并非所有应用被设计在当离线时显示旧应用数据。实际上,当一些应用检测到移动计算设备断开时,其将不显示任何内容。为了在这些类型应用中绕开该限制,在不修改应用代码的情况下,虚拟连接的网络接口模块冒充设备连接。在一个实施方式中,这通过禁用移动计算设备的操作***采用以指示在断开连接的时段期间的应用的连接状态的特征而被完成。该特征将然后在连接的时段期间重新启用,并且禁用虚拟连接的网络接口。
2.0示例性操作环境
本文所描述的应用数据预取实施例操作在许多类型的通用或专用计算***环境或配置内。图8图示了在其上可以实现如本文所描述的应用数据预取的各种实施例和元件的通用计算机***的简化示例。应当注意,由图8中所示的简化计算设备10中的折线或虚线表示的任何框表示简化计算设备的备选的实施例。如下文所描述的,可以组合贯穿该文档描述的其他备选实施例使用任何或全部这些备选实施例。通常地在具有至少一些最小计算能力的设备中找到简化计算设备10,诸如个人计算机(PC)、服务器计算机、手持式计算设备、膝上型计算机或移动计算机、通信设备诸如手机和个人数字助理(PDA)、多处理器***、基于微处理器的***、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机和音频或视频媒体播放器。
为了允许设备实现本文所描述的应用数据预取实施例,设备应当具有足够的计算能力和***存储器以启用基本计算操作。具体而言,通常由(一个或多个)处理单元12图示图8中所示的简化计算设备10的计算能力,并且还可以包括(一个或多个)图形处理单元(GPU)14,其中的一个或二者与***存储器16通信。注意简化计算设备10的处理单元12可以是专用微处理器(诸如数字信号处理器(DSP)、超长指令字(VLIW)处理器、现场可编程门阵列(FPGA)或其他微控制器)或可以是具有一个或多个处理核心的常规中央处理单元(CPU)。
另外,图8中所示的简化计算设备10还可以包括诸如通信接口18的其他组件。简化计算设备10还可以包括一个或多个常规计算机输入设备20(例如,指点设备、键盘、音频(例如,声音)输入设备、视频输入设备、触觉输入设备、手势标识设备、用于接收有线或无线数据传输的设备,等等)。简化计算设备10还可以包括其他可选的组件,诸如一个或多个常规计算机输出设备22(例如,(一个或多个)显示设备24、音频输出设备、视频输出设备、用于传输有线或无线数据传输的设备等)。注意针对通用计算机的典型的通信接口18、输入设备20、输出设备22和存储设备26对本领域的技术人员而言是众所周知的,并且将不在本文中详细描述。
图8中所示的简化计算设备10还可以包括各种计算机可读介质。计算机可读介质可以是可以由计算机10经由存储设备26访问的任何可用介质,并且可以包括用于存储信息(诸如计算机可读指令或计算机可执行指令、数据结构、程序模块或其他数据)的可移除28和/或不可移除30的易失性介质和非易失性介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质是指有形计算机可读或机器可读介质或存储设备,诸如数字多用光盘(DVD)、压缩光盘(CD)、软盘、磁带驱动器、硬盘驱动器、光盘驱动器、固态存储器设备、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器或其他存储器技术、磁带盒、磁带、磁盘存储或其他磁性存储设备。
还可以通过使用任何各种前述通信介质(与计算机存储介质相反)完成对信息(诸如计算机可读指令或计算机可执行指令、数据结构、程序模块等)的保留,以编码一个或多个经调制的数据信号或载波或其他传输机制或通信协议,并且可以包括任何有线或无线信息递送机制。注意,术语“经调制的数据信号”或“载波”通常指代具有其特性集中的一个或多个特性或以关于将信息编码在信号中的这样的方式改变的信号。例如,通信介质可以包括有线介质(诸如携带一个或多个经调制的数据信号的有线网络或直接有线连接)和无线数据(诸如声音、射频(RF)、红外、激光和用于发送和/或接收一个或多个经调制的数据信号或载波的其他无线介质)。
可以从计算机可读介质或机器可读介质或存储设备和以计算机可执行指令或其他数据结构的形式的通信介质的任何期望的组合,来存储、接收、传输或读取实现本文所描述的各种应用数据预取实施例中的一些或全部或其部分的软件、程序和/或计算机程序产品。
最后,还可以在由计算设备执行的计算机可执行指令(诸如程序模块)的通用上下文中描述本文所描述的应用数据预取实施例。通常,程序模块包括例程、程序、对象、组件、数据结构等,其执行特定任务或实现特定抽象数据类型。还可以在其中通过一个或多个远程处理设备执行任务的分布式计算环境中或通过一个或多个通信网络链接的一个或多个设备的云内实践应用数据预取实施例。在分布式计算环境中,程序模块可以位于包括介质存储设备的本地计算机存储介质和远程计算机存储介质二者中。此外,前述指令可以部分或全部被实现为硬件逻辑电路,其可以包括处理器或可以不包括处理器。
3.0其他实施例
虽然对应用流量数据的分析以及预取和提供应用数据被描述为由前述描述中的基于云的应用数据预取服务完成,但是在备选实施例中,可以在单独的移动计算设备中完成这些任务。在该备选实施例中,先前所描述的应用数据标识、预取模块和预取数据提供模块将驻留在移动计算设备中,而不是驻留在基于云的服务中。除了关于将应用数据发送给移动计算设备涉及的那些之外,大部分先前所描述的特征将也适于该单独的实施例。另外,虽然将不需要将移动计算设备链接到应用数据预取服务的通信网络,但是网络将仍然用于与从其预取应用数据的网络站点通信。
鉴于前述内容,图9A-9B提供了对于移动计算设备预取应用数据以用于在与通信网络的断开连接的时段期间由在其上操作的应用使用的过程的通用实施例。过程以收集并且存储在移动计算设备中的应用流量数据开始(过程动作900)。如先前所描述的,应用流量数据包括指定在其中可以获得与应用应该的应用数据的网络站点的至少一个计算机网络地址。然后分析应用流量数据以标识待预取的应用数据,以在与通信网络断开连接的时段期间启用对应用的操作(过程动作904)。然后,对所标识的应用数据进行预取和存储(过程动作906)。接下来,确定在断开连接的时段期间应用是否在移动计算设备上操作(过程动作908)。如果不是的话,则移动计算设备继续监视断开连接的时段。然而,如果确定在断开连接的时段期间应用在移动计算设备上操作,那么针对应用模拟虚拟连接的网络接口(过程动作910)。虚拟连接的网络接口截获来自针应用的对应用数据的请求(过程动作912)。然后,确定是否存在对应于所截获的请求的、可用于提供给应用的所存储的预取数据(过程动作914)。如果存在的话,则将对应于所截获的请求的所存储的预取应用数据提供给应用(过程动作916)。然而,如果尚未存储对应于所截获的请求的预取应用数据,那么虚拟连接的网络接口发出不可用性消息(过程动作918)。然后确定在断开连接的时段期间应用是否仍然在移动计算设备上操作(过程动作920)。如果是的话,重复过程动作912到过程动作920。否则,过程结束。
应当注意,前述单独的实施例还可以收集并使用先前所描述的环境数据。在这样的情况下,前述过程被修改为包括收集和存储环境数据(过程动作902)。与非单独的实施例一样,环境数据可以预测断开连接的时段将何时发生,并且可能地时段可以是多长。该预测性信息可以用于促进对应用数据预取(和数量)的调度,使得其可以在断开连接的所预测的时段之前发生。另外,环境数据可以用于预测何时并且何处在位置中通常找到设备,其中在该位置中,连接的时段可用于移动计算设备的位置。如先前所描述的,如果预期Wi-Fi连接的时段,则这是特别有价值的。可以常常以降低的成本或者甚至免费经由Wi-Fi连接将数据下载到移动计算设备。因此,可以降低或者消除预取应用数据的成本。
还应当注意到,虽然采用虚拟连接的网络接口冒充网络接口的所描述的前述描述截获应用请求并且提供适于请求的所存储的应用数据(如果有的话),但是存在可以与一些应用一起使用的备选实施例。在一些应用中,将预取应用数据直接存储到应用的私有高速缓存中是可能的。由于这些应用在请求附加应用数据之前检查高速缓存的数据,因而这起作用。
此外,应当注意,对于移动计算设备或移动应用平台的应用的开发者可以允许其嵌入的URL内容可容易提取。URL还可以包括广告内容,即使当用户离线时,其也通过实现用于存储广告访问和预取基于广告的应用数据的方法来促进产生收入。
最后,应当注意,可以以形成附加混合实施例期望的任何组合使用贯穿描述的任何或全部前述实施例。另外,虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是应理解到,所附的权利要求中定义的主题不必限于以上所描述的特定特征或动作。相反,公开以上所描述的特定特征和动作作为实现权利要求的示例形式。

Claims (17)

1.一种用于向移动计算设备推送应用数据以在与通信网络的断开连接的时段期间由在所述移动计算设备上操作的应用使用的计算机实现的方法,包括:
使用一个或多个计算设备来执行以下过程动作:
从所述移动计算设备接收应用流量数据,所述应用流量数据包括指定网络站点的至少一个计算机网络地址,在所述网络站点中,与所述应用有关的应用数据能够被获得;
分析所接收的应用流量数据以标识要被预取的所述应用数据,以在与通信网络的断开连接的时段期间启用对所述应用的操作;
从所述移动计算设备接收移动计算设备环境数据,所述移动计算设备环境数据至少预测断开连接的时段何时将发生并且所述时段将是多久;
在所预测的断开连接的时段之前,对应用数据的所述预取进行调度并且对向所述移动计算设备提供所述应用数据中的至少一些应用数据进行调度,其中被提供的应用数据的量至少部分地基于所预测的所述断开连接的时段的长度;
预取所标识的应用数据;以及
在当所述移动计算设备被连接到通信网络时的一个或多个调度时间,向所述移动计算设备提供所述预取应用数据中的至少一些预取应用数据,以用于由所述移动计算设备存储。
2.根据权利要求1所述的方法,其中分析所接收的应用流量数据以标识要被预取的所述应用数据的所述过程动作包括以下动作:标识一个或多个计算机网络地址,每个计算机网络地址能够被用于访问要被预取的应用数据能够被获得的网络站点。
3.根据权利要求2所述的方法,其中标识一个或多个计算机网络地址的所述过程动作包括以下动作:标识被硬编码在所述应用中的一个或多个计算机网络地址。
4.根据权利要求3所述的方法,其中标识一个或多个计算机网络地址的所述过程动作还包括以下动作:标识在使用所标识的硬编码的计算机网络地址可访问的一个或多个网络站点中找到的补充计算机网络地址。
5.根据权利要求4所述的方法,其中标识一个或多个计算机网络地址的所述过程动作还包括以下动作:标识在使用所标识的补充计算机网络地址可访问的一个或多个网络站点中发现的一个或多个附加计算机网络地址。
6.根据权利要求2所述的方法,其中计算机网络地址能够是修改形式,所述修改形式是由所述应用不直接用于访问网络站点的任何形式,并且其中标识一个或多个计算机网络地址的所述动作包括以下动作:将展示修改形式的每个所标识的计算机网络地址转换成能够用于访问网络站点的可使用形式。
7.根据权利要求1所述的方法,还包括以下过程动作:
监视由在其他计算设备上操作的相同应用访问的所述计算机网络地址;
标识由在其他计算设备上操作的所述相同应用访问的、具有超过规定阈值的频率的一个或多个流行计算机网络地址;
指定能够经由所标识的流行计算机网络地址访问的一个或多个网络站点上找到的流行应用数据将要被预取,以在与通信网络的断开连接的时段期间启用对所述应用的操作;以及
预取所标识的流行应用数据。
8.根据权利要求1所述的方法,其中所有的所标识的应用数据将要被预取。
9.根据权利要求1所述的方法,其中分析所接收的应用流量数据以标识要被预取的所述应用数据的所述过程动作包括以下动作:标识多个计算机网络地址,每个计算机网络地址能够被用于访问要被预取的应用数据能够被获得的网络站点,并且其中预取所标识的应用数据的所述过程动作包括以下动作:对所标识的计算机网络地址进行排名,并且以从最高到最低排名顺序从所标识的计算机网络地址预取所标识的应用数据直到达到规定下载字节限制。
10.根据权利要求9所述的方法,其中对所标识的计算机网络地址进行排名的所述过程动作包括以下动作:
确定每个所标识的计算机网络地址被所述应用访问的频率;以及
至少部分地通过所标识的计算机网络地址被访问的所述频率来对所标识的计算机网络地址进行排名。
11.根据权利要求9所述的方法,其中对所标识的计算机网络地址进行排名的所述过程动作包括以下动作:
确定包括所述应用访问所标识的计算机网络地址的时间顺序的访问模式;以及
至少部分地通过所述时间顺序来对所标识的计算机网络地址进行排名。
12.根据权利要求9所述的方法,其中对所标识的计算机网络地址进行排名的所述过程动作包括以下动作:
确定与以下至少一项相关联的关键字频率:在所标识的计算机网络地址中找到的文本和标签、以及经由所标识的计算机网络地址可获得的应用数据;以及
至少部分地通过与其相关联的所述关键字频率来对所标识的计算机网络地址进行排名。
13.根据权利要求9所述的方法,其中最高排名的标识的计算机网络地址的规定数目基于以下各项中的至少一项被确定:(i)所述移动计算设备上可用的剩余的电池电源,所述规定数目被设置为与可用的剩余的电池电源的数量成正比更高;或(ii)所述通信网络的当前性能的度量,所述规定数目被设置为与所述当前网络性能的更高的度量成正比更高;或(iii)预期的延长断开连接的时段,每当断开连接的延长时段被预期时,所述规定数目被设置为更高。
14.根据权利要求1所述的方法,其中在当所述移动计算设备被连接到通信网络时的一个或多个调度时间向所述移动计算设备提供所述应用数据中的至少一些应用数据以用于由所述移动计算设备存储的所述过程动作包括以下动作:在所述移动计算设备经由通信网络具有对其访问的站点处对所述预取数据进行预分级。
15.根据权利要求14所述的方法,其中分析所接收的应用流量数据以标识所述要被预取的所述应用数据的所述过程动作包括以下动作:标识多个计算机网络地址,其中每个计算机网络地址能够被用于访问要被预取的应用数据能够被获得的网络站点,并且其中预取所标识的应用数据的所述过程动作包括以下动作:对所标识的计算机网络地址进行排名,并且以从最高到最低排名顺序从所标识的计算机网络地址预取所标识的应用数据直到达到规定下载字节限制,并且其中在所述移动计算设备经由通信网络具有对其访问的站点处对所述预取数据进行预分级的所述过程动作包括以下动作:将所预取的应用数据打包成一个或多个文件并且在所述移动计算设备经由通信网络具有对其访问的站点处对所述文件进行预分级。
16.根据权利要求1所述的方法,其中所述移动计算设备环境数据还预测Wi-Fi连接的时段何时将发生,并且其中在当所述移动计算设备被连接到通信网络时的一个或多个调度时间向所述移动计算设备提供所述预取应用数据中的至少一些预取应用数据以用于由所述移动计算设备存储的所述过程动作包括:在预测的Wi-Fi连接的时段期间提供所述预取应用数据中的至少一些预取应用数据,以便降低针对所述移动计算设备的用户用于接收所述应用数据的成本。
17.一种用于向移动计算设备提供应用数据以在与通信网络的断开连接的时段期间由在所述移动计算设备上操作的应用使用的***,包括:
一个或多个计算设备,当存在多个计算设备时,所述计算设备彼此通信;以及
计算机程序,其具有能够由所述移动计算设备执行的程序模块,所述计算设备由所述计算机程序的所述程序模块引导以:
从所述移动计算设备接收应用流量数据,所述应用流量数据包括指定网络站点的至少一个计算机网络地址,在所述网络站点中,与所述应用有关的应用数据能够被获得,
分析所接收的应用流量数据以标识要被预取的所述应用数据,以在与通信网络的断开连接的时段期间启用对所述应用的操作,
预取所标识的应用数据,以及
通过在所述移动计算设备经由Wi-Fi具有对其访问的站点处对预取数据进行预分级,在当所述移动计算设备被连接到通信网络时的时间期间,向所述移动计算设备提供预取应用数据中的至少一些预取应用数据,以用于由所述移动计算设备存储。
CN201580013378.8A 2014-03-10 2015-02-27 预取断开连接时段的应用数据 Active CN106105160B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/203,496 2014-03-10
US14/203,496 US9591095B2 (en) 2014-03-10 2014-03-10 Prefetching application data for periods of disconnectivity
PCT/US2015/017886 WO2015138147A1 (en) 2014-03-10 2015-02-27 Prefetching application data for periods of disconnectivity

Publications (2)

Publication Number Publication Date
CN106105160A CN106105160A (zh) 2016-11-09
CN106105160B true CN106105160B (zh) 2019-06-11

Family

ID=52686486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580013378.8A Active CN106105160B (zh) 2014-03-10 2015-02-27 预取断开连接时段的应用数据

Country Status (5)

Country Link
US (1) US9591095B2 (zh)
EP (1) EP3117341B1 (zh)
KR (1) KR102294326B1 (zh)
CN (1) CN106105160B (zh)
WO (1) WO2015138147A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102077495B1 (ko) * 2013-07-17 2020-02-14 한국전자통신연구원 웹 서버 및 웹 요구사항 예측을 이용한 웹 서버의 성능 향상 방법
PL2924581T3 (pl) * 2014-03-24 2020-02-28 Pingdom Ab Sposób, serwer i agent do monitorowania wzorców interakcji użytkownika
JP6340917B2 (ja) * 2014-05-23 2018-06-13 富士ゼロックス株式会社 文書管理プログラム、文書閲覧編集プログラム、文書管理装置、端末装置及び文書管理システム
US11095743B2 (en) 2014-07-16 2021-08-17 Tensera Networks Ltd. Optimized content-delivery network (CDN) for the wireless last mile
US9979796B1 (en) 2014-07-16 2018-05-22 Tensera Networks Ltd. Efficient pre-fetching notifications
WO2016009285A1 (en) 2014-07-16 2016-01-21 Tensera Networks Ltd. Efficient content delivery over wireless networks using guaranteed prefetching at selected times-of-day
US10506027B2 (en) 2014-08-27 2019-12-10 Tensera Networks Ltd. Selecting a content delivery network
US9723470B1 (en) 2015-04-30 2017-08-01 Tensera Networks Ltd. Selective enabling of data services to roaming wireless terminals
WO2017064586A1 (en) 2015-10-15 2017-04-20 Tensera Networks Ltd. Freshness-aware presentation of content in communication terminals
US10015253B2 (en) * 2015-12-10 2018-07-03 Sap Se System and method for preemptive request processing
US10334024B2 (en) 2016-01-20 2019-06-25 Samsung Electronics Co., Ltd. Electronic communication device
US20170366875A1 (en) * 2016-06-15 2017-12-21 Honeywell International Inc. Method and apparatus for automation of personalized maintenance tasks with built-in simulation and data synchronization support in energy distribution industry or other industry
KR101962426B1 (ko) * 2016-12-27 2019-03-26 한국과학기술원 모바일 애플리케이션 콘텐츠 로딩 가속화 방법 및 장치
WO2018234967A1 (en) 2017-06-19 2018-12-27 Tensera Networks Ltd. SILENT CONTENT UPDATE IN USER DEVICES
US11689963B2 (en) * 2017-09-28 2023-06-27 Apple Inc. Data pre-fetch upon imminent WiFi link loss
US10834180B2 (en) * 2017-10-09 2020-11-10 Level 3 Communications, Llc Time and location-based trend prediction in a content delivery network (CDN)
US11468175B2 (en) * 2019-07-31 2022-10-11 Salesforce, Inc. Caching for high-performance web applications
US11146656B2 (en) * 2019-12-20 2021-10-12 Tealium Inc. Feature activation control and data prefetching with network-connected mobile devices
KR20230080902A (ko) 2021-11-30 2023-06-07 한국전자통신연구원 분산 컴퓨팅 환경에서의 데이터 선 적재 장치 및 이를 이용한 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101690128A (zh) * 2007-06-29 2010-03-31 诺基亚公司 用于下载内容以便离线浏览的***、方法、设备以及计算机程序产品
CN102077286A (zh) * 2008-06-30 2011-05-25 微软公司 为计算机和媒体播放器上消费的内容提供多个上下文级别

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8516114B2 (en) 2002-03-29 2013-08-20 International Business Machines Corporation Method and apparatus for content pre-fetching and preparation
WO2004114529A2 (en) * 2003-06-16 2004-12-29 Mentat Inc. Pre-fetch communication systems and methods
US7483941B2 (en) * 2004-01-13 2009-01-27 International Business Machines Corporation System and method for dynamically inserting prefetch tags by the web server
US20070033155A1 (en) * 2005-08-02 2007-02-08 Landsman Richard A Client/server web application architectures for offline usage, data structures, and related methods
US7594003B2 (en) * 2005-08-02 2009-09-22 Aol Llc Client/server web application architectures for offline usage, data structures, and related methods
US7747749B1 (en) * 2006-05-05 2010-06-29 Google Inc. Systems and methods of efficiently preloading documents to client devices
US20100037204A1 (en) 2008-08-07 2010-02-11 Google Inc. Content Distribution for Mobile Device
TWI384378B (zh) 2008-12-29 2013-02-01 Ind Tech Res Inst 網頁應用程式執行方法
US20110029670A1 (en) 2009-07-31 2011-02-03 Microsoft Corporation Adapting pushed content delivery based on predictiveness
US8874129B2 (en) 2010-06-10 2014-10-28 Qualcomm Incorporated Pre-fetching information based on gesture and/or location
US8457653B2 (en) 2011-02-25 2013-06-04 Nokia Corporation Method and apparatus for pre-fetching location-based data while maintaining user privacy
US8825749B2 (en) * 2011-10-21 2014-09-02 Yahoo! Inc. Method of tracking offline user interaction in a rendered document on a mobile device
US8509816B2 (en) * 2011-11-11 2013-08-13 International Business Machines Corporation Data pre-fetching based on user demographics
US9389088B2 (en) * 2011-12-12 2016-07-12 Google Inc. Method of pre-fetching map data for rendering and offline routing
US9578495B2 (en) * 2011-12-19 2017-02-21 Qualcomm Incorporated Handling impaired wireless connection in a communication system
US8849731B2 (en) 2012-02-23 2014-09-30 Microsoft Corporation Content pre-fetching for computing devices
US9066370B2 (en) 2012-03-02 2015-06-23 Seven Networks, Inc. Providing data to a mobile application accessible at a mobile device via different network connections without interruption
CN111614980B (zh) 2012-08-14 2022-04-12 俄亥俄州立创新基金会 用于通过移动设备来优化网络带宽的使用的***和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101690128A (zh) * 2007-06-29 2010-03-31 诺基亚公司 用于下载内容以便离线浏览的***、方法、设备以及计算机程序产品
CN102077286A (zh) * 2008-06-30 2011-05-25 微软公司 为计算机和媒体播放器上消费的内容提供多个上下文级别

Also Published As

Publication number Publication date
EP3117341B1 (en) 2021-12-01
US20150256641A1 (en) 2015-09-10
CN106105160A (zh) 2016-11-09
WO2015138147A1 (en) 2015-09-17
KR20160135250A (ko) 2016-11-25
KR102294326B1 (ko) 2021-08-25
US9591095B2 (en) 2017-03-07
EP3117341A1 (en) 2017-01-18

Similar Documents

Publication Publication Date Title
CN106105160B (zh) 预取断开连接时段的应用数据
US11886402B2 (en) Systems, methods, and media for dynamically generating informational content
JP5869124B2 (ja) クラウドコンピューティングによって向上したウェブブラウジング
JP6294307B2 (ja) 携帯用装置での閲覧活動を監視及び追跡する方法及びシステム
JP5559273B2 (ja) ユーザ端末で取得した情報に基づいてモバイルアプリケーションの順位を提供する方法及びそのシステム
US9152411B2 (en) Edge computing platform for delivery of rich internet applications
US10580015B2 (en) Systems, methods, and media for executing and optimizing online marketing initiatives
US8365188B2 (en) Content management
CN108280125A (zh) 页面显示的方法、装置、存储介质和电子装置
WO2011041465A1 (en) Enhanced website tracking system and method
WO2012174070A2 (en) Improving access to network content
CN111866158B (zh) 路由方法、装置、计算机设备和存储介质
EP2808792B1 (en) Method and system for using arbitrary computing devices for distributed data processing
CN102375881A (zh) 内容签名通知
CN104919448A (zh) 用于显示数字版本的设备、方法和***
KR101184809B1 (ko) 웹 페이지를 제공하는 방법 및 서버
Choi et al. Appx: an automated app acceleration framework for low latency mobile app
CN103634348A (zh) 终端设备以及发布信息的方法
US10664538B1 (en) Data security and data access auditing for network accessible content
CN113590985B (zh) 页面跳转配置方法、装置、电子设备和计算机可读介质
JP4711359B1 (ja) 情報提示装置、情報提示方法および情報提示プログラム
KR20120016335A (ko) 오프라인 실행을 위한 웹 페이지 사전 캐싱 시스템 및 방법
KR20110108396A (ko) 모바일장치의 동적인 상태를 검색하는 시스템과 방법
CN106325895B (zh) 预载关注网页的启动方法以及***
Hussien et al. Evaluation of Intelligent Mobile Web Pre-fetching System for Mobile Cloud Environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant