半自动故障转移的制作方法

文档序号:12071810阅读:181来源:国知局
半自动故障转移的制作方法与工艺

对灾难恢复计划的创建和实施对于启用从灾难中的恢复是必要的。灾难可以包括诸如洪水、龙卷风或地震的自然灾难以及包括恶意活动和人为错误的人为灾难。诸如这些的灾难引发由各种实体依靠的硬件和软件系统的不可用性。例如,如果由企业利用的数据中心由灾难致使不可用,则数据将不可以被读取或写入,并且数据可能丢失。

实施数据复制和故障转移作为用于应用的灾难恢复计划的一部分可以提供针对灾难或区域断电的一种类型的保险。数据复制是如下过程,通过该过程将来自主站点的应用数据复制或镜像到辅站点。如果主站点由于灾难而发生故障,则应用在被称为故障转移的过程中被转移到辅站点。



技术实现要素:

下文呈现简化概述以便提供对所公开的主题的一些方面的基本理解。该概述不是广泛的概述。其不旨在确定重要/关键元件或描绘要求保护的主题的范围。其唯一目的是为了以简化的形式呈现一些概念作为对稍后呈现的更详细的描述的前序。

简单地来说,本公开内容涉及半自动故障转移。半自动故障转移使能由服务提供方进行的自动故障转移以及由服务消费方进行的自助服务故障转移。自助服务故障转移可以基于由服务提供方生成的信号来启动,该信号可以基于对关于服务提供方发生的事故的分析。根据一个方面,该信号可以提供与服务提供方的健康有关的建议或信息以帮助决定是否要启动自助服务故障转移。根据另一方面,该信号可以授权或拒绝对服务消费方执行自助服务故障转移的许可。

为了实现前述和相关目的,在本文中结合下面的描述和随附的附图来描述要求保护的主题的某些说明性方面。这些方面指示可以实践本主题的各种方式,其全部旨在处于要求保护的主题的范围内。其他优点和新颖特征可以当结合附图考虑时从下面的详细描述中变得显而易见。

附图说明

图1是半自动地理故障转移系统的框图。

图2是示例性故障转移情景的框图。

图3是自助服务故障转移的方法的流程图示图。

图4是自助服务故障转移的方法的流程图示图。

图5是事故处理的方法的流程图示图。

图6是图示了用于本公开内容的各方面的适当的操作环境的示意性框图。

具体实施方式

自动故障转移由服务提供方在主站点的总体丢失之后或者在由提供方确立主的恢复将花费大量的时间时执行。服务提供方通常在启动故障转移之前采用长恢复时间目标(RTO)以允许足够的时间用来调查、排解故障以及可能地从事故中恢复。自动故障转移因此是终极手段。该模型很好地适用于对数据丢失极其敏感的应用并且优选等待直到服务提供方利用了所有可能的恢复选项为止。然而,该方法导致受影响的应用的延长的停机时间,并且对于具有在服务水平协议中阐述的积极的可用性要求并且因此不可以承担延长的停机时间的应用常常是不可接受的。

现有的解决方案向应用提供使用同步或异步复制的选择。前者允许没有数据丢失的快速自动故障转移,但是导致对与阻塞相关联的应用的持续性能惩罚直到复制完成并被确认。后者包括没有性能惩罚但是具有数据丢失的可能和高恢复时间目标的自动故障转移,其在灾难性故障的情况下导致很长的应用停机时间。

