通过事件触发器合并来降低系统能耗的制作方法

文档序号:16049897发布日期:2018-11-24 11:11阅读:253来源:国知局

随着计算技术的不断发展,由给定计算机系统执行的任务越来越依赖于计算机系统外部的环境和刺激,并且通常由其触发。例如,在计算机系统上运行的应用可以响应由另一计算机系统发起的事件(例如,接收到电子邮件,接收到推送通知等),或者可以响应计算机系统在其中操作的环境中的变化(例如,由gps传感器检测到的位置变化或网络状态的变化,设备取向的变化,照明的变化,接收到用户发起的输入等)。

应用可能例如想要响应于计算机的网络连接状态改变或者响应于全球定位系统(gps)接收器指示设备已进入特定地理区域来运行特定的代码段。因此,外部环境事件的发生可以使一个或多个应用响应于该触发器来激活以执行后台活动。例如,应用可以激活以处理已改变的gps坐标或已改变的网络状态,处理推送通知等。这允许应用灵活地对各种各样的现实世界刺激作出反应并向用户提供有用的体验。

计算机系统无法控制外部事件发生的时间或频率。例如,操作系统无法控制电话移动到特定位置的频率,或无线保真(wifi)信号切入和切出的频率。因此,环境条件可能如此频繁地发生或改变状态,以致于环境条件引起不希望的背景活动量。例如,应用已经注册为响应特定事件而运行的代码最终可能比开发人员预期的更频繁地被调用,从而导致计算机系统过度的能耗。这会浪费能量,过早地耗尽便携式设备上的电池,并导致过多的热量产生。

简要概述

本文的实施例涉及通过合并由可通过应用调用背景活动的外部事件引起的触发器的激活来节省计算机系统消耗的能量,并减少计算机系统产生的热量。各实施例因此降低了应用活动的频率,或者将其延迟到更合适的时间。因此,即使外部事件用信号通知触发器频繁发生,触发器也可被配置为使得应用代码仅以可预测频率来作为触发器的结果而运行。

一些实施例涉及用于合并来自计算机系统外部的事件的触发器的方法、系统和计算机程序产品。各实施例包括接收多个触发器。每个触发器与相应的外部事件的发生相关联,并且具有基于该外部事件的类型的类型。各实施例还包括基于多个触发器中第一触发器的第一类型来将该第一触发器标识为是对时间严格的,并且至少基于该第一触发器是对时间严格的来调度该第一触发器以用于激发。各实施例还包括基于多个触发器中第二触发器的第二类型来将该第二触发器标识为是机会主义的,并且至少基于该第二触发器是机会主义的来将该第二触发器的激发与多个触发器中的一个或多个其他触发器合并。

调度第二触发器包括基于已经注册来接收第二类型的触发器的通知的至少一个应用来确定与第二触发器的激发相关联的工作负荷的重要性。调度第二触发器还包括确定与激发第二触发器相关的系统状态。调度第二触发器还包括至少基于工作负载的重要性和系统状态来确定用于激发第二触发器的条件,标识用于激发第二触发器的条件与用于激发多个触发器中的所述一个或多个其他触发器的条件一致,并且当用于激发第二触发器的条件被满足时,调度第二触发器以用于与多个触发器中的所述一个或多个其他触发器一起激发。各实施例还包括在调度第二触发器以用于与多个触发器中的所述一个或多个其他触发器一起激发之后,与多个触发器中的所述一个或多个其他触发器一起激发第二触发器。

提供本概述以便以简化的形式介绍将在以下的详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在被用来帮助确定所要求保护的主题的范围。

附图简述

为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中:

图1示出了用于将不同触发器的激活合并为单个激活的示例计算环境;

图2示出了示例触发器组件;以及

图3示出了用于合并来自计算机系统外部的事件的触发器的示例方法的流程图。

详细描述

本文的实施例涉及通过合并由可通过应用调用背景活动的外部事件引起的触发器的激活来节省计算机系统消耗的能量,并减少计算机系统产生的热量。各实施例因此降低了应用活动的频率,或者将其延迟到更合适的时间。因此,即使外部事件用信号通知触发器频繁发生,触发器也可被配置为使得应用代码仅以可预测频率来作为触发器的结果而运行。

