多接口功率感知网络的制作方法

文档序号:16811641发布日期:2019-02-10 13:43阅读:163来源:国知局
多接口功率感知网络的制作方法

设备通常具有与不同程度的网络性能相关联的多个连接性选项。例如,与第一网络接口相关联的第一连接性选项可以提供较高的吞吐量、较低的延迟和/或更可靠的连接(例如,最小丢失分组、最小分组错误率等),并且因此,第一连接性选项通常消耗较多的功率。与第二网络接口相关联的第二连接性选项可以提供较低的吞吐量、较高的延迟和/或较不可靠的连接,并且因此,第二连接性选项通常消耗较少的功率。

为了代表安装在设备上的应用建立和/或维持网络连接,传统的网络协议栈通常选择和/或利用可以提供较高性能(例如,较高的吞吐量、较低的延迟、较高的可靠性等)的网络接口和/或网络连接类型(如果可用的话),即使应用不需要高网络性能。换言之,设备可能不需要可以提供较高性能的网络接口和/或网络连接类型,因为应用的可用性(例如,用户体验)将不会由于使用提供较低性能的替代网络接口/或替代网络连接类型而受到影响。也就是说,缺乏网络性能对用户来说可能是微不足道的。



技术实现要素:

在此所描述的技术监视、存储和评估与应用相关联的网络信息,以确定(例如,选择)用于传递数据的连接性选项。连接性选项包括网络接口和网络连接类型。该确定是基于与可用连接性选项相关联的功耗信息而做出的。因此,安装有应用的设备可以更好地管理其与网络通信相关联的功耗。

在此所描述的各个示例中,响应于建立网络连接的请求或响应于导致重新评估先前建立(例如,当前正在维持)的网络连接的事件,访问和/或获得应用简档和连接性简档。应用简档被维持在策略存储库中,并且应用简档描述应用的网络性能要求。网络性能要求可以由远程监视服务基于跨越多个设备代表应用而实现的网络业务模式来确定。与网络接口相关联的连接性简档也可以被存储在策略存储库中,并且连接性简档包括诸如可以由网络接口建立的网络连接类型、个体网络连接类型的预期功耗、个体网络连接类型的预期性能、以及设备的当前位置等信息。在一些示例中,连接性简档中的信息可以基于设备的当前位置。

这些技术可以确定各种连接性选项的预期性能是否满足应用的网络性能要求,并且可以选择连接性选项以代表应用来传递数据。这些技术还可以确定第一连接性选项的预期功耗小于第二连接性选项的预期功耗,并且只要满足应用的网络性能要求,就可以做出对节能的连接性选项的选择。

提供本发明内容是为了介绍本公开的简化概念,这些概念在以下具体实施方式中进一步被描述。本发明内容不旨在标识所要求保护的主题的必要特征,也不旨在用于确定所要求保护的主题的范围。

附图说明

参考附图阐述具体实施方式。在附图中,附图标记的最左边的数字标识首次出现附图标记的图。在不同附图中使用相同的附图标记表示相似或相同的项目。

图1示出了说明其中可以实现多接口功率感知网络的示例环境的框图,如在此所描述的。

图2示出了说明可以实现多接口功率感知网络的示例客户端设备的框图,如在此所描述的。

图3示出了说明用于收集网络使用信息和/或生成个体应用的网络性能要求的示例远程监视设备(例如,服务器)的框图,如在此所描述的。

图4示出了说明在示例客户端设备处实现的用于监视和报告个体应用的网络使用信息的示例过程的流程图,如在此所描述的。

图5示出了说明在示例远程监视设备处实现的用于收集网络使用信息和/或计算个体应用的网络性能要求的示例过程的流程图,如在此所描述的。

图6示出了说明在示例客户端设备处实现的用于确定要使用哪个(些)网络接口和/或哪个(些)网络连接类型来传递被安装在示例客户端设备上的个体应用的数据的示例过程的流程图,如在此所描述的。

图7示出了说明在示例客户端设备处实现的用于确定从使用当前连接性选项切换到使用新连接性选项以传递被安装在示例客户端设备上的个体应用的数据的示例过程的流程图,如在此所描述的。

具体实施方式

例如,本申请描述了集成在客户端设备的操作系统内的网络连接管理模块。网络连接管理模块被配置为代表在客户端设备上执行的应用来确定要使用哪个连接性选项来传递数据(例如,发送和/或接收数据),其中连接性选项包括特定网络接口(例如,wi-fi网络接口、移动宽带(mbb)网络接口、以太网接口等)和/或要使用的网络连接类型(例如,ieee802.11g、ieee801.11ac等)。

如上所述,与由客户端设备的第二网络接口建立和/或维持的第二网络连接类型(例如,其提供较低的吞吐量、较高的延迟和/或较低的可靠性)相比,由客户端设备的第一网络接口建立和/或维持的第一网络连接类型可以提供更好的性能(例如,更高的吞吐量、较低的延迟和/或更高的可靠性等)。在这种情况下,与使用第二网络接口建立和/或维持第二网络连接相比,客户端设备可能消耗更多电池功率量来使用第一网络接口来建立和/或维持第一网络连接。

当确定用于传递应用的数据的连接性选项时,在此所描述的网络连接管理模块被配置为利用指示应用维持可接受的或最佳的使用或服务级别所要求或需要的网络能力的信息(例如,在此可以称为“网络性能要求”)。为此,网络连接管理模块被配置为访问基于从安装有并且执行应用的多个客户端设备(例如,数百、数千、数百万等)聚合的所监视的网络业务模式来生成的应用的网络性能要求。网络性能要求被存储在客户端设备的策略存储库中维持的应用简档中。网络性能要求可以由远程监视服务来计算,远程监视服务被配置为从客户端设备收集网络业务模式,生成网络性能要求,并且然后将网络性能要求分发给客户端设备。

在各个实现中,应用所要求或需要的网络能力可以与应用的执行状态相关联。例如,应用的第一执行状态可以与应用对显示屏的主动使用相关联。如果应用是包括视频聊天功能的社交媒体应用,则该第一执行状态可能要求或需要实时数据通信,使得两个人可以在没有网络问题导致的中断的情况下进行视频聊天(例如,网络连接要求更高的吞吐量、较低的延迟和更高的可靠性,使得用户体验不会受到影响)。应用(例如,社交媒体应用)的第二执行状态可以与后台执行相关联,其中应用不是主动使用显示屏(例如,应用处于“屏幕关闭”模式),并且因此,应用可能只要求或需要网络连接来处理稀疏间隔的推送通知。因此,关于使用或服务级别,具有较低的吞吐量、较高的延迟和较低的可靠性的网络连接是可接受的,特别是在网络连接消耗较少的电池功率量的情况下。