公开了半自动故障转移,其包括由服务提供方进行的自动故障转移以及由诸如应用的服务消费方进行的自助服务故障转移。这里,服务消费方可以启动故障而无需等待针对可能的恢复或自动故障转移的延长的时间。同时,在期望时,由服务提供方提供对自动故障转移的支持。自助服务故障转移可以基于由服务提供方生成的信号来启动,该信号可以基于关于服务提供方发生的事故的分析,例如故障的证据。根据一个方面,该信号可以提供信息以使得服务消费方能够例如基于如在服务消费方与其客户端之间的服务水平协议规定的可用性要求来决定是否要启动故障转移,以及如果是的话则决定何时启动故障转移。然而,针对高可用性优化的应用可以期望甚至在主副本最终恢复并且数据丢失时也尽可能快地启动故障转移,并且利用辅副本继续操作。根据另一方面,该信号可以授权或拒绝关于由服务消费方对自助服务故障转移的许可。以这种方式,服务提供方可以控制何时允许服务消费方使故障转移强制实施于这种动作被准许的情景。对服务提供方的丰富内部监控基础设施的使用可以被用于排除误报并提供防止归因于暂时故障的不必要的数据丢失的质量警报。

现在参考随附附图更详细地描述本公开内容的各个方面,其中,类似的附图标记一般在其中指代类似的或对应的元件。然而,应当理解,各图和与其相关的详细描述不旨在将要求保护的主题限于所公开的具体形式。相反,意图是要涵盖落入要求保护的主题的精神和范围内的所有修改、等效方案和备选方案。

首先参考图1,图示了半自动故障转移系统100。如所示出的,存在服务消费方110和服务提供方。服务提供方120被配置为向服务消费方110提供服务。尽管不限于其,但是在一个实例中,服务提供方120可以对应于平台即服务(PAAS)系统,该PAAS系统为服务消费方110提供计算平台作为服务。例如,服务提供方120可以托管由诸如网络(web)应用的服务消费方应用采用的数据库系统。服务消费方110采用被配置为基于来自服务提供方120的信号115来启用自助服务故障转移的多个组件。服务提供方120包括被配置为生成信号115并启用恢复或自动故障转移的许多组件。

服务消费方110包括故障转移组创建组件112、信号检查组件114以及自助服务故障转移组件116。故障转移组创建组件112被配置为创建或指定将一起进行故障转移的一组数据,例如一个或多个数据库。换言之,可以生成针对数据的容器,其中容器被复制到辅站点,使得在发生致使主站点不可用的事件后,可以利用容器的辅站点表示。故障转移组提前限定故障转移的范围并确保该组中的所有数据对象在故障转移之后可用,无论故障转移在达到恢复时间目标(RTO)之后是由服务消费方启动还是由服务提供方启动。

信号检查组件114被配置为接收或检索信号115(如果可获得的话)。信号115可以提供事故已经发生的指示,该事故可以负面地影响服务提供方120的可用性以将数据提供给服务消费方110。尽管不限于其,但是信号115可以被实现为由服务提供方120维持的可由服务消费方110通过信号检查组件114访问的程序化指示符(例如,标志、变量……)。附加地或备选地,服务消费方110可以从服务提供方120请求该信号或者查询指定位置。

至少部分地基于信号115,做出关于是否要启动通过自助服务故障转移组件116对故障转移组的故障转移的决定。在一个实例中,可以关于服务消费方应用做出该决定。例如,如果服务消费方应用评估可用性并容忍数据丢失(例如,通过软件许可协议表达的),则故障转移较可能关于应用被自我启动而非等待服务提供方来解决该问题或启动自动故障转移。除了信号115的仅有存在之外,额外的信息可以由信号115提供以帮助故障转移决定,例如但不限于估计的解决时间。在这一点上,如果所估计的时间少于预定阈值,则将阻止故障转移,但是如果估计的解决时间大于或等于预定阈值,则将启动故障转移。如果由个体和/或计算机组件做出支持故障转移的决定,则自助服务故障转移组件116启动从主数据副本到辅副本的转移,辅副本变成主副本,并且应用业务(例如,服务消费方应用与服务提供方之间的交互)将在之后被重新路由至辅副本。