针对导致后台应用活动的触发器的刺激通常是计算系统外部的事件。各示例包括推送通知、文本消息或电子邮件的到达;gps模块报告的计算设备物理位置的改变;设备网络状态的改变;等等。设备的操作系统通常不能提前可靠地预测这些触发器事件将发生的频率。此外,事件的频率可能因设备而异而显著地变化,或甚至在不同的使用时段期间也会在同一设备上显著地变化(例如,在一天手机在很多地方移动并经常更换手机蜂窝塔,而在另一天它主要是处在桌面上并且从未激活任何网络连接改变触发器)。这意味着对于允许作为操作系统控制之外的外部刺激的结果而启动活动的系统而言,功耗可能是不可预测且无限制的。

为了解决上述问题,各实施例将不同触发器(包括相同类型的触发器和/或不同类型的触发器)的激活合并(例如,组合和/或批处理)成单个激活。因此,通过触发器合并,操作系统可以等待多个触发器准备好以用于用信号通知/激发,并一次用信号通知/激发它们全部。任何相关联的应用因此在同一时间被唤醒,和/或以有限的间隔被唤醒,从而降低了这些应用的功耗。

为了实现前述内容,图1描绘了用于将不同触发器的激活合并为单个激活的示例计算环境100。如描绘的,计算环境100包括计算设备101,该计算设备101被配置为对环境刺激作出响应。例如,计算设备101包括传感器102。传感器102可以包括可将一些外部刺激或环境条件编码成可由计算设备101解释的电子形式的任何设备。示例传感器设备可包括数字温度计、气压计、陀螺仪、邻近度传感器、加速度计/运动检测器、gps接收器、数字罗盘、相机、环境光传感器等。另外,计算设备包括通信设备103,诸如wifi模块、蓝牙模块、以太网模块、蜂窝通信模块等。因此,计算设备101可被连接到一个或多个网络106。

通过使用传感器102和/或通信设备103,计算设备101可接收外部刺激并从该刺激生成触发器。例如,图1描绘了计算设备101包括触发器组件104。触发器组件104通常表示由计算设备101提供的功能,以接收外部刺激、从刺激创建触发器、以及调度和以其他方式处理/激发那些触发器。这样,触发器组件104可以表示作为处理由外部刺激引起的触发的一部分一起工作的各种不同组件/模块。图1还描绘了计算设备101具有在其上执行的应用105。这些应用中的一个或多个可向触发器组件104注册以接收在某些触发器激发时的通知,并且可被配置为由于被通知触发器已被激发而执行所定义的代码。

图2示出了触发器组件201,其例如可对应于图1的触发器组件104。特别地,图2示出了触发器组件201包括多个组件/模块,每个组件/模块代表相应的功能。应当理解,这些组件/模块的数量和布置仅是为了便于描述,并且本文描述的实施例不限于所描绘的特定布置。

如描绘的,触发器组件201包括生成器组件202。生成器组件202接收外部刺激(例如,来自传感器102和/或通信设备103),并创建或生成对应于该刺激的一个或多个触发器。一般而言,生成器组件202可以基于触发器所基于的刺激的类型来创建不同类型的触发器。例如,可以基于gps数据生成一种类型的触发器,可以基于网络数据生成另一种类型的触发器,可以基于不同类型的推送通知生成不同类型的触发器,等等。一些触发器可以包括相应的参数,诸如网络状态数据、gps数据、与推送通知相关联的数据、传感器数据等。

触发器组件201还包括分类器组件203。与其他类型的系统事件(例如定时器)不同,触发器可以是各种各样的刺激的结果,并且可以具有复杂的输入。因此,与其他类型的系统事件不同,对于外部触发器而言,最初确定特定触发器的两次激活或不同触发器的激活是否可被组合成单个信号是重要的。因此,分类器组件203可以将触发器分类为不同的类别,包括可以合并的那些和不可合并的那些。分类器组件203可以将可合并的触发器发送到合并组件204,并且可以将不可合并的触发器发送到调度/激发组件205。

不可合并的触发器可包括那些对时间严格的触发器,因为它们需要被立即(或者至少没有明显的延迟)地激发。对时间严格的触发器的示例可包括与警报相关的触发器、与时间相关的触发器、关键网络状态改变触发器(例如,当蜂窝设备进入漫游区域时)等。

可以合并的触发器通常是那些“机会主义”的触发器。机会主义触发器是可在下一个适当的机会(可能会有延迟)被递送的触发器。机会主义触发器可包括其中由将触发器合并导致的延迟可能会不利地影响相关工作负载的那些触发器。例如,不利地影响触发器的相关工作负载(例如,延迟其执行)以有利于节能可能是可接受的。