当确定用于传递应用的数据的连接性选项时,在此所描述的网络连接管理模块还被配置为利用与连接性选项的功耗和/或预期性能相关联的信息。例如,网络连接管理模块被配置为创建和/或维持与特定网络接口相关联的连接性简档。连接性简档可以指示(i)可用的网络连接类型,(ii)客户端设备可能消耗多少功率来建立和/或维持特定类型的网络连接,(iii)特定类型的网络连接的预期性能度量(诸如延迟)(例如,往返时间)、抖动(例如,延迟的可变性)、吞吐量(例如,每秒分组数、每秒比特数等)和/或可靠性(例如,分组错误率、分组丢失率等),和/或(iv)与网络连接相关联的成本(例如,免费wi-fi连接比对与移动宽带连接相关联的数据使用成本等)。在各个示例中,可以基于信号的强度和/或客户端设备相对于发送信号的网络设备的当前位置来确定可能的功耗和/或预期的性能度量。因此,当前设备的位置和/或信号的强度也可以被包括在连接性简档中。此外,网络连接管理模块被配置为在客户端设备从一个位置移动到另一位置时更新连接性简档。因此,在此所描述的技术被配置为利用关于应用和客户端设备的网络信息来做出功率感知网络决策,以便保持客户端设备的功率(例如,电池寿命)。

本申请还描述了客户端设备上的业务记录模块,业务记录模块被配置为监视被安装在客户端设备上的应用的设备特定的网络业务模式并且将设备特定的网络业务模式存储在策略存储库的对应的应用简档中。业务记录模块还被配置为向远程监视服务报告设备特定的网络业务模式,使得远程监视服务可以将设备特定的网络业务模式与从其他设备收集的其他网络业务模式进行组合。以这种方式,远程监视服务可以计算应用的网络性能要求,并且将网络性能要求分发给客户端设备。

图1示出了可以实现多接口功率感知网络的示例环境100的框图。客户端设备102包括应用104(例如,在此可以称为应用104),应用104被单独地配置为与诸如(一个或多个)应用服务器106等远程网络连接设备通信。客户端设备102通过一个或多个接入网络108与应用服务器106通信。在客户端设备102上执行的示例应用104可以包括网络浏览器、电子邮件客户端、文件传输协议(ftp)客户端、文件服务器、媒体播放器应用、游戏应用、社交媒体应用、移动电话应用(例如,“app”)等。应用服务器106可以包括网络服务器、电子邮件服务器、ftp服务器、媒体服务器、文件服务器、游戏托管服务器等。给定客户端设备102通常可以运行与多个应用服务器106通信的多个应用104。

客户端设备102可以利用各种有线或无线通信技术中的任何一种来访问这些网络108。因此,接入网络108可以是各种无线网络中的任何一种,包括但不限于:(i)使用例如802.11gwi-fi网络连接、802.11acwi-fi网络连接等的各种ieee802.11无线局域网(lan)兼容网络中的任何一种,(ii)移动通信网络,诸如全球移动通信系统(gsm)网络、通用移动电信系统(umts)网络、长期演进(lte)网络等,或者(iii)使用例如诸如超高频(shf)、特高频(uhf)等微波无线电频率的各种卫星通信网络中的任何一种。接入网络108还可以或替代地包括各种个域网中的任何一种,包括但不限于ieee802.15、等。接入网络108还可以或替代地包括有线连接,包括但不限于以太网网络(诸如由ieee802.3定义的那些)、光纤网络等。接入网络108可以提供对以下各项的访问:公共因特网或其他广域网(wan)、校园区域网络(can)、城域网(man)、lan、数据中心网络(dcn)等。连接到接入网络108的服务器和服务可以直接连接,或者经由诸如公共因特网等其他网络来连接。

客户端设备102包括策略存储库110,策略存储库110存储可用于确定客户端设备102的策略的信息。例如,策略可以与网络连接(例如,“联网”策略)的建立和维持相关。因此,策略存储库110可以存储与应用104相对应的应用简档。应用简档存储指示应用维持可接受的或最佳的使用或服务级别所要求或需要的网络能力的网络信息,这可以与用户体验有关。在各个实现中,应用所要求或需要的网络功能可以与应用的执行状态相关联(例如,屏幕开启执行状态比对屏幕关闭执行状态、主动传输数据的执行状态比对被配置为接收稀疏间隔的推送通知的执行状态、当用户正在读取由浏览器呈现的数据时的浏览器的数据获得执行状态比对数据消耗状态等)。在各个实现中,应用简档包括来自诸如业务记录模块112等本地源的数据和来自诸如远程监视服务114等远程源的数据。此外,可以通过从应用直接提供的信息来通知应用简档。

客户端设备102还包括业务记录模块112。业务记录模块112被配置为监视应用104的设备特定的网络业务模式,并且将设备特定的网络业务模式存储在策略存储库110的应用简档中。如上所述,应用的实际网络业务模式可以用于确定应用维持可接受的或最佳的使用或服务级别所要求或需要的网络能力(例如,用户体验不受网络问题的影响或者由于网络问题造成的影响是微不足道的和/或不明显的)。因此,业务记录模块112将设备特定的网络业务模式报告给远程监视服务114,使得远程监视服务114可以将设备特定的网络业务模式与从安装有应用的其他客户端设备收集的其他网络业务模式组合。然后,远程监视服务114可以基于所收集的网络业务模式来计算网络性能要求,并且将网络性能要求提供给客户端设备102以存储在策略存储库110的应用简档中。在各个示例中,远程监视服务114被配置为在所收集的网络业务模式中标识网络性能明显影响应用的使用或服务级别时的实例(例如,用户体验因诸如低吞吐量、增加的延迟、丢失或丢弃的分组等网络问题而受到影响)。可以基于所标识的实例来设置最低性能要求。

在各个示例中,网络性能要求可以描述数据流在通信设备之间发生的可接受的和/或最佳的方式。如在此所使用的,“流”指的是由两个或更多个网络连接的端点之间的通信会话定义的数据通信业务,诸如在客户端设备102上执行的应用104与应用服务器106之间。网络业务模式可以包括但不限于:所使用的网络接口和/或网络连接类型、数据交换之间的时间量、通常传递的数据量(例如,每个定义的时间间隔)、应用发送和/或接收数据的通常时间量、通常传递的数据类型、触发网络通信的应用功能(例如,数据突发),等等。网络业务模式还可以描述用于传递数据的基于性能的因素,诸如吞吐量、延迟、可靠性,等等。

网络业务模式还可以包括由通信会话定义的元素。例如,单个通信会话可以由源地址、目的地地址、协议、源端口和目的地端口的5元组中的一些或全部来定义或确定。源和目的地地址可以包括因特网协议(ip)地址,诸如ip版本4(ipv4)地址或ip版本6(ipv6)地址。可以使用其他源和目的地地址类型,诸如媒体访问控制(mac)地址等。5元组中的协议可以包括传输控制协议(tcp)、用户数据报协议(udp)、流控制传输协议(sctp)、数据报拥塞控制协议(dccp)或其他协议。这些协议通常可以属于或者可以被称为属于开放系统互连(osi)模型的“传输层”,尽管这样的协议可能并非严格地符合由osi模型为传输层协议提供的定义。就在此所使用“传输层”或其他osi模型术语(诸如应用层、网络层、“层2”等)来描述协议或其他概念而言,这些osi术语的使用并不意在暗示任何这样的协议或概念严格地符合osi模型中的定义,尽管这样的协议或概念可能满足这些定义。

