建立网络连接的制作方法

文档序号:6496981阅读:161来源:国知局
建立网络连接的制作方法
【专利摘要】在一个实现方式中,一种计算机实施的方法包括在计算设备并且从在计算设备上安装的应用接收对于建立网络连接以通过网络传输和接收数据的请求,其中请求包括信息,该信息指示由应用对于请求的网络连接和数据传输而标识的一个或者多个参数。该方法还可以包括由计算设备延迟建立请求的网络连接直至i)标识了满足作为请求的部分而被提供的一个或者多个参数的可用网络连接,或者ii)对于请求而指定的时间段已经到期。该方法还可以包括响应于在时间段已经到期之前标识满足一个或者多个参数的可用网络而使用标识的可用网络来建立用于应用的请求的网络连接。
【专利说明】建立网络连接
[0001] 相关申请的夺叉引用
[0002] 本申请要求于2011年9月1日提交的第61/530,395号美国临时申请按照35U. S.C. § 119(e)的优先权。该申请的全部内容通过引用并入于此。

【技术领域】
[0003] 本文总体上涉及从计算设备建立网络连接。

【背景技术】
[0004] 在计算设备上的应用经常使用网络连接以向其它计算设备传输数据和从其它计 算设备接收数据。例如,在经由局域网("LAN")连接到因特网的计算设备上安装的因特网 浏览器可以向远程服务器发送对于网页的请求。远程服务器可以通过向计算设备传输与网 页关联的数据来对请求做出响应从而满足因特网浏览器的请求。可以通过打开网络套接字 来建立在计算设备之间的网络连接,这些网络套接字通过可用网络连接创建信道以用于数 据在计算设备之间的双边通信。
[0005] 在另一示例中,移动计算设备(比如智能电话)经常运行软件应用,这些软件应用 使用网络连接以向其它计算设备发送数据和从其它计算设备接收数据。移动计算设备可以 通过无线网络连接(比如IEEE802. 11WI-FI连接)和/或通过公用陆地移动网络("PLMN") 传输数据,该PLMN使用蜂窝无线电电话网络标准,比如增强型数据GSM环境("EDGE")、码 分多址("CDMA")和/或长期演进("LTE")。移动计算设备可以通过打开用于数据在应 用与另一计算设备之间的双边通信的套接字来建立一个或者多个应用可使用的网络连接。 一旦套接字被打开并且网络连接被建立,数据在移动计算设备与另一计算设备之间的传输 就可以开始。


【发明内容】

[0006] 本文总体上描述用于在计算设备之间建立网络连接并且传输数据的方法、技术和 系统。计算设备可以使用利用网络连接请求提供的信息以选择将请求的连接建立在其上的 最优网络。
[0007] 例如,在计算设备上的应用可以请求计算设备建立网络连接,可以通过该网络连 接传达(例如,传输和/或接收)数据。请求可以包括与通信关联的参数,比如请求应用的 标识、将跨越网络传达的数据量和类型以及足以承载通信的网络的最大延时和/或最小带 宽。参数也可以例如包括延迟参数,延迟参数指示用于计算设备建立网络连接的可接受延 迟,该网络连接满足由应用提供的参数。计算设备然后可以使用来自请求的参数以发现与 之连接的适当网络。如果适当网络并非立即可用,则计算设备例如可以在可接受延迟时段 内延迟建立连接直至发现适当网络。或者,如果可接受延时段到期而尚未发现适当网络,则 计算设备可以丢弃请求。
[0008] 附加实现方式可以包括用于基于成本选择和/或延迟网络连接的机制。例如,计 算设备可以具有限制与网络连接关联的成本的预算。计算设备可以延迟建立网络连接直至 可以在预算内的价格服务于请求的网络可用。如果无网络可用于在预算内服务于请求,则 可以丢弃请求。计算设备也可以通过在网络之中协商来管理成本以在可能的最低成本服务 于请求。如果多于一个网络可以在预算内服务于请求,则计算设备可以部分基于网络的成 本选择在其上建立网络连接的最优网络。
[0009] 在一个实现方式中,一种计算机实施的方法包括在计算设备并且从在计算设备上 安装的应用接收对于建立网络连接以通过网络传输和接收数据的请求,其中请求包括信 息,该信息指示由应用对于请求的网络连接和数据传输而标识的一个或者多个参数。该方 法还可以包括由计算设备延迟建立请求的网络连接直至i)标识了满足作为请求的部分而 被提供的一个或者多个参数的可用网络连接,或者ii)对于请求而指定的时间段已经到 期。该方法还可以包括响应于在时间段已经到期之前标识满足一个或者多个参数的可用网 络而使用标识的可用网络来建立用于应用的请求的网络连接。
[0010] 这些和其它实现方式可以可选地包括以下特征中的一个或者多个特征。由应用标 识的一个或者多个参数可以包括指示用于请求的网络连接的最小网络带宽的最小网络带 宽参数和指示用于请求的网络连接的最大网络延时的最大网络延时参数。可用网络连接可 以在可用网络连接具有大于或者等于最小网络带宽的可用带宽时满足最小网络带宽参数 并且在可用网络连接具有小于或者等于最大网络延时的当前延时时满足最大网络延时参 数。由应用标识的一个或者多个参数可以包括总数据大小参数,总数据大小参数指示将对 于请求的网络连接而传输和接收的数据的总大小。可用网络连接可以在可用网络连接具有 足以在阈值时间段内传输和接收总大小的数据的最小带宽时满足总数据大小参数。由应用 标识的一个或者多个参数可以包括可接受延迟参数,可接受延迟参数指示在其内请求的网 络连接被允许延迟的时间段。可用网络连接可以在从接收请求时的该时间段内标识可用网 络连接时满足可接受延迟参数。
[0011] 该方法还可以包括在来自在计算设备上安装的其它应用的对于网络连接的一组 其它请求之中对接收的请求排行。可以在接收的请求至少具有在其它请求之中的阈值排行 时建立请求的网络连接。可以至少基于传输和接收用于每个请求的数据的成本对请求排 行。传输和接收每个请求的成本可以基于将对于每个请求而传输和接收的数据的总大小以 及用于通过一个或者多个可用网络传输和接收数据的每数据单位的成本。可以基于用于计 算设备的网络连接预算确定阈值排行,网络连接预算指示可用于计算设备花费以通过网络 连接传输和接收数据的金额。可以至少基于请求中的每个请求的推断的重要性对请求排 行。可以至少基于待传输的数据类型和计算设备的用户是否当前正在与关联于请求中的每 个请求的一个或者多个应用交互来确定请求中的每个请求的推断的重要性。
[0012] 该方法还可以包括:响应于标识一个或者多个可用网络,请求来自一个或者多个 可用网络的报价,接收用于一个或者多个可用网络的报价,其中报价指示用于通过一个或 者多个可用网络传输和接收请求的数据的成本,至少部分基于接收的报价从一个或者多个 可用网络选择可用网络,并且与选择的可用网络建立请求的网络连接。请求来自其的报价 的一个或者多个可用网络中的每个可用网络可以满足一个或者多个参数。
[0013] -个或者多个参数可以包括质量参数,质量参数指示被允许用于请求的网络连接 和数据传输的多个质量级别。该方法还可以包括:标识能够在由质量参数指定的多个质量 级别中的一个或者多个质量级别传输和接收请求的数据的一个或者多个可用网络,并且选 择标识的可用网络中的能够在来自多个质量级别之中的最大质量级别传输和接收请求的 数据的可用网络。可以使用选择的可用网络来建立请求的网络连接。
[0014] 在另一实现方式中,一种移动计算设备包括:无线联网天线,以及网络连接管理 器,网络连接管理器被编程用于接收对于建立网络连接以通过网络传输和接收数据的请 求。请求可以包括信息,信息指示对于请求的网络连接和数据传输而标识的一个或者多个 参数。该移动计算设备还可以包括:请求管理器,被编程用于i)延迟建立请求的网络连接 直至标识了满足作为请求的部分而被提供的一个或者多个参数的可用网络连接,并且ii) 响应于标识满足一个或者多个参数的可用网络并且在对于请求而指定的时间段已经到期 之前,使用无线联网天线来与标识的可用网络建立请求的网络连接。
[0015] 这些和其它实现方式可以可选地包括以下特征中的一个或者多个特征。该移动计 算设备还可以包括:连接定价协商器,被编程用于请求和接收来自一个或者多个可用网络 的报价,其中报价指示用于通过一个或者多个可用网络传输和接收请求的数据的成本。该 移动计算设备还可以包括:请求排行模块,被编程用于至少部分基于由连接定价协商器接 收的报价在对于网络连接的多个其它请求之中对接收的请求排行。网络连接管理器还可以 被编程用于至少部分基于由排行请求模块生成的排行从接收的请求和多个请求之中选择 一个或者多个请求。
[0016] 在另一实现方式中,一种在计算机可读存储设备中体现的计算机程序产品包括指 令,指令在由一个或者多个计算设备执行时使一个或者多个计算设备执行操作,操作包括 从在一个或者多个计算设备上安装的应用接收对于建立网络连接以通过网络传输和接收 数据的请求,其中请求包括信息,信息指示由应用对于请求的网络连接和数据传输而标识 的一个或者多个参数。操作还可以包括延迟建立请求的网络连接直至i)标识了满足作为 请求的部分而被提供的一个或者多个参数的可用网络连接,或者ii)对于请求而指定的时 间段已经到期。操作还可以包括响应于在时间段已经到期之前标识满足一个或者多个参数 的可用网络而使用标识的可用网络来建立用于应用的请求的网络连接。
[0017] 在附图和以下描述中阐述了一个或者多个实现方式的细节。可以提供各种优点。 例如,延迟建立网络连接直至具有用于满足应用的对于有效数据通信的最小要求的充分容 量(例如,可接受带宽和延时特性)的网络可用更高效地使用客户端计算资源和网络资源 二者。此外,在建立网络连接以传输和接收数据时的自动延迟可以例如通过减少使用不充 分连接和与这样的使用关联的成本来减少应用的用户的成本。自动延迟也可以限制传输直 至在用户的预算允许网络使用时的时间。另外,用户可以通过客户端计算设备与一个或者 多个可用网络协商以连接到满足应用的要求的参数的最低成本网络来节省金钱。
[0018] 在附图和以下描述中阐述了一个或者多个实现方式的细节。其它特征、目的和优 点将从描述和附图以及从权利要求变得清楚。