触发器可以可与相同类型的触发器(即,由相同类型的外部事件引发的触发器)合并和/或可与其他类型的触发器(即,由不同类型的外部事件引发的触发器)合并。可与相同类型的触发器合并的触发器包括以下那些触发器:将相同触发器类型的在指定时间段内的多个激活组合成单个激活不会导致数据丢失或阻止应用能够按预期对触发器的信号作出响应。这些触发器通常包括不具有任何相关联数据或有效载荷的触发器,或者具有数据或有效载荷但只需要保留或处理最新有效载荷以进行正确操作的触发器。对于这些类型的触发器,正确的行为可能仅取决于告知应用正被信号通知的触发器的至少一个实例,但告知应用每次和每个实例不是必需的。例如,指示设备的网络状态已经改变的触发器可以在许多改变之后被发信号通知一次,并且依赖于网络状态改变数据的应用可以基于最近的网络状态改变来运行相关的更新例程一次。

可与相同类型的触发器合并的触发器还可以包括具有可易于组合的相关联数据/有效载荷的触发器。例如,如果指示设备的地理位置已经改变的触发器包括包含地理坐标的有效载荷,则可诸如通过将坐标串接在一起以形成坐标列表来将多个触发器的有效载荷组合成单个有效载荷。用于组合有效载荷的其他选项可包括将一个有效载荷的值与另一个有效载荷的值聚集,用一个有效载荷的部分替换另一个有效载荷的部分等。

可与相同类型的触发器合并的触发器还可包括其中后续触发器的数据/有效载荷使先前触发器的数据/有效载荷无效的触发器。例如,信号通知网络连接改变的两个触发器的序列可能包括网络状态改变为“断开连接”,然后网络状态改变为“已连接”。许多应用可能只需要被告知第二个实例,并且因此第二个触发器可使第一个触发器无效。

无论触发器是否可与相同类型的其他触发器合并,触发器还可以与不同类型的触发器合并。在这种情况下,针对每种触发器类型激发不同的激活,但是这些不同的触发器被调度在大致相同的时间激发。作为示例,在不同地理位置之间行进的基于电话的计算设备在连接到不同的蜂窝塔时可能遇到多个网络状态改变的事件,并且同时还接收到多个新电子邮件通知触发器。网络状态改变触发器和电子邮件通知触发器不能被组合成单个触发器,因为它们具有不同的订户和数据,但是网络状态改变触发器可组合成单个触发器,并且电子邮件通知触发器可组合成单个触发器,并且这两个触发器可被合并以被同时激发,从而造成单个唤醒(即,从低功率设备或处理器状态改变为活跃设备或处理器状态)和两个触发器激活,而不是针对每种触发器类型的多次唤醒和多次激活。

合并组件204与调度/激发组件205一起工作以确定如何合并触发器,以及何时调度它们用于信号通知/激发。在这样做时,合并组件204可以将前述考虑中的每一个纳入考虑来将相同类型的多个触发器合并(包括组合数据或其他有效载荷/使数据或其他有效载荷无效)成单个触发器以及合并不同类型的触发器以在大致相同的时间激发。

另外,合并组件204可以考虑其他因素,诸如与触发器相关联的工作负载的重要性。例如,如先前所指示的,触发器的激发通常导致一个或多个注册的应用被激活以便执行相关联的代码。因此,图2示出了触发器组件201可包括注册组件206或以其他方式与注册组件206相关联,注册组件206准许应用注册来接收特定类型的触发器已被激发的通知。

当确定是否以及如何合并触发器时,合并组件204可以标识哪个(哪些)应用被注册来接收该触发器类型的通知。基于被注册来接收特定触发器类型的通知的应用,合并组件204可以标识将由于激发该触发器而被处理的工作负载的重要性。

例如,合并组件204可以将某些应用(例如,通信应用,生产力应用,系统提供的应用等)的工作负载视为比其他应用(例如,娱乐应用,购物应用等)的工作负载更重要。在另一个示例中,注册的应用可以提供其工作负载的重要性的指示。在又一示例中,如果其他工作负载(例如,来自其他应用)取决于注册的应用工作负载的处理,则合并组件204可以将注册的应用的工作负载视为具有增加的重要性。