服务提供方120包括事故检测组件122、事故分析组件124、信号组件126、内部缓解组件128、恢复组件130和自动故障转移组件132。事故检测组件122被配置为检测或以其他方式标识影响资源的性能或可用性的事故。可以基于与系统资源有关的监测的信息来自动执行检测。附加地,可以认为在接收到来自个体或其他实体的报告后检测到事故。事故分析组件124被配置为分析检测到的事故并基于诸如受影响的资源、严重性以及恢复的可能性、等等的因素中的一个或多个来将事故的影响分类。如果影响超过预定阈值,则调用信号组件126以生成信号(例如,提升标志)或者以向服务消费方110指示自助服务故障转移归因于事故是考虑的选项的方式报警信号。如果事故的影响低于预定阈值,则调用内部缓解组件128而不调用信号组件126。内部缓解组件128被配置为执行动作以减少事故的影响并最终成功地解决事故。根据一个方面,可以由内部缓解组件128自动执行缓解。备选地,可以由可选地通过由内部缓解组件128(例如)至少基于历史事故提供的数据和/或建议引导的人类人工地执行缓解。在影响超过指示可以准许故障转移的预定阈值后,除了调用信号组件126,还可以调用恢复组件130。恢复组件130被配置为执行动作以从事故恢复和/或在从事故恢复中支持由其他组件执行的动作。恢复工作可以继续直到恢复成功并且事故得到解决为止,或者在距事故的检测的预定时间(例如,RTO)(例如,二十四小时)之后。如果事故尚未得到解决并且预定时间到期,则调用自动故障转移组件132。自动故障转移组件132被配置为从主副本转移到辅副本使得辅变成主。

注意力转到图2,图示了示例性故障转移情景200。如所示出的,存在主210副本或站点(例如,数据中心)和辅220副本或站点(例如,数据中心)。尽管不要求,但是这里根据地理复制实现方式,主210和辅220在地理上很远。例如,主210可以驻留在国家的东岸,而辅驻留在西岸。备选地,主210和辅220可以驻留在不同的国家或不同的大陆中。换言之,主210和辅220被定位为足够远使得影响主210的诸如地震、海啸或龙卷风的灾难不太可能影响辅。主210包括如由服务消费方定义的包含一起进行故障转移的一个或多个数据对象214a的集合(例如,数据库)的故障转移组212a。通过数据复制230将故障转移组212a和一个或多个数据对象214a从主210被复制到辅220,从而产生故障转移组212b和一个或多个数据对象214b。

数据复制230可以被同步或异步地执行。同步数据复制需要对主210进行阻塞直到在辅220上的数据任务(例如,更新、删除……)的复制完成并确认。这保证不会数据丢失,但是在负面会影响性能。异步复制使主210能够执行数据任务而不等待来自委托任务的辅220的确认。异步复制避免同步复制的性能冲击,但是归因于主210与辅220之间的距离的高延时可能导致数据丢失。在许多情况下,对比同步数据复制,与异步数据复制相关联的改进的性能即使在可能的数据丢失的情况下也是优选的。在这些情况下,对数据丢失的容忍度可以被构建到应用中。

半自动故障转移240启用主210上的故障转移组212a到辅220上的故障转移组212b的故障转移。半自动故障转移240包括由服务提供方进行的自动故障转移,在必要时,以及可能还有由服务消费方启动的自助服务故障转移。换言之,故障转移是在一定程度上或部分地自动的。自助服务故障转移可以是一种类型的强制故障转移。然而,在灾难恢复的背景下的故障转移通常是强制的而非可选的。自助服务故障转移可以被表征为人工故障转移。然而,在一些情况下,甚至自动故障转移包括人工组件,例如以批准这样的故障转移。因此,如本文中使用的,自助服务故障转移涉及由服务消费方启动故障转移的动作。在一个实例中,自助服务故障转移可以由人类用户人工启动,从而得到自动故障转移与自助服务故障转移之间的附加的自动/人工区别。当然,可以例如基于一个或多个预设参数来自动执行自助服务故障转移。

