用于在分布式编程网络中自适应可靠性平衡的系统和方法

文档序号:7672580阅读:129来源:国知局
专利名称:用于在分布式编程网络中自适应可靠性平衡的系统和方法
1.发明领域本发明涉及分布式编程网络中的可靠性平衡。更特别地,本发明涉及基于过去的分布式编程网络和/或分布式编程网络部件的历史记录在分布式编程网络中的可靠性平衡。
2.发明背景在桌上低成本计算机性能以前的计算是在中央逻辑区域组织的。尽管这些中心仍然存在,随着时间的过去大型和小型企业正在将应用程序和数据分配到他们可以在企业中最有效操作的位置,分配给桌面工作站、局域网服务器、区域服务器、web服务器及其他服务器的某些组合。在分布式编程网络模型中,当计算机从事的计算机程序设计和数据通过多余一台的计算机传播,通常通过网络传播时,计算被称之为“分布式”。
客户服务器计算仅仅是客户或应用程序可以为用户提供某些性能并从其他为客户或应用程序提供服务的机器或应用程序请求其他性能的形式。
今天,较大的软件制造商正在发展分布式计算的面向对象形式。由于具有Java及其他有助于公司创建分布式应用程序的产品的分布式发布环境,万维网正加速趋向于分布式计算。分布式软件模型也较好地适合于向大容量或关键任务系统提供可升级的、高可利用的系统。
公用对象请求代理程序体系结构(CORBA)是一种用于创建、分配和管理网络中的分布式程序目标的体系结构和规格标准。其允许处在不同位置并由不同厂商开发的程序在网络中通过“接口代理程序”进行通信。国际标准化组织(ISO)已批准CORBA作为用于分布式对象的标准化体系(其也被称作网络部件)。
CORBA中的基本原理是对象请求代理程序(ORB)。ORB支持不同计算机上的客户和服务器网络,这意味着客户程序(其本身可以是一个对象)可以从一个服务器程序或对象请求服务而不必考虑其物理位置或其执行过程。在CORBA中,ORB是用作客户对分布式对象或部件的服务请求(例如采集同时提供类似服务器的性能给多个客户的内聚软件功能;这些服务可以是,例如,可被其客户远程调用)与完成该请求之间的“代理程序”的软件。这样,当其运行时网络部件可以找到有关彼此和交换的接口信息。为了在ORBs之间做出请求或返回应答,使用通用交互ORB协议(GIPO)以及对于互联网,使用其互联网交互ORB协议(IIOP)。IIOP将GIOP请求和应答映射到每台计算机的互联网传输控制协议(TCP)层。
无论在分布式编程网络中使用什么结构或体系,在面向对象的程序设计中第一步是要标识在系统中要操作使用的所有对象以及它们之间的关系如何,一种运用通常称作数据模型化。一旦已标识一个对象,该对象的特性被概括为一个对象类,定义其包含的数据类型以及可以操作所述数据的任何逻辑序列。一个类的实例称为一个“对象”,或者在某些情况下,称为“一个类的实例”。为了负载平衡及可靠性平衡(在此说明),相同对象的多个实例可以运行在一个分布式编程网络中的不同点。
要管理大规模分布式程序设计系统存在两大挑战。一个挑战是在对分布式编程网络服务需求很高时保持高级性能。这一挑战通常称作“负载平衡”,需要平衡分配有限数量的分布式编程网络资源(与分布式程序设计服务相关)给大于一般数量的客户请求。通常,大规模分布式编程网络向其服务的大量客户提供服务。既要普遍观察此负载需求的统计平衡又要很好的研究其现象。
另一个大挑战是保持这些大规模分布式编程网络的持续操作。这一挑战被称作“可靠性平衡”。众所周知的是大规模系统比较可能出错,即引起服务错误。此外,系统越大,越有可能这些错误对其服务的消费者会有越大的影响。例如,如果一个服务请求使用或访问多余一个对象的资源,则这些对象中任何一个对象的错误都会导致系统故障。
传统上,有许多解决发布大规模分布式编程网络负载平衡的方法。虽然他们中没有一个象是理想的,但是他们在说明其益处时都具有效果。然而,提供分布式编程网络可靠性的挑战,即保持分布式编程网络管理的操作已经慢慢成熟。传统的方法和用于提供大规模分布式编程网络可靠性的分布式编程网络不同。存在几种主要的技术。
用于提供大规模分布式编程网络可靠性最流行的技术依靠实体或对象实例冗余码。此技术通常还被称作“复制”,并通过提供相同对象或对象组的备用实例而在某种程度上使大型或重要系统中的部件免于故障,期望当对象或对象组的主实例发生故障时,一个或多个备用实例可以恢复主实例停止的服务。
另一个称为N版程序设计的公知技术,依靠同时运行的相同服务(或对象)的三个或多个不同版本(执行过程)。它们的操作通过某些锁定步骤控制结构来控制,以便每个并行执行过程逻辑上通过相同的序列运行,而没有一个比另一个提前进行的情况。及时在合适的时候,就三个或多个实例每一个的输出进行表决。期望的结果是三个实例对于他们正提供的任何计算任务将汇报相同的结果,这样不会标识到任何差异。当在一个实例中存在故障时,此技术依靠假定所述三个不同的执行过程不可能具有相同的错误,因此,其他两个实例的多数输出被作为合法输出并被传播到处理链的下一个对象中。此技术通常用在生命维持、关键任务、航空航天和航空制造业方面。很显然建造这类系统非常昂贵,差不多此系统要至少不同地开发三次。此技术通常还被称作三元模块冗余(TMR)。
虽然实体冗余/复制的传统实践方法和其他用于提供可靠性管理的方法在帮助维持分布式编程网络的高可靠性发面取得了很大成功,但是他们还存在许多局限性。例如,他们管理在防止故障时的策略方面基本上是静态的。这意味着他们不能随时间而转向于系统中的故障。他们需要人为干预或控制来调节复制哪个部件以及复制到哪儿。此外,冗余/复制可能是一种防止系统发生故障的高成本方式,如果一个部件的所有实例都遭受类似问题,则不可能完全成功。
附图的简要说明当结合附图,从以下对本发明的详细描述中将更容易理解和通晓本发明的典型实施例,附图中相同标记的元素相同,并且