合并组件204还可以考虑与触发器的激发相关的系统状态。尽管系统状态可以包括任何可用的系统状态(例如,当前资源利用率,活跃进程的身份和/或数量,系统运行时间,系统休眠时间,电池电量,无线天线是否开启还是关闭,等等),但是在一些实施例中,系统状态包括将会是用户面对的系统状态。特别地,系统状态可能与触发器被激发时是否会存在用户可见效果有关。这种系统状态的示例可以包括注册的应用是否正在主动执行和/或其用户界面当前是否可见(或者基于过去的使用模式应用被预期正在执行和/或其用户界面被预期可见时),计算机系统的屏幕是打开还是关闭,在被激发的情况下基于触发器的激发的通知当前是否被显示,等等。

合并组件204可以使用与触发器的激发相关联的工作负载的重要性或与触发器的激发相关的系统状态中的一者或两者,以确定用于激发触发器的一个或多个条件和/或用于合并该类型的触发器的时间间隔。例如,合并组件204可以在工作负载重要性和相关系统状态之间执行加权/平衡,以标识用于激发触发器的条件,该条件将确保触发器将在适合于工作负载的时间被激发,同时可能等待激发触发器直到激发触发器的效果将被用户可见。

在系统状态加权超过工作负载的示例中,如果触发器涉及新电子邮件通知,则给定工作负载等待激发触发器直到电子邮件通知实际上对用户可见(例如,等到设备的屏幕打开来激发触发器,同时合并电子邮件通知触发器和/或触发器类型)可能是适当的。在工作负载加权超过系统状态的示例中,如果触发器涉及网络状态更新,则基于依赖于网络状态更新的应用相对较快地激发触发器可能是适当的(即使触发器的效果可能不是立即用户面对的),以确保应用即使在设备未被主动使用时也能维持网络连接。在此示例中,触发器仍可与相同类型的其他触发器或其他类型的触发器合并。

用于激发触发器的条件可以是基于时间的。例如,合并组件204可以确定在定义的时间、在定义的时间间隔(例如,合并间隔)的结束等激发触发器。用于激发触发器的条件可以附加地或替代地基于一些其他因素。例如,用于激发触发器的条件可以基于系统状态的改变,例如当应用被激活时、屏幕被打开时、无线天线被通电时等。

在一些实施例中,结合可合并的触发器来定义可接受的合并时间间隔。合并时间间隔是在此期间特定触发器应至多被激发一次的时间段的长度。该时间间隔可以是系统范围的策略,它可以根据触发器类型来设置,或者它可被定义为可变的并且基于系统中的各种条件被动态地确定。在一些实施例中,应用可能能够在合并它们所订阅的触发器时请求使用合并时间间隔。因此,应用可能能够指定它可以等待多长时间来接收触发器事件的通知而不会不利地影响其工作负载。在这种情况下,合并组件204可以选择无条件地(可能在获得用户同意之后)遵守应用请求,或者可以将应用请求视为对于系统策略的提示或输入,而不是将它们视为明确指令或要求。

在一些实现中,当第一次遇到可合并的触发器时,它被激发并且通知会按正常情况发送给任何已注册的应用。定时器接着被初始化并被设置成针对触发器的合并时间间隔的持续时间。如果在计时器到期之前发信号通知了同一触发器的另一个实例,则它与其他触发器合并。当计时器在针对特定触发器的合并周期结束时到期时,任何经合并的触发器被激发并且计时器被重置以开始新的合并时间间隔。如果没有待处理的激活,则计时器被撤防并释放,并且触发器的下一次激活被允许正常地激活,并且然后开始新的合并时间间隔。

当确定一种类型的触发器是否可以与其他类型的触发器合并时,合并组件204可以标识用于激发触发器的所标识的条件是否与用于激发不同类型的其他触发器的条件一致,或者以其他方式兼容。例如,如果合并组件204确定触发器将在特定时间或在特定时间间隔之后被激发,则合并组件204可以确定是否存在已经被调度在同一时间或在接近同一时间激发的不同类型的其他触发器。如果是这样,则合并组件204可以调度所有这些触发器基本上在同一时间激发。在另一示例中,如果合并组件204确定触发器将基于系统状态的改变(例如,屏幕被打开)被激发,则合并组件204可以确定是否存在已经被调度基于同一状态改变(例如,当屏幕亮起时)激发的不同类型的其他触发器。如果是这样,则合并组件204可以调度所有这些触发器来在状态改变的发生之际(例如,当屏幕亮起时)激发。