返回到图1,在先前信号115被描述为提供信息以帮助决定是否要进行故障转移。根据另一实施例,信号115支配故障转移是否被服务消费方110许可。以这种方式,信号115的存在或由信号115提供的数据可以向服务消费方110授权用以执行自助服务故障转移的许可。服务消费方应用基于它们的服务水平协议(SLA)可以决定在例如基于内部监视信息识别到故障之后尽可能快地进行故障转移。然而,如果执行了异步复制,则基于暂时故障的故障转移可以导致不必要的数据丢失。信号115或其缺乏可以在这些情况下防止故障转移。另外,信号115可以在其中存在非暂时的故障状况的证据的情景中许可故障转移。换言之,服务提供方120通过信号115控制何时激活故障转移并防止由服务消费方110对故障转移的启动,直到和除非服务提供方120已经确定准许这样的动作。由于服务提供方120将具有比服务消费方110丰富得多的与其基础设施有关的信息,所以这排除关于确定是否已经发生故障的误报。另外,信号115可以简化或消除服务消费方110对底层资源的健康的用以检测故障状况的监控,其由服务提供方120本身更好地处置,因为服务提供方120处于比其用户更好用以监视其底层资源的健康的位置中。是否以及何时启动自助服务故障转移(如果允许的话)可以取决于许多因素。一个因素是服务消费方和与服务消费方应用相关联的其客户端之间的服务水平协议。这种服务水平协议可以在异步复制的情况下包括不同的可用性要求和对数据丢失的容忍度。

已经关于在若干组件之间的交互描述了上述系统、架构、环境、等等。应当认识到,这样的系统和组件可以包括其中指定的那些组件或子组件、指定组件或子组件中的一些和/或附加的组件。子组件还可以被实现为通信耦合到其他组件而非被包含于父组件内的组件。另外还有,一个或多个组件和/或子组件可以被组合成单个组件以提供整合功能。各系统、组件和/或子组件之间的通信可以根据推和/或拉模型来实现。组件还可以与为了简洁起见未在本文中具体描述但是本领域技术人员已知的一个或多个其他组件交互。

另外,以上公开的系统的各个部分和下面的方法可以包括或采用人工智能、机器学习或基于知识或规则的组件、子组件、过程、装置、方法或机制(例如,支持向量机、神经网络、专家系统、贝叶斯置信网络、模糊逻辑、数据模糊引擎、分类器……)。这样的组件尤其可以使由此执行的某些机制或过程自动化以使系统和方法的各部分更具自适应性以及高效且智能。通过示例而非限制,事故检测组件122、内部缓解组件和恢复组件130可以采用这样的机制来确定或推断故障事故以及从这样的事故中恢复的方式。

鉴于以上描述的示例性系统,参考图3到图5的流程图将更好地认识到可以根据所公开的主题实现的方法。尽管为了解释的简单性将方法示出和描述为一系列方框,但是要理解和认识到,要求保护的主题不受方框的顺序限制,因为一些方框可以以与本文中描绘和描述的内容不同的顺序和/或与其他方框同时地进行。此外,不是所有图示的方框都可能被需要以实现下文描述的方法。

参考图3,图示了可以由服务消费方执行的自助服务故障转移300的方法。在附图标记310处,检查故障转移信号。尽管不限于其,但是在一个实例中,该信号可以被实现为服务提供方的故障转移建议的程序化指示符。检查该信号可以对应于检测该信号是否存在。例如,服务提供商可以控制是否要生成该信号。备选地,检查该信号可以对应于核查由该信号提供的值或信息。例如,该信号可以包括真或假的布尔值和/或其他信息(例如预计的恢复时间)。在附图标记320处,做出关于是否期望故障转移的确定。该确定可以基于该信号和由该信号提供的任何信息以及该信号之外的包括应用服务水平协议等等的信息。在一个实例中,可以提供高水平可用性的服务水平协议。为了满足该协议,故障转移决定可以仅仅基于提供故障的证据的信号的指示。附加地,该决定可以基于由该信号提供的信息,例如可能的预计恢复时间以及针对可用性和数据丢失的服务水平协议参数。是否期望故障转移的确定还可以在没有人工输入的情况下(例如,基于先前提供的参数)来自动做出、在具有人工输入的情况下(例如,对确定的批准或利用来自系统的引导)半自动地做出或者仅仅基于人工输入来做出。如果不期望故障转移(“否”),则该方法可以简单地终止。如果期望故障转移(“是”),则在330处启动故障转移。这里,故障转移由服务消费方而非服务提供方触发,并且启动故障转移对应于调用被配置为将来自主副本的应用请求重定向到辅副本的故障转移过程、组件或系统、等等。