5元组中的目的地端口信息可以指示各种更高层协议(例如,osi模型下的应用层协议)。在一些实施例中,这样的更高层协议包括超文本传输协议(http)(通常但不一定由tcp或udp端口80指示)、http安全(https)(通常但不一定由tcp或udp端口443指示)、ftp(通常但不一定由tcp或udp端口20(用于数据传送)和端口21(用于ftp控制)指示)、安全外壳(ssh)(通常但不一定由tcp或udp端口22指示)、实时传输协议(rtp)(通常但不一定由tcp或udp端口5004指示)。更高层协议可以包括各种基于电子邮件的协议,诸如各种版本的邮局协议(pop,诸如pop2、pop3)(通常但不一定由tcp或udp端口109(pop2)或端口110(pop3)指示)、各种版本的因特网消息访问协议(imap,诸如imap4)(通常但不一定由tcp端口143指示)、消息传递应用程序编程接口(mapi)(通常但不一定由tcp或udp端口135指示)、简单邮件传输协议(smtp)(通常但不一定由tcp或udp端口25指示)等。在不脱离在此所描述的实施例的范围的情况下,可以使用其他示例目的地端口和相关联的更高层协议。数以万计的官方、注册和非官方tcp和udp端口被定义和使用,并且实施例不限于它们中的一个或多个。此外,尽管端口号可以是特定协议的官方端口(如例如由互联网地址编码分配机构(iana)定义的),但是其他端口可以与特定协议相关联。例如,虽然端口443可以是https的官方端口,但是客户端和应用服务器可以被配置为利用某个其他端口号来指示https连接。

5元组中的源端口信息可以是与分组相关联的任何端口号。客户端和应用服务器经常使用源端口来区分多个应用请求之间的业务。因此,在相同客户端设备发送具有相同源地址、目的地地址、协议和目的地端口的多个分组但是分组具有不同源端口的情况下,不同的源端口可以指示分组与相同客户端或客户端应用与应用服务器之间的不同通信会话相关联。例如,客户端设备上的网络浏览器客户端软件可以建立到相同应用服务器的两个http连接,诸如在两个不同的浏览器窗口中,以获得不同的网页,并且这可能(尽管可能不会)导致利用多个源端口并且从而导致两个应用通信会话。在各个示例中,五元组数据中的一个或多个可以用于定义或确定应用通信会话,使得具有相同的5元组(例如,相同的源和目的地地址、协议、以及相同的源和目的地端口)的所有分组被视为属于相同通信会话并且因此属于相同“流”。

可以基于除了上述5元组之外的其他数据(诸如更高层协议数据流)来确定或定义通信会话。在一些实施例中,可以根据在较高层业务流中找到的状态信息来确定连接。以http为例,可以基于客户端和http服务器来定义http会话,以交换用于请求和接受在客户端与服务器之间建立tcp会话的syn、syn_ack和ack命令。这些交换之后可以是客户端对来自服务器的数据的请求的交换(诸如通过发出http_get命令和http_200_ok回复,以及其他类型的http交换通信)。http会话可以以fin命令和ack应答的发出而结束。因此,实施例可以基于这样的更高层协议流来确定应用通信或“流”。

可以基于其他数据来确定或定义通信会话,其他数据包括:在通信会话期间登录到客户端设备102的用户、在通信会话期间的gps坐标、与通信会话的发生相关联的时间戳、通信会话持续时间等。

这些示例通信组——无论是基于地址/协议/端口五元组、更高层状态信息(诸如http或如上所述的其他状态数据),5元组和更高层协议数据的某种组合、可能适当的其他数据中的一些还是全部而定义或确定的——表示通信会话,也称为“流”。

客户端设备102还包括网络连接管理模块116。网络连接管理模块116被配置为访问和/或获得策略存储库110中的信息(例如,应用简档和网络接口的连接性简档以及可用的网络连接类型)以用于评估和分析目的,使得可以确定要使用第一连接性选项118还是第二连接性选项120。换句话说,网络连接管理模块116可以对连接性选项进行排名,并且可以基于以下各项来选择要使用的网络接口和网络连接类型:(i)应用104要求或需要什么网络能力,以及(ii)功耗因素。例如,网络连接管理模块116可以确定要使用第一网络接口(例如,wi-fi接口)和第一网络连接类型(例如,802.11g连接),而不是第二网络接口(例如,mbb接口)和第二网络连接类型(例如,4g连接)。或者,网络连接管理模块116可以确定要使用第二网络接口(例如,mbb接口)和第二网络连接类型(例如,4g连接),而不是第一网络接口(例如,wi-fi接口)和第一网络连接类型(例如,802.11g连接)。网络连接管理模块116可以选择满足应用维持可接受的或最佳的服务或使用级别(例如,基于执行状态)所需要的网络性能要求、同时还消耗最少量的功率从而节省了为客户端设备供电的电池的寿命的连接性选项。因此,连接性选项的排名或排序可以基于(i)选项的预期性能符合或满足所要求的网络性能的程度和/或(ii)预期电池消耗量。

在一些实例中,网络连接管理模块116确定要使用第一连接性选项118和第二连接性选项120两者。也就是说,网络连接管理模块116可以使用多路径tcp(mp-tcp)来最大化资源使用并且增加冗余。

为此,网络连接管理模块116被配置为访问基于在安装有应用的多个客户端设备(例如,数百、数千、数百万等)上使用的网络业务模式而生成的应用的网络信息,以便做出联网决策(例如,选择与可用网络108相关联的连接性选项以建立连接)。

如在此所使用的,术语“模块”旨在表示用于讨论目的的可执行指令的示例划分,而不旨在表示任何类型的要求或所要求的方法、方式或组织。因此,虽然描述了各种“模块”,但是它们的功能和/或类似功能可以不同地布置(例如,组合成更少数目的模块,分成更多数目的模块,等等)。此外,尽管在此将某些功能和模块描述为由在处理器上可执行的软件和/或固件来实现,但是在其他实施例中,任何或所有模块可以全部或部分地由硬件实现(例如,专用处理单元等)以执行所描述的功能。

图2示出了可以在其上实现多接口功率感知网络的客户端设备102的其他示例组件的框图。图2的客户端设备102可以包括图1的客户端设备102中示出的组件。此外,客户端设备102可以包括一个或多个处理器202和存储器204,其示例在下面描述。图2示出了应用104(1)...104(n)(例如,其中n是安装在客户端设备上的应用的正数)。策略存储库110包括与应用104(1)...104(n)相关联地存储的应用简档206。因此,每个应用具有其中可以存储有网络使用信息的对应的应用简档206。