调度/激发组件205调度用于激发的触发器,并在适当时(即,当所确定的条件被满足时)激发它们。当调度/激发组件205激发触发器时,通知组件207向任何注册的应用通知触发器的激发(以及与触发器相关联的任何有效载荷/数据)。在一些实施例中,调度组件将机会主义触发器与对时间严格的触发器的激发相组合。例如,如果存在排队等待激发的机会主义触发器,并且对时间严格的触发器到达并被激发,则调度/激发组件205可以与对时间严格的触发器一起激发机会主义触发器,因为系统无论如何都需要结合对时间严格的触发器的激发被唤醒。另外,调度/激发组件205可以基于各种因素重新调度用于激发现有触发器的条件,例如由于新的传入触发器而改变条件。例如,如果一批触发器被调度在将来的给定时间激发,并且需要比该批更早(或更晚)激发的新触发器到达,则调度/激发组件205可以重新调度来将该批触发器与新触发器在同一时间激发。

鉴于前述内容,图3示出了用于合并来自计算机系统外部的事件的触发器的示例方法300的流程图。虽然图3以特定顺序示出了一系列动作,但是应当理解,这仅是为了便于描述,并且其他实现可以以不同顺序和/或并行地执行类似动作。

方法300包括接收触发器的动作301。动作301可以包括接收多个触发器,每个触发器与对应的外部事件的发生相关联并且具有基于外部事件的类型的类型。例如,基于从传感器102和/或通信设备103接收的事件数据,触发器组件204可以标识多个触发器。这可以包括生成器组件202创建多个不同的触发器,每个触发器具有与其所基于的事件类型相对应的类型。

方法300还包括标识对时间严格的触发器的动作302。动作302可以包括基于多个触发器的第一触发器的第一类型来将该第一触发器标识为是对时间严格的。例如,分类器组件203可以基于触发器的类型确定该触发器是否是对时间严格的。对时间严格的触发器的示例包括与警报相关的触发器、与时间相关的触发器、关键网络状态改变触发器(例如,当蜂窝设备进入漫游区域时)等。

方法300还包括调度对时间严格的触发器的动作303。动作303可以包括至少基于第一触发器是对时间严格的来调度第一触发器以用于激发。例如,调度/激发组件205可调度对时间严格的触发器以用于激发。虽然对时间严格的触发器被调度为基本上立即激发,但也可以被调度在可接受的延迟时间段内激发。因此,对时间严格的触发器也可被合并,但通常在比机会主义触发器更小的时间尺度上。

方法300还包括标识机会主义触发器的动作304。动作304可以包括基于多个触发器的第二触发器的第二类型来将该第二触发器标识为是机会主义的。例如,分类器组件203可以基于触发器的类型确定该触发器是否是机会主义的。机会主义触发器是可以在下一个适当的机会(可能会有延迟)被递送而不会从用户面对的角度不利地影响工作负载的那些触发器。一旦第二触发器被标识为是机会主义的,分类器组件203就可以将第二触发器发送到合并组件204,用于至少基于第二触发器是机会主义的来将第二触发器的激发与多个触发器中的一个或多个其他触发器合并。

方法300还包括确定工作负载重要性的动作305。动作305可以包括确定与第二触发器的激发相关联的工作负载的重要性,该工作负载基于已经注册来接收第二类型的触发器的通知的至少一个应用。例如,注册组件206可以跟踪哪些应用已经注册来接收不同触发器的激发的通知。基于这些注册,合并组件204可以确定应用的工作负载有多重要(例如,基于其他应用是否依赖于工作负载,工作负载是否是时间敏感的,面对工作负载的用户是如何等)。

方法300还包括确定系统状态的动作306。动作306可以包括确定与激发第二触发器相关的系统状态。例如,合并组件204可以确定与触发器何时可以被激发相关的系统状态。在一些实施例中,系统状态包括将会是用户面对的系统状态,与触发器被激发时是否将会是用户可见效果相关。

方法300还包括标识用于激发的条件的动作307。动作307可包括至少基于工作负载的重要性和系统状态来标识用于激发第二触发器的条件。例如,合并组件204可以使用与触发器的激发相关联的工作负载的重要性和/或与触发器的激发相关的系统状态,以确定用于激发触发器的一个或多个条件和/或用于合并该类型的触发器的时间间隔。用于激发触发器的条件可以是基于时间的,或者可以基于某个其他因素,诸如与激发第二触发器相关的系统状态的改变。