图4是描绘可以由服务消费方执行的自助服务故障转移400的方法的流程图示图。在附图标记410和420处,检查故障转移信号并做出关于故障转移是否被启用或者换言之被激活或允许的确定。例如,可以检查由服务提供方供应的并且可由服务消费方访问的程序化指示符,并且是否启用故障转移取决于指示符的值。更具体地,程序化指示符可以对应于包括布尔值真或假的标志,其中真指示故障转移被启用,并且假指示故障转移被禁用或未被启用。如果在420处,故障转移未被启用(“否”),则该方法继续在410处进行循环检查。如果在420处,故障转移被启用(“是”),则该方法前进到附图标记430。在附图标记430处,启动对故障转移组中的数据对象的故障转移。启动故障可以对应于调用被配置为从主副本转移到辅副本的故障转移过程,其中辅副本变成主副本。另外,在附图标记440处,鉴于服务提供方故障而验证并且在必要时解决应用的完整性。在附图标记450处,将来自应用的业务重定向到辅副本(其为新的主副本)。

图5图示了可以由服务提供方执行的处理事故500的方法。在附图标记510处,接收或检测、或推断和分析事故以确定事故的影响(如果有的话)。事故可以是影响向消费方提供服务的能力的任何事件或动作并且可以包括自然事件、恶意用户活动以及商用硬件和人为错误的故障、等等。事故可以由个体报告或基于对由服务提供方基础设施执行的动作的监测而被自动检测到。事故的影响可以被分析和分类。例如,影响可以通过对消费方服务的影响、影响的程度(例如,一个服务器、一个机架、整个数据中心)、以及事故的严重性(例如,临时的,永久的)、等等来分类。

在附图标记520处,基于影响来做出灾难恢复是否被证明合理的确定。具体地,将影响与预定阈值进行比较。如果在520处,影响没有证明灾难恢复合理,则该方法继续应用内部缓解操作以解决事故。如果在520处确定影响证明灾难恢复合理(“是”),则该方法继续到540,其中故障转移信号被生成、启用、等等。该信号可以操作用于提供由服务提供方对服务消费方的与底层服务提供方系统的健康和消费方启动的故障转移有关的建议或许可。尽管不限于此,但是在一个实施例中,该信号可以对应于可由服务提供方访问的程序化指示符(例如,变量、标志……)。

在附图标记550处,在从事故恢复主站点或副本的尝试中执行自动工作、人工工作的或自动工作和人工工作的组合。在附图标记560处,做出关于是否一时间段已经到期的确定。例如,该时间段可以是在接收或检测到事故之后的预定时间,例如二十四小时。如果在560处,确定该时间段尚未到期(“否”),则该方法继续到570,其中做出对于关于事故的恢复是否成功的确定。如果恢复成功(“是”),则该方法终止。如果恢复尚未成功(“否”),则该方法继续到550,其中做出恢复的尝试。如果在附图标记560处,该时间段已经到期(“是”),则该方法前进到附图标记580。换言之,在预定时间(例如,RTO)内尝试恢复,直到恢复成功或者时间到期为止。在附图标记580处,由服务提供方针对受事故影响的先前未经受由服务消费方启动的自助服务故障转移的副本启动自动故障转移。这种自动故障转移可以在没有警告的情况下发生。然而,自动故障转移可以被实现为需要人工批准。

本公开内容支持执行或被配置为执行与半自动故障转移有关的动作的各种产品和过程。下面的内容是一个或多个示例性方法、系统和计算机可读存储介质。