如上所述,业务记录模块112被配置为监视由应用104关于特定客户端设备(例如,客户端设备102)而使用的网络业务模式。业务记录模块112将网络业务模式存储在应用简档206中,并且还将网络业务模式报告给远程监视服务114,使得远程监视服务114可以将网络业务模式与从安装有应用的其他客户端设备收集的其他网络业务模式进行组合(例如,聚合)。因此,可以生成应用104维持可接受的或最佳的使用或服务级别所要求的网络性能要求。然后,业务记录模块112从远程监视服务114接收网络性能要求并且将其存储在应用简档206中。网络性能要求可以定义:吞吐量(例如,应用以可接受的和/或最佳的方式运行所需要的最小要求吞吐量)、延迟(例如,允许应用以可接受的和/或最佳的方式运行的最大延迟)、可靠性(例如,允许应用以可接受的和/或最佳的方式运行的最大分组丢弃率)等。

网络连接管理模块116包括代理服务208或与代理服务208相关联。如在此使用的,“代理”是用作客户端(例如,应用104)与远程网络连接设备(例如,应用服务器106)之间的中介的软件和/或硬件元件。代理服务208可以与应用104通信,就好像它是应用104正在试图访问的资源一样。在从应用104接收到访问资源的连接尝试(例如,httpsyn)时,代理服务208可以回复,好像它是资源一样(例如,将httpsynack发送回应用104)。

因此,当客户端设备102正在使用各种连接性选项中的一个或多个来进行通信(例如,发送和/或接收数据)时,代理服务208管理应用流和连接性。在各个实现中,代理服务208的使用将应用管理与网络连接管理去耦合(例如,使用诸如wi-fi、mbb、以太网等不同的网络连接类型)。例如,代理服务208可以将多个不同的网络连接表示为单个连接,并且将单个连接表示提供给个体应用。然后,代理服务208可以基于策略存储库110中的信息来确定要使用哪个网络接口和/或哪个网络连接,使得用户体验不会受到网络性能的显著影响,但是设备资源(例如,电池寿命)可以有效地得到管理和节省。在各个示例中,代理服务208可以使用mp-tcp来最大化资源使用并且增加冗余。例如,mp-tcp可以使用wi-fi连接和mbb连接来建立和维持在客户端设备102上执行的应用104的流。

因此,代理服务208可以代理应用104(1)...104(n)与远程网络连接设备(诸如应用服务器106)之间的通信。代理服务208可以根据客户端设备102的各种功率状态来管理应用104(1)...104(n)与远程网络连接的设备之间的通信流。代理服务208还可以代表应用104(1)...104(n)来管理客户端设备102内的功率管理功能。示例功率管理功能包括使用功率管理应用程序编程接口(api)或其他操作系统或网络驱动器特征来启动网络通信硬件210,确定要使用哪个连接性选项来建立和/或维持连接,和/或确定要从一个连接性选项切换到另一可用的连接性选项(例如,基于应用的执行状态的变化,基于确定用户体验由于网络问题而受到影响等)。

网络通信硬件210可以包括基于不同接入网络108的可用性(例如,取决于客户端设备102的当前位置)而可用的多个连接性选项。例如,网络通信硬件210可以包括能够建立和维持不同类型214的网络连接(例如,各种ieee802.11无线兼容连接中的任一个)的第一网络接口212(例如,wi-fi接口)。网络通信硬件210可以包括能够建立和维持不同类型218的网络连接(例如,3g连接、4g连接等)的第二网络接口216(例如,mbb接口)。网络通信硬件210可以包括能够建立和维持不同类型222的网络连接(例如,诸如由ieee802.3等定义的那些网络连接)的第三网络接口220(例如,以太网网卡)。

在各个实现中,(一个或多个)设备驱动器224可以管理网络通信硬件210。网络通信硬件210可以具有多于一个关联设备驱动器224。注意,在一些情况下,一个设备驱动器224可以管理网络接口的多个实例(例如,网络适配器),其可以包括多个物理和/或虚拟网络适配器。

在各个示例中,网络连接管理模块116从应用104(1)...104(n)接收用于发送数据和/或接收数据(例如,推送通知)和/或用于实现从远程网络连接设备的后台传送的尝试或请求。这样的请求可以经由api或类似的软件构造而被捕获。在这些示例中,应用104(1)...104(n)被配置为对网络连接管理模块116进行api调用。在一些情况下,这样的请求可以被网络连接管理模块116拦截,诸如被代理服务208拦截。