方法300还包括与其他触发器合并的动作308。动作308可以包括标识用于激发第二触发器的条件与用于激发多个触发器中的一个或多个其他触发器的条件一致。例如,合并组件204可以标识所标识的用于激发第二触发器的条件是否与用于激发不同类型的其他触发器的条件一致,或者以其他方式兼容。例如,用于激发第二触发器的条件可以是与用于激发其他触发器的时间或时间间隔相同或接近的时间或时间间隔,或者可以基于将导致其他触发器激发的系统状态中的相同或类似的变化。

方法300还包括调度触发器以用于激发的动作309。动作309可以包括当用于激发第二触发器的条件被满足时,调度第二触发器以用于与多个触发器中的该一个或多个其他触发器一起激发。例如,调度/激发组件205可以调度第二触发器以用于与多个触发器中的该一个或多个其他触发器一起激发。在调度第二触发器以用于与多个触发器中的该一个或多个其他触发器一起激发之后,调度/激发组件205可以在适当时与多个触发器中的该一个或多个其他触发器一起激发第二触发器。在那时,通知组件207可以通知适当的注册的应用。

因此,本文中的实施例可以减少基于外部事件的触发器激发/激活的次数,并且因此减少操作系统必须激活应用并执行它们一方代码的次数。这样可以节省能源,对其他影响性能的资源(例如cpu,存储器和i/o带宽)的使用,并减少计算设备的热量输出。

尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作或上述动作的次序。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。

本发明的各实施例可包括或利用专用或通用计算机系统,该专用或通用计算机系统包括诸如举例而言一个或多个处理器和系统存储器的计算机硬件,如以下更详细讨论的。本发明范围内的各实施例也包括用于实现或存储计算机可执行指令和/或数据结构的实体及其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令和/或数据结构的计算机可读介质是计算机存储介质。承载计算机可执行指令和/或数据结构的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。

存储计算机可执行指令和/或数据结构的计算机存储介质是物理存储介质。物理存储介质包括计算机硬件,诸如ram、rom、eeprom、固态驱动器(“ssd”)、闪存、相变存储器(“pcm”)、光盘存储、磁盘存储或其它磁存储设备、或可用于存储计算机可执行指令或数据结构形式的程序代码的任何其它硬件存储介质,其可由通用或专用计算机系统访问来实现本发明公开的功能。

传输介质可包括可用于携带计算机可执行指令或数据结构形式的程序代码并可由通用或专用计算机系统访问的网络和/或数据链路。“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机系统时,该计算机系统将该连接视为传输介质。上述的组合同样应当被包括在计算机可读介质的范围内。

此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可以在网络接口模块(例如,“nic”)内的ram中被缓冲,然后最终被传输至计算机系统ram和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。

计算机可执行指令例如包括,当在一个或多个处理器处执行时使通用计算机系统、专用计算机系统、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。

本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络pc、小型计算机、大型计算机、移动电话、pda、平板、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。如此,在分布式系统环境中,计算机系统可包括多个组成部分计算机系统。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。

本领域技术人员还将理解本发明可在云计算环境中实践。云计算环境可以是分布式的,但这不是必须的。在分布时,云计算环境可以国际性地分布在一个组织内,和/或具有跨多个组织拥有的组件。在本说明书和下面的权利要求书中,“云计算”被定义为用于允许对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于可从这样的模型(在被合适地部署时)中获得的任何其它多个优点。

云计算模型可由各种特性组成,诸如按需自服务、广泛网络访问、资源池、快速灵活性、和所测定的服务等。云计算模型还可形成各种服务模型,诸如例如软件即服务(“saas”)、平台即服务(“paas”)以及基础结构即服务(“iaas”)。也可以使用不同的部署模型,诸如私有的云、社区云、公开的云、混合型云,等等,来部署云计算模型。

一些实施例,诸如云计算环境,可包括一系统,该系统包括一个或多个主机,每个主机能够运行一个或多个虚拟机。在操作期间,虚拟机模拟操作计算系统,支持操作系统以及可能还有一个或多个其他应用。在一些实施例中,每个主机包括管理程序,该管理程序使用从虚拟机的视图中抽象出的物理资源来模拟虚拟机的虚拟资源。管理程序还提供虚拟机之间的适当的隔离。因此,从任何给定的虚拟机的角度来看,管理程序提供该虚拟机正与物理资源对接的错觉,即便该虚拟机仅仅与物理资源的表象(例如,虚拟资源)对接。物理资源的示例包括处理容量、存储器、盘空间、网络带宽、媒体驱动器等等。

本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

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