一种方法,包括:利用被配置为执行被存储在存储器中的计算机可执行指令的至少一个处理器来执行以下动作:从服务提供方接收信号并且基于该信号来确定是否要启动自助服务故障转移。该方法还包括基于针对服务消费方应用的服务水平协议来确定是否要启动自助服务故障转移。在一个实例中,故障转移可以对应于地理故障转移。该方法还包括从服务提供方接收授权用以启动故障转移的许可并且拒绝用以执行故障转移的许可。该方法还包括从提供计算平台作为服务的服务提供方接收信号。附加地,该方法还包括从服务提供方接收提供与服务提供方有关的健康信息的信号。该方法还包括启动将应用请求从主副本重定向到辅副本的自助服务故障转移。

一种系统包括:处理器,耦合到存储器,该处理器被配置为执行被存储在所述存储器中的计算机可执行组件,计算机可执行组件包括第一组件,第一组件被配置为基于对关于服务提供方发生的事故的分析来产生关于用于服务消费方的自助服务故障转移的信号。在一个实例中,该信号进行以下中的至少一项:授权或拒绝用以执行所述自助服务故障转移的许可。在第二实例中,该信号提供与所述服务提供方的健康有关的信息。在第三实例中,该信号是可由所述服务消费方访问的程序化指示符。另外,服务提供方提供计算平台作为服务,该系统包括第二组件,第二组件被配置为启动对未经受先前的自助服务故障转移的一个或多个副本的自动故障转移。第二组件还被配置为在恢复尝试未成功的情况下在预定时间到期之后启动自动故障转移。

一种方法包括:利用被配置为执行被存储在存储器中的计算机可执行指令的至少一个处理器来执行以下动作:产生被配置为以下中的至少一个的信号:授权或拒绝对计算服务的消费方的用以基于由计算服务的提供方对事故的分析来执行自助服务的地理故障转移的许可。该方法还包括:产生被配置为提供与事故有关的信息的信号;产生被配置为指定解决的估计时间的信号;在执行自动故障转移之前产生授权许可的信号;并且产生信号包括更新可由消费方访问的程序化指示符。该方法还包括启动至少一个副本的自动故障转移,针对该至少一个副本的故障转移不是通过自助服务故障转移来执行的。该方法还包括启动服务消费方定义的故障转移组的自动故障转移。

一种计算机可读存储介质,具有存储在其上的指令,所述指令使得至少一个处理器能够在指令执行时执行一种方法,该方法包括:从服务提供方接收信号并且基于该信号来确定是否要启动自助服务故障转移。该方法还包括基于针对服务消费方应用的服务水平协议来确定是否要执行自助服务故障转移。该方法还包括从服务提供方接收授权用以启动故障转移的许可并且拒绝用以执行故障转移的许可的信号。该方法还包括从提供计算平台作为服务的服务提供方接收信号。附加地,该方法还包括从服务提供方接收提供与服务提供方有关的健康信息的信号。该方法还包括启动将应用请求从主副本重定向到辅副本的自助服务故障转移。

词语“示例性”或其各种形式在本文中用于意指用作示例、实例或说明。本文中描述为“示例性”的任何方面或设计不必被解释为与其他方面或设计相比是优选或有利的。另外,示例仅仅出于澄清和理解的目的而被提供并且不意味着以任何方式限制或约束本公开的要求保护的主题或相关部分。要认识到,不同范围的无数附加的或备选的示例可以被呈现,但是已经出于简洁的目的而被省略。

如本文中所使用的,术语“组件”和“系统”以及其各种形式(例如,组件、系统、子系统……)旨在指代计算机相关的实体,要么为硬件、硬件和软件的组合、软件,要么为运行中的软件。例如,组件可以但不限于为运行在处理器上的进程、处理器、对象、实例、可执行程序、运行的线程、程序和/或计算机。通过说明的方式,运行在计算机上的应用和计算机两者都可以为组件。一个或多个组件可以驻存在运行的进程和/或线程内,并且组件可以被定位在一个计算机上和/或被分布在两个或更多个计算机之间。