【专利附图】

【附图说明】
[0019] 图1是用于基于关联连接参数建立请求的网络连接的示例系统的概念图。
[0020] 图2图示了网络连接管理器的各种功能单元,这些功能单元包括对请求排行、管 理连接预算和在可用网络之中协商价格。
[0021] 图3描绘了具有网络连接管理器的计算设备的系统图,该网络连接管理器与各种 数据贮存库、客户端应用和可用网络对接。
[0022] 图4A至图4B是用于建立网络连接的示例技术的流程图。
[0023] 图5是示例计算设备的框图。
[0024] 在各附图中的相似标号指示相似单元。

【具体实施方式】
[0025] 本文总体上描述用于更优地建立网络连接的技术、方法、系统和计算机程序产品。 例如,计算设备(比如智能电话)经常运行多个应用,这些应用各自在时间上同时请求连接 到网络以传输或者接收数据。例如,用户可以配置电子邮件应用以定期地与远程电子邮件 服务器同步并且下载新近电子邮件消息,这要求智能电话通过网络与服务器连接。一般而 言,智能电话如今将通过立即打开套接字并且通过其上连接智能电话的任何网络传输和接 收电子邮件数据来自动服务于电子邮件应用的请求。然而,立即建立连接并非总是必需或 者希望的。例如,如果智能电话连接到更慢的网络,则下载电子邮件消息(比如具有多媒体 附件的电子邮件消息)可能使网络的带宽和智能电话的处理容量在拖延的时间内紧张,这 可能不必要地减少可用计算能力并且耗尽设备的电池。
[0026] 计算设备可以管理来自应用的对于建立网络连接的请求以提高设备的网络性能。 例如,计算设备可以延迟建立连接或者传输和接收数据直至具有充分带宽的网络变得可用 或者直至当前可用网络的性能特性(例如,带宽、延时)提高至至少阈值水平。移动计算设 备将遇到在时间段内具有可变性能(和/或成本)特性的可能性可能很高。例如,随着移 动计算设备(例如,智能电话)与它们的用户一起在家里、工作地和其它位置之间行进,计 算设备例如根据计算设备在地理上位于何处可以接入多个WI-FI、EDGE和/或LTE网络。 在应用产生对于建立网络连接的请求时的时间仅可以接入EDGE网络的移动计算设备可以 延迟建立连接直至在计算设备可以接入更快网络(比如WI-FI或者LTE网络)时的稍后时 间。
[0027] 多种技术可以用来管理来自多个应用的对于网络连接的竞争请求。例如,计算设 备可以在或者在大约相同时间从多个应用接收对于网络连接的请求,但是计算设备和/或 可用网络可能无充分容量来用网络连接的关联参数(例如,最小带宽、最大延时)建立网络 连接中的每个网络连接。可以根据多种因素(例如,基于是否响应于用户输入或者从后台 进程产生请求的推断的重要性)对这样的竞争网络连接请求排行以标识计算设备应当在 给定的时间如果有则建立哪些请求的网络连接。
[0028] 多种技术也可以用来管理花费的用于建立网络连接的金钱。例如,网络提供者 (例如,无线网络提供者、因特网服务提供者(ISP))可以对接入和使用它们的网络向用户 收费。例如,网络提供者可以向用户收取对于在时间段内无限使用的费用;基于用户接入网 络的时间长度的时期费用;与传输和接收的数据量成比例的时期费用;和/或允许上至预 定最大值的任何网络使用量的固定费用,该固定费用可以被表达为关于用户的设备可以通 过网络传输和接收的数据量的上限。为了管理通过这样的付费连接而花费的金额,计算设 备可以与网络提供者协商定价和/或可以基于用于这样的连接的关联成本和可用资金选 择待建立的网络连接请求。例如,用户可以向他的/她的计算设备提供用于付费网络连接 的每月预算(例如,30美元/月),并且除了其它技术之外和/或取代其它技术,计算设备 还可以使用这一预算以确定建立哪些请求的网络连接。
[0029] 以下关于各图更具体地描述这些特征以及先前未提到的其它特征。
[0030] 图1是用于基于关联连接参数建立请求的网络连接的示例系统的概念图。图1描 绘了客户端计算设备102的网络连接管理器110,网络连接管理器110被配置用于延迟建 立请求的网络连接106直至发现满足由应用104与请求106关联地提供的连接参数108的 网络。在描绘的示例中,客户端计算设备102的应用104(例如,电子邮件应用、web浏览器 应用、社交网络应用)在无满足用于请求106的参数108的网络可用(例如,在时间0可用 的网络A(116)和网络B(120)未满足参数108)时的时间0(100)提供对于网络连接的请求 106,并且网络连接管理器110延迟建立请求的连接直至在满足请求106的参数108网络变 得可用(例如,在时间1可用的网络C(132)满足参数108)时的时间1(124)。
[0031] 客户端计算设备102可以是多种电子计算设备(比如智能电话、平板计算设备、电 子阅读器、膝上型计算机和/或台式计算机)中的任何电子计算设备。客户端计算设备102 被描绘为运行应用104,该应用可以是一个或者多个计算机程序(例如,软件、固件、硬件), 该一个或者多个计算机程序的操作在某个程度上包括通过网络传输和/或接收数据。应用 104可以是多种应用(比如web浏览器、游戏、电子邮件客户端、系统更新例程、通过IP的语 音("VoIP")服务)中的任何应用。应用104可以被本地运行作为单独应用和/或可以在 计算设备102上作为瘦客户端运行,该瘦客户端通过网络与另一计算设备交互以向用户提 供特征(例如,在云中运行应用)。
[0032] 在步骤A(106)中,应用104产生向网络连接管理器110传达的对于网络连接的请 求106。例如,应用104可以对应用编程接口(API)进行调用以建立网络套接字,应用104 可以使用该网络套接字以与另一计算设备通信。这样的API可以包括网络连接管理器110 和/或与网络连接管理器110关联,并且可以指引由应用104产生的对网络连接管理器110 的调用。来自应用104的请求106可以包括一个或者多个参数108, 一个或者多个参数108 指定对于请求的网络连接106的一个或者多个偏好和/或要求(例如,最小带宽)。例如, 应用104可以向参数108提供对API的调用以建立网络套接字(例如,套接字(最小带宽、 最大延时、最大延迟))。网络连接管理器110可以使用参数118以确定如何和何时建立用 于请求106的网络连接。
[0033] 特定参数108可以在不同应用104以及从个别应用104产生的各种请求106之 中变化。参数108可以包括与网络连接关联的信息和/或约束的任何组合、这样的信息涉 及应用的标识和/或状态、待传输和/或接收的数据类型(例如,视频、文字)、待传输和/ 或接收的数据量、对于网络连接需要的最小带宽、用于建立网络连接的最大可接受延迟和/ 或对于网络连接可允许的最大延时。在图1中,示例参数108包括将作为请求的网络连接 106的部分而传输和/或接受的数据量(三MB)、每秒一兆比特的最大带宽、一百毫秒(ms) 的最大延时和用于建立请求的网络连接106的十二小时的可接受延迟。
[0034] 参数108向网络连接管理器110提供它可以用来确定建立哪些请求的连接和何时 建立它们的信息。例如,应用104可以是数字音乐和多媒体应用(例如,ITUNES),该应用响 应于用户向应用104提供输入以购买音频文件(例如,歌曲)来产生对于从远程服务器系 统下载音频文件的请求106。应用104可以基于多种因素(比如用户指定的设置(例如, 用户指示他/她愿意为音频文件下载等待十二小时)、正被传输和/或接收的数据类型和/ 或用于应用104的默认配置(例如,对于应用104的最小性能需要参数108))提供参数108 作为请求106的部分。
[0035] -旦网络连接管理器110接收请求106,客户端计算设备102继续如在步骤 B(112)中描绘的那样检查寻找可用网络。在图1中,两个可用网络被图示为网络A(116) 和网络B(120)。根据客户端计算设备102的类型以及与设备102关联的硬件和软件,设备 102可以连接到的可用网络的范围可以变化。膝上型和台式计算机可以接入各种局域网 ("LAN")、无线局域网("WAN")或者甚至接入宽带无线网络,比如EDGE、CDMA和/或LTE 网络。移动计算设备(比如智能电话和/或平板计算设备)也可以通过WI-FI、BLUET00TH 和/或宽带无线网络(比如EDGE、CDMA和/或LTE网络)接入大量网络。例如,网络连接 管理器110可以使客户端计算设备102使用一个或者多个网络接口来扫描寻找可用网络。
[0036] 当在步骤B(112)中检查寻找可用网络时,客户端计算设备102可以分别注册可用 网络A(116)和B(120)的各种特性和/或参数118和122。客户端计算设备102可以用多 种方式(比如通过网络技术的分类、去往网络102的网络信号强度和/或通过接收从网络 A和B直接提供的网络信息和/或参数)来确定网络参数118和122。
[0037] 在图1中,在时间0(100),客户端计算设备102当在步骤B(112)中检查寻找网络 之后检测到两个可用网络116和120。网络A(116)的参数118指示网络允许不多于10MB 的数据事务、具有500Kb/s的带宽并且它的当前延时为90ms。网络B (120)的参数122指示 网络B (120)允许不多于2MB的数据事务、具有1. 5Mb/s的带宽并且它的当前延时为120ms。 然而,在描绘的示例中,由应用104产生的请求106是对于通过如下网络的3MB事务,该网 络具有至少IMb/s带宽和至多100ms延时。分别基于用于网络A和B的参数118和122,当 前可用网络A和B在时间0(100)未满足用于请求的网络连接106的参数118。例如,网络 A(116)的带宽不足并且网络B(120)相似地无法满足请求106的要求,因为它不会传输或者 接收多于2MB的数据并且它具有不可接受的延时。基于这一确定,客户端计算设备102可 以如在步骤C(114)中所示延迟建立请求的网络连接106直至在满足请求参数108的网络 可用时的稍后时间。
[0038] 网络连接管理器110可以存储请求106直至遇到满足参数108的可用网络和/或 直至已经超过如在参数108中指示的用于建立网络连接的可接受延迟。在图1的示例中, 客户端计算设备102可以继续搜索12小时寻找满足请求106的参数108的可用网络,该12 小时是可接受的延迟时段。计算设备102可以在延迟时段内经过步骤B(112)和C(114)连 续循环,从而检查寻找可用网络并且延迟建立请求的网络连接106直至发现满足参数108 的网络。
[0039] 在时间1(124),在继续在时间0(100)如在步骤B (112)和步骤C (114)中所示搜索 寻找可用网络并且延迟建立网络连接之后,客户端计算设备102发现网络C(132)。不同于 在时间0(100)的网络A (116)和网络B (120),网络C (132)满足应用请求106的参数108。 例如,网络C (132)具有充分数据事务容量、带宽和充分低的带宽,从而使得它的参数134超 过应用104的网络连接请求106和请求106的关联参数108的阈值网络要求。
[0040] 如果计算设备102在请求106的可接受延迟时段到期之前发现满足必备参数108 的网络,则可以建立网络连接。例如,一旦计算设备102发现网络C(132)是用于服务于请 求106的适合网络,则网络连接管理器110如在步骤D(136)中描绘的那样检查来自参数 108的可接受延迟时段是否已经到期。如果请求106已经到期,则将不会建立网络连接。然 而,在图1的示例中,在时间0(100)与时间1(124)之间的流逝的时间小于十二小时的可接 受延迟时段;因此,客户端计算设备102通过网络连接管理器110在步骤F(130)中与网络 C(132)建立连接。例如,网络连接管理器110可以创建用于应用104的网络套接字并且可 以与网络C(132)建立连接(例如,与网络C(132)认证客户端计算设备102)。结合在步骤 F建立网络连接,网络连接管理器110可以向请求应用104通知已经与可用网络建立了请求 的网络连接106并且应用104可以使用建立的连接来传输或者接收数据。
[0041] 图2是描绘示例客户端计算设备212的概念图,客户端计算设备212管理对于建 立网络连接的多个请求211。示例客户端计算设备212包括多个不同应用205,这些应用 205向客户端计算设备212的网络连接管理器214提供对于网络连接的请求211。网络连 接管理器214可以使用多种技术以如果有则选择建立哪些请求的网络连接。例如,网络连 接管理器214可以基于多种因素(比如用于网络连接的成本)对请求211排行。
[0042] 客户端计算设备212可以是多种适当电子计算设备(比如膝上型计算机、台式计 算机、上网本、移动电话、智能电话、平板计算设备和/或计算机服务器系统)中的任何电子 计算设备。客户端计算设备212被描绘为运行应用205,该应用可以是一个或者多个计算机 程序(例如,软件、固件、硬件或者其任何组合),该一个或者多个计算机程序的操作在某个 程度上包括通过网络传输和/或接收数据。应用205可以是多种应用(比如web浏览器、 游戏、电子邮件客户端、系统更新例程和/或V0IP服务)中的任何应用。应用205可以被 本地运行作为单独应用和/或可以在计算设备212上作为瘦客户端运行,该瘦客户端通过 网络与另一计算设备交互以向用户提供特征(例如,在云中运行的应用)。示例应用205被 描绘为包括应用A (200)、应用B (202)和应用N (204)。
[0043] 应用205可以产生并且向计算设备21提供对于建立和/或使用网络连接的请求 211。请求211可以包括一个或者多个请求参数,比如与请求关联的网络约束(例如,最小 带宽、最大延时);指示用于设备212服务于请求211的时间表的可接受延迟参数;指示将 传输和/或接收的数据量的一个或者多个数据参数;指示多少金钱和/或用户的网络预算 中的多少网络预算可用于请求211中的每个请求的成本约束;和/或计算设备212可以在 建立和使用网络连接时使用的其它信息,比如请求应用(例如,电子邮件客户端、游戏、web 浏览器)的标识、指示请求211是否基于用户输入或者是后台任务的部分和/或用户是否 正在活跃地使用应用205的信息。
[0044] 例如,来自应用A (200)的请求206包括如下参数,这些参数指示请求206将通过 网络传输和/或将诶手上至5MB的数据。在另一示例中,来自应用B(202)的请求208包括 如下参数,这些参数指示请求208将传输和/或接收100KB的数据。在又一示例中,来自应 用N(202)的请求210包括如下参数,这些参数指示请求210将传输和/或接收500MB的数 据。
[0045] 应用205也可以在请求211中包括如下信息,该信息指示哪些传输质量对于请求 的网络连接可接受。例如,从因特网视频服务(比如YOUTUBE)接收和播放流传输视频内容 的应用可以包括如下信息,该信息指示用流传输视频的高、中或者低质量版本对于网络连 接而可允许。对照而言,一些网络连接请求可以指定仅特定连接质量可允许。应用205和 /或用户可以使优选哪个质量级别和可允许哪些质量级别优先。每个质量级别也可以与不 同网络参数关联。例如,用流传输高质量视频可能需要具有5Mb/s的最小带宽的网络连接, 而可以仅使用IMb/s连接来用流传输低质量视频。请求211可以包括如下信息,该信息标 识用于请求的网络连接的一个或者多个最小质量级别和关联网络参数。或者请求211可以 简单地指示哪些质量级别可接受,从而使得计算设备212可以推断与每个可接受服务级别 关联的网络参数。因此,在步骤A中,应用A(200)、B(202)和N(204)各自产生对于网络连 接的请求(分别为206、208和210)。请求A(206)包括质量参数,该质量参数指示用于高质 量或者低质量数据传输的网络连接可接受。在另一方面,请求B(208)指示能够承载高质量 数据传输的网络连接对于请求的网络连接是需要的。
[0046] 计算设备212可以管理对于网络连接的传入请求211并且确定何时连接到可用网 络239和连接到哪些可用网络。例如,在图2中,计算设备212被描绘为具有网络连接管理 器214。网络连接管理器214可以位于计算设备212上作为单独应用、集成到软件、硬件和 /或固件中或者在计算设备212上作为瘦客户端运行。网络连接管理器接收对于网络连接 的传入请求211并且确定如何通过与可用网络239建立连接来服务于请求。
[0047] 为了最小化网络使用成本,网络连接管理器214包括连接定价协商器216,连接定 价协商器216可以发现和/或协商关于来自可用网络239中的一个或者多个可用网络的网 络连接的定价信息。例如,在一个基本实现方式中,定价协商器216可以查询每个可用网络 239或者仅查询满足一个或者多个请求211的用于与网络建立连接的成本和/或服务于请 求211的成本的参数的那些可用网络239。因此,在步骤B(226)中,连接定价协商器216 向网络A (234)、网络B (236)和网络N (238)发送对于定价信息的请求。在步骤C (228-232) 中,可用网络239(例如,网络A(234)、网络B(236)和网络N(238))中的每个可用网络向计 算设备212传输回它们的定价信息,其中网络连接管理器214可以在确定连接到哪些网络 时和在管理网络连接的其它方面中使用信息。
[0048] 计算设备212也可以使用用于在一个或者多个可用网络239之中协商价格的更复 杂例程。例如,连接定价协商器216可以向网络发送信息,该信息包括关于设备212正尝试 建立的连接请求211的更多细节,比如关于待传输的数据质量的信息、待传输的内容类型 (例如,HTML、音频、视频)、用于使用网络连接的预期时间长度、打算使用的带宽和可能影 响网络的定价报价的其它因素。另外,定价协商可以涉及到在计算设备212和可用网络239 中的一个或者多个可用网络之中的动态通信以允许可用网络竞争以提供最低报价。
[0049] 网络连接请求211也可以按照将服务于它们的顺序被排行。在图2中,排行由请 求排行模块220在步骤D(218)中发生。排行可以基于一个或者多个因素,比如请求的重要 性、请求的成本、接收请求211的顺序和时间和/或可以延迟请求的剩余时间。例如,请求 排行模块220基于每个请求的成本和每个请求的重要性对请求A (206)、请求B (208)和请 求C(210)排行。请求211的成本可以由连接定价协商器216确定。可以基于因素(比如 提供请求的应用(例如,电子邮件客户端、游戏、web浏览器)的标识、关于请求是否源于用 户输入或者被提供作为后台任务的部分和/或用户是否正活跃地使用从其接收请求的应 用的信息)确定请求211的重要性。重要性也可以受由应用205在请求211本身中传达的 参数影响。请求排行模块220例如示出用于请求A(206)的低质量连接由于它的低成本和 高重要性组合而被排行第一。请求B (206)尽管具有比低质量请求A (206)更低的成本却被 排行第二,因为它仅为中重要性。然而,请求B(208)尽管具有比高质量版本的请求A(206) 更低的重要性却由于它的明显更低成本而比请求A (206)排行更高。
[0050] 计算设备212也可以使用预算以管理如何建立网络连接和/或服务于哪些请求 211。例如,建立网络连接和使用网络资源的成本有时可以超过用户希望在给定的时间段 (例如,一小时、一天、一周、一月)内花费的成本。用户可以向计算设备212提供预算,该预 算限制设备212可以在网络连接上花费的开支。可以用包括每天和/或每月限额的各种形 式实施预算。
[0051] 在图2中,网络连接管理器214包括预算管理器224,预算管理器224限制建立将 使预算被超过的网络连接。例如,图2中的预算包括用于每月在网络连接上花费的15美 元。在30天的月中,这等于可用于每天花费的平均0.50美元。例如,如果用户指令计算设 备212这样做,则用户可以超过每天或者每月预算。在预算管理器224中所示的预算示例 中,当在网络连接上花费的数额降至编预算的最大以下值时已经从先前日子结转0. 42美 元。组合转存的数额和每天分配给出针对当天花费在网络连接上的共计〇. 92美元。
[0052] 用户和/或计算设备212可以保留预算的部分以用于由一个或者多个应用使用。 例如,安全软件可以执行周期性检查以寻找更新或者电子邮件客户端可以周期性地ping 远程服务器并且下载新电子邮件。为了保证每天为这些任务编预算足够资金,预算的某个 部分可以专用于那些请求。用户可以指示哪些应用或者任务应当具有保留的预算和保留的 大小,或者它们可以由计算设备212比如通过跟踪和分析哪些程序在历史上具有所需频繁 使用和关联成本来推断。也可以基于其它因素(比如对于当天的其余时间将需要多少附加 网络使用的估计)来维持保留预算。在图2中,在应用205之中未明示的应用D和应用F 分别具有保留的每天预算〇. 05美元和0. 10美元。预算管理器224从当天的总可用预算扣 除保留的成本从而留下对于当天可用于网络连接的非保留资金〇. 77美元(0. 92美元-0. 05 美兀10美兀)。
[0053] 预算管理器224管理建立和/或使用网络连接的成本以便保持于预算内。在图2 的示例描绘中,网络连接管理器214按照排行顺序经过请求211继续,如由步骤E(222)所 指示的那样选择对于使用网络连接的请求,并且对于在可用预算内允许的请求在可用网络 239中的一个或者多个可用网络上建立连接。例如,在步骤F(240)中,计算设备212与网络 B (236)建立连接以在0.05美元的成本服务于低质量请求A (206),然后与网络A (234)产生 连接以在0.03美元的成本服务于请求B(208)。对于请求C(210)未产生连接,因为连接成 本将在服务于请求A(206)和请求B(208)之后超过可用预算。例如,如果用户批准用于超 过预算的特殊权限则可以产生连接。
[0054] 图3是可以用来实施在本文中描述的系统和方法的计算设备300的系统图。计算 设备300可以是多种适当电子设备(比如蜂窝电话、智能电话、平板计算设备、台式计算机、 膝上型计算机、个人数字助理、服务器和其它类似设备)中的任何电子设备。计算设备300 可以与以上分别关于图1和2描述的计算设备102和212相似。
[0055] 计算设备300可以包括输入/输出(I/O)接口 302, I/O接口 302将计算设备300 连接到多个可用网络(比如网络A (328)、网络B (330)和/或如由网络N (332)指示的任何 其它可用网络)中的一个或者多个网络。I/O接口 302可以从计算设备300向可用网络326 传输数据并且在计算设备300上从可用网络326接收数据。I/O接口 302可以是有线和/ 或无线接口。例如,有线I/O接口 302可以是包括以太网、IEEE1394、并行端口、PS/2、串行 端口、USB、VGA、数字可视接口(DVI)和/或USB的多种接口中的任何接口。类似地,无线 I/O接口 302可以是包括IEEE802. 11WI-FI收发器、3G无线电收发器、LTE无线电收发器、 BLUETOOTH收发器和/或其它收发器等的多种接口中的任何接口。
[0056] 计算设备300可以经由I/O接口 302连接到一个或者多个可用网络326。网络 A(328)、网络B(330)和网络N(332)代表计算设备302可以连接到的可用网络326的范 围。可用网络326可以包括有线网络和/或无线网络,比如局域网("LAN")、无线局域网 ("WAN")和/或宽带无线网络(比如EDGE、CDMA和/或LTE网络)。已经在图1中将可用 网络326相似地表示为网络A和B(分别为116和120)并且在图2中表示为可用网络239。
[0057] 计算设备300可以运行一个或者多个应用303。应用303可以是包括软件、固件和 /或硬件的一个或者多个计算机程序。应用303中的一个或者多个应用的操作可以在某个 程度上包括通过网络传输和/或接收数据。具体应用303可以包括web浏览器、游戏、电子 邮件客户端、系统更新例程、V0IP服务和/或其它计算机程序。在图3的系统中的应用303 可以与以上分别关于图1和图2描述的应用104和应用205相似。
[0058] 计算设备300也可以包括存储与管理和建立网络连接相关的信息的各种数据贮 存库320、322、324。例如,数据贮存库320、322、324中的一个或者多个数据贮存库可以存 储于易失性存储器介质(比如随机存取存储器("RAM")设备)中和/或数据贮存库320、 322、324可以存储于非易失性存储介质(比如紧致盘("⑶")、DVD、硬盘驱动、闪存、EPROM、 EEPR0M、磁盘驱动或者全息存储装置)中。数据贮存库320、322、324可以本地存储于计算 设备300上、可拆卸存储器(比如SD卡)中和/或可以远程存储于比如服务器上。
[0059] 请求数据贮存库320可以包括存储的信息,该信息关于应用303已经提供的对于 网络连接的请求。与网络连接请求关联的信息可以存储于请求数据贮存库320中,比如请 求程序的标识;标记在接收请求时的时间的时间戳;如以上关于图2描述的请求的成本和 重要性;与请求关联的参数,比如以上关于图1描述的参数108,包括数据大小、最小带宽、 可接受延迟和最大延时;和/或其任何组合。
[0060] 预算数据贮存器322可以包括涉及预算的信息,该预算限制和/或管理在网络连 接上花费的成本。例如,预算数据贮存器322可以包括数据,该数据代表每月预算、每天预 算、结转数额、用于一个或者多个应用303的保留的预算和/或当前总每天预算。预算数据 贮存器322可以包括与以上在图2中的预算管理器223中示出和描述的预算数据相似的数 据。
[0061] 可用网络数据贮存库324可以包括涉及可用网络326的信息。例如,可用网络数 据贮存库324可以包括关于哪些网络326当前可用的信息、关于可用网络326的历史数 据和/或与一个或者多个可用网络326关联的参数,比如网络类型(例如,IEEE802. llg、 IEEE802.11n、以太网LAN、CDM、LTE)和/或网络特性(例如,延时、带宽、信号强度)。
[0062] 计算设备300可以也可以包括网络连接管理器310,网络连接管理器310可以管 理对于网络连接的请求并且确定何时和如何服务于请求。例如,网络连接管理器310可以 包括可以是软件、固件和/或硬件的一个或者多个计算机程序。网络连接管理器310可以 与以上关于图1描述的网络连接管理器105和关于图2的网络连接管理器214相似。网络 连接管理器310可以包括由应用303提供的对请求的接入。此外,连接管理器310可以访 问来自资源(比如请求数据贮存库320、预算数据贮存库322和/或可用网络数据贮存库 324)的在管理网络连接的建立时使用的存储的数据。
[0063] 网络连接管理器310可以包括多种功能方面,这些功能方面包括连接定价协商器 312、请求排行模块314、请求延迟管理器316、预算管理器318和/或其任何组合。
[0064] 连接定价协商器312可以发现和/或协商来自可用网络326中的一个或者多个可 用网络的定价信息。例如,连接定价协商器312可以执行与以上关于连接定价协商器216 描述的操作相似的操作,连接定价协商器216是关于图2描述的。
[0065] 请求排行模块314可以通过基于如下因素对来自应用303的一个或者多个请求排 序和/或排行来管理请求,这些因素包括用于服务于请求的已知或者估计成本、与请求关 联的重要性和/或其任何组合。请求排行模块314可以执行与以上关于请求排行模块220 描述的操作相似的操作,请求排行模块220是以上关于图2描述的。
[0066] 请求延迟管理器316可以管理在请求数据贮存库320中未决的请求并且可以从贮 存库320去除已经超过它们的可接受延迟的请求。在从贮存库320去除请求时,可以向提 供请求的应用通知网络连接管理器310不能满足请求。请求延迟管理器316可以执行与以 上关于网络连接管理器110描述的操作相似的操作,网络连接管理器110是以上关于图1 描述的。
[0067] 预算管理器318可以管理建立和/或使用网络连接的成本以便保持于预算内。预 算管理器318可以执行与以上关于预算管理器224描述的操作相似的操作,预算管理器224 是以上关于图2描述的。
[0068] 网络A-N(328-332)可以各自包括从其传输和接收用于网络A-N(328-332)的无线 信号的一个或者多个无线接入点(例如,无线收发器、蜂窝网络塔、无线路由器、无线范围 延伸器/重复器)。例如,在图3中将网络A-N(328-332)描绘为与示例接入点334-338关 联。网络A-N(328-332)中的每个网络可以与多个接入点关联(包括多个接入点)。
[0069] 网络A-N(328-332)也可以各自与计算机系统关联,这些计算机系统管理客户端 计算设备(比如计算设备300)的网络接入和使用。例如,网络A328与计算机系统340关 联并且网络N332与计算机系统342关联。计算机系统340和342可以各自包括一个或者 多个计算设备,比如台式计算机、计算机服务器、分布式计算系统(例如,云计算系统、联网 的计算机服务器)和/或其它适当计算设备。虽然未描绘,但是网络B330可以与相似于计 算机系统340和342的计算机系统关联。
[0070] 计算机系统340和342被描绘为包括报价生成器(344和346)、网络监控单元(348 和350)和接入控制单元(352和354)。报价生成器344和346可以生成用于客户端计算设 备(比如计算设备300)的报价,这些客户端计算设备正请求接入网络328和332。由生成 器344和346生成的报价可以基于多种信息,比如预定定价信息(例如,报价被限于其内的 预定定价范围、基于数据数量和传输速度的定价时间表)、当前网络使用信息(例如,连接 的客户端计算设备的当前数目、当前带宽使用、当前可用带宽)、将来网络使用承诺(例如, 与其它计算设备达成的对于网络接入的协定、用于这样的协定的最小网络性能参数)和/ 或如下信息,该信息指示对于网络接入的当前供应和需求(例如,来自客户端计算设备的 报价请求数目、在客户端报价请求上包括的网络参数、客户端计算设备已经接受和/或拒 绝的先前报价数额)。报价生成器344和346可以分别使用接入点334和338向计算设备 300提供报价。
[0071] 计算机系统340和342的网络监控单元348和350分别可以监控和确定用于网络 A和N(328和332)的当前网络使用统计。网络监控单元348可以从网络328和332的各 种部件收集使用统计(例如,延时信息、使用的带宽、可用带宽),比如来自路由器、交换机、 接入点和/或其它适当计算设备的使用信息。网络监控单元348和350可以向报价生成器 344和346提供网络使用统计,这些报价生成器可以基于当前使用信息生成报价。网络监控 单元348和350可以附加地和/或备选地向客户端计算设备(比如计算设备300)提供一 些网络使用统计以向客户端计算设备通知关于用于网络328和332的当前网络条件,客户 端计算设备可以使用这些当前网络条件以确定是否使用接入点334和338来与网络328和 332建立网络连接。
[0072] 接入控制单元352和354可以控制客户端计算设备(比如计算设备300)通过接 入点334和338对网络328和332的接入。接入控制单元352和354可以指令接入点334 和338使接入仅限于当前被授权使用网络328和332的客户端计算设备,这可以由客户端 计算设备提供的各种标识信息(比如唯一标识符(例如,MAC地址、用户名)和/或认证信 息(例如,授权证书))指示。接入控制单元352和354可以使对网络328和332的介入限 于已经接受了来自报价生成器344的报价并且已经被建立了支付方法(例如,已经验证了 信用卡、已经标识了具有充分可用余额的借记账户)的客户端计算设备。
[0073] 图4A至图4B是用于建立网络连接的示例技术400和450的流程图。在技术400 中,示例计算设备402对于时间段基于一个或者多个参数(例如,最小带宽、最大延时)确 定是否与可用网络建立连接。在技术450中,示例计算设备452基于对于一个或者多个可 用网络而获得的报价确定是否与可用网络建立一个或者多个请求的网络连接。可以全部或 者部分组合示例技术400和450。
[0074] 参照图4A,示例技术400的部分由计算设备402、网络A(404)和网络B(406)执 行。计算设备402可以是多种适当计算设备(比如计算设备102、计算设备212和/或计算 设备300)中的任何计算设备。网络A(404)和B(406)可以是多种适当无线网络(比如网 络116、120和132);网络234、236和238 ;和/或网络328、330和332中的任何网络。网 络A(404)和B(406)可以各自包括一个或者多个接入点(比如接入点334-338)并且可以 包括一个或者多个关联计算机系统(比如计算机系统340和342)。
[0075] 计算设备402可以接收对于建立网络连接的请求(408)。例如,计算设备102从 应用104接收对于建立网络连接的请求(106)。接收的请求可以包括用于请求的网络连接 的一个或者多个参数,比如以上关于图1讨论的示例参数108。响应于接收请求,计算设备 402可以检测可用网络(410)。例如,计算设备402可以使用无线收发器以扫描寻找来自附 近网络的信标信号,比如由网络A404传输的无线信标信号(412)。响应于检测到由用于网 络A(404)的接入点传输的信标信号,计算设备402可以向网络A404传输当前网络信息(例 如,可用带宽、当前延时)的请求。
[0076] 网络A (404)可以从计算设备402接收请求(416)并且响应于接收请求而可以标 识当前网络信息(418)。例如,计算机系统340的网络监控单元348可以标识用于网络A328 的当前网络信息。网络A(404)可以提供当前网络信息(420),并且计算设备402可以接收 用于网络A404的当前信息(422)。
[0077] 使用当前网络信息,计算设备402可以确定网络A是否满足在对于建立网络连接 的请求中包括的用于网络连接的参数(424)。例如,客户端计算设备102的网络连接管理器 110可以比较请求的参数108分别与用于网络116和118的当前网络信息118和122以确 定是否与网络116和/或118建立连接。在当前网络信息未满足在请求中阐述的参数时, 计算设备402可以延迟建立网络连接(426)。
[0078] 响应于基于由另一网络传输的信标信号(430)检测到另一可用网络(428),计算 设备(402)可以确定用于建立请求的网络连接的可允许持续时间是否已经到期(432)。例 如,客户端计算设备102的网络连接管理器110可以响应于检测到存在网络C(132)来检查 用于建立由应用104请求的网络连接的可接受延迟是否已经流逝。响应于确定用于请求的 持续时间尚未到期,计算设备402可以请求来自网络B406的网络信息(434)。如果用于请 求的持续时间已经到期,则计算设备402可以基于用于请求的时间段已经到期来丢弃请求 和/或向请求实体(例如,系缚到计算设备402的应用、用户、另一计算设备)提供指示,该 指示是未建立请求的网络连接。网络B(406)可以从计算设备402接收请求(436)、标识用 于网络B的当前网络信息(438),并且可以向计算设备402提供当前网络信息(440),该计 算设备可以接收(442)和使用该当前网络信息以确定网络B是否满足在请求中阐述的参数 (444)。用于网络B (406)的步骤434-444可以与用于网络A(404)的步骤相似。
[0079] 在描绘的示例中,网络B(406)具有满足请求的参数的当前网络条件(例如,可用 带宽、延时),这些当前网络条件与以上关于图1描述的网络C(132)的满足请求的参数108 的当前网络条件相似。响应于确定网络B(406)满足请求的参数,计算设备402可以与网络 B(446)建立网络连接。建立连接可以包括计算设备402向网络B(446)传输如下信息和任 何附加信息,该信息指示来自计算设备402的对于使用网络B (446)的请求,该附加信息可 以被网络B (446)请求访问比如用于计算设备402和/或关联用户的支付信息和/或标识 信息。
[0080] 参照图4B,示例技术450的部分由计算设备452、网络A(454)和网络B(446)执 行。计算设备452可以是多种适当计算设备(比如计算设备102、计算设备212、计算设备 300和/或计算设备402)中的任何计算设备。网络A(454)和B(456)可以是多种适当无线 网络(比如网络116、120和132);网络234、236和238 ;网络328、330和332 ;和/或网络 404和406中的任何网络。网络A(454)和B(456)可以各自包括一个或者多个接入点(比 如接入点334-338),并且可以包括一个或者多个关联计算机系统(比如计算机系统340和 342)。
[0081] 计算设备452从一个或者多个请求实体(比如一个或者多个应用、计算设备452 的用户、在计算设备452上运行的服务和/或系缚到计算设备452的设备)接收对于建立 网络连接的请求(458)。由计算设备452接收的请求可以各自在时间段内被分离地接收。 例如,客户端计算设备212从应用200-204接收请求206-210。
[0082] 响应于接收请求,计算设备452可以基于由网络A和B(462a_b)传输的信标信号 检测可用无线网络(460)(比如网络A(454)和网络B(456))。响应于检测到网络A和B在 计算设备452的范围内,计算设备452可以向网络A和B提供报价请求(464)。这样的报价 请求可以包括如下信息,该信息标识用于由计算设备452接收的网络连接请求的参数。例 如,对于网络连接的请求可以各自包括一个或者多个连接参数,比如最小连接带宽、最大延 时、连接质量和/或待传输的数据量。计算设备452可以向网络A和B(454和456)提供用 于接收的请求的网络连接参数的至少一部分作为报价请求的部分。
[0083] 网络A和B(454和456)可以接收请求(466a_b)、可以标识用于网络的当前使用 信息(468a-b)并且至少部分基于当前使用信息可以生成将向计算设备452提供的报价 (470a-b)。例如,计算机系统340和342可以使用网络监控单元348和350以标识网络328 和332的当前使用,并且可以使用接入控制单元352和354以标识其它计算设备的将来承 诺网络使用。报价生成器344和346可以至少部分基于由网络监控单元348和350标识的 信息以及由接入控制单元352和354标识的信息生成报价。网络A和B(454和456)可以 向计算设备452无线传输生成的报价(472a-b)。
[0084] 计算设备452可以接收报价(474)并且可以继续使用关于请求的报价信息和/或 其它信息以对接收的请求排行以确定如果有则应当建立请求的网络连接中的哪个网络连 接。例如,计算设备452可以确定请求的重要性(476)、基于来自网络A和B的接收的报价 确定用于请求的成本(478)和/或确定请求将在其内到期的时间表(480)。基于这样的信 息(例如,请求重要性、成本、到期时间表),计算设备452可以对请求排行。例如,客户端计 算设备212的请求排行模块可以基于确定的成本(该成本是基于来自网络234-238的定价 信息228-232确定的)和请求1-5的确定的重要性对请求1-5排行。
[0085] 计算设备452可以访问用于计算设备452的预算信息和/或与计算设备452关联 的一个或者多个用户(484)并且基于排行的请求和预算信息可以选择请求中的一个或者 多个请求(486)。例如,客户端计算设备212的预算管理器224可以使用来自请求排行模块 220的信息和预算信息(例如,每月预算、平均每天花费的数额、结转的数额、保留的预算信 息和/或用于当前时间段的剩余预算)以选择请求中的一个或者多个请求。计算设备452 可以对于选择的请求与网络A和/或B建立一个或者多个连接(488)。
[0086] 图5是可以作为客户端或者作为一个服务器或者多个服务器用来实施在本文中 描述的系统和方法的计算设备500、550的框图。计算设备500旨在于代表各种形式的数字 计算机,比如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型 机和其它适当计算机。计算设备550旨在于代表各种形式的移动设备,比如个人数字助理、 蜂窝电话、智能电话和其它相似计算设备。此外,计算设备500或者550可以包括通用串行 总线(USB)闪存驱动。USB闪存驱动可以存储操作系统和其它应用。USB闪存驱动可以包 括输入/输出部件,比如可以向另一计算设备的USB端口中插入的无线传输器或者USB连 接器。这里所示的部件、它们的连接和关系及其功能意味着仅为示例而未意味着限制在本 文中描述和/或要求保护的实现方式。
[0087] 计算设备500包括处理器502、存储器504、存储设备506、连接到存储器504和高 速扩展端口 510的高速接口 508以及连接到低速总线514和存储设备506的低速接口 512。 使用各种总线来互连并且可以在公共母板上装配或者在适当时以其它方式装配部件502、 504、506、508、510和512中的每个部件。处理器502可以处理用于在计算设备500内执行 的指令,这些指令包括在存储器504中或者存储设备506上存储的用于在外部输入/输出 设备(比如耦合到高速接口 508的显示器516)上显示用于⑶I的图形信息的指令。在其 它实现方式中,多个处理器和/或多个总线可以在适当时与多个存储器和存储器类型一起 使用。也可以连接多个计算设备500,其中每个设备提供必需操作的部分(例如作为服务器 组、成组刀片服务器或者多处理器系统)。
[0088] 存储器504存储计算设备500内的信息。在一个实现方式中,存储器504是一个 或者多个易失性存储器单元。在另一实现方式中,存储器504是一个或者多个非易失性存 储器单元。存储器504也可以是另一形式的计算机可读介质,比如磁盘或者光盘。
[0089] 存储设备506能够提供用于计算设备500的海量存储。在一个实现方式中,存储设 备506可以是或者包含计算机可读介质,比如软盘设备、硬盘设备、光盘设备或者带设备、 闪存或者其它相似固态存储器设备或者如下设备的阵列,这些设备包括存储区域网络或者 其它配置中的设备。可以在信息载体中有形地体现计算机程序产品。计算机程序产品也可 以包含在被执行时执行一种或者多种方法(比如以上描述的方法)的指令。信息载体是计 算机或者机器可读介质,比如存储器504、存储设备506或者在处理器502上的存储器。
[0090] 高速控制器508管理用于计算设备500的带宽密集操作,而低速控制器512管理 带宽密集度更低的操作。这样的功能分配仅为示例。在一个实现方式中,高速控制器508 耦合到存储器504、显示器516(例如,通过图形处理器或者加速器)并且耦合到可以接受各 种扩展卡(未示出)的高速扩展端口 510。在该实现方式中,低速控制器512耦合到存储设 备506和低速扩展端口 514。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太 网)的低速扩展端口可以例如通过网络适配器耦合到一个或者多个输入/输出设备(比如 键盘、指点设备、扫描仪)或者联网设备(比如交换机或者路由器)。
[0091] 如该图中所示可以在多个不同形式中实施计算设备500。例如,它可以被实施为 标准服务器520或者被多次实施于成组这样的服务器中。它也可以被实施为架式服务器系 统524的部分。此外,可以在个人计算机(比如膝上型计算机522)中实施它。备选地,来 自计算设备500的部件可以与移动设备(未示出)(比如设备550)中的其它部件组合。这 样的设备中的每个设备可以包含计算设备500、550中的一个或者多个计算设备,并且整个 系统可以由相互通信的多个计算设备500、550组成。
[0092] 计算设备550包括处理器552、存储器564、输入/输出设备(比如显示器554、通 信接口 566和收发器568)以及其它部件。设备550也可以具有用于提供附加存储的存储 设备,比如微驱动或者其它设备。使用各种总线来互连部件550、552、564、554、566和568 中的每个部件,并且可以在公共母板上或者在适当时以其它方式装配部件中的若干部件。
[0093] 处理器552可以执行计算设备550内的指令,这些指令包括存储器564中存储的 指令。处理器可以被实施为包括分离以及多个模拟和数字处理器的芯片的芯片组。此外, 可以使用多种架构中的任何架构来实施处理器。例如,处理器552可以是CISC(复杂指令 集计算机)处理器、RISC (精简指令集计算机)处理器或者MISC (最小指令集计算机)处 理器。处理器可以例如提供协调设备550的其它部件,比如控制用户界面、由设备550运行 的应用和设备550的无线通信。
[0094] 处理器552可以通过控制接口 558和耦合到显示器554的显示接口 556与用户通 信。显示器554可以例如是TFT(薄膜晶体管液晶显示器)显示器或者0LED(有机发光二 极管)显示器或者其它适当显示器技术。显示接口 556可以包括用于驱动显示器554以向 用户呈现图形和其它信息的适当电路。控制接口 558可以从用户接收命令并且转换它们以 用于向处理器552提交。此外,可以提供与处理器552通信的外部接口 562以便支持设备 550与其它设备的近区域通信。外部接口 562可以例如在一些实现方式中提供有线通信或 者在其它实现方式中提供无线通信,并且也可以使用多个接口。
[0095] 存储器564存储计算设备550内的信息。存储器564可以被实施为一个或者多个 计算机可读介质、一个或者多个易失性存储器单元或者一个或者多个非易失性存储器单元 中的一项或者多项。也可以提供扩展存储器574并且扩展存储器574可以通过可以例如包 括SIMM (单列直插存储器模块)卡接口的扩展接口 572连接到设备550。这样的扩展存储器 574可以提供用于设备550的额外存储空间或者也可以存储用于设备550的应用或者其它 信息。具体而言,扩展存储器574可以包括用于实现或者补充以上描述的过程的指令,并且 也可以包括安全信息。因此,例如,扩展存储器574可以被提供作为用于设备550的安全模 块,并且可以用允许安全使用设备550的指令对扩展存储器574编程。此外,可以经由SIMM 卡将安全应用与附加信息一起提供,比如以不可黑客的方式将标识信息放置于SIMM卡上。
[0096] 如以下讨论的那样,存储器可以例如包括闪存和/或NVRAM存储器。在一个实现 方式中,在信息载体中有形地体现计算机程序产品。计算机程序产品包含在被执行时执行 一种或者多种方法(比如以上描述的方法)的指令。信息载体是计算机或者机器可读介 质,比如可以例如通过收发器568或者外部接口 562接收的存储器564、扩展存储器574或 者在处理器552上的存储器。
[0097] 设备550可以通过可以在必要时可以包括数字信号处理电路的通信接口 566无线 地通信。通信接口 566可以在各种模式或者协议(比如GSM语音呼叫、SMS、EMS或者丽S 消息接发、CDMA、TDMA、H)C、WCDMA、CDMA2000或者GPRS以及其它模式或者协议)之下提供 通信。可以例如通过射频收发器568出现这样的通信。此外,可以比如使用蓝牙、WiFi或者 其它这样的收发器(未示出)出现近程通信。此外,GPS(全球定位系统)接收器模块570 可以向设备550提供附加的与导航和位置有关的无线数据,该数据可以在适当时由在设备 550上运行的应用使用。
[0098] 设备550也可以使用音频编码解码器560来可听地通信,编码解码器560可以从 用户接收口述信息并且将它转换成可用数字信息。音频编码解码器560可以类似地比如通 过例如在设备550的头戴式受话器中的扬声器生成用于用户的可听声音。这样的声音可以 包括来自语音电话呼叫的声音、可以包括记录的声音(例如语音消息、音乐文件等)并且也 可以包括由在设备550上操作的应用生成的声音。
[0099] 如该图中所示,可以用多个不同形式实施计算设备550。例如,它可以被实施为蜂 窝电话580。它也可以被实施为智能电话582、个人数字助理或者其它相似移动设备的部 分。
[0100] 可以在数字电子电路、集成电路、特殊设计的ASIC(专用集成电路)、计算机硬件、 固件、软件和/或其组合中实现这里描述的系统和技术的各种实现方式。这些各种实现方 式可以包括在可编程系统上可执行和/或可解译的一个或者多个计算机程序中的实现方 式,该可编程系统包括可以是特殊或者通用的至少一个可编程处理器、至少一个输入设备 和至少一个输出设备,该可编程处理器被耦合用于从存储系统接收数据和指令以及向存储 系统传输数据和指令。
[0101] 这些计算机程序(也被称为程序、软件、软件应用或者代码)包括用于可编程处理 器的机器指令并且可以用高级过程和/或面向对象的编程语言和/或用汇编/机器语言来 实施。如这里所用,术语"机器可读介质"和"计算机可读介质"指代用来向可编程处理器 提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储 器、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语 "机器可读信号"指代用来向可编程处理器提供机器指令和/或数据的任何信号
[0102] 为了提供与用户的交互,可以在计算机上实施这里描述的系统和技术,该计算机 具有用于向用户显示信息的显示设备(例如,CRT (阴极射线管)或者LCD (液晶显示器)监 视器)以及用户可以用来向计算机提供输入的键盘和指点设备(例如,鼠标或者跟踪球)。 其它种类的设备也可以用来提供与用户的交互;例如,向用户提供的反馈可以是任何形式 的感官反馈(例如,视觉反馈、听觉反馈或者触觉反馈);并且可以用包括声音、话音或者触 觉输入的任何形式接收来自用户的输入。
[0103] 可以在计算系统中实施这里描述的系统和技术,该计算系统包括后端部件(例 如,作为数据服务器)或者包括中间件部件(例如,应用服务器)或者包括前端部件(例如, 具有如下图形用户界面或者Web浏览器的客户端计算机,用户可以通过该图形用户界面或 者Web浏览器与这里描述的系统和技术的实现方式交互)或者这样的后端、中间件或者前 端部件的任何组合。系统的部件可以由任何数字数据通信形式或者介质(例如,通信网络) 互连。通信网络的示例包括局域网("LAN")、广域网("WAN")、对等网络(具有自组织或 者静态成员)、网格计算基础结构和因特网。
[0104] 计算系统可以包括客户端和服务器。客户端和服务器通常相互远离并且通常通过 通信网络交互。借助在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序 产生客户端和服务器关系。
[0105] 虽然以上已经具体描述了少数实现方式,但是其它修改是可能的。另外,可以使用 用于建立网络连接的其它机制。此外,在各图中描绘的逻辑流程可以无需所示特定顺序或 者依次顺序以实现希望的结果。可以提供其它步骤或者可以从描述的流程消除步骤并且可 以向描述的系统添加或者从描述的系统去除其它部件。因而,其它实现方式在所附权利要 求的范围内。
【权利要求】
1. 一种计算机实施的方法,包括: 在计算设备并且从在所述计算设备上安装的应用接收对于建立网络连接以通过网络 传输和接收数据的请求,其中所述请求包括信息,所述信息指示由所述应用对于请求的所 述网络连接和数据传输而标识的一个或者多个参数; 由所述计算设备延迟建立请求的所述网络连接直至i)标识了满足作为所述请求的部 分而被提供的所述一个或者多个参数的可用网络连接,或者ii)对于所述请求而指定的时 间段已经到期;以及 响应于在所述时间段已经到期之前标识满足所述一个或者多个参数的可用网络,使用 标识的所述可用网络来建立用于所述应用的请求的所述网络连接。
2. 根据权利要求1所述的计算机实施的方法,其中由所述应用标识的所述一个或者多 个参数包括指示用于请求的所述网络连接的最小网络带宽的最小网络带宽参数和指示用 于请求的所述网络连接的最大网络延时的最大网络延时参数。
3. 根据权利要求2所述的计算机实施的方法,其中所述可用网络连接在所述可用网络 连接具有大于或者等于所述最小网络带宽的可用带宽时满足所述最小网络带宽参数并且 在所述可用网络连接具有小于或者等于所述最大网络延时的当前延时时满足所述最大网 络延时参数。
4. 根据权利要求1所述的计算机实施的方法,其中由所述应用标识的所述一个或者多 个参数包括总数据大小参数,所述总数据大小参数指示将对于请求的所述网络连接而传输 和接收的所述数据的总大小。
5. 根据权利要求4所述的计算机实施的方法,其中所述可用网络连接在所述可用网络 连接具有足以在阈值时间段内传输和接收所述总大小的所述数据的最小带宽时满足所述 总数据大小参数。
6. 根据权利要求1所述的计算机实施的方法,其中由所述应用标识的所述一个或者多 个参数包括可接受延迟参数,所述可接受延迟参数指示在其内请求的所述网络连接被允许 延迟的时间段。
7. 根据权利要求6所述的计算机实施的方法,其中所述可用网络连接在从接收所述请 求时的所述时间段内标识所述可用网络连接时满足所述可接受延迟参数。
8. 根据权利要求1所述的计算机实施的方法,还包括: 在来自在所述计算设备上安装的其它应用的对于网络连接的一组其它请求之中对接 收的所述请求排行;并且 其中在接收的所述请求至少具有在所述其它请求之中的阈值排行时建立请求的所述 网络连接。
9. 根据权利要求8所述的计算机实施的方法,其中至少基于传输和接收用于每个请求 的数据的成本对所述请求排行。
10. 根据权利要求9所述的计算机实施的方法,其中传输和接收每个请求的所述成本 基于将对于每个请求而传输和接收的数据的总大小以及用于通过一个或者多个可用网络 传输和接收数据的每数据单位的成本。
11. 根据权利要求9所述的计算机实施的方法,其中基于用于所述计算设备的网络连 接预算确定所述阈值排行,所述网络连接预算指示可用于所述计算设备花费以通过网络连 接传输和接收数据的金额。
12. 根据权利要求8所述的计算机实施的方法,其中至少基于所述请求中的每个请求 的推断的重要性对所述请求排行。
13. 根据权利要求12所述的计算机实施的方法,其中至少基于待传输的数据类型和所 述计算设备的用户是否当前正在与关联于所述请求中的每个请求的一个或者多个应用交 互来确定所述请求中的每个请求的所述推断的重要性。
14. 根据权利要求1所述的计算机实施的方法,还包括: 响应于标识一个或者多个可用网络,请求来自所述一个或者多个可用网络的报价; 接收用于所述一个或者多个可用网络的报价,其中所述报价指示用于通过所述一个或 者多个可用网络传输和接收请求的所述数据的成本; 至少部分基于接收的所述报价从所述一个或者多个可用网络选择可用网络;并且 与选择的所述可用网络建立请求的所述网络连接。
15. 根据权利要求14所述的计算机实施的方法,其中请求来自其的所述报价的所述一 个或者多个可用网络中的每个可用网络满足所述一个或者多个参数。
16. 根据权利要求1所述的计算机实施的方法,其中所述一个或者多个参数包括质量 参数,所述质量参数指示被允许用于请求的所述网络连接和数据传输的多个质量级别。
17. 根据权利要求16所述的计算机实施的方法,还包括: 标识能够在由所述质量参数指定的所述多个质量级别中的一个或者多个质量级别传 输和接收请求的所述数据的一个或者多个可用网络; 选择标识的所述可用网络中的能够在来自所述多个质量级别之中的最大质量级别传 输和接收请求的所述数据的可用网络;并且 其中使用选择的所述可用网络来建立请求的所述网络连接。
18. -种移动计算设备,包括: 无线联网天线; 网络连接管理器,被编程用于接收对于建立网络连接以通过网络传输和接收数据的请 求,其中所述请求包括信息,所述信息指示对于请求的所述网络连接和数据传输而标识的 一个或者多个参数; 以及 请求管理器,被编程用于i)延迟建立请求的所述网络连接直至标识了满足作为所述 请求的部分而被提供的所述一个或者多个参数的可用网络连接,并且ii)响应于标识满足 所述一个或者多个参数的可用网络并且在对于所述请求而指定的时间段已经到期之前,使 用所述无线联网天线来与标识的所述可用网络建立请求的所述网络连接。
19. 根据权利要求18所述的移动计算设备,还包括: 连接定价协商器,被编程用于请求和接收来自一个或者多个可用网络的报价,其中所 述报价指示用于通过所述一个或者多个可用网络传输和接收请求的所述数据的成本; 请求排行模块,被编程用于至少部分基于由所述连接定价协商器接收的所述报价在对 于网络连接的多个其它请求之中对接收的所述请求排行;并且 其中所述网络连接管理器还被编程用于至少部分基于由所述排行请求模块生成的所 述排行从接收的所述请求和所述多个请求之中选择一个或者多个请求。
20. -种在计算机可读存储设备中体现的包括指令的计算机程序产品,所述指令在由 一个或者多个计算设备执行时使所述一个或者多个计算设备执行操作,所述操作包括: 从在所述一个或者多个计算设备上安装的应用接收对于建立网络连接以通过网络传 输和接收数据的请求,其中所述请求包括信息,所述信息指示由所述应用对于请求的所述 网络连接和数据传输而标识的一个或者多个参数; 延迟建立请求的所述网络连接直至i)标识了满足作为所述请求的部分而被提供的所 述一个或者多个参数的可用网络连接,或者ii)对于所述请求而指定的时间段已经到期; 以及 响应于在所述时间段已经到期之前标识满足所述一个或者多个参数的可用网络,使用 标识的所述可用网络来建立用于所述应用的请求的所述网络连接。
【文档编号】G06F15/16GK104067255SQ201280053732
【公开日】2014年9月24日 申请日期:2012年9月4日 优先权日:2011年9月1日
【发明者】J·A·夏基 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1