网络连接管理模块116还被配置为在策略存储库110中生成和/或维持与不同网络接口和/或网络连接类型相对应的连接性简档226。在各个示例中,连接性简档226与网络接口相关联,并且可以指示:(i)可以由网络接口建立的网络连接类型,(ii)客户端设备可能消耗多少功率来使用网络接口建立和/或维持特定网络连接类型,(iii)特定网络连接类型的预期性能度量(诸如延迟)(例如,往返时间)、抖动(例如,延迟的可变性)、吞吐量(例如,每秒分组数、每秒比特数等)和/或可靠性(例如,分组错误率、分组丢失率等),(iv)与网络连接相关联的成本(例如,免费wi-fi连接比对与移动宽带连接相关联的数据使用成本等,和/或(v)与相关网络资源或互联网的连接性。在各个示例中,可能的功耗和/或预期的性能度量可以基于客户端设备的当前位置和从可用网络的附近网络设备发出的信号的强度来确定。因此,客户端设备的当前位置和/或信号的强度也可以被包括在连接性简档中。当客户端设备从一个位置移动到另一位置时,网络连接管理模块116可以更新连接性简档226。网络连接管理模块116可以使用连接性简档226来确定要使用的连接性选项,其中所确定的连接性选项满足应用维持可接受的或最佳的服务或使用级别所要求的网络性能要求(例如,在特定的执行状态下),与其他可用的连接性选项相比,上述连接性选项也消耗最少的功率量。例如,可以基于满足网络性能要求和/或功耗量的能力来对连接性选项进行排名或排序,并且可以选择最高排名的选项以供使用(例如,最符合网络性能要求和/或消耗最少功率量的选项)。

在各个示例中,策略存储库110可以维持关于客户端设备102的状态的其他参数(例如,状态参数228)。网络连接管理模块116可以在进行功率感知网络决策时访问和评估状态参数228。例如,状态参数228可以涉及客户端设备102的功率状态。功率状态可以包括设备功率管理模式,诸如活动模式、连接空闲模式、连接睡眠模式、断开连接睡眠模式、无线电关闭模式等。对于用户,一个或多个功率模式可以看起来像客户端设备102是“开启”、“唤醒”、“睡眠”、“断电”等。功率状态还可以包括电池电平、插入主电源或电网功率(例如,插入家庭或建筑物功率)的状态、在电池功率下操作的状态等。功率状态可以包括客户端设备102的硬件状态,诸如客户端设备102的网络通信硬件210被加电、断电或低电平、处理器202被加电、断电或低电平、存储器204在低功耗模式下运行等。客户端设备102的功率状态可以包括设备的软件状态,诸如某些软件模块或组件(包括操作系统组件或模块)被停止、被暂停、可操作等。

在各个实现中,与应用104相关的状态参数228可以被存储在应用简档206中。如上所述,应用的执行状态可以与应用104所要求或需要的网络能力相关联(例如,被映射)。例如,应用104的第一执行状态可以与应用对显示屏的主动使用相关联(例如,由用户接口模块230控制)。如果应用104是包括视频聊天功能的社交媒体应用,则该第一执行状态可能要求或需要实时数据通信,使得两个人可以在没有网络问题导致的中断的情况下进行视频聊天。因此,网络性能要求可以指示网络连接必须具有更高的吞吐量(例如,预定义的最小吞吐量)、较低的延迟(例如,预定义的最大延迟量)和更高的可靠性(例如,预定义的最大丢失率),使得用户体验不会受到影响。应用104(例如,社交媒体应用)的第二执行状态可以与后台执行相关联,其中应用104不是主动使用显示屏(例如,应用处于“屏幕关闭”模式),并且因此,应用可能只要求或需要网络连接来处理稀疏间隔的推送通知(例如,与第一执行状态相比,网络性能要求不那么苛刻)。

图3示出了说明用于收集网络业务模式和/或计算个体应用的网络性能要求的示例远程监视设备300(例如,作为远程监视服务114的一部分的服务器)的框图。远程监视设备300可以包括一个或多个处理器302和存储器304,其示例在下面描述。存储器304包括注册模块306、收集模块308、生成模块310和数据存储库312。

注册模块306被配置为注册用于监视服务的应用104。例如,应用104的开发者可以向远程监视服务114通知应用104到多个客户端设备的分发。此外,应用104的开发者还可以提供他们自己的应用提供的网络信息314,该信息指示开发者期望应用要求或需要的网络业务模式(例如,基于变化的执行状态),该信息可以存储在数据存储库312中。然后,注册模块306可以联系客户端设备102的业务记录模块112(例如,经由使用由应用的开发者提供的设备id),使得业务记录模块112知道要收集和报告代表特定设备上的应用而实现的实际网络业务模式。

收集模块308被配置为从大量设备收集实际网络业务模式,聚合实际网络业务模式,并且将实际网络业务模式作为实际应用网络使用信息316存储在数据存储库312中。在各个示例中,收集模块308可以将网络业务模式与特定应用执行状态相关联。网络业务模式可以包括但不限于:网络接口和/或所使用的网络连接类型、数据交换之间的时间量、通常传递的数据量(例如,每个定义的时间间隔)、应用发送和/或接收数据的通常时间量、通常传递的数据类型、触发网络通信的应用功能(例如,数据突发)等。网络业务模式还可以描述用于传递数据的基于性能的因素,诸如吞吐量、延迟、可靠性等。如上所述,网络业务模式还可以包括由通信会话定义的元素。

生成模块310基于收集的(聚合的)实际应用网络使用信息316和/或应用提供的网络信息314来计算网络性能要求,并且生成模块310将网络性能要求发送到客户端设备。网络性能要求可以描述数据流在通信设备之间发生的可接受的和/或最佳的方式。因此,网络性能要求可以包括基于性能的因素的阈值,诸如吞吐量(例如,应用以可接受的和/或最佳的方式运行所要求的最小吞吐量)、延迟(例如,允许应用以可接受的和/或最佳的方式运行的最大延迟)、可靠性(例如,允许应用以可接受的和/或最佳的方式运行的最大分组丢弃率)等。在各个示例中,在计算网络性能要求时,生成模块310被配置为在所收集的网络业务模式中标识网络性能明显影响应用的使用或服务级别的实例(例如,用户体验因诸如低吞吐量、增加的延迟、丢失或丢弃的分组等网络问题而受到影响)。在一些实施例中,生成模块310可以计算通常安装的应用组的网络性能要求,并且考虑代表多个应用而实现的交互(例如,在应用的同时执行期间)。例如,如果多个应用正在接收推送通知并且应用服务器106正在复用推送通知以由客户端设备102同时接收,则整体功率和网络特性可能与应用服务器106单独发送推送通知时不同。也就是说,可以基于应用与一个或多个其他应用之间的观察到的网络交互来计算网络性能要求。

在各个示例中,生成模块310还可以确定个体应用的优先级并且根据优先级对应用进行排名,以由客户端设备在确定网络策略时考虑。可以基于应用提供的网络信息314和实际应用网络使用信息316来确定优先级。例如,较低优先级应用具有较低优先级数据业务,而较高优先级应用具有较高优先级数据业务。例如,当确定哪个应用使用更高性能的网络连接而被提供有网络i/o时,客户端设备可以使用优先级(例如,排名)。在某些情况下,应用的优先级可以基于执行状态。

图4-7描绘了示出根据各个示例的示例过程的流程图。这些过程的操作在各个框中示出,并且参考这些框进行总结。这些过程被示出为逻辑流程图,其每个操作可以表示可以用硬件、软件或其组合实现的一组操作。在软件的上下文中,操作表示被存储在一个或多个计算机存储介质上的计算机可执行指令,这些指令在由一个或多个处理器执行时使得一个或多个处理器能够执行所记载的操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、模块、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且任何数目的所描述的操作可以以任何顺序被组合,被分成子操作,和/或被并行执行以实现这些过程。根据本公开的各个示例的过程可以仅包括逻辑流程图中描绘的一些或全部操作。

图4示出了说明在示例客户端设备(例如,客户端设备102)处实现的用于监视和报告个体应用(例如,应用104)的网络使用信息的示例过程400的流程图。

在402处,在客户端设备处监视应用的设备特定的网络业务模式。例如,业务记录模块112可以监视用于应用通信的特定网络接口和/或网络连接类型、数据交换之间的时间量、通常传递的数据量(例如,每个定义的时间间隔)、应用发送和/或接收数据的通常时间量、通常传递的数据类型、触发网络通信的应用功能(例如,数据突发)等。此外,与基于性能相关的网络业务模式可以由业务记录模块112监视,诸如吞吐量、延迟、可靠性等。更进一步,基于在通信会话中定义的元素的网络业务模式可以由业务记录模块112监视。

在404处,将设备特定的网络业务模式存储在由客户端设备维持的策略存储库的应用简档中。在各个示例中,该过程可以返回到操作402,其中设备特定的网络业务模式的监视和存储在一段时间(例如,数分钟、数小时、数天、数周等)内继续。

在406处,将应用的设备特定的网络业务模式报告给远程监视服务。

在408处,从远程监视服务接收应用的网络性能要求。基于来自多个设备的应用的网络使用信息的聚合来计算网络性能要求。网络性能要求可以描述数据流在通信设备之间发生的可接受的和/或最佳的方式。因此,网络性能要求可以包括基于性能的因素的阈值,诸如吞吐量(例如,应用以可接受的和/或最佳的方式运行所需要的最小吞吐量)、延迟(例如,允许应用以可接受的和/或最佳的方式运行的最大延迟)、可靠性(例如,允许应用以可接受的和/或最佳的方式运行的最大分组丢弃率或最大分组错误率)等。

在410处,将网络性能要求存储在应用的相应的应用简档中。

然后,该过程可以返回到操作402,其中监视继续。在一些实例中,客户端设备102可以在执行其自己的本地监视之前接收网络性能要求(例如,在最近购买的设备首次被启动时并且在用户已经使用安装在设备上的任何应用之前)。

图5示出了说明在示例远程监视设备(例如,远程监视设备300)处实现的用于收集网络使用信息和/或生成个体应用的网络性能要求的示例过程500的流程图。

在502处,接收对于注册应用的请求。如上所述,该请求可以由应用的开发者提供。此外,根据用户协议,开发者可以提供应用安装或将要安装在其上并且随后执行的设备id的列表。

在504处,接收和存储由开发者提供的应用信息(例如,在数据存储库312中作为应用提供的网络信息314)。应用信息可以指示开发者期望应用要求或需要的网络业务模式(例如,基于应用的变化的执行状态)。

在506处,与应用相关联的实际网络业务模式从多个客户端设备被接收,被聚合并且随后被存储(例如,在数据存储库312中作为实际应用网络使用信息316)。该操作对应于图4的示例过程400中的操作406。此外,可以在一段时间(例如,数分钟、数小时、数天、数周等)内实现该操作。

在508处,计算应用的网络性能要求。例如,生成模块310可以分析所收集的网络业务模式(例如,实际应用网络使用信息)以及应用提供的网络信息314,以确定要满足以使得与应用相关联的用户体验维持最低服务或性能级别的网络性能要求的阈值集合。

在510处,将网络性能要求分发给客户端设备(例如,提供设备特定的网络业务模式的客户端设备和安装有应用但是不提供设备特定的网络业务模式的其他客户端设备)。

此外,可以将基于实际网络业务模式而计算的网络性能要求提供给应用的开发者,使得开发者可以改进其自己的网络需求模型。

图6示出了说明在示例客户端设备处实现的用于确定哪个(哪些)网络接口和/或哪个(些)网络连接类型要用于传递安装在示例客户端设备上的个体应用的数据的示例过程600的流程图。

在602处,从应用接收对于建立网络连接的请求。例如,作为请求的一部分的应用可以通过调用api、打开通信套接字以尝试使用网络接口进行通信、或者以某种其他方式来向网络连接管理模块116注册。应用可以注册以接收推送通知(接收由远程网络可访问设备发起的通信)或传输数据(例如,发起通信流)。

在604处,访问被维持在策略存储库中的相应的应用简档。如上所述,应用简档包括应用的网络性能要求(例如,基于应用的特定执行状态)。为此,网络连接管理模块116可以在做出网络决策时考虑网络性能要求。在一些实例中,网络连接管理模块被配置为基于在应用与一个或多个其他应用之间的观察到的网络交互来调节(例如,计算)网络性能要求。

在606处,获得被维持在策略存储库中的连接性简档。所访问的连接性简档可以基于网络接口,并且可以包括当前可用于客户端设备的连接性选项(例如,网络连接类型),其中连接性选项包括网络接口和网络连接类型的组合。连接性简档描述基于设备的当前位置的预期功耗(例如,功率消耗)和网络连接的预期性能。在各个实现中,可以使用测试分组确定网络连接的预期性能,并且监视性能(例如,由业务记录模块112)。

在608处,确定可用于建立网络连接的连接性选项(例如,在多个不同连接性选项中选择)。例如,可以基于满足网络性能要求和/或功耗量的能力来对连接性选项进行排名或排序,并且可以选择最高排名的选项以供使用(例如,最符合网络性能要求和/或消耗最少功率量的选项)。因此,作为确定的一部分,连接性选项的预期网络性能可能必须满足由应用的网络性能要求设置的阈值(例如,超过最小吞吐量的预期吞吐量、小于允许的最大延迟的预期延迟、小于允许的最大抖动量的预期抖动、小于允许的最大分组错误率的分组错误率、小于允许的最大分组丢失率的分组丢失率等)。注意,在一些实施例中,如果可用的唯一连接性选项不满足预期网络性能要求,则可以确定某个网络连接性优于不连接,并且可以选择最佳可用连接性选项。

在各个示例中,608中的确定基于预期的功耗而被做出。例如,如果两个或更多个连接性选项中的每个具有满足由网络性能要求设置的阈值的预期网络性能,则网络连接管理模块116可以比较和/或排序连接性选项的预期功耗,并且选择预期会消耗最少的功率量从而节省客户端设备的电池寿命的连接性选项。

在610处,建立由所确定的连接性选项指定的网络连接,并且使用网络连接来传递应用的数据。

图7示出了说明在示例客户端设备(例如,客户端设备102)处实现的用于确定从使用当前连接性选项切换到使用新连接性选项来传递安装在示例客户端设备上的个体应用的数据示例过程700的流程图。

在702处,为应用维持第一网络连接,第一网络连接先前被建立以传递在设备上执行的应用的数据。

在704处,确定导致网络连接性状态的评估的事件的发生。在一个示例中,事件包括设备从先前位置到当前位置的移动(例如,其可能影响哪些网络可用和/或可用的信号的强度)。在另一示例中,事件包括应用从先前执行状态到当前执行状态的状态转换(例如,指示可能需要的网络性能要求的转变)。在又一示例中,该事件包括确定正在维持的网络连接不再满足先前确定的应用的网络性能要求,并且结果,用户体验正在受到影响(例如,使用或服务级别是不可接受的)。在又一示例中,事件包括预定时间间隔的期满。在一些情况下,事件可以指示设备已经将电池耗尽到如此低的水平(例如,阈值水平)以至于省电成为最高优先级(相对于网络连接)。

在706处,类似于图6的示例过程600中的操作604,访问被维持在策略存储库中的应用简档以确定网络性能要求(例如,对于应用的当前执行状态)。

在708处,类似于图6的示例过程600中的操作606,访问被维持在策略存储库中的连接性简档(例如,连接性简档可以包括基于客户端设备的变化的位置的更新信息)。

在710处,确定从使用第一网络连接来传递应用的数据切换到使用第二网络连接来传递应用的数据。例如,网络连接管理模块116可以确定第二网络连接的预期性能满足应用的网络性能要求,并且与第一网络连接以及其他可用的网络连接相比,第二网络连接消耗更少的功率。

根据各种非限制性示例,在此所描述的计算系统(例如,客户端设备102、远程监视设备300、应用服务器106等)包括可以连接到网络的一个或多个设备,诸如服务器、存储设备、平板电脑、笔记本电脑、台式计算机、游戏机、媒体播放器、移动电话、手持电脑、可穿戴设备、智能电器、网络设备、自助服务终端设备、打印机、相机、传感器,等等。在一个示例配置中,计算系统包括至少一个处理器。计算系统还包含允许与各种其他系统通信的(一个或多个)通信连接。计算系统还包括可以经由诸如总线等连接通信地耦合到(一个或多个)处理器和计算机可读介质的一个或多个输入设备(诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等)和一个或多个输出设备(诸如显示器(包括触摸屏显示器)、扬声器、打印机等)。

存储器204和304是计算机可读介质的示例。计算机可读介质存储由一个或多个处理器可加载和可执行的计算机可执行指令以及在这些程序的执行期间生成的和/或与这些程序结合可使用的数据。计算机可读介质可以存储操作系统实例,其向应用104、策略存储库110、业务记录模块112、网络连接管理模块116、代理服务208、(一个或多个)设备驱动器224、用户接口230等提供基本系统功能。这些组件中的一个或多个组件(包括操作系统)可以被实例化为虚拟机、应用容器或某个其他类型的虚拟化实例化。

处理器202和302可以包括例如经由来自模块或应用程序接口(api)的专门编程来被配置为执行在此所描述的功能的一个或多个单核处理单元、多核处理单元、中央处理单元(cpu)、图形处理单元(gpu)、通用图形处理单元(gpgpu)或硬件逻辑组件。在替代示例中,本公开的一个或多个功能可以由硬件逻辑组件(而不限于其)来执行或进行,包括现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑器件(cpld)、数字信号处理单元(dsp)和其他类型的定制处理单元。例如,被配置为执行在此所描述的一个或多个功能的处理单元可以表示包括嵌入在fpga架构中的cpu核的混合设备。这些或其他硬件逻辑组件可以独立操作,或者在某些情况下可以由cpu驱动。在一些示例中,计算系统可以包括多个类型的多个处理单元。例如,处理单元可以是一个或多个gpgpu和一个或多个fpga的组合。不同的处理单元可以具有不同的执行模型,例如,图形处理单元(gpu)和中央处理单元(cpu)就是这种情况。

取决于所使用的计算设备的配置和类型,计算机可读介质(例如,存储器204和304)包括易失性存储器(诸如随机存取存储器(ram))和/或非易失性存储器(诸如只读存储器(rom)、闪存、3dxpoint、电阻ram等)。计算机可读介质还可以包括附加的可移动存储装置和/或不可移动存储装置,包括但不限于固态驱动器(ssd)(例如,闪存)、硬盘驱动器(hdd)存储器或其他类型的磁存储装置、光存储装置、和/或可以为计算系统提供计算机可执行指令、数据结构、程序模块和其他数据的非易失性存储的其他存储装置。

计算机可读介质可以例如表示计算机存储器,其是一种形式的计算机存储介质。计算机可读介质包括至少两种类型的计算机可读介质,即计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可执行指令、数据结构、编程模块或其他数据等信息的任何过程或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于相变存储器(pcm)、电阻ram、3dxpoint非易失性存储器、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪存或其他存储器技术、光盘只读存储器(cd-rom)、数字通用磁盘(dvd)或其他光学存储装置、磁带盒、磁带、磁盘存储器或其他磁存储设备、或者可以用于存储信息以供计算设备访问和取回的任何其他介质。相反,通信介质可以将计算机可执行指令、数据结构、程序模块或其他数据包含在诸如载波或其他传输机制等调制数据信号中。如在此定义的,计算机存储介质不包括通信介质。

在此所描述的各种过程作为计算功能结合网络功能而被执行。例如,一个设备或系统可以经由网络通信硬件将消息传输到另一设备。例如,这可以包括由软件模块(例如,应用104)将指针、自变量或其他数据传递给网络模块(例如,代理服务208)。指针、自变量或其他数据可以标识存储在存储器或寄存器中的要传输到另一设备的数据。网络模块可以包括协议栈,并且可以读取由指针、自变量或其他数据标识的数据。协议栈可以将数据封装在一个或多个帧、分组、信元或其他数据网络协议结构中。协议栈(诸如在网络功率模块内或其他地方)可以调用网络接口设备驱动器,以引起电信号、磁信号或光信号沿着通信介质物理传输到网络元件,诸如网关、路由器、开关、集线器等。底层网络可以将数据路由或切换到目的地。目标设备可以经由网络接口卡接收数据,这导致中断被呈现给设备驱动器或网络适配器。目标设备的处理器向设备驱动器传递执行线程,该执行线程引起协议栈解封装在其中接收到数据的分组、帧和信元中的数据。协议栈引起所接收的数据被存储在存储器、寄存器或其他位置。协议栈可以传递标识所接收的数据存储在目的地设备上执行的目的地软件模块的位置的指针、参数或其他数据。软件模块接收执行线程以及参数、指针或其他数据,并且从所识别的位置读取数据。

示例条款

条款a,一种设备,包括:一个或多个处理器;多个网络接口,其被配置为创建和维持多个不同类型的网络连接;存储设备的策略存储库的存储器,策略存储库维持被存储在设备上的多个应用的应用简档;以及网络连接管理模块,其被存储在存储器上并且由一个或多个处理器可执行,网络连接管理被配置为:从多个应用中的一个应用接收对于通过网络传递数据的请求;访问与多个应用中的一个应用相关联的应用简档,应用简档描述多个应用中的一个应用的网络性能要求;对于多个网络接口中的每个网络接口,获得与网络接口相关联的连接性简档,连接性简档包括一个或多个网络连接类型、与个体网络连接类型相关联的预期功耗、与个体网络连接类型相关联的预期网络性能、以及设备的当前位置的信息;至少部分基于所获得的连接性简档和多个应用中的一个应用的网络性能要求来确定连接性选项的顺序,其中个体连接性选项包括网络接口和网络连接类型;从连接性选项的顺序中选择连接性选项;以及使用所选择的连接性选项的网络接口和网络连接类型来传递数据。

条款b,根据条款a所述的设备,其中连接性选项的选择至少部分基于连接性选项的预期功耗小于另一连接性选项的预期功耗。

条款c,根据条款a或条款b所述的设备,还包括存储在存储器上并且由一个或多个处理器可执行以进行以下操作的业务记录模块:监视多个应用中的所一个应用的设备特定的网络业务模式;将设备特定的网络业务模式报告给远程监视服务,远程监视服务聚合多个应用中的一个应用的网络业务模式以生成网络性能要求;从远程监视服务接收应用的网络性能要求;以及响应于接收到网络性能要求而更新多个应用中的一个应用的应用简档。

条款d,根据条款c所述的设备,其中网络连接管理模块还被配置为基于多个应用中的一个应用与一个或多个其他应用之间的观察到的网络交互来计算网络性能要求。

条款e,根据条款a至条款d中任一项所述的设备,其中多个应用中的一个应用的网络性能要求基于多个应用中的一个应用的执行状态。

条款f,根据条款e所述的设备,其中执行状态至少部分基于多个应用中的一个应用是否主动使用显示屏来执行功能。

条款g,根据条款a至条款f中任一项所述的设备,其中:网络性能要求将以下中的至少一项定义为要满足的阈值:最小吞吐量、最大延迟量、最大抖动量、最大分组丢失率、或最大分组错误率;以及网络性能要求被生成以确保多个应用中的一个应用的可接受的使用级别。

条款h,根据条款a至条款g中任一项所述的设备,还包括代理服务,代理服务被配置为管理应用流并且将应用管理与网络连接管理去耦合。

虽然以上关于一种设备提供了示例性条款a至h,但是在本文档的上下文中应当理解,示例性条款a至h的主题可以经由方法和/或经由存储在计算机可读存储介质上的指令来实现。

条款i,一种设备,包括:一个或多个处理器;多个网络接口,其被配置为创建和维持多个不同类型的网络连接;存储设备的策略存储库的存储器,策略存储库维持被存储在设备上的多个应用的应用简档;以及网络连接管理模块,其被存储在存储器上并且由所述一个或多个处理器可执行,网络连接管理被配置为:维持第一网络连接以传递在设备上执行的应用的数据,第一网络连接与第一连接性选项相关联,其中个体连接性选项包括网络接口和网络连接类型;确定导致网络连接性的评估的事件的发生;访问与应用相关联的应用简档,应用简档描述基于应用的当前执行状态的应用的网络性能要求;获得与第一连接性选项相关联的第一连接性简档,第一连接性简档描述基于设备的当前位置的第一网络连接的预期性能和预期功耗;获得与第二连接性选项相关联的第二连接性简档,第二连接性简档描述基于设备的当前位置的第二网络连接的预期性能和预期功耗;确定第二网络连接的预期性能满足应用的网络性能要求;以及基于确定第二网络连接的预期性能满足网络性能要求,从使用第一网络连接来传递应用的数据切换到使用第二网络连接来传递应用的数据。

条款j,根据条款i所述的设备,其中事件包括设备从先前位置到当前位置的移动。

条款k,根据条款i所述的设备,其中:事件包括应用从先前执行状态到当前执行状态的状态转换;第二网络连接的使用比第一网络连接的使用消耗更少功率;以及从使用第一网络连接来传递应用的数据切换到使用第二网络连接来传递应用的数据至少部分基于第二网络连接的使用比第一网络连接的使用消耗更少功率。

条款l,根据条款i所述的设备,其中事件包括确定第一网络连接不再满足应用的先前确定的网络性能要求。

条款m,根据条款i所述的设备,其中事件包括预定时间间隔的期满。

条款n,根据条款i所述的设备,其中事件包括当前电池电平低于阈值电池电平的指示。

条款o,根据条款i至条款n中任一项所述的设备,其中第一连接性选项和第二连接性选项使用不同的网络接口。

条款p,根据条款i至条款n中任一项所述的设备,其中第一连接性选项和第二连接性选项使用相同的网络接口但不同的网络连接类型。

尽管以上关于一种设备提供了示例性条款i至p,但是在本文档的上下文中应当理解,示例性条款i至p的主题可以经由方法和/或经由存储在计算机可读存储介质上的指令来实现。

条款q,一种方法,包括:从被存储在设备上的多个应用中的一个应用接收对于通过网络传递数据的请求;访问与多个应用中的一个应用相关联的应用简档,应用简档描述多个应用中的一个应用的网络性能要求;对于设备的多个网络接口中的每个网络接口,获得与网络接口相关联的连接性简档,连接性简档包括一个或多个网络连接类型、与个体网络连接类型相关联的预期功耗、与个体网络连接类型相关联的预期网络性能、以及设备的当前位置的信息;至少部分基于所获得的连接性简档和多个应用中的一个应用的网络性能要求来确定连接性选项的顺序,其中个体连接性选项包括网络接口和网络连接类型;从连接性选项的顺序中选择连接性选项;以及使用所选择的连接性选项的网络接口和网络连接类型来传递数据。

条款r,根据条款q所述的方法,其中连接性选项的选择至少部分基于连接性选项的预期功耗小于另一连接性选项的预期功耗。

条款s,根据条款q或条款r所述的方法,其中请求与通信会话相关联,通信会话是基于以下至少一项来定义的:登录到设备的用户、全球定位系统(gps)坐标、或时间戳。

条款t,根据条款q至条款s中任一项所述的方法,还包括:监视多个应用中的一个应用的设备特定的网络业务模式;将设备特定的网络业务模式报告给远程监视服务,远程监视服务聚合多个应用中的一个应用的网络业务模式以生成网络性能要求;从远程监视服务接收应用的网络性能要求;以及响应于接收到网络性能要求而更新多个应用中的一个应用的应用简档。

尽管以上关于一种方法提供了示例性条款q至t,但是在本文档的上下文中应当理解,示例性条款q至t的主题可以经由设备和/或经由存储在计算机可读存储介质上的指令来实现。

条款u,一种设备,包括:用于从被存储在设备上的多个应用中的一个应用接收对于通过网络传递数据的请求的装置;用于访问与多个应用中的一个应用相关联的应用简档的装置,应用简档描述多个应用中的一个应用的网络性能要求;对于设备的多个网络接口中的每个网络接口,用于获得与网络接口相关联的连接性简档的装置,连接性简档包括一个或多个网络连接类型、与个体网络连接类型相关联的预期功耗、与个体网络连接类型相关联的预期网络性能、以及设备的当前位置的信息;用于至少部分基于所获得的连接性简档和多个应用中的一个应用的网络性能要求来确定连接性选项的顺序的装置,其中个体连接性选项包括网络接口和网络连接类型;用于从连接性选项的顺序中选择连接性选项的装置;以及用于使用所选择的连接性选项的网络接口和网络连接类型来传递数据的装置。

结论

尽管已经用特定于结构特征和/或方法动作的语言描述了这些技术,但是应当理解,所附权利要求不必限于所描述的特征或动作。相反,特征和动作被描述为示例实现。

上述所有方法和过程可以经由通过一个或多个通用计算机或处理器执行的软件代码模块来实施并且完全自动化。代码模块可以被存储在任何类型的计算机可读存储介质或其他计算机存储设备中。替代地,可以在专用计算机硬件中实施一些或所有方法。

除非另外特别说明,否则诸如“能够”、“可以”、“可”或“可能”等条件语言在上下文中被理解为表示某些示例包括而其他示例不包括某些特征、元素和/或步骤。因此,这样的条件语言通常不旨在暗示某些特征、元素和/或步骤对于一个或多个示例是以任何方式所必须的,也不旨在暗示一个或多个示例必须包括用于在具有或没有用户输入或提示的情况下决定是否在任何特定示例中包括或将要执行某些特征、元素和/或步骤的逻辑。除非另外特别说明,否则诸如短语“x、y或z中的至少一个”等联合语言应当被理解为表示项目、术语等可以是x、y或z、或者其组合。

在此所描述和/或附图所描绘的流程图中的任何例程描述、元素或框应当被理解为潜在地表示包括用于实现例程中的特定逻辑功能或元素的一个或多个可执行指令的模块、片段或代码部分。替代实现被包括在在此所描述的示例的范围内,其中元素或功能可以被删除,或者不按照示出或讨论的顺序执行,包括基本上同步执行或以相反的顺序执行,这取决于所涉及的功能,如本领域技术人员将会理解的。应当强调,可以对上述示例进行很多变化和修改,其中的元素应当被理解为是其他可接受的示例。所有这样的修改和变化都在本公开的范围内,并且受到所附权利要求的保护。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1