如在本说明书和随附权利要求书中使用的连词“或者”旨在意指包含性“或者”而非排他性“或者”,除非从上下文另行指出或显而易见。换言之,“‘X’或‘Y’”旨在意指“X”和“Y”的任何包含性排列。例如,如果“‘A’利用‘X’”、“‘A’利用‘Y’”或“‘A’利用‘X’和‘Y’两者”,则在前面的实例中的任何实例下满足“‘A’利用‘X’或‘Y’”。

另外,在术语“含有”、“包含”、“具有”、“有”或其形式的变型被使用在详细描述或权利要求中的程度上,这样的术语旨在以与术语“包括”当在权利要求中被用作过渡词时解释“包括”时类似的方式为包含性的。

为了提供针对要求保护的主题的上下文,图6以及下面的讨论旨在提供对该主题的各个方面可以被实现在其中的适当的环境的简要的总体的描述。然而,适当的环境仅仅是示例并且不旨在暗示对用途或功能的范围的任何限制。

尽管以上公开的系统和方法可以在运行在一个或多个计算机上的程序的计算机可执行指令的大体上下文下进行描述,但是本领域技术人员将意识到各方面还可以结合其他程序模块等等来实现。一般地,程序模块包括执行特定任务和/或实现特定抽象数据类型的例程、程序、组件、数据结构、等等。此外,本领域技术人员将认识到,以上系统和方法可以利用包括以下各项的各种计算机系统配置来实践:单处理器、多处理器或多核处理器计算机系统、微型计算设备、大型计算机以及个人计算机、手持计算设备(例如,个人数字助理(PDA)、电话、手表……)、基于微处理器的或可编程的消费或工业电子器件、等等。各方面还可以被实践在分布式计算环境中,其中任务由通过通信网络链接的远程处理设备执行。然而,要求保护的主题中的一些(如果不是全部的话)可以被实践在独立的计算机上。在分布式计算环境中,程序模块可以被定位在本地或远程存储器设备中的一个或两者中。

参考图6,图示了示例通用计算机或计算设备602(例如,桌面型计算机、膝上型计算机、平板计算机、手表、服务器、手持设备、可编程消费或工业电子器件、机顶盒、游戏系统、计算节点……)。计算机602包括一个或多个处理器602、存储器630、系统总线640、一个或多个大容量存储设备650以及一个或多个接口组件670。系统总线640将至少一个上述系统组件670通信地耦合。然而,要认识到,在其最简单的形式中,计算机602可以包括被耦合到存储器630的一个或多个处理器620,其运行存储在存储器630中的各种计算机可执行动作、指令和或组件。

一个或多个处理器620可以利用被设计为执行本文中描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或其任何组合来实现。通用处理器可以为微处理器,但是在备选方案中,处理器可以为任何处理器、控制器、微控制器或状态机。一个或多个处理器620还可以被实现为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、多核处理器、结合DSP核的一个或多个微处理器、或任何其他这种配置。在一个实施例中,一个或多个处理器可以为图形处理器。

计算机602可以包括各种计算机可读介质或以其他方式与各种计算机可读介质交互以支持实现要求保护的主题的一个或多个方面。计算机可读介质可以是可以由计算机602访问的任何可用介质并且包括易失性介质和非易失性介质以及可移除介质和不可移除介质。计算机可读介质可以包括两种完全不同的类型,即,计算机存储介质和通信介质。

计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括存储设备,诸如存储器设备(例如,随机访问存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)……)、磁性存储设备(例如,硬盘、软盘、磁带盒、磁带……)、光盘(例如,紧凑盘(CD)、数字多用盘(DVD)……)以及固态设备(例如,固态驱动器(SSD)、闪存驱动器(例如,卡、棒、键驱动器……)……)、或者存储(如与发送或传送相反)可由计算机602访问的期望的信息的任何其他类似的介质。因此,计算机存储介质不包括经调制的数据信号。

通信介质将计算机可读指令、数据结构、程序模块或其他数据实现在诸如载波或其他传输机制的经调制的数据信号中,并且包括任何信息递送介质。术语“经调制的数据信号”意指使其特性中的一个或多个以使得将信息编码在信号中的方式设置或改变的信号。通过示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质以及诸如声学、RF、红外和其他无线介质的无线介质。