图1说明了根据本发明的一个典型实施例设计的自适应可靠性平衡系统的分布式编程网络和部件;图2说明了表示故障组的图形关系组,可以通过图1所示的成本估价器为其整体可靠性等级进行评价;图3说明了五种服务的表示,每种服务具有其自己的可靠性等级;图4说明了根据本发明的一个典型实施例用于可靠性平衡的方法;以及图5说明了根据本发明的一个典型实施例设计的容错子系统。
具体实施例方式
作为传统理解的静态或非自适应可靠性平衡方法的一个结果,大规模分布式编程网络通常不能表示可靠性特征,例如,分布式编程网络特有的问题,直到正式使用该分布式编程网络,即在操作中才行。另外,由于扩展使用导致退化和/或环境变化,分布式编程网络和分布式程序设计部件通常随时间变化。
此外,分布式编程网络和分布式编程网络部件通常以不同方式老化。例如,关于分布式编程网络或分布式编程网络部件内的软件,软件在正式使用一个分布式编程网络之后可以升级或定制为一个特定的应用程序。对于专用硬件部件和过去使用由于损坏而被替换的部件来说都是相同的,损坏是由长期使用导致或相关事件引起的。无论在使用之后改变分布式编程网络配置的原因是什么,都应当理解分布式编程网络和分布式编程网络部件可以改变,导致分布式编程网络的配置不同于在使用时或之前测试可靠性特征的分布式编程网络的配置。
此外,设计可靠的分布式编程网络,具有较多的故障次数,即根据定义,其中故障将发生的次数。作为此关系的一个结果,分布式编程网络和分布式编程网络部件的制造商通常具有有限的时间和经验在分布式编程网络和/或分布式编程网络部件的可靠性特征方面,以及提供解决分布式编程网络和/或分布式编程网络部件中的故障的解决方案方面。
此外,分布式编程网络通常具有移动部件(即可以从一个CPU或机器移动到另一个的软件部件,而没有客户知道此移动;此移动可以改变由该部件提供的服务的性能和/或可靠性属性)。使用这种移动部件创建了分布式编程网络的动态性和可用性的经常改变的形式。
因此,根据本发明的典型实施例设计的方法和系统使用提供反馈的测量和计时部件的集合,以允许正运行的分布式编程网络的自适应和动态标准。这些方法和系统提供一种结构,该结构允许分布式编程网络保持通过电源(power)和分布式编程网络故障的可用性量度,以提供包含在分布式编程网络中的软件和/或硬件资源的累积可靠性量度。本发明的典型实施例可以提供分布式编程网络的连续监控以提供动态可靠性平衡。
由根据本发明的典型实施例设计的系统和方法提供的一个应用领域涉及智能连结服务及那些服务的消费者的能力,以便具有确保发送或供应服务的最佳可用性条件的改进机会。服务的可用性可以以各种方式计算。例如,服务的可用性可以根据故障的平均时间(MTTF)除以MTTF与修复平均时间(MTTR)的和来计算(即可用性=MTTF/(MTTF+MTTR))。
MTTF是从起始时刻到下一故障事件的时间。MTTF值是服务可靠性的统计量化。MTTR是恢复故障及恢复服务完成的时间。当一个模块(例如一个或多个协作工作的部件)或其他指定的索引间隔尺寸(granularity)起作用并提供一个指定的服务时达到服务完成。MTTR值是服务中断的统计量化,其是模块(或其他指定的索引间隔尺寸)的行为偏离其指定的行为的时间。
根据一个典型实施例的方法和/或系统可以使用“有效的”或“实时”数据。作为一个结果,根据该典型实施例设计的系统和方法可以实现适于以实时或接近实时的方式改变分布式编程网络的特性。这种能力可以极大地提高期望运行非常长的时间周期的分布式编程网络中可靠性保证的信心。
根据本发明的一个典型实施例,自适应可靠性平衡可以在分布式、客户-服务器分布式编程网络环境中执行以在分布式编程网络中提供配对的客户和服务器软件部件,以便他们中的每一个都可以满足或超过其可靠性目标。设计成提供此自适应可靠性平衡的系统和方法可以提供以这样一种方式自适应平衡分布式编程网络中的可靠性,所述方式最适合给出分布式编程网络的当前配置和分布式编程网络中的历史记录。这种系统和方法使用具有自适应手段的平衡技术根据历史记录和/或有关分布式编程网络和/或分布式编程网络服务的未来需求的统计预测来执行可靠性平衡。
累积的数据是参与系统的部件的历史预期性能。此信息可以用于设法提供有关未来性能的预测假定。例如,用于部件的MTTR有可能相对不变,因为其对应于与创建一个新的部件实例和为服务对其初始化有关的时间。因此,随着时间过去,用于任何特定部件的MTTR的平均值通常是一个相对可靠的数,用于预测此部件未来故障的修复间隔。另一方面,MTTF有可能不能预测或更随机。因此,系统的可用性可以根据可能动态的MTTF而改变。
由于分布式编程网络中的部件通常依靠分布式编程网络中其他部件的参与,参与部件的所有或实际数量需要集体估算以理解分布式编程网络的可靠性。因此,根据本发明的一个典型实施例设计的系统和方法采集位置、时间、相关性和/或涉及特定分布式编程网络的可靠性。然后,此数据可以通过成本评估直观推断进行分析。这些直观推断功能的输出可以提供分布式部件的一个最佳或多个最佳选择来处理其中具有有限个选择的分布式编程网络中的请求。
用户定义的价值函数可以用于根据用户定义的约束条件来选择“最佳适配”。这种用户定义的价值函数可以根据给引导函数的输入接收目标或基于约束条件的参数。
图1示出了根据本发明的一个典型实施例设计的分布式编程网络100和自适应可靠性平衡系统的部件。如图1所示,有四个主要的部分客户110、对象解析器120、相关性管理器130、分布式对象实例140和对象度量器150。
图1说明了客户110想要使用“A”类服务。分布式对象实例140的集合,例如通过控制结构(control fabric)(例如局域网络)160连结,可以提供三种“A”类对象实例141、143、145和一种“B”类对象实例147。图1没有说明此方案的物理界限。控制机构160可以包括,例如实现独立运行的部件之间的通信和/或控制路径的硬件和软件,其允许在分布式编程网络100中这些分布式编程网络部件(例如对象实例140)的冗余之间的通信,例如CORBA结构的IIOP。因此,A类对象实例141、143和145可以包含在一个或多个模块中或位于一个或多个处理部件中,例如在底板中的一个或多个卡中,在底板中的一个或多个计算机中,在一个计算机中的一个或多个程序中等等。
客户110可以是,例如一个应用程序或可能是一个分布式对象,查找或请求使用与一个或多个分布式对象实例140之一有关的一个或多个服务。例如,客户110可以是一个调用实现A类对象实例141、143、145和/或B类分布式对象实例147的函数或方法的应用程序。在本发明的一个实施例中,客户110产生或被分配至少一个可靠性约束条件,指示客户110期望的可靠性级别(以下索引图3进行说明)。
对象解析器120例如可以是返回指示特定对象和该对象满足由客户110提供的所需可靠性约束条件的实例的对象索引的一个服务。
相关性管理器130可以是一个对象、服务或是对有关分布式对象实例140之间拓扑结构和相关性了如指掌的过程。例如,相关性管理器130可以知道分布式对象实例141和143运行于相同的计算机上,运行于不同的计算机上,通过相同处理器或处理器组等。
分布式对象实例140可以是用于向一个或多个客户110提供服务的部件。一个分布式对象被认作是一个对象而该对象可被客户例如客户110通过远程网络结构从远程调用。每个对象实例140具有一个属性或“度量”集合。这些度量器(meter)150可以随时间累积。即,该内容可以保存在持久耐用的存储器中,然后每次恢复启动对象实例140时复原。
客户110可以与对象解析器120协商以获得对最佳对象实例140的索引,该对象实例满足客户请求的可用性的所有需求。对象解析器120用作代表客户的代理或代理程序以设法找到最佳匹配客户请求。如果对象解析器不能满足该请求,根据执行过程,对象解析器既可以返回一个该结果的指示也可以返回达不到满足该请求参数的不公开匹配。
整个网络策略,包括可靠性策略可以例如通过包含在对象解析器120的成本评估器125中的可扩展标示预言(XML)被宣告指定。成本评估器125还可以使用相关性管理器130来标识对象实例140之间的相关性,客户与可能地A类实例之间的相关性。
标识和理解分布式编程网络中对象或服务之间的相关性的能力允许相关性管理器130提供有关故障组的信息,即对象或服务组,其中一个构成对象或服务的故障会导致错误。此信息可以动态采集,或通过某些以前公布的信息(例如由其他分布式编程网络部件确定的,所述分布式编程网络外部的部件,一个用户或管理员等)采集。此信息可以通过一个有向图表示。如以下说明的,此相关性信息允许成本评估器125计算组的可用性。较大组(例如服务/对象及他们相关的服务/对象)将可能具有较低的可能性等级;因此,当需要最高可用性方式时,他们不太可能作为客户和服务器之间的匹配候选。
此相关性信息可以包括每个对象或对象实例依靠的目录。这种目录可以例如通过图表表示。在一个执行过程中,所有相关性可以在目录中描述。在另一个执行过程中,只有软件对象和客户服务之间的相关性有必要描述;因此,不需要获取硬件和通信相关性。如图2中所示,当清理整个分布式编程网络时,可以得到有向图的森林。
如图2所示,森林200(即图形关系组210)表示故障组210,所述故障组可以通过图1所示的成本评估器125估算其整个可靠性等级。为了简化起见,每个组210中每个对象/服务220的影响可以等同处理;然而,还可预见到数学加权影响还可用于一个更准确的模型。因此,在本发明的一个典型实施例的执行过程中,相关性信息可以包括加权影响数据,该数据指示组210的各个对象/服务220的重要性。应当理解这些故障组理论上可以理解为服务(上面描述的)。
在接收标识对象实例140之间相关性的数据之后,成本评估器125可以估算与对象实例例如141、143、145的每一个有关并由度量器150提供的量度来收集必要的数据,以确定例如对象实例的可用选择之间的相对成本来实现客户与对象之间的abinding会话。成本评估器125然后可以应用可靠性和其他策略,并选择“最佳适配”。
如果客户110发生运行在相同对象实例141和143上的情况,根据增添到成本评估器125中的策略,如果整个可靠性评估具有比实例141或143高的得分,其更需要返回一个对对象实例145的索引。
没有由此评估提供的信息,传统系统仅使用性能平衡或负载平衡来确定返回哪个对象实例。相反,根据本发明的典型实施例设计的系统和方法基于理解对象可靠性对分布式编程网络的整体可用性的影响,这与通过传统的负载平衡技术优化性能同样重要而有意义。
本发明的典型实施例,一部分依靠标识例如由度量器150提供的可靠性量度的持续累积,这在执行可靠性或可用性确定时很有价值。根据此标识的一个结果,可以使用各种类型的数据以有效测量特定网络整体可用性的使用期。为采集此数据,系统和方法具有采集、积累和以可靠方式随时间持续此数据的能力。随完整使用期或分布式编程网络的生命的重要周期而积累服务完成信息,这有助于提供有意义且更准确的输入到直观推断,其负责评估整个分布式编程网络的可用性。
为每个独立的分布式对象采集和积累的可靠性量度数据的类型可以包括,例如停留时间(即已操作特定服务的时间量),服务完成时间(即已作用的特定服务的时间量)(例如能可靠地提供其功能),以及启动时间(即其从“冷启动”开始到能够提供服务所花费的时间量;为简便起见,此量度可以是随分布式程序设计的使用期的移动平均值)。此外,可以记录积累系统时间以指示分布式编程网络系统已运行的整个时间。
通过记录这些累积的手段可以提供对每个服务的可靠性的更为准确的理解。因为,理论上,任何单个服务的可靠性较高,因此MTTF理论上较低,在每个服务创建、启动或系统重启之后“重启”这些计数器没有意义。相反,在由这些数据类型长期积累的量度提供的信息中具有重要意义。
在对象和服务中累积的可靠性量度可以发送回对象解析器120中的成本评估器125。这可以实现任何数量的方式,例如,根据新使用的服务请求在要求时检索可靠性量度。
当客户110请求使用服务时,对象解析器120首先标识可用于服务的请求类型的所有实例的集合,例如对应与对象实例141、143和145的服务A。对象解析器120假定既包括又可以使用所有示例的对象或服务的目录。一旦候选实例的集合已被标识,参考相关性管理器130来标识标识对象和服务之间相关性的数据。对象解析器120然后依次从每个对象实例中查询或检索可靠性量度,缓存来自相同性能改善查询的已访问对象。
一旦所有可靠性量度已被采集,下一步就是执行一些计算以标识给出其过去性能的组的整体可用性。
在计算预期成本之后,例如每个实现服务请求的组的扩展资源数量,成本评估器125然后比较每个组与其他组并执行优序排列。此优序排列基于增添到成本评估器125中的可靠性评估策略。
作为一个实例,图3示出了五种服务310、320、330、340和350,每种服务都具有作为故障组300的一部分的其自己的可靠性等级R1-R5。这些可靠性等级的每一个都可以根据MTTF而指定。它们的可靠性然后被指定为1/MTTF。由量度器150(图1所示)提供的对象量度同样可以提供可用性的好的评价。从对象量度计数器导出的可用性仅仅是(停留时间)-(服务完成时间)。MTTR可以是启动时间的旋转平均对象量度,其可以表示从冷启动到服务能力所需的时间量。
分布式编程网络的可用性理论上可以量化为实现服务与占用时间的比率,例如可用性可统计一量化为MTTF/(MTTF+MTTR)。因而该组可用性是
a=Πj=1N∝jΣj=1N∝j]]>其中aj表示在组中每个服务的可用性。成本评估器125可以为每个组执行此功能,然后,基于在成本评估器125中指定的可靠性策略(例如策略和标准)选择最适合的组。例如,一个策略是总是选择具有最接近指定的可靠性目标的可靠性值的对象组,与最佳或最可靠的对象组相对。
图4示出了根据上述说明用于可靠性平衡的方法。如图4所示,该方法在400开始,并控制进入到410。在410,由分布式编程网络接收客户服务请求。然后控制进入420,在420对象解析器标识与请求的服务有关的对象实例。然后控制进入430,在430对象解析器查询相关性管理器标识对象实例和服务之间相关性的数据。然后控制进入440,在440对象解析器查询每个对象/服务器相关的可靠性量度。一旦已检索到每个故障群或组的量度,则考虑评估可用性的下一步。然后控制进入450,在450根据包含在或由成本评估器访问的可靠性量度、相关性和可靠性策略,确定关于哪个对象实例或对象实例组可以最可靠地完成所述客户服务请求。然后控制进入460,在460,此确定被其他分布式编程网络部件使用,正如相对于图5所示的,其使客户服务请求与选择的对象或对象组匹配。然后控制进入470,在470该方法结束。
根据本发明的典型实施例设计的方法和系统可以在例如可以是基于CORBA的通信服务系统结构的子系统中实现。
有些分布式编程网络体系对于使用CORBA提供主服务的系统的一个好处是所述服务的客户不知道,也不关心资源是否运行在相同的过程、相同的主机、嵌入卡、或通过网络连接的其他机器。该模型完整地提取这些细节。此体系结构的一个结果,由于由分布式编程网络提供的所有服务和资源通过通信协议(例如根据GIOP)松散的藕接,这些服务、资源和CORBA对象的客户没有它们与之通信的硬件的任何知识。
根据本发明的典型实施例设计的方法和系统可以用在根据分布式对象模型设计的分布式编程网络中。所有用于查找CORBA中对象的标准结构都可以应用在这种分布式编程网络体系中。此外,分布式编程网络体系可以扩展功能以执行某些帮助性能和可靠性缩放的特定功能。在这种分布式编程网络体系中,可能有,例如两个对象定位器,例如一个可以是标准的交互可操作命名服务(INS),另一个可以是特定系统的对象解析器,例如图1所示的对象解析器120。对象解析器120可以基于分布式编程网络中的可靠性和性能策略,随其他部件使用INS以执行其提供自动对象索引分辨的任务。
INS可以提供映射服务名给对象索引的储存库,其可以使客户容易地通过名称定位服务而不需要知道其具体的位置。以这种体系,客户可以仅查询INS并返回一个对象索引,然后该对象索引可以被用作调用。在INS中定位是对象索引树的森林,其一个例子如图2所示。因此,应当理解相关性管理器130可以包括或被包含在INS中。
需要包括容错在CORBA模型中的大多数改变增强IIOP协议和附加的几种新的CORBA对象服务。上述部件可以通过实现他们作为分布式处理网络内的容错子系统500而插入到这种容错系统中。因此,上述标识的部件和方法操作可以插入在网络体系中,使CORBA容错基础结构更加独立。
如图5所示,这种容错子系统500可以包括一个复制管理器510、故障通报器520、至少一个故障检测器530和一个自适应放置器540,其是一个特定的系统部件。这种容错子系统500可以包含各种服务,例如那些与复制管理器510有关的服务(例如执行容错基础结构中的大多数管理功能和用于由此服务的客户定义的容错域的属性和对象组管理),自适应放置器540(例如根据性能和可靠性策略创建对象索引),故障通报器520(例如用作用于故障检测器和/或过滤和传播事件给登记此服务的消费者的故障通报集线器,故障检测器530(例如从复制管理器接收请求、在其监视下监控对象的可用状态等)。复制管理器510是故障冗余基础结构的主要设备。
在容错中,基于根据本发明典型实施例设计的分布式编程网络,有多个主机服务候选。自适应放置器540模拟这些合格的候选作为加权图表,该图表具有性能和可靠性属性,例如由图1所示的对象量度器150提供的量度。自适应放置器540可以是用于客户的存取点,例如用于图1所示的客户110,与某些特定的系统特征一起提供较高级的提取。自适应放置器540可以创建指示每个对象实例的位置的数据。然后是自适应放置器540中的成本评估直接推断(包含在图2所示的对象解析器120中的成本评估器125,每一个包含在图5所示的自适应放置器540中),根据对象实例或对象组性能(即负载平衡)和可靠性(即可靠性平衡)系数确定最佳对象实例以实现客户请求。
故障通报器520可以用作一个或多个故障检测器530的集线器。故障通报器520可以用于在发送其到复制管理器510之前,采集故障检测器通知并核对登记的“故障分析器”。因此故障通报器520可以提供可靠性量度给自适应放置器540。
故障检测器530仅是贯穿结构的对象服务,持续不断地努力以标识在由复制管理器510标识的对象组中登记的对象的故障。故障检测器可以以分级方式来度量以提供任意尺寸的分布式编程网络。应当理解故障检测器530可以包括、包含在或实现图1所示的对象量度150。
虽然已结合以上概述的具体实施例对本发明进行了描述,对于那些熟悉本领域的技术人员来说很显然可以做出许多替换、修改或变更。因此,本发明的典型实施例,正如以上指出的,其仅是示例性的,而不是限制。在不背离本发明的精神和范围的情况下可以对其做出各种修改。
权利要求
1.一种用于执行分布式编程网络中可靠性平衡的方法,该方法包括接收一个服务请求;标识与所述请求的服务有关的至少一个对象实例;查询标识该至少一个对象实例与所述请求服务之间相关性的数据;查询与标识的至少一个对象实例有关的至少一个可靠性量度;基于所述至少一个可靠性量度确定哪个对象实例将最可靠地满足服务请求。
2.根据权利要求1所述的方法,其中确定哪个对象实例将更可靠地满足服务请求还基于所述至少一个对象实例与所述请求服务之间的相关性。
3.根据权利要求1所述的方法,其中确定哪个对象实例将更可靠地满足服务请求还基于分布式编程网络的可靠性策略。
4.根据权利要求1所述的方法,还包括根据基于该至少一个可靠性量度对哪个对象实例将最可靠地满足服务请求的确定,使所述服务请求与至少一个对象实例相匹配。
5.根据权利要求4所述的方法,其中匹配服务请求包括评估对应于历史记录和对包含在分布式编程网络中的对象实例的未来服务需求的统计预测中的至少一个的至少一个可靠性量度。
6.一种在运算分布式编程网络中执行可靠性平衡的系统,该系统包括对象解析器,配置成从通过控制结构耦合在一起的多个对象实例中标识至少一个与请求的服务有关的对象实例、查询与标识的至少一个对象实例有关的至少一个可靠性量度以及确定哪个对象实例将最可靠地满足服务请求;藕接到对象解析器的相关性管理器,该相关性管理器被配置为提供标识该至少一个对象实例与所述被请求服务之间相关性的数据;以及至少一个对象度量器,配置成产生有关至少一个对象实例的至少一个可靠性量度。
7.根据权利要求6所述的系统,其中对象解析器包括成本评估器,可以访问分布式编程网络专用的可靠性策略。
8.根据权利要求6所述的系统,其中该系统被配置成保持对电源和系统故障的可靠性量度以提供对应于分布式编程网络中的对象和对象实例的累积可靠性量度。
9.根据权利要求6所述的系统,其中该系统执行分布式编程网络的连续监控以提供动态可靠性平衡。
10.根据权利要求6所述的系统,其中该系统通过评估至少一个对象实例的可靠性来执行服务请求与对象之间的匹配以满足服务请求,进而提供请求的服务。
11.根据权利要求10所述的系统,其中对象实例的可靠性基于故障平均时间和修复平均时间来计算。
12.根据权利要求10所述的系统,其中对象实例的可用性根据故障平均时间除以故障平均时间与修复平均时间的和来计算。
13.根据权利要求12所述的系统,其中故障平均时间是从初始时刻到下一个故障事件的时间周期。
14.根据权利要求13所述的系统,其中故障平均时间是系统服务可靠性的统计量化。
15.根据权利要求12所述的系统,其中故障平均时间是恢复故障及恢复服务完成的时间。
16.根据权利要求15所述的系统,其中服务的完成是在协作工作以提供请求的服务的对象提供了所要求的请求服务时实现的。
17.根据权利要求12所述的系统,其中修复平均时间是服务中断的统计量化。
18.根据权利要求6所述的系统,其中对象解析器评估有关至少一个对象实例或对象实例组的操作的实时数据。
19.根据权利要求18所述的系统,其中该系统允许根据分布式编程网络的变化特性实现服务请求的自适应。
20.根据权利要求19所述的系统,其中实时执行自适应。
21.根据权利要求6所述的系统,其中该服务请求源自一个应用或搜索或请求使用一个或多个分布式对象之一的分布式编程网络对象。
22.根据权利要求6所述的系统,其中服务请求源自一个客户,其产生或被分配指示客户所期望的可靠性级别的至少一个可靠性约束条件。
23.根据权利要求12所述的系统,其中对象解析器是返回指示特定对象和该对象实例的索引标识数据的服务,其中该特定对象或实例满足由客户提供的至少一个可靠性约束条件。
24.根据权利要求6所述的系统,其中对象解析器是返回指示特定对象和该对象实例的索引标识数据的服务,其中该特定对象或实例满足在服务请求中提供的至少一个可靠性约束条件。
25.根据权利要求6所述的系统,其中相关性管理器是对涉及包含在分布式编程网络中的分布式对象之间的拓扑和相关性充分了解的服务。
26.根据权利要求6所述的系统,其中对象解析器产生一个索引给满足整个分布式编程网络需求的最佳对象实例。
27.根据权利要求26所述的系统,其中整个分布式编程网络需求包括至少一个可靠性策略。
28.根据权利要求6所述的系统,其中标识相关性的数据包括每个对象或对象实例所依靠的目录。
29.根据权利要求6所述的系统,其中至少一个对象度量器产生至少一个随时间累积的可靠性量度。
30.根据权利要求6所述的系统,其中至少一个可靠性量度包括或基于服务停留时间。
31.根据权利要求6所述的系统,其中至少一个可靠性量度包括或基于服务完成时间。
32.根据权利要求6所述的系统,其中至少一个可靠性量度包括或基于启动时间。
33.一种用于提高分布式编程网络中的容错性的容错子系统,该容错子系统包括一个复制管理器,配置成执行分布式编程网络中的对象组管理,该网络包括被配置成提供标识至少一个对象实例与请求的服务之间的相关性的数据的相关性管理器;至少一个错误检测器,配置成接收和响应来自复制管理器的查询,并在至少一个故障检测器的监视下,监控分布式编程网络中的对象和对象实例的状态,并配置成产生有关分布式编程网络中至少一个对象实例的可靠性量度;一个藕接到复制管理器和至少一个故障检测器的错误通报器,配置成作为至少一个故障检测器的故障通报集线器,通过在接收来自至少一个故障检测器的指示这种故障的检测的数据后通知所述复制管理器对象或对象实例故障;以及一个自适应放置器,配置成从多个对象实例中标识与请求服务有关的至少一个对象实例,查询与标识的至少一个对象实例有关的至少一个可靠性量度以及确定哪个对象实例将最可靠地满足服务请求。
34.根据权利要求33所述的容错子系统,其中对象解析器包括一个成本评估器,可以访问分布式编程网络专用的可靠性策略。
35.根据权利要求33所述的容错子系统,其中服务请求源自客户,其产生或被分配指示由客户期望的可靠性级别的至少一个可靠性约束条件。
36.根据权利要求35所述的容错子系统,其中对象解析器是返回指示特定对象和该对象实例的索引标识数据的服务,其中该特定对象或实例满足由客户提供的至少一个可靠性约束条件。
37.根据权利要求35所述的容错子系统,其中相关性管理器是对涉及包含在分布式编程网络中的分布式对象之间的拓扑和相关性充分了解的服务。
全文摘要
本发明的典型实施例提供了用于根据过去的分布式编程网络部件的历史记录执行可靠性平衡的方法和系统,其为了改进计算资源的可用性和可靠性而平衡计算资源及其处理部件。
文档编号H04L29/08GK1493024SQ01822814
公开日2004年4月28日 申请日期2001年11月13日 优先权日2000年12月22日
发明者艾伦·E·斯通, 艾伦 E 斯通 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1