具体实施方式
本发明的发明人已经发觉并认识到,针对移动数据使用的新型收费策略的启用可能对移动计算设备的用户构成负担。用户可能会误判其在记帐周期内的累积使用数量,并且不经意地对于超出封顶的使用招致收费或者令其数据传送受到节制。在任一种情况下,用户体验都可能降级,这或者是由于“令人吃惊的”收费,或者是由于计算设备在尝试需要数据传送的操作时的出乎意料地差的性能。
此外,随着移动应用变得更加强大,可能有更多应用自主地发起消费网络带宽的动作。这样的操作可能在计算设备的背景操作模式下执行,因此用户可能甚至不知道这些操作正在发生并且正在消费网络带宽。与网络上的数据存储库同步的应用例如可能周期性地通过网络与这些数据存储库交换数据。这样的应用可以包括电子邮件服务器或者软件更新服务。这些应用的信息交换可能在没有明确用户输入的情况下在背景模式下发生。
为了避免损害移动计算设备的用户体验,可以提供促进知晓成本的应用的操作系统。所述操作系统可以提供服务,通过所述服务各项应用和其他用户模式组件可以获得当前网络信息,其中包括标识出可以借之计算针对网络的使用收费基础的信息。该信息例如可以允许应用确定所设想的操作的影响,以及基于所确定的影响选择性地执行或修改操作。
所述影响例如可以被计算为在执行特定操作时所招致的收费。但是可以替换地或附加地计算其他类型的影响。这些影响可以包括将由所述操作消费的作为使用封顶的一定百分比的使用数量,或者直到达到封顶为止的剩余数量的百分比。
不管确定所述影响的具体形式如何,知晓成本的应用都可以使用该信息来确定是否将执行会消费带宽的网络操作以及将如何执行。所述应用例如可能确定将立即在计量网络上执行操作。可替换地,所述应用可能确定将在后来的某一时间执行操作,或者推迟执行操作直到检测到未计量的或者成本较低的网络为止。在做出这样的确定时,知晓成本的应用可以利用可能由该应用获得的信息,比如关于完成操作的重要性或者与推迟完成相关联的成本的信息。
一项服务可以从许多来源当中的任一个获得信息,以便能够将其提供给用户模式组件。在一些实施例中,可以从移动网络运营商获得所述信息。移动网络运营商可以为此目的运营服务器,其使得信息可用于移动计算设备上的所述服务。这样的信息例如可以包括标识移动网络运营商使用来计算数据收费的适用于移动计算设备的收费策略的信息。替换地或附加地,所述信息可以指明计算设备的先前使用。此外还可以获得管理信息,比如重置朝向封顶的累计使用度量的日期。
所述服务还可以例如通过监测获得使用信息,从而收集其中一些或全部所述信息。为此目的,所述服务可以合并有监测组件,其对接到管理网络通信的操作系统的各个部分。所述监测组件例如可以对接到网络栈。通过这样的接口,监测组件可以获得关于在其上传送数据的特定网络的使用信息。
此外,监测组件还可以获得关于与通过网络传送的数据相关联的用户模式实体的信息。监测组件可以与可用于监测网络使用的任何适当的用户模式实体或用户模式实体类别相关联地记录该信息。举例来说,监测组件可以记录与特定应用或服务、用户帐户或者应用类型相关联的使用信息。
替换地或附加地,知晓成本的操作系统的服务可以基于与成本有关的标准来确定并施行关于数据使用的策略。这样的策略可以指定各种标准,当应用所述标准时,其表明是要执行、修改还是取消网络操作。这些标准可以是基于一种或更多种因素,比如通过执行操作而将招致的收费、由生成数据的申请人附着到供传送的数据上的标签或者用户指定的使用极限。
可以通过任何适当方式获得这样的策略信息。在一些实施例中,所述服务可以提供用户接口,通过所述用户接口用户可以指定针对特定应用或应用分类的数据使用策略的使用极限或其他方面。
为了施行关于数据使用的决定,可以在操作系统中合并一种或更多种施行机制。这样的施行机制可以被合并到在应用级别建立网络连接的组件中。这样的组件可以被用来在使用连接的用户模式组件违反数据使用策略时阻断该连接的创建或者打断该连接。可替换地,可以通过防火墙或类似组件来施行,其可以被设定来阻断或节制去往或来自正操作在应用于其的数据使用策略之外的用户模式组件的数据分组。
图1示出了具有知晓成本的操作系统的计算设备可以操作在其中的环境。图1示出了计算设备110。在该例中,计算设备110由用户112操作。计算设备110可以由用户112携带到多个地点,并且计算设备110可以通过那些地点的每一个处的一个或更多接入网进行无线通信。在该例中,计算设备110具有平板外型,其可以很容易由用户携带。但是应当认识到,计算设备的外型并非本发明的关键所在。
在图1的示例中,计算设备110包括一个或更多无线电装置,其支持通过多个接入网进行通信,计算设备110可以通过所述接入网访问因特网130。通过因特网130,计算设备110还可以访问许多数据源当中的任一个,比如网站、公司网络或者连接到因特网130的任何其他网络。为了简单起见,在图1中没有明确地表明这些数据源。
在图1的示例中,计算设备110被装备成通过移动宽带网络访问因特网130。这样的网络例如可以由蜂窝电话运营商或其他移动网络运营商运营。在该例中,移动网络运营商维持接入网120。接入网120可以由移动计算设备通过基站访问,在图1中示出了其中的基站126。接入网120和基站126可以利用传统组件或者按照任何其他适当方式来实施。
基站126可以包括用以支持与移动计算设备110的通信的传送器/接收器。该传送器/接收器耦合到接入网120,通过接入网120可以对去往和来自因特网130的通信进行路由。这样,移动计算设备110可以与能够通过因特网130到达的任何设备或其他网络交换数据,而因特网130又可以通过接入网120到达。
运营接入网120的移动网络运营商可以针对使用接入网120进行收费。应用于发送自或目的为计算设备110的数据传送的收费策略可能取决于许多因素中的任一个。这些因素可以包括由用户112选择的特定订购计划。其他因素可以包括在适用的收费区间期间对于计算设备110先前通过接入网120传送的数据量。举例来说,所述收费策略可以对于在每月记帐周期期间超出预定阈值的数据使用施加不同的收费。但是应当认识到,许多因素可以替换地或附加地被用来确定对于在执行涉及到通过接入网120传送数据的操作时的数据使用将会招致的特定收费。不同的移动网络运营商可能具有对于这些因素进行不同地加权的不同收费策略。基于与不同用户的订购协议,一些移动网络运营商可能对于这些不同用户具有不同的收费策略。
为了便于按照知晓成本的方式控制计算设备110的操作,计算设备110包括知晓成本的操作系统。这样的知晓成本的操作系统可以接收关于由移动网络运营商施加的收费策略的信息。
知晓成本的操作系统可以通过许多方式获得关于移动网络运营商的收费策略和网络数据使用的信息。在一些实施例中,由计算设备110内的知晓成本的操作系统所适用的其中一些或所有(并且可能还有其他)数据成本信息都可以来自移动网络运营商。在图1的实施例中,移动网络运营商维持服务器122,其被配置成向移动计算设备110提供这样的信息。
例如可以通过移动宽带网络的控制信道向计算设备110传送其中一些或全部数据成本信息。作为一个具体示例,可以通过SMS信道或其他适当控制信道传送这样的信息。替换地或附加地,服务器122可以直接耦合到因特网130。这样的连接可以允许移动计算设备110通过移动计算设备110可能与因特网130形成的任何其他连接来获得数据成本信息。举例来说,用户112可以不时地将移动计算设备110连接到有线网络,通过该有线网络可以访问因特网130。在这种情况下,可以通过该有线连接访问其中一些或全部数据成本信息。
相应地应当认识到,移动计算设备110获得数据成本信息的定时和方式并非本发明的关键所在,并且可以采用用以获得该信息的任何适当机制或机制组合。作为一个具体示例,移动计算设备110可以按照不同方式获得收费策略信息和关于先前使用的信息。例如可以在将移动计算设备110最初配置成使用移动宽带网络时把策略信息加载到所述设备中。当移动计算设备110已经可以访问因特网130时,可以不时地更新收费策略信息。但是可能频繁改变的关于先前数据使用的信息则可以通过接入网120来无线传送。可以由服务器122或者由移动计算设备110发起这种动态改变的信息的传送。
不管传送数据成本信息的定时和方式如何,都可以按照任何适当格式来传送所述信息。举例来说,移动网络运营商可以定义数据成本信息记录的格式。移动计算设备110内的知晓成本的操作系统可以被编程来识别所述格式,并且把数值与数据成本信息的特定参数相关联。替换地或附加地,可以把所述信息与标签或其他标识符相关联,从而允许知晓成本的操作系统基于与各个数值相关联的标签而把数值与数据成本信息的特定参数相关联。相应地应当认识到,向移动计算设备110传送数据成本信息的格式并不是本发明的关键所在。
服务器122例如可以耦合到接入网120,从而可以按照类似于被用来向计算设备110传送其他类型数据的格式的格式通过基站126向计算设备110无线传送数据成本信息。但是向计算设备110传送数据成本信息的具体机制并不是本发明所要求的。
服务器122可以按照任何适当方式获得数据成本信息。例如可以由移动网络运营商确立关于数据收费策略的信息,以作为向移动网络的订户提供的一个或更多订购计划的一部分。当用户112加入对于移动网络运营商的订购时,移动网络运营商可以把特定计划与移动计算设备110相关联。这样的订购的条款可以确定适用于计算设备110的数据收费策略。相应地,服务器122可以从用于管理移动网络的未在图1中明确示出的其他组件获得数据收费策略信息。
服务器122可以按照任何适当方式获得关于移动计算设备110的过去数据使用的信息。服务器122可以在与移动计算设备110相关联的数据业务经过接入网120时监测该数据业务。但是也可以通过移动网络内的记帐组件或其他传统组件来跟踪关于过去数据使用的信息。相应地,服务器122可以从移动网络的未示出的其他组件获得关于与计算设备110相关联的过去数据使用的信息。
不管获得数据成本信息的方式如何,知晓成本的操作系统都可以按照许多方式当中的任一种来使用该信息。操作系统例如可以使用该信息来施行适用于在计算设备110上执行的应用或其他用户模式组件的数据使用策略。替换地或附加地,知晓成本的操作系统可以向知晓成本的应用或其他用户模式组件提供关于数据使用的与成本有关的信息。所述应用或其他用户模式组件于是可以使用这样的信息来确定是否以及如何执行网络操作。从而基于成本选择性地执行网络操作。
知晓成本的应用可以选择性地执行网络操作的一种方式是推迟所述操作直到可以在较低成本下执行所述操作的某一后来时间为止。在其中收费策略基于不同日间时的数据使用而施加不同收费的实施例中,将操作推迟到较低成本的日间时的做法可能是适当的。可替换地,移动计算设备110可以被配置成连接到不同类型的网络。知晓成本的操作系统可以保持对应于每一个网络的数据成本信息,并且可以使用该数据成本信息来识别出用于执行特定网络操作的较低成本网络。相应地,推迟网络操作可能要求延迟所述操作的执行直到移动计算设备110连接到较低成本网络为止,并且随后通过所述较低成本网络执行所述操作。
在图1的示例中,移动计算设备110被配置成执行涉及到通过移动宽带网络交换数据的操作。其还被配置成用于无线连接到局域网,所述局域网又可以耦合到因特网130。例如可以通过为移动计算设备110装备能够使用Wi-Fi的网络接口卡来提供这样的能力。但是与移动宽带网络不同,这样的局域网连接固有地与地点相关。
图1示出了移动计算设备110可以在该处通过接入点140形成与局域网的无线连接的地点144。地点144可以代表用户112的家庭或办公室,或者接入点处于其范围内的公共“热点”或其他适当地点。在该例中,接入点140通过服务器142耦合到因特网130。相应地,当用户112将移动计算设备110带到地点144时,移动计算设备110可以执行涉及通过接入点140交换数据的操作。如果通过接入点140交换数据的成本低于通过移动宽带网络的接入网120交换数据的成本,则知晓成本的应用可以在移动计算设备处于地点144或者其中可以获得这种低成本网络连接的其他适当地点时执行推迟的涉及数据交换的操作。
参照图2,其中提供了合并有知晓成本的操作系统和知晓成本的用户模式组件的移动计算设备210的体系结构的一个示例。图2示出了移动计算设备210被配置成接口到多个网络。在该例中,示出了网络接口卡220和网络接口卡222。每一个网络接口卡可以支持去到不同网络的连接。举例来说,网络接口卡220可以是本领域内已知的Wi-Fi网络接口卡。这样的网络接口卡可以支持去到局域网的连接,比如通过图1中所示的接入点140的连接。
网络接口卡222可以被配置成用于通过移动宽带网络进行通信,比如通过图1中所示的基站126的连接。网络接口卡220和222可以利用本领域内已知的技术来实施。
可以通过被图示为驱动程序224和驱动程序226的软件来控制每一个网络接口卡220和222。每一个驱动程序224和226可以被配置成控制其相关联的网络接口卡的特定操作。这些操作可以包括传送及接收数据。这样的控制可以利用本领域内已知的技术来执行。但是进行传送及接收的具体机制不是本发明的关键所在,而是可以使用任何适当的技术。
在操作中,驱动程序224和226与移动计算设备210的操作系统的各个组件接口。所述操作系统充当驱动程序与一个或更多用户模式组件之间的中介,所述用户模式组件生成或使用通过网络接口卡220或222交换的数据。在该例中,用户模式组件被标记为应用270A、270B和270C。但是应当认识到,可以在移动计算设备210上执行发送或接收数据的任何数目的应用。此外,操作系统内的操作系统服务或其他用户模式组件可以类似地发送或接收数据。相应地,应用270A、270B和270C是示例性的,而不限制可以发送或接收数据的用户模式组件的类型。
在图2的示例中,移动计算设备210的操作系统被显示为包括栈230,其用来传递数据以供从应用270A、270B或270C传送到其中一个网络接口卡220或222。相反,可以在栈230内处理在网络接口卡220或222处接收到的数据,并且使其可用于其中一个应用270A、270B或270C。在所示实施例中,栈230可以利用传统技术来实施。
栈230可以执行诸如以下操作:接收数据以供从其中一个应用270A、270B或270C传送,将该数据分割成各个分组,以及将适当的报头附着到所述分组上。栈230然后可以将这样的分组传输到其中一个驱动程序224或226,以便分别通过相关联的网络接口卡220或222传送。每一个分组的具体格式以及所述分组被施加到的驱动程序可以由栈230决定。举例来说,应用可能请求栈230建立去到远程设备的连接。栈230可以通过经由其中一个网络接口卡220或222所连接到的网络与该远程设备交换通信来形成这样的连接。随后可以通过网络的特性来确定分组的格式。在一些情况中,由栈230选择来形成连接的网络接口卡可以是基于能够借之访问远程设备的网络而选择的。但是当可以通过多个网络访问远程设备时,借之建立连接的网络可以取决于用户偏好或者可以借之到达远程设备的各个网络的相对性能。这样的选择技术在本领域内是已知的。在其中计算设备210的操作系统知晓成本的实施例中,通过每一个网络进行通信的相对成本也可以是选择用于建立这种连接的网络的因素。
不管被用来选择用于连接的网络的具体方法如何,一旦建立连接,所述应用就可以为栈230提供数据以供通过该连接传送。在提供数据以供通过连接传送时,应用不需要指定将借之传送该数据的网络。相反,栈230可以对数据进行处理,并且对其进行格式化以适于通过与连接相关联的网络进行传送。
类似地,对于比如UDP之类的无连接协议,用户模式组件可以请求对端点进行传送。栈230随后可以应用已知的技术来选择网络和适当格式以便与该端点进行通信。
栈230可以在各个阶段中执行这样的处理。第一阶段可以在上栈部分232中执行,并且可以独立于将要借之传送数据的特定网络。依赖于将要借之传送数据的网络的任何处理可以在下栈部分234中执行。下栈部分234中的处理例如可以包括选择供传送的分组被路由到的适当驱动程序。但是在下栈部分234中也可以替换地或附加地执行任何其他适当的处理。
在网络接口卡220和222所连接到的网络上所接收到的数据也可以通过栈230来处理。对于所接收到的数据,栈230对所述数据进行处理,并且使其可用于适当的其中一个应用270A…270C。所述处理可以要求特定于网络的处理(其可以在下栈部分234中执行)以及独立于网络的处理(其可以在上栈部分232中执行)。但是在每一种情况下,每一个栈部分中的处理都可以利用本领域内已知的技术来执行。
图2示出了移动计算设备210可以知晓成本的多种方式。在所示示例中,所述操作系统包括成本服务256。在这里,成本服务256保持多个数据存储库,即数据存储库252、数据存储库253和数据存储库254。数据存储库252可以包含关于计算设备210所能连接到的网络的数据收费策略的信息。虽然图1示出了移动计算设备连接到仅仅一个移动宽带网络,但是用户可以具有针对多个网络的订购,并且数据存储库252可以包含关于多个这种网络的信息。
数据存储库254可以包含关于数据使用的信息。数据存储库254中的信息可以按照任何适当方式来组织。在一些实施例中,数据存储库254可以包含对应于计算设备210所能连接到的一个或更多网络的聚集使用信息。在其他实施例中,数据存储库254中的数据使用信息可以仅仅是针对在数据存储库252中有相应的收费策略的网络而存储的。但是也可以使用其他标准(其中包括明确用户输入)来确定可以为之存储数据使用信息的网络。
作为通过网络存储聚集数据使用的替代或补充,数据存储库254可以存储关于用户模式组件的数据使用的信息。该信息可以被存储以记录比如应用270A、270B或270C的各个用户模式组件的数据使用。替换地或附加地,数据存储库254中的信息可以被组织成显示用户模式组件分类的数据使用。举例来说,可以把操作系统的所有组件作为一分类来对待,并且关于操作系统组件的数据使用的信息可以被存储在数据存储库254内的单条记录中。
通过存储与用户模式组件有联系的数据使用信息,可以允许知晓成本的操作系统和/或知晓成本的应用基于数据使用以及适用于特定用户模式组件的数据使用策略来管理网络操作。为了支持这样的行为,知晓成本的操作系统可以包括其他的数据存储库253。数据存储库253可以包含适用于一个或更多用户模式组件的数据使用策略。在一些实施例中,可以为各个用户模式组件或用户模式组件分类提供数据使用策略。可以按照任何适当方式来获得这样的数据使用策略。在一些实施例中,可以由移动计算设备210的管理员将信息和数据存储库253下载到数据存储库253中。但是在其他实施例中,可以由成本服务256通过用户接口260获得数据使用策略。通过用户接口260,成本服务256可以从移动计算设备210的用户获得策略信息。
不管成本服务256借以获得数据存储库252、253和254中的信息的机制如何,成本服务256都可以使用该信息来促进移动计算设备210的知晓成本的操作。
正如前面关于图1所描述的那样,保持在数据存储库252和254中的该类数据成本信息可以从移动网络运营商获得。这样的信息可以通过经由网络接口卡220或222接收到的数据传送而获得,并且通过栈230被传递到成本服务256。在这样的操作中,成本服务256可以利用适用于任何其他用户模式组件的通信技术接收这样的数据成本信息。不管成本服务256接收所述信息的方式如何,其都可以按照任何适当格式将数据成本信息存储在数据存储库252和254中。
图2示出了可以借之获得数据使用信息的一种替换机制。在该例中,成本服务包括使用监测器组件250。在该例中,使用监测器组件250与栈230接口。随着栈230处理所传送或所接收的数据,其可以提供关于以下各方面的信息:所传送或所接收的数据量,借之传送或接收数据的网络,以及生成或接收该数据的用户模式组件。这样的信息可以被用来利用数据使用信息填充数据存储库254。因此可以使用通过使用监测器250获得的信息而不是获得自移动网络运营商的信息。
在一些实施例中,可以将来自使用监测器250的信息与获得自移动网络运营商的信息相结合地使用。举例来说,成本服务256可以在相对较长的间隔下从移动网络运营商获得数据使用信息。在这些间隔之间,由使用监测器250生成的数据使用信息可以被用来提供更加新近的信息。可替换地,由使用监测器250收集的数据使用信息可以是关于数据使用的信息的主导来源。但是可以不时地把使用监测器250所记录的数据使用与移动网络运营商所报告的数据使用进行比较。可以解决所述两种用于测量数据使用的技术之间的差异。举例来说,可以更新由使用监测器250采集的数据存储库254中的信息,从而使得由使用监测器250所测量的数据使用跟踪由移动网络运营商所报告的数据使用。
在一些实施例中,使用监测器250可以采集不可用于移动网络运营商的关于数据使用的信息。作为一个示例,使用监测器250可以访问到关于借之传送或接收数据的网络的信息以及关于正在传送或接收该数据的用户模式实体的信息。虽然移动网络运营商可能访问到关于数据使用的信息,但是移动网络运营商可能不一定能够把通过接入网120传送的数据与计算设备210内的特定用户模式实体相关联。为了获得这样的信息,使用监测器250可以耦合到栈230中的可在该处获得网络信息和用户模式组件信息的一个或更多位置。
在图2所示的实施例中,使用监测器250通过可扩展点244耦合到上栈部分232。在上栈部分232中,可以获得关于用户模式实体的信息,比如请求了数据传送或者作为通过网络接收到的数据的目的地的应用或其他用户模式组件。可以按照任何适当方式来标识用户模式组件,比如实施该用户模式组件的可执行程序组件的完整路径或者与所述可执行程序相关联的数字签名。不管标识用户模式组件的方式如何,所述标识都提供了一种使得使用监测器250把关于通过网络传送的数据的信息与特定用户模式组件相关联的机制。
在一些实施例中,上栈部分232可以执行独立于将要借之传送数据或者已经借之接收到数据的网络的处理。相应地,使用监测器250还可以耦合到下栈部分234,在该处可以获得关于网络的信息。在该例中,使用监测器250通过可扩展点242耦合到下栈部分234。使用监测器250可以把接收自下栈部分234的关于网络的信息与接收自上栈部分的关于用户模式组件的信息进行相关,从而使得使用监测器250能够在逐应用的基础上生成数据使用信息。
可以使用任何适当技术来实施栈230内的可扩展点。但是可以利用本领域内已知的技术来实施可扩展点。可扩展点(比如可扩展点242和244)可以在其他情境中被合并到栈230内,比如用以允许反病毒软件与栈230接口。通过这样的可扩展点,栈230可以提供关于正被处理以供发送或者通过网络接收到的分组的信息。此外,通过这样的可扩展点,外部组件可以向栈230提供命令,所述命令可以影响对所接收到的分组或者将要传送的分组的处理。在使用监测器250的情况下,可扩展点242和244可以只被用来采集信息。但是知晓成本的操作系统的其他方面可以基于数据成本信息使用可扩展点242或244来控制栈230的操作。
不管信息被加载到数据存储库252、253和254中的方式如何,成本服务256都可以按照一种或更多种方式来使用该信息。成本服务256例如可以访问数据存储库252、253和254以便向知晓成本的应用提供信息,所述知晓成本的应用随后可以基于成本信息改动其执行网络操作的方式。可替换地,成本服务256可以使用数据存储库252、253和254中的信息来直接控制网络操作的执行。
为了支持向知晓成本的应用或者其他用户模式组件提供成本信息,成本服务256可以具有应用编程接口258。知晓成本的应用可以在执行网络操作之前通过应用编程接口258进行调用,以便获得成本信息。响应于这样的调用,成本服务256可以向知晓成本的应用提供来自数据存储库252、253和254当中的任一个的任何信息。
替换地或附加地,成本服务256可以计算适用于通过应用编程接口258进行了调用的特定应用的成本参数的数值。作为一个示例,通过应用编程接口258进行调用的知晓成本的应用可以标识网络适配器,并且指明将要通过该网络适配器传送的数据量。基于由操作系统所保持的信息,成本服务256可以识别当前与所述网络适配器相关联的网络。成本服务256可以访问数据存储库252以便获得对应于该网络的数据收费策略。由于所述策略可能指明了用以基于该网络的使用是高于还是低于某一封顶来计算对应于数据传输的收费的不同方法,因此成本服务256可以访问数据存储库254来确定通过该网络的先前数据使用。通过组合该信息,成本服务256可以确定将要对于待传送数据施加收费的基础。用于计算收费的所述基础可以响应于通过应用编程接口258的调用而被传送到知晓成本的应用。
但是也可以按照其他格式给出该收费基础信息。在一些实施例中,通过应用编程接口258的调用可以包括关于将要传送的数据量的信息。在这种情况下,关于计算收费的基础的信息可以在递增收费的计算中得到反映,其中所述递增收费将通过在网络上传送指定数据量而招致。作为另一种可能性,应用编程接口258可以返回定义收费策略和先前数据使用的信息。
但是应当认识到,可以通过应用编程接口258使得任何适当的数据成本信息可用,并且不需要响应于所述接口上的调用而直接提供信息。作为一种可能变型的一个示例,应用编程接口258可以支持对用户模式组件进行登记,以便在具有指定成本特性的网络可用时接收通知。举例来说,正如前面关于图1所描述的那样,知晓成本的应用所能采取的动作是推迟数据传送直到低成本或无成本网络可用为止。相应地,应用编程接口258可以支持登记,通过登记用户模式组件可以指明所期望的网络成本特性。用户模式组件例如可能指明无成本网络。成本服务256可以监测移动计算设备210所连接到的可用网络。利用数据存储库252和254中的信息,成本服务256可以对于每一个网络确定该网络的成本特性。在检测到满足由已登记的用户模式组件所指明的期望成本特性的网络之后,成本服务256可以向用户模式组件通知满足所述期望成本特性的网络的可用性。这样,知晓成本的应用可以推迟其确定为如果在当前网络上执行则成本将过高的特定操作,直到识别出定价较低的网络这样的时间为止。
除了使用数据存储库252、253和254中的信息来向知晓成本的用户模式组件提供信息之外,成本服务256可以基于数据成本信息控制涉及到通过网络传送数据的操作的执行方式。在图2的实施例中,成本服务256可以访问包含数据使用策略的数据存储库253。每一条策略可以指明将要在其下传送或接收数据的条件。数据使用策略还可以一般性地指明这样的策略信息,即适用于所有组件。替换地或附加地,可以对于各个用户模式组件或用户模式组件类别指明使用策略。这样的通知可以指明将要在其下传送或接收数据的条件,受到一条或更多条约束(比如关于传送时间的约束),用于传送的网络成本,或者被用于这样的传送的数据速率。相应地,成本服务256可以访问数据存储库253以便获得对应于一个或更多用户模式组件的数据使用策略,并且确定是要允许、阻断还是限制来自或去往用户模式组件的数据传送。就任何这样的策略取决于网络的当前收费基础来说,服务256可以从数据存储库254访问数据使用信息,并且对于移动计算设备210所连接到的一个或更多网络确定对于通过该网络传送的递增数据量计算收费的当前基础。
在其中成本服务256确定可以传送或接收数据的方式的实施例中,成本服务256可以与一个或更多施行组件接口,以便实施这样的确定。在图2的示例中,这些施行组件处于移动计算设备210内。作为一个示例示出了防火墙240。
防火墙240可以是本领域内已知的可以阻断分组传送或接收的组件。防火墙240可以被配置成在逐用户模式组件的基础上阻断或限制数据传送。在其中成本服务256决定允许应用组件例如进一步通过网络传送数据的情况下,成本服务256可以将防火墙240配置成阻断来自该应用的传送。在一些情况下,防火墙240可以被配置成允许来自所标识出的用户模式组件的传送,但是限制这些传送的数据速率,从而“节制”所述传送。相应地,防火墙240是成本服务256可以采用来为特定用户模式组件或者用户模式组件分类施行数据使用策略的施行机制的一个示例。
可以替换地或附加地包括其他施行机制。作为一种可能替换方案的一个示例,成本服务256可以与栈230接口以便施行数据使用策略。成本服务256可以例如通过比如可扩展点242和244的可扩展点与栈230接口。通过这样的可扩展点,成本服务256可以获得关于正被传送或接收的数据的信息。响应于这样的信息,成本服务256可以通过可扩展点242或244向栈230提供命令。这些命令可以表明是否将由栈230传递某一数据分组。这样就可以阻断或节制通过网络的数据传送。替换地或附加地,由成本服务256提供的命令可以控制栈230改变将在其上传送一个或更多数据分组的网络。举例来说,虽然应用组件270A…270C指明通过与计量网络相关联的网络适配器进行传送,但是当成本服务256确定通过该计量网络的传送将违反与生成所述数据的应用相关联的数据使用策略时,成本服务256可以向栈230生成命令,从而使得通过替换的非计量网络传送来自该应用组件的数据分组。
通过可扩展点,成本服务256还可以影响发送到计算设备210的数据量,所述数据量也可能招致数据使用收费。作为可以被采用来减少发送到移动计算设备210的数据量的施行机制的一个示例,成本服务256可以向栈230生成命令以便断开网络连接。通过断开网络连接可以阻断由外部设备针对在移动计算设备210上执行的用户模式组件的数据传送。
除了从数据存储库253获得数据使用策略信息之外,成本服务256还可以通过其他方式获得数据使用策略信息。作为一个示例,可以将数据使用策略信息从用户模式组件传输到成本服务256。图2提供了可以借之把所述数据使用策略信息传输从用户模式组件传输到成本服务256的机制的一个示例。在该例中,该信息是基于由用户模式组件生成的标签238的数值而被传输的。如图所示,比如应用270A…270C之类的用户模式组件可以通过接口236访问栈230,以便发起通过网络的数据传送或接收。接口236可以接受与针对数据传输的请求或者针对建立连接的请求相关联的标签238。标签238的数值可以指明与将由应用组件发送或接收的数据相关联的优先级。成本服务256可以使用该数值来确定用于处理与所述应用组件的数据传送或接收相关联的网络操作的具体动作。
作为一个更加具体的示例,如果标签238的数值表明数据传送具有高优先级,则成本服务256可以建立或保持用于传输该数据到应用组件或从该应用组件传输该数据的连接,即使存在与这样的数据传送相关联的递增成本也是如此。可替换地,如果标签238的数值表明相对较低的优先级,则成本服务256可以断开涉及该应用组件的连接,以便阻断通过对于其而言进一步的传送将招致数据使用收费的网络的来自该应用组件的数据传送以及针对该应用组件的进一步数据接收。作为另一个示例,标签238的数值可以表明与对应于某一应用组件的数据传送相关联的中等优先级。相应地,成本服务256可以允许这样的传送继续,只要与所述数据传输相关联的递增成本低于某一阈值。但是当对应于进一步传送的递增成本超出一定阈值时,成本服务256可以阻断进一步的传送。
在该例中描述了对应于标签238的三个优先级数值。但是应当认识到,标签238可以采取任意数目的数值,并且成本服务256可以被编程为对每一个所述可能数值做出不同响应。
此外还应当认识到,虽然图2示出了可以在单独的组件中执行与网络成本相关联的处理,但是成本服务256不需要具有任何特殊形式。举例来说,成本服务256的各项功能可以与网络栈230或者与操作系统内的其他组件集成在一起。
参照图3,其中示出了可以通过应用编程接口258提供的信息的一个示例。在图3的示例中,应用编程接口258包含多个字段,每个字段包含被返回到通过应用编程接口258请求数据成本信息的用户模式组件的信息。在所示实施例中,可以将每一个字段中的信息调整到移动计算设备210的当前操作状态,这是因为其涉及可能已经对之请求了信息的特定网络。相应地,通过应用编程接口258返回的信息的一部分可以表明使得所标识出的网络计算对于递增数据使用的收费的当前基础。在该例中,表明计算收费的当前基础的信息是通过字段310和312中的信息的组合而反映的。
在该例中,字段310包括关于网络的收费策略的信息。字段310中的数值例如可以表明所标识出的网络不受限制,这意味着移动网络运营商对于递增数据使用不施加附加的收费。可替换地,字段310中的数值可以表明所述网络的收费策略是固定类型收费策略,这意味着对于直到指定封顶的数据使用没有附加收费,但是对于高于封顶的数据使用可能有递增收费。作为另一个示例,字段310中的数值可以表明对应于所标识出的网络的可变收费策略,这意味着移动网络运营商对于通过所述网络传送的每一个数据单位都施加收费。
此外,字段312可以包含标志数值,其表明基于先前数据使用的所标识出的网络的当前收费状态。字段312可以取得不同数值,这取决于字段310中所表明的收费策略。字段312中的标志的数值可以表明已经发生了一定先前数据使用量,从而已经超出了所标识出的网络的使用封顶,并且移动网络运营商可能正对所传送的每个数据单位施加收费。这样的数值对于使用固定类型收费策略的网络可能是适当的。
作为另一个示例,字段312中的数值可以表明所标识出的网络正被节制。这样的数值对于其中在超出封顶之后节制数据传送的使用固定类型收费策略的网络来说可能是适当的。
作为另一个示例,字段312中的数值可以表明移动计算设备310正处于漫游模式下。这样的数值可以表明计算设备210正处于移动计算设备210的用户与之存在订购的移动网络运营商的归属服务区之外。在漫游模式下,可能无法从用户与之存在订购的移动网络运营商获得关于网络数据使用的信息或者数据成本信息的其他元素。知晓成本的用户模式组件可以将这样的信息对待为表明所标识出的网络正对所传送的每一次数据递增施加收费,并且该收费是以高费率施加的。知晓成本的用户模式组件可以使用该信息来决定应当阻断除了最高优先级信息之外的所有网络传送或者应当将其路由到一个替换网络。
图3示出了结合共同提供关于所标识出的网络对于数据传送施加递增收费的基础的信息的字段310和312中的信息,用户接口258可以提供对于所标识出的网络正在实行的收费策略的属性320。知晓成本的用户模式组件可以使用属性320来确定对于可能需要数据传送的网络操作的处理。
在图3的示例中示出了属性322A…322N。可以通过应用编程接口258提供任意数目的属性。可以通过所述接口传递的属性的一个示例是表明先前数据使用的属性。这样的属性可以表明在对应于与所标识出的网络的订购的当前记帐周期期间通过网络先前传送的数据量。这样的信息可以从数据存储库254或者任何适当来源获得。所述属性可以表明对应于所标识出的网络的总的数据使用。替换地或附加地,属性可以只表明通过应用编程接口258请求信息的用户模式组件的数据使用,或者表明与通过应用编程接口258请求信息的用户模式组件属于同一类别的各个用户模式组件的聚集使用。
可以包括在属性320当中的另一项属性是封顶阈值。对于具有固定类型收费策略的网络,该属性的数值可以表明某一阈值,在高于该阈值的情况下施加每单位收费、节制传送速率或者网络收费或操作的某种其他特性发生改变。
另一项属性可以是时间戳。时间戳属性的数值可以表明对应于通过应用编程接口258传递的信息的数值是何时获得的。在其中通过应用编程接口258提供的信息是从移动网络运营商导出的情况下,所述时间戳可以表明接收到来自移动网络运营商的最近一次信息更新的时间。
作为可以通过应用编程接口258提供的属性的再一个示例,可以包括计划重置日期。对于具有基于某一间隔(比如一个月或一个记帐周期)期间的使用的收费策略的网络,计划重置日期属性可以表明新的间隔开始的日期,从而在该日期将累计的使用实际重置到零。
另一项属性可以表明移动计算设备210的有效连接速度。该属性可以表明移动计算设备210的有效链接速度。这样的信息可以表明网络上的状况。替换地或附加地,在其中网络采用包括节制超出封顶的数据传输的收费策略的实施例中,该属性中的信息可以表明网络的当前操作模式。
应当认识到,图3代表可以通过应用编程接口258提供给知晓成本的用户模式组件的信息的一个示例。在一些实施例中可以提供不同的或附加的信息,并且知晓成本的用户模式组件可以使用所提供的其中一些或所有信息来控制涉及数据传输的网络操作的执行。
表I示出了可以在字段310、311和322A…322N中提供的可能数值组合的示例。在表I所提供的示例中,在表I的标题为“成本数值”的一列中列出代表收费策略的数值,其比如可以由字段310中的数值代表。标题为“标志”的一列表示标志字段312的可能数值。表I中的其他各列提供可以结合其他数据成本信息通过应用编程接口258传递的属性320的示例。标识先前数据使用的属性的可能数值被表示在表I中的标题为“数据使用”的列中。代表被用来定义封顶的阈值的属性的可能数值出现在表I的标题为“封顶阈值”的列中。时间戳的可能数值表明从移动网络运营商采集到通过应用编程接口258被提供给用户模式组件的数据成本信息的时间。代表对于累计数据使用的跟踪根据与移动网络运营商的订购而重置的日期的另一项属性的可能数值被表示在标题为“计划重置日期”的列中。虽然没有在表I中示出,但是也可以提供其他属性,比如通过网络的通信的有效数据速率。
表I示出了已经为某一网络定义的多个可能的成本状态。可能的成本状态被标识在标题为“成本状态”的列中。相应地,表I中的每一行表明在特定成本状态下通过应用编程接口258提供的每一个字段中的可能数值。举例来说,表I的对应于被表示为“连接不受封顶或使用收费限制”的成本状态的该行标识对于该成本状态的字段310、312、322A…322N的可能数值。
具体来说,在该例中,由于连接不受限制,因此字段310包含的数值表明网络收费策略对应于不受限制的策略。类似地,由于没有与不受限制的收费策略相关联的封顶,因此在该成本状态下将不设置用以表明相对于封顶的使用的标志。
对于属性320,其中的一些可能不适用于所表明的成本状态。在不受限制的收费策略的具体示例中,对应于封顶阈值的属性不适用,正如表I中所表明的那样。其他属性可以取得数字数值。举例来说,表明数据使用的属性可以具有代表先前数据使用量的任意数值。表明时间戳的属性可以具有表明时间的任意数值。表明计划重置日期的属性也可以具有表明日期的任意数值。
在其他成本状态下,字段310、312和322A…322N可以具有不同的所允许数值。举例来说,如表I的下一行中所示,当成本状态是“连接是封顶计划并且正在封顶阈值以下操作”时,字段310可以取得表明收费策略是固定类型收费策略的数值。虽然对于该成本状态可能存在封顶,正如 “封顶阈值”的列中所表明的那样,但是由于移动计算设备正在封顶阈值以下操作,因此在该成本状态下不设定字段312中的标志。
在对应于具有封顶并且在封顶阈值以下操作的计划的成本状态下,其他属性也可以取得数值。举例来说,代表数据使用、封顶阈值、时间戳或计划重置日期的属性在该状态下可以取得任意数值。
作为另一个示例,在表明“在每字节的基础上对连接收费”的成本状态下,字段310可以取得一定数值,正如标题为“成本数值”的列中所表明的那样,其代表可变类型收费策略。在该状态下,正如标题为“标志”的列中所表明的那样,字段312中的数值可以表明没有设定标志。在该成本状态下,对应于封顶阈值的数值不适用,但是诸如数据使用、时间戳和计划重置日期之类的其他属性可以具有适当类型的任意适当数值。
表I的其他各行表明了另外可能的成本状态以及在这些状态下通过应用编程接口258传递的可接受数值。具体来说,在该例中,表I示出了以下另外的成本状态:“连接正在逼近超出封顶”、“连接已经超出封顶并且现在正在按照字节进行超额收费”、“连接已经超出封顶并且现在正被节制”、“连接正被移动网络运营商节制”以及“连接正在移动网络运营商的网络之外漫游”。表I表明了对应于图3中所示的每一个字段的可能数值。举例来说,字段310中所反映的收费策略可以取得表I所示示例中的“不受限制”、“固定”或“可变”数值。在图I所示的示例中,字段312中的信息所代表的标志可以不被设定或者可以表明超出封顶状况或者受节制状况或者漫游状况。
可以按照任何适当方式确定响应于针对数据成本信息的请求而通过应用编程接口258报告的成本状态。成本状态例如可以由移动网络运营商报告。替换地或附加地,成本状态可以由成本服务256或者执行在移动计算设备210上的其他组件确定。在表I所代表的示例中,除了漫游在移动网络运营商的网络之外的任何成本状态都可以由移动网络运营商确定。漫游状态可能无法由移动网络运营商表明,这是因为移动网络运营商可能不具有在移动计算设备210漫游时与其进行通信的适当措施。但是确定成本状态和相应的属性值的具体机制不是本发明的关键所在。
表I
成本状态 |
成本数值 |
标志 |
数据使用 |
封顶阈值 |
时间戳 |
计划重置日期 |
连接不受封顶或使用收费限制 |
不受限制 |
未设定 |
任意数值 |
不适用 |
任意数值 |
任意数值 |
连接是封顶计划并且正在封顶阈值以下操作 |
固定 |
未设定 |
任意数值 |
任意数值 |
任意数值 |
任意数值 |
在每字节的基础上对连接收费 |
可变 |
未设定 |
任意数值 |
不适用 |
任意数值 |
任意数值 |
连接正在逼近超出封顶 |
固定 |
未设定 |
任意数值 |
任意数值 |
任意数值 |
任意数值 |
|
|
|
|
|
|
|
连接已经超出封顶并且现在正在按照字节进行超额收费 |
可变 |
超出封顶标志被设定 |
任意数值 |
任意数值 |
任意数值 |
任意数值 |
连接已经超出封顶并且现在正被节制 |
固定 |
超出封顶和受节制标志被设定 |
任意数值 |
任意数值 |
任意数值 |
任意数值 |
连接正被MNO节制 |
不受限制、固定或可变 |
受节制标志被设定 |
任意数值 |
任意数值 |
任意数值 |
任意数值 |
连接正在MNO的网络之外漫游 |
不受限制、固定或可变 |
漫游标志被设定 |
任意数值 |
不适用 |
不适用 |
不适用 |
不管通过应用编程接口258传递的信息的生成方式以及具体字段中的具体数值如何,该信息都可以被知晓成本的用户模式组件使用来在将数据成本信息纳入考虑的情况下选择性地执行网络操作。图4示出了利用知晓成本的操作系统配置移动计算设备以支持由知晓成本的用户模式组件执行的处理。
图4的处理开始于方框410。在方框410中,移动计算设备210的组件可以接收使用策略。在方框410中接收到的使用策略可以与用户模式实体相关联,其可以是应用或操作系统服务。但是在一些实施例中,在方框410中接收到的使用策略可以与用户帐户或其他适当的用户模式实体相关。
在一些实施例中,在方框410中接收到的使用策略可以是基于通过用户接口260的用户输入而接收到的。在这样的实施例中,成本服务256可以将使用策略存储在数据存储库253中。但是也可以按照任何适当方式利用数据使用策略来填充数据存储库253,其中包括使用如前面所描述的技术。
此外,并不要求由成本服务256执行方框410中的处理。在其中子处理430在知晓成本的用户模式组件内被执行的实施例中,在方框410中接收到的使用策略可以由该知晓成本的用户模式组件接收。相应地,并不要求方框410中的处理动态地发生。相反,可以在先于其执行的任何时间把在方框410中接收到的使用策略编码到所述知晓成本的用户模式组件中。但是在其他实施例中,可以按照任何适当方式在移动计算设备210的操作期间把在方框410中接收到的使用策略与用户模式组件动态地相关联。可以把使用策略与用户模式组件动态地相关联的方式的示例是通过使用编码使用策略的逻辑的插件,或者是通过由用户输入调节的配置设定。
不管在方框410中接收使用策略的方式如何,所述处理都可以继续到方框412。在方框412中,可以接收网络收费策略。在图4所示的实施例中,可以由成本服务256接收网络收费策略并且将其存储在数据存储库252中。可以使用任何适当机制在方框412中接收网络收费策略。例如可以按照任何适当方式从移动网络运营商或其他来源接收所述收费策略,其中包括使用如前面所描述的技术。
图4的处理还包括在方框414中接收网络数据使用信息。在一些实施例中,该信息也可以从移动网络运营商接收。但是在其他实施例中,在方框414中接收到的信息可以是接收自使用监测器250。但是也可以按照任何适当方式接收数据使用信息,其中包括使用如前面所描述的技术。
不管获得收费策略和数据使用信息的方式如何,可以在方框416中使用该信息来计算当前收费基础。方框416中的处理例如可以导致识别出如表I的其中一行所表明的成本状态,其由成本数值和标志的设定代表。该处理可以由成本服务256执行。但是在方框416中识别当前收费基础的具体机制以及表示该计算的方式并非本发明的关键所在,而是可以使用任何适当的技术。
在图4的示例中,在成本服务256内执行对于当前收费基础的计算,并且随后将其提供到知晓成本的用户模式组件,其在该例中是应用组件。相应地,图4的处理包括在方框418中通知所述应用。方框418中的处理可以包括通过应用编程接口258以图3中所表明的格式传递信息。但是应当认识到,所提供的信息的具体格式并非本发明的关键所在,而是可以作为方框418中的处理的一部分提供任何适当信息。
基于该信息,在方框418中接收所述信息的知晓成本的应用可以执行子处理430。在该例中,子处理430代表对于网络操作的有条件处理。网络操作可能涉及通过在方框418中获得其数据成本信息的网络的数据传送。
在图4的示例中,子处理430内的处理在判定方框432中基于所述成本状态是否表明移动计算设备210处于超出封顶状态而分支。在表I所表示的示例中,可以基于字段312中的数值而识别出该状态。但是也可以按照任何适当方式来识别网络连接的成本状态。
不管识别出成本状态的方式如何,如果使用还没有超出与封顶相关联的阈值,则所述处理可以分支到子处理450。在子处理450中,网络操作可以按照请求继续。在网络操作涉及数据传送的该例中,子处理450涉及通过网络传送数据。但是应当认识到,数据传送仅仅是可能的网络操作的一个示例。触发由外部设备向移动计算设备210发送数据的操作是可以在子处理430内有条件地处理的网络操作的另一个示例。此外,可以类似地有条件地处理涉及数据传送与接收的组合的操作。相应地,有条件地处理的具体操作不是本发明的要求。
相反,如果判定方框432中的处理确定移动计算设备210处于超出封顶成本状态,则所述处理可以从判定方框432分支到子处理440。子处理440可能要求处理网络操作,其与通过子处理450执行网络操作相比要求较少数据使用。可以在子处理440中执行任何适当的替换处理以导致较少数据使用。例如可以取消、延迟或者按照一种替换方式执行网络操作,所述替换方式导致通过移动计算设备210对之处于超出封顶成本状态的网络传输较少数据。相应地,子处理440中的处理可能要求数据压缩技术。这样的技术可能增加执行网络操作时的延迟,或者可能具有其他不合期望的效果,比如降低呈现在计算设备210的用户接口上的图形分辨率。但是知晓成本的应用组件可以应用反映成本与性能或者影响移动计算设备210的操作的其他属性之间的这种折衷的使用策略。
在图4的示例中,在子处理440中执行的替换处理要求选择替换网络。所述替换网络可以是有线或无线网络。在图1所示的示例中,所选择的替换网络可以是局域网而不是移动宽带网络。该网络可能立即可用,从而可以在没有延迟的情况下执行子处理440。但是在一些实施例中,作为子处理440的一部分选择替换网络可以要求延迟所述选择,直到识别出替换的较低成本网络为止。
在完成了子处理440或子处理450之后,子处理430可以结束,其中完成了对于网络操作的有条件处理。图4的处理随后可以继续到方框460。在方框460中,可以记录通过网络递送的任何数据。在其中移动计算设备210包括使用监测器250的实施例中,方框460中的处理可以由使用监测器250执行。但是在其他实施例中,可以由移动网络运营商来监测使用。相应地,方框460中的处理可以要求接收来自移动网络运营商的数据使用信息更新。这样的更新可以紧接在数据传送之后作为子处理450的一部分而被接收,或者可以在之后的任何适当时间发生。
图4示出了所述处理在方框460中记录使用信息之后结束。但是应当认识到,在移动计算设备210操作时可以重复图4中所示处理的全部或一部分。举例来说,在方框460完成之后,所述处理可以循环回到方框416以便处理对应于相同的或不同的用户模式组件的网络操作。
图5示出了可以在知晓成本的应用内执行的替换子处理530。在该例中,子处理530内的处理可以开始于子处理540。在子处理540内,知晓成本的应用可以执行各项应用功能。子处理540内的处理可以要求任何适当的应用功能,其中包括利用本领域内已知的技术所执行的那些功能。
子处理540可以继续,直到各项应用功能的执行导致需要网络操作为止。在方框542中可能会遇到这样的网络操作。网络操作可以是需要通过网络传送数据或者触发通过网络的可能数据接收的任何操作。
在作为知晓成本的应用的一部分遇到网络操作之后,所述处理可以继续到方框544。在方框544中,知晓成本的应用可以获得针对通过网络传送的数据的使用收费的当前基础。方框544中的处理可以要求在应用编程接口258上发起调用。
在图5的示例中,知晓成本的应用作为子处理550计算网络操作的成本。子处理550可以要求按照美元或其他货币单位来计算成本。但是可以替换地或附加地使用定性的成本度量。举例来说,子处理550中的计算可以要求把为了完成在方框542中遇到的网络操作而要传送的预期字节数乘以传送1个字节的数据的当前递增成本。这样的计算可以是根据适用于移动计算设备210的移动网络运营商的数据收费策略。该信息可以由成本服务256按照任何适当方式采集,其中包括使用前面所描述的技术。在其中移动网络运营商的数据收费策略取决于先前数据使用的实施例中,还可以在方框544中获得关于先前数据使用的信息。利用该信息,随后可以计算网络操作的成本。
在判定方框552中,子处理530可以根据完成网络操作的所计算的成本而分支。在该例中,方框552中的处理涉及把所计算的成本与阈值进行比较。在判定方框552中使用的阈值可以是根据适用于移动计算设备210的数据使用策略,或者在一些实施例中是根据适用于执行子处理530的知晓成本的应用的数据使用策略。不管获得所述阈值数值的方式如何,如果网络操作的成本低于阈值,则所述处理可以分支到子处理570。在子处理570中可以执行网络操作。
相反,如果基于判定方框552中的处理确定网络操作的成本将超出阈值,则子处理530分支到子处理560。子处理560中的处理要求修改网络操作以便减少通过网络交换的数据量。在该例中,修改操作可能涉及放弃传送或请求特定类型的数据。替换地或附加地,子处理560可能要求利用无损或有损压缩技术来压缩将要传送的数据,或者应用另一种适当的技术来减少所传送的数据量。
在完成了子处理560或子处理570之后,图5中所示的处理可以结束。但是应当认识到,在移动计算设备的操作期间可以利用一个或更多知晓成本的用户模式组件反复执行这样的处理。
现在参照图6,其中示出了可以由知晓成本的用户模式组件执行的另一个替换子处理630。在该例中,子处理630由移动计算设备210的操作系统内的更新服务执行。
子处理630开始于子处理640。在该例中,更新服务识别出对应于移动计算设备210的一个或更多软件组件的可用更新。可以按照任何适当方式执行作为子处理640的一部分的用以识别可用更新的处理,其中包括使用本领域内已知的技术。除了识别可用更新之外,子处理640中的处理还可以要求识别可以从中获得更新的联网服务器,以及在执行更新时将要下载的以字节计的数据大小。
处理随后可以继续到方框642,其中更新服务获得对应于可以借之访问更新服务器的网络上的数据使用收费的当前基础。这样的信息可以通过在应用编程接口258上发起调用或者通过任何其他适当方式而获得。在一些实施例中,在方框642中获得的数据可以表明对应于所述网络的网络收费策略和当前成本状态,从而使得知晓成本的更新服务可以在方框644中计算执行所识别出的更新的成本。可替换地,可以在成本服务256内执行由方框642和644所代表的处理。在这种情况下,例如应用编程接口258上的调用可能要求向成本服务256提供作为更新的一部分将要传送的数据量。
不管计算操作成本的具体组件如何,处理都可以继续到判定方框650,其中所述处理可以根据成本而分支。如果成本没有超出一定阈值,则所述处理可以继续到子处理670。在方框650中采用的阈值可以基于收费策略来确定。可以对于计算设备210或者某个其他实体或实体分类指定该收费策略。举例来说,可以特别为知晓成本的更新服务指定收费策略。但是在一些实施例中,也可以合起来为各个操作系统组件指定使用策略。
不管获得阈值的方式如何,如果对于更新所计算的成本小于所述阈值,则处理可以分支到子处理670,在该子处理670中获得更新。相反,如果成本超出阈值,则所述处理可以分支到判定方框652。
在判定方框652中,子处理630可以根据关于将要执行的网络操作的重要性或优先级的标准而再次分支。在该例中,在判定方框652中应用的标准与在子处理640中识别出的更新的严重性有关。在该例中,当更新被分类为具有高度严重性时,处理分支到子处理670。在这种情况下,所述处理在子处理670中继续,在该子处理中670中获得更新。相反,如果更新的严重性较低,则所述处理分支到子处理660。
在子处理660中,更新服务等待找到较低成本网络。这样的处理可以按照任何适当方式来实施。举例来说,子处理660内的处理可以要求通过应用编程接口258发起调用,从而对于成本服务256登记以便在识别出较低成本网络时进行通知。替换地或附加地,作为子处理670的一部分的处理可以要求取消更新。在其中知晓成本的更新服务周期性地检查可用更新的实施例中,通过在只有高成本网络可用时基于成本标准取消更新可以实现以下效果:推迟操作直到周期性更新的时间与较低成本网络的可用性重合为止。
在完成子处理670从而导致完成所识别出的更新之后,或者在完成子处理660从而导致推迟更新操作之后,图6中所示的处理可以结束。但是可以在任何适当时间重复所述处理。
图7示出了知晓成本的移动计算设备的操作处理的另一个示例。在该例中,由成本服务应用数据使用策略并且在操作系统内施行,而不是在知晓成本的应用内施行。在图7的示例中,处理开始于方框710,其中操作系统接收来自应用的数据。在这种情况下,应用不需要是知晓成本的。但是图7的处理也可以利用知晓成本的应用来执行。
可以在任何适当的操作系统组件中执行方框710中的处理。作为一个示例,对于图2的体系结构,可以在栈230处通过接口236接收来自应用的数据。
在方框712中,成本服务256可以基于与在方框710中发起数据传输操作的应用相关联的用户模式实体而应用数据使用策略。所述用户模式实体可以是应用本身。但是在其他实施例中,用户模式实体可以是知晓成本的操作系统能够将其与方框710中的操作相关联的用户帐户或其他适当实体。
可以由成本服务256执行方框712中的处理,从而获得来自栈230的信息,比如通过栈230内的可扩展点获得。基于这样的信息,成本服务256可以访问数据存储库252、253和/或254。但是在一些实施例中,方框712中的处理可能要求访问优先级标签238,所述优先级标签238是在方框710中从请求涉及数据传输的操作的应用通过接口236传递来的。所述处理随后可能要求把由应用所附着的优先级平衡到与网络相关联的成本状态或者其他递增成本指标,以便通过网络传输所需数据。
不管确定关于策略的信息的方式如何,基于所访问的信息,成本服务256可以确定由在方框710中接收到的数据所表明的操作是否与对应于所识别出的用户模式实体的数据使用策略一致。
图7的处理可以根据在方框710中表明的操作是否与数据使用策略一致而在判定方框720中分支。如果不一致的话,所述处理可以分支到方框722。在方框722中断开连接,而在不考虑成本的情况下本将已通过所述连接传送了在方框710中接收到的数据。可以通过删除描述所述连接的数据结构或者执行本领域内已知的其他操作来断开所述连接。在其中方框710中的处理要求接收针对建立连接的请求的情况下,可以通过省略用以建立该连接的任何动作来完成方框722中的处理。
在完成方框722中的处理之后,图7的处理在没有传送数据的情况下结束。在这种情况下,在方框710中请求数据传输的应用可以利用本领域内已知的机制接收到表明所请求的操作未被完成的通知。所述应用可以执行异常处理程序或者本领域内已知的其他处理以便对所述操作的网络连接的不可用性做出响应。这样就可以把对于异常状况的处理返回到应用,其中所述异常状况是由于所述应用尝试执行落在数据使用策略之外的网络操作而导致的。但是知晓成本的操作系统也可以通过任何适当方式对应用的这种超出数据使用策略的尝试做出响应。
相反,如果作为判定方框720中的处理结果没有驳回连接,则处理可以从判定方框720继续到方框730。在方框730中,可以把供传送的数据与用户模式实体相关联,其中所述用户模式实体与在方框710中请求数据传送的应用组件相关联。在方框730中可以使用任何适当的机制把数据与用户模式实体相关联,比如将标识符写入到与保存所述数据的存储器中的缓冲器相关联的字段中。
不管把数据与用户模式实体相关联的方式如何,处理都可以继续到子处理732。在子处理732中,可以选择对于数据的传输。可以利用本领域内已知的技术来执行子处理732。子处理732中的处理可以导致识别出将在其上传送数据的网络。可以按照任何适当方式进行这样的识别,其中包括应用本领域内已知的标准来选择最大化表明性能的标准的网络。但是在所示实施例中,子处理732中的选择可以至少部分地基于每一个网络的成本。
在子处理732之后,处理可以是特定于网络的。相应地,包括方框734和判定方框740中的处理步骤在内的各个处理步骤可以是基于特定网络,并且可以在下栈部分234内执行。与此相对,判定方框720和方框730中的处理可以是独立于网络的,并且可以在上栈部分232中执行。通过在方框730中把用户模式实体与将要传送的数据相关联,允许下栈部分234中的处理(尽管其是特定于网络的)还考虑到适用于不同用户模式实体的不同策略。相应地,在方框734中,可以结合对应于特定网络的数据成本信息应用对应于用户模式实体的使用策略,以便确定数据传送是否符合对应于用户模式实体的使用策略。
在判定方框740中,图7的处理可以根据数据传送是否与适用于用户模式实体的策略一致而分支。如果一致的话,则所述处理可以从判定方框740分支到子处理750,在子处理750中可以通过所选网络传送数据。
但是如果传送与对应于用户模式实体的使用策略不一致,则处理可以从判定方框440分支到方框742。在方框742中,可以执行用以减少数据使用的处理。在该例中,用于减少数据使用的处理涉及节制数据,以便降低传送数据的速率。可以通过任何适当方式节制数据,其中包括把数据缓冲在栈230内或者调节防火墙240上的设定。虽然节制数据可能不会减少对于单次网络操作传送的数据量,但是通过节制数据可以降低执行网络操作的速率,从而减少随着时间通过网络传送的总数据量。
所述处理随后 可以继续到子处理750,在子处理750中传送所节制的数据。不管子处理750要求在有还是没有节制的情况下传送数据,处理都可以从子处理750继续到方框752。在方框752中可以记录所传送的数据量。在方框752中记录所传送的数据可能要求更新数据存储库254或者采取任何其他适当的动作。
随后,图7中的处理可以结束。但是应当认识到,随着另外的应用请求涉及通过网络传输数据的操作,可以重复图7所代表的处理。
参照图8,其中提供了用于获得数据使用策略的技术的一个示例。如图2中所示,成本服务256可以与用户接口260相关联,通过用户接口260可以由用户提供策略信息。图8代表图形用户接口810的一个示例,其可以被呈现来获得可能构成对应于用户模式实体的数据使用策略的信息的一部分。在该例中,用户模式实体是应用。具体来说,按类别示出了各项应用。在仅仅是说明性的该例中示出了对应于电子邮件应用、浏览器应用、游戏以及多媒体应用的类别。
图8示出了用户接口810,通过用户接口810用户可以为每一个应用类别指派阈值。在该例中,为每一个应用类别提供显示区域。为电子邮件应用提供显示区域840A。为浏览器应用提供显示区域840B。为游戏提供显示区域840C,并且为多媒体应用提供显示区域840D。每一个显示区域在该例中通常具有相同的格式。
每一个显示区域提供一种用户可以借之输入表明阈值数据使用量的数值的机制,在该阈值以下,应用将被允许执行触发数据使用的操作。此外,每一个显示区域包含控件,通过所述控件用户可以指明在超出该阈值时将要执行的有条件处理。在该例中,所述阈值被指定为对应于网络的数据使用封顶的一定百分比。所述封顶在图形用户接口810中由指标860以图形方式示出。以显示区域840D为代表的每一个显示区域都包括滑块850。滑块850是本领域内已知的图形用户接口控制器的一个示例。用户可以通过利用鼠标或其他适当的人类接口设备与图形用户接口810进行交互来表明滑块850的位置,从而指定一数值。
在图8所示的情况下,用户将滑块850定位成超出对应于网络的数据使用封顶。具体来说,在该例中,滑块850被定位成表明封顶的150%的阈值。表明大于封顶的数值的阈值表示,即使在超出数据使用封顶并且招致对于数据使用的递增收费之后,也可以允许与显示区域840D相关联的多媒体应用继续执行网络操作。
此外,显示区域840D包括控件,比如控件852和854,通过所述控件用户可以指明一旦超出指定阈值之后的有条件处理。在该例中,控件852和854是复选框。在图8中所示的具体情况下,控件852已被激活,从而表明在超出阈值之后应当节制多媒体应用的用户输入。虽然在显示区域840D中没有被激活,但是控件854提供一种替换输入,其允许用户指明一旦超出指定阈值之后就阻断与多媒体应用相关联的传送。
与电子邮件应用、浏览器应用以及游戏相关联的其他显示区域840A、840B和840C分别类似地具有滑块和控件,从而允许用户对于这些其他类型的应用指定阈值且一旦超出阈值之后就进行有条件处理。举例来说,显示区域840A表明用户对于电子邮件应用选择了对应于网络的封顶的50%的阈值。显示区域840A还表明,用户选择了一旦数据使用超出50%的指定阈值就阻止电子邮件应用发起需要数据传送的操作。
显示840B表明对于浏览器应用的类似设定。但是在该例中,阈值被设定在封顶的90%,并且所述有条件处理要求一旦超出阈值之后就节制传送。
对于游戏,如显示区域840C中所示,用户选择了处于封顶的60%的阈值,并且一旦超出该阈值就阻断与游戏相关联的需要数据传送的网络操作。
在该例中,图形用户接口810包括控件830,通过控件830用户可以选择通过图形用户接口810输入的设定对之适用的网络。在该例中,控件830被格式化为下拉列表框,其可以利用本领域内已知的技术来再现。在如图8中所示的操作状态下,用户通过控件830选择了网络1。相应地,通过显示区域840A、840B、840C和840D输入的设定适用于网络1。通过对于控件830的操纵,用户可以选择不同的网络并且可以输入不同的数值,从而为其他网络产生不同的策略。
图形用户接口810示出用户可以选择多种方式来输入形成对应于用户模式实体的策略的数值。在该例中示出了多个选项卡,其中不同的选项卡与不同的应用分类相关联。选项卡820A已被选择,其允许用户在逐类别的基础上指定对应于各项应用的数值。诸如选项卡820B、820C、820D和820E之类的其他选项卡也是可用的。通过这些选项卡,用户可以访问其他显示区域,通过所述显示区域用户可以按照其他方式指定对应于用户模式实体的策略信息。举例来说,通过访问选项卡820B可以允许用户单独访问各项电子邮件应用,并且单独确立对应于每一项应用的使用策略的参数值。同样地,选项卡820C、820D和820E可以允许用户分别访问对应于浏览器应用、游戏以及多媒体应用的显示区域,并且单独提供定义对应于这些类型的应用的策略的数值。相应地应当认识到,图8仅仅代表用户可以借之指定适用于用户模式实体的使用策略的策略数值的机制的一个示例。
前面所描述的技术可以在任何适当计算设备中实施。图9示出了可以在其中实施本发明的适当的计算系统环境900的一个示例。计算系统环境900只是适当的计算环境的一个示例,其不意图暗示关于本发明的使用范围或功能的任何限制。计算环境900也不应当被理解为关于示例性操作环境900中所示的任何一个组件或组件组合具有任何依赖性或要求。
本发明可以操作于许多其他通用或专用计算系统环境或配置。可能适用于本发明的公知的计算系统、环境和/或配置的示例包括(但不限于)个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子装置、网络PC、小型计算机、大型计算机、包括任何前述系统或设备的分布式计算环境等等。
所述计算环境可以执行诸如程序模块之类的计算机可执行指令。一般来说,程序模块包括例程、程序、对象、组件、数据结构等等,其执行特定任务或者实施特定抽象数据类型。本发明还可以在分布式计算环境中实践,其中各项任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。
参照图9,用于实施本发明的一个示例性系统包括具有计算机910的形式的通用计算设备。计算机910的组件可以包括(但不限于)处理单元920、系统存储器930以及将包括系统存储器在内的各个系统组件耦合到处理单元920的系统总线921。系统总线921可以是几种类型的总线结构当中的任一种,其中包括存储器总线或存储器控制器、外围总线以及利用多种总线体系结构当中的任一种的局部总线。作为举例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及也被称作夹层总线的外围组件互连(PCI)总线。
计算机910通常包括多种计算机可读介质。计算机可读介质可以是能够由计算机910访问的任何可用介质,并且包括易失性和非易失性介质、可移除和不可移除介质。作为举例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括按照用于存储信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,所述信息例如是计算机可读指令、数据结构、程序模块或其他数据。计算机存储介质包括(但不限于)RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光盘储存器、磁盒、磁带、磁盘储存器或其他磁性存储设备或者可以被用来存储所期望的信息并且可由计算机910访问的任何其他介质。通信介质通常在已调数据信号(比如载波)或其他传输机制中具体实现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息递送介质。术语“已调数据信号”意指其一项或更多项特性被设定或改变以便在其中编码信息的信号。作为举例而非限制,通信介质包括有线介质(比如有线网络或直接连线连接)和无线介质(比如声学、RF、红外和其他无线介质)。任何前述内容的组合也应当被包括在计算机可读介质的范围内。
系统存储器930包括具有易失性和/或非易失性存储器的形式的计算机存储介质,比如只读存储器(ROM)931和随机存取存储器(RAM)932。在ROM 931中通常存储基本输入/输出系统933(BIOS),其包含例如在开机期间帮助在计算机910内的各个元件之间传输信息的基本例程。RAM 932通常包含可由处理单元920立即访问和/或当前正由其操作的数据和/或程序模块。作为举例而非限制,图9示出了操作系统934、应用程序935、其他程序模块936以及程序数据937。
计算机910还可以包括其他可移除/不可移除、易失性/非易失性计算机存储介质。仅仅作为举例,图9示出了从/向不可移除的非易失性磁性介质进行读取或写入的硬盘驱动器940,从/向可移除的非易失性磁盘952进行读取或写入的磁盘驱动器951,以及从/向可移除的非易失性光盘956(比如CD ROM或其他光学介质)进行读取或写入的光盘驱动器955。可以用在所述示例性操作环境中的其他可移除/不可移除、易失性/非易失性计算机存储介质包括(但不限于)磁带盒、闪存卡、数字通用盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器941通常通过不可移除存储器接口(比如接口940)连接到系统总线921,并且磁盘驱动器951和光盘驱动器955通常通过可移除存储器接口(比如接口950)连接到系统总线921。
前面所讨论并且在图9中示出的驱动器及其相关联的计算机存储介质对用于计算机910的计算机可读指令、数据结构、程序模块以及其他数据提供存储。在图9中,举例来说,硬盘驱动器941被图示为存储操作系统944、应用程序945、其他程序模块946以及程序数据947。应当提到的是,这些组件可以是与操作系统934、应用程序935、其他程序模块936以及程序数据937相同或不同的。操作系统944、应用程序945、其他程序模块946以及程序数据947在这里被给出不同的附图标记以便说明其至少是不同的拷贝。用户可以通过输入设备向计算机910输入命令和信息,所述输入设备例如是键盘962以及通常被称作鼠标、轨迹球或触摸板的指示设备961。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏板、碟形卫星信号收发天线、扫描器等等。这些和其他输入设备常常通过耦合到系统总线的用户输入接口960连接到处理单元920,但是也可以通过其他接口和总线结构连接,比如并行端口、游戏端口或通用串行总线(USB)。监视器991或其他类型的显示设备也通过诸如视频接口990之类的接口连接到系统总线921。除了监视器之外,计算机还可以包括其他外围输出设备,比如扬声器997和打印机996,其可以通过输出外围接口995连接。
计算机910可以利用去到一个或更多远程计算机(比如远程计算机980)的逻辑连接而在联网环境中操作。远程计算机980可以是个人计算机、服务器、路由器、网络PC、对等设备或其他共同网络节点,并且通常包括前面关于计算机910所描述的许多或所有元件,但是在图9中仅仅示出了存储器存储设备981。图9中所描绘的逻辑连接包括局域网(LAN)971和广域网(WAN)973,但是也可以包括其他网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当被使用在LAN联网环境中时,计算机910通过网络接口或适配器970连接到LAN 971。当被使用在WAN联网环境中时,计算机910通常包括调制解调器972或用于通过WAN 973(比如因特网)建立通信的其他装置。调制解调器972可以是内部的或外部的,其可以通过用户输入接口960或其他适当机制连接到系统总线921。在已联网环境中,关于计算机910描绘的程序模块或其各个部分可以被存储在远程存储器存储设备中。作为举例而非限制,图9将远程应用程序985图示为驻留在存储器设备981上。应当认识到,所示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链接的其他装置。
在如此描述了本发明的至少一个实施例的几个方面之后应当认识到,本领域技术人员将会很容易想到许多更改、修改和改进。
举例来说,描述了应用可以访问由操作系统保持的API以获得包括用于计算使用收费的当前基础的当前网络信息。该信息可以作为每数据单位的成本而被给出,从而允许应用计算所设想的操作的成本。替换地或附加地,该信息可以作为执行所设想的操作的成本而被直接给出。
此外还描述了知晓成本的应用的操作。应当认识到,应用是用户模式组件的一个示例。其他用户模式组件(比如执行在操作系统中的服务)可以访问成本信息并且基于该成本信息选择性地执行涉及到通过网络的数据传送的操作。
此外,虽然描述了利用与数据使用有关的成本信息的服务可以借之获得该信息的自动化技术,但是也可以使用人工或半自动化技术。举例来说,用户可以明确地输入成本信息。可替换地,可以利用这样的信息对网络接口卡进行配置,或者可以在数据服务被激活时或者在其他时间把包含这样的信息的数据文件加载到计算设备中。
此外,还提供了基于用户模式实体执行对于网络操作的管理的示例。但是应当认识到,可以对于任何适当的实体收集使用信息,并且对于网络操作的管理可以类似地在任何适当实体上执行,其中包括操作系统的内核模式或其他组件。
这样的更改、修改和改进应当是本公开内容的一部分,并且应当落在本发明的精神和范围内。相应地,前面的描述和附图仅仅是为了举例。
可以按照许多方式来实施本发明的前述实施例。举例来说,可以利用硬件、软件或其组合来实施各个实施例。当用软件实施时,可以在任何适当的处理器或处理器集合上执行软件代码,而不管其被提供在单个计算机中还是分布在多个计算机上。这样的处理器可以被实施为集成电路,其中在集成电路组件中有一个或更多处理器。但是也可以利用具有任何适当格式的电路来实施处理器。
此外还应当认识到,可以按照许多形式来具体实现计算机,比如安装在机架上的计算机、台式计算机、膝上型计算机或平板型计算机。此外,计算机可以被嵌入在通常不被视为计算机但是具有适当处理能力的设备中,其中包括个人数字助理(PDA)、智能电话或者任何其他适当的便携式或固定电子设备。
此外,计算机可以具有一个或更多输入和输出设备。这些设备特别可以被用来呈现用户接口。可以被用来提供用户接口的输出设备的示例包括用于输出的视觉呈现的打印机或显示屏以及用于输出的可听呈现的扬声器或其他发声设备。可以被用于用户接口的输入设备的示例包括键盘以及诸如鼠标、触摸板和数位板之类的指示设备。作为另一个示例,计算机可以通过语音识别或其他可听格式接收输入信息。
这样的计算机可以通过具有任何适当形式的一个或更多网络互连,其中包括局域网或广域网,比如企业网络或因特网。这样的网络可以是基于任何适当技术并且可以根据任何适当协议操作,并且可以包括无线网络、有线网络或光纤网络。
此外,这里所概述的各种方法或处理可以被编码为软件,其可以在采用多种操作系统或平台当中的任一种的一个或更多处理器上执行。此外,这样的软件可以利用多种适当编程语言和/或编程或脚本化工具当中的任一种来编写,并且还可以被编辑成在主机或虚拟机上执行的可执行机器语言代码或者中间代码。
在这方面,本发明可以被具体实现为利用一个或更多程序编码的计算机可读存储介质(或多项计算机可读介质)(例如计算机存储器、一个或更多软盘、紧致盘(CD)、光盘、数字视频盘(DVD)、磁带、闪存、现场可编程门阵列或其他半导体器件中的电路配置或者其他非瞬时性的有形计算机存储介质),当在一个或更多计算机或其他处理器上执行时,所述程序执行实施前面所讨论的本发明的各个实施例的方法。所述一项或多项计算机可读存储介质可以是可运输的,从而可以将存储在其上的一个或多个程序加载到一个或更多不同计算机或其他处理器上,以便实施前面所讨论的本发明的各个方面。这里所使用的术语“非瞬时性计算机可读存储介质”只包含可以被视为制造品(即制造产品)或机器的计算机可读介质。替换地或附加地,本发明可以被具体实现为除了计算机可读存储介质之外的其他计算机可读介质,比如传播信号。
这里使用术语“程序”或“软件”的一般意义以指代任何类型的计算机代码或计算机可执行指令集合,其可以被采用来对计算机或其他处理器进行编程,以便实施前面所讨论的本发明的各个方面。此外还应当认识到,根据本发明的一个方面,在被执行时施行本发明的方法的一个或更多计算机程序不需要驻留在单个计算机或处理器上,而是可以按照模块化方式分布在多个不同计算机或处理器上,以便实施本发明的各个方面。
计算机可执行指令可以具有许多形式,比如可由一个或更多计算机或其他设备执行的程序模块。一般来说,程序模块包括执行特定任务或实施特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常来说,在各个实施例中可以按照期望来组合或分布各个程序模块的功能。
此外,数据结构可以按照任何适当形式被存储在计算机可读介质中。为了说明简单起见,数据结构可以被显示为具有通过所述数据结构中的位置而相关的字段。这样的关系同样可以通过为字段存储指派计算机可读介质中的传达字段之间的关系的位置来实现。但是可以使用任何适当机制来建立数据结构的各个字段中的信息之间的关系,其中包括通过使用指针、标签或者建立数据元素之间的关系的其他机制。
本发明的各个方面可以被单独使用、组合使用或者按照未在前述实施例中具体讨论的多种设置来使用,因此其应用不限于在前面的描述中所阐述或者在附图中示出的细节和组件设置。举例来说,在一个实施例中描述的各个方面可以按照任何方式与在其他实施例中描述的各个方面相组合。
此外,本发明可以被具体实现为一种方法,前面已经提供了这方面的一个示例。可以按照任何适当方式对于作为所述方法的一部分而执行的各个步骤进行排序。相应地可以构造其中按照不同于所示顺序来执行各个步骤的实施例,其中可以包括同时执行一些步骤,尽管其在说明性实施例中被显示为顺序步骤。
在权利要求书中使用“第一”、“第二”、“第三”等顺序术语来修改权利要求元素的做法本身并不意味着一个权利要求元素关于另一个的任何优先级、优先权或顺序或者执行方法的各个步骤的时间顺序,而是仅仅被用作区分具有特定名称的一个权利要求元素与具有相同名称(但是为了依序使用)的另一个元素的标记,以便区分各个权利要求元素。
此外,这里所使用的措辞和术语是出于描述的目的,而不应当被视为进行限制。这里所使用的“包括”、“包含”、“具有”、“涉及”及其变体意图涵盖随后列出的项目及其等效项目以及附加的项目。