存储器630和/或一个或多个大容量存储设备650是计算机可读存储介质的示例。取决于计算设备的精确配置和类型,存储器630可以是易失性的(例如,RAM)、非易失性的(例如,ROM、闪存……)或这两者的特定组合。通过示例,包括用于诸如在启动期间在计算机602内的元件之间传输信息的基本例程的基本输入/输出系统(BIOS)可以被存储在非易失性存储器中,而易失性存储器可以用作外部缓存存储器以支持由一个或多个处理器620的处理、等等。

一个或多个大容量存储设备650包括用于相对于存储器630存储大量数据的可移除/不可移除、易失性/非易失性计算机存储介质。例如,一个或多个大容量存储设备650包括但不限于诸如磁盘或光盘驱动器、软盘驱动器、闪存、固态驱动器或记忆棒的一个或多个设备。

存储器630和一个或多个大容量存储设备650可以包括以下各项或已经将以下各项存储在其中:操作系统660、一个或多个应用662、一个或多个程序模块664以及数据666。操作系统660用于控制和分配计算机602的资源。应用662包括系统和应用软件中的一个或两者并且可以通过存储在存储器630和/或一个或多个大容量存储设备650中的程序模块664和数据666利用由操作系统660对资源的管理以执行一个或多个动作。因此,应用662可以根据由此提供的逻辑将通用计算机602转变成专用机器。

要求保护的主题中的全部或部分可以使用标准编程和/或工程技术来实现以产生软件、固件、硬件或其任何组合从而控制计算机来实现所公开的功能。通过示例而非限制,半自动故障转移系统100或其部分可以为或形成应用662的一部分,并且包括存储在存储器和/或一个或多个大容量存储设备650中的一个或多个模块664和数据666,其功能可以当由一个或多个处理器620运行时实现。

根据一个具体实施例,一个或多个处理器620可以对应于将硬件和软件两者都包括或换言之集成在单个集成单路衬底上的片上系统(SOC)或类似体系结构。这里,一个或多个处理器620可以包括至少与一个或多个处理器620和存储器630类似的一个或多个处理器以及存储器、等等。传统处理器包括少量硬件和软件并且广泛地依赖于外部硬件和软件。对比之下,处理器的SOC实现是更有力的,因为其将硬件和软件嵌入到其中以在对外部硬件和软件的最小或没有依赖的情况下实现具体功能。例如,半自动故障转移系统100和/或相关联的功能可以被嵌入到SOC体系结构中的硬件内。

计算机602还包括一个或多个接口组件670,其被通信耦合到系统总线640并且支持与计算机602的交互。通过示例,接口组件670可以为端口(例如,串行、并行、PCMCIA、USB、FireWire……)或接口卡(例如,声音、视频……)、等等。在一个示例实现中,接口组件670可以被实现为用于使得用户能够例如通过一个或多个手势或语音输入、通过一个或多个输入设备(例如,诸如鼠标的指点设备、跟踪球、触笔、触摸板、键盘、麦克风、操纵杆、游戏板、卫星盘、扫描仪、相机、其他计算机……)将命令和信息输入到计算机602中的用户输入/输出接口。在另一示例实现方式中,接口组件670可以被实现为用于将输出供应到显示器(例如,LCD、LED、等离子体……)、扬声器、打印机和/或其他计算机、等等的输出外围接口。另外还有,接口组件670可以被实现为用于启用例如通过有线通信链路或无线通信链路与其他计算设备(未示出)进行通信的网络接口。

以上已经描述的内容包括要求保护的主题的多个方面的示例。当然,不可能描述用于描述要求保护的主题的组件或方法的每个可想到的组合,但是本领域普通技术人员可以意识到,所公开的主题的许多另外的组合和排列是可能的。因此,所公开的主题旨在涵盖落入随附权利要求的精神和范围内的所有这样的更改、修改和变型。

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