没有合适的资源?快使用搜索试试~ 我知道了~
可在www.sciencedirect.com在线获取理论计算机科学电子笔记291(2013)3-14www.elsevier.com/locate/entcsSFERA:面向服务系统亚历山德拉Danilkina1柏林大学计算机科学研究所德国柏林PhilippReinecke2惠普实验室英国布里斯托尔KatinkaWolter3计算机科学英国纽卡斯尔大学摘要在面向服务的系统中,故障检测和定位并不简单,需要客户端容错技术来减少故障对服务质量的影响,用户.重启是一种众所周知的客户端技术,用于提高性能和服务可用性。通过重新启动,完成时间超过超时的任务将由客户端重新发出,目的是在下一次尝试时获得更短的完成时间。重新启动的评估应由分析、模拟和测量的组合。在本文中,我们提出了SFERA框架模拟在复杂的SOA系统的重启。我们说明SFERA功能与评估的最佳重启超时在一个复杂的SOA系统。我们使用不同的场景来模拟SOA系统,并通过与SOA测试平台的测量结果相适应的相位类型分布来对组件响应时间进行建模。 我们观察并比较不同场景的完成时间关键词:容错机制,应用层重启,面向服务系统,仿真框架1alexandra. fu-berlin.de2philipp. hp.com3katinka. ncl.ac.uk1571-0661 © 2012 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2012.11.0144A. Danilkina等人理论计算机科学电子笔记291(2013)31介绍由于具有面向服务的体系结构(SOA)的系统的重要性日益增加,这种系统的可靠性变得越来越重要。在复杂的系统,像这些检测和定位的故障是不简单的,容错机制必须在系统的不同层如果在预定义的时间间隔内没有收到对服务请求的回复,则客户端重复服务请求的重新启动方法是一种用于提高客户端体验的服务可用性和性能的简单实用的方法[18]。重启策略的影响可以通过分析、模拟和测试平台进行评估。在复杂的系统中,仿真通常是首选的方法,因为分析方法通常无法应用,并且实验太昂贵。在本文中,我们描述了我们的SFERA框架的重新启动算法及其对面向服务的系统中的请求完成时间的影响进行基于模拟的调查。SFERA是一个用于重启算法性能评估的仿真框架,它允许对SOA系统中的重启进行简单有效的建模和仿真。使用该框架,可以评估超时策略对客户端看到的系统定时行为的影响用于各种超时策略、任务语义、工作流程和处理策略。本文的结构如下:我们首先提供了一个简单的介绍,在应用程序级的重启方法。然后,我们讨论面向服务的系统中的重新启动策略第4节和第5节介绍SFERA框架。第6节说明了该框架的应用情况。第七节是论文的结论。2应用程序级重启使用restart方法,客户端会重复请求,希望在下一次尝试中从系统收到更快的响应。客户端重新启动请求之前的时间称为重新启动超时。超时间隔决定了重新启动的效果:超时时间短,系统负载会增加,导致完成时间更长。相比之下,一个非常大的超时值很少重新启动请求,如果有的话,相当于没有重新启动的完成时间。因此,重新启动是一个超时计算问题,其中最佳超时必须由重新启动算法确定。可以区分两类重启算法:自适应算法收集任务的完成时间,并根据这些观察结果计算超时,而非自适应算法的超时计算与过去无关(参见图1)。[13])。固定间隔算法是一个非自适应算法的例子,其中请求在恒定的时间量后重新启动。QEST [15]和Jacobson/Karn(JK)[5][8]算法是自适应的。有关重新启动上下文中算法的详细讨论,A. Danilkina等人理论计算机科学电子笔记291(2013)35例如[13][18].客户端请求可以是可中止的或不可中止的。在具有可中止任务的系统中,可以在发出新任务之前中止先前的任务,而对于不可中止任务,新请求不替换旧请求。客户端请求也可以通过到达间隔特征进行分类:只有在前一个任务完成后,才能向系统发送同步请求SOA可以同时处理这些请求特征可以被组合,例如,请求可以是可中止的和异步的,或者可中止的和同步的。不同的组合对过载的可能性和重新启动的适用性有不同的影响。特别地,同步的、不可中止的请求在重启的上下文中是不感兴趣的,因为重启的任务仅在前一个任务完成之后才被系统处理。在这种情况下,等待时间不能通过重新启动来减少。3面向服务系统我们的研究是关于分布式系统的可靠性现象的评估。不同的性能和可靠性度量可以在不同的抽象层次上进行评估。我们从客户的角度观察系统。通常,客户机不知道所请求服务的实现和体系结构细节。客户端只能收集有关其请求的计时行为的信息,例如开始时间和完成时间,并且可以使用不同的算法应用重启。客户之间没有沟通。我们考虑客户端请求一个服务,而这个服务又可能由几个独立的服务组成。因此,假设每个服务都能够代表服务和请求其他服务的客户端。组合服务中的各个服务可以以各种方式调用;请求顺序的确切指定称为工作流程。重新启动解决了在任务完成时间行为中出现的故障在面向服务的系统中,许多常见的故障(如系统故障、网络故障或系统过载)会导致更长的完成时间,包括在故障情况下的无限完成时间。因此,在评估SOA系统中的重启时,我们关注的是完成时间。重新启动算法可以在不同的详细程度上进行评估在基于测量的方法中,首先实现一个由客户端、服务器和重启算法组成的测试床用于自动测试平台生成的工具,如PUPPET [2]和GENESIS [7],可以用于设置测试平台。通过这种方法,可以收集实际的系统完成时间和超时。实验受到可用硬件和长运行时间的限制分析方法描述和评估系统,6A. Danilkina等人理论计算机科学电子笔记291(2013)3Fig. 1.仿真框架体系结构。使用随机模型重新启动(参见例如[16][18])。这种方法给出了定时行为的一般这种方法的缺点是在形式化的现实模型的系统行为和复杂性的结果模型的困难。[1]中提出了一个面向服务体系结构的仿真模型框架。该框架结合了流程链的扩展版本,以描述SOA的组件和更高级别的定量规范。该框架的目的是能够详细模拟SOA系统架构和连接独立服务的网络。[1]中的框架专注于实现低级别细节的系统的精确建模。虽然可以使用这个框架来评估重启,但是高度详细的方法限制了大量客户端的可扩展性。与[1]中的方法相比,我们采用了一种高层次的方法,在这种方法中,我们通过服务时间分布对故障和低层次网络和系统细节的影响进行为了评估重启机制,我们开发了一个模拟框架,收集客户端请求的完成时间。该框架支持大量的客户端以各种方式请求服务。请求可以是可中止的和不可中止的,也可以是同步的和异步的。我们实现了三个重启算法,使用户能够建立和评估具有不同工作流程的系统模型。4SFERA设计SFERA仿真框架提供了一种方法来研究不同重启策略下面向服务的系统的完成时间,假设没有重启的服务的定时行为的模型是可用的。SFERA使用抽象建模和模拟方法,以提供灵活有效的评估。框架的体系结构如图1所示。该框架由三个模块组成:客户端模块模拟系统中的用户客户A. Danilkina等人理论计算机科学电子笔记291(2013)37生成请求、应用重启和收集完成时间。SOA模块对SOA系统的服务进行建模。SOA模块接收来自客户端的请求并发送回响应。根据服务时间分布,通过适当的延迟来模拟对请求的服务通常,SOA模块中的服务时间分布为一个客户机的系统行为建模。由于额外的并行客户端会导致系统负载不断增长,因此SOA模块中还包含多个客户端影响的负载模型。此外,SOA模块可以对各种服务策略以及老化和故障等现象以及复兴等机制进行建模(参见[18]对衰老现象和返老还童机制的深入讨论)。组合管理模块通过在客户端和SOA模块之间转发请求和响应来管理并行客户端的请求。该模块不仅用于帮助构建仿真代码,还用于实现工作流程。该框架允许配置具有各种场景的系统一个场景由客户端类型、SOA模块类型以及它们的组合来定义,从而形成整个系统。SOA模块类型由服务时间分布和服务策略决定。客户端类型由重启算法和到达过程请求定义。该框架允许在配置系统时组合所有模块。客户端和SOA模块都可以并行设置请注意,SFERA的重点是评估用户观察到的具有不同数量客户端的SOA系统的时序行为。因此,我们通过简单的消息来建模请求/响应交换,而不是详细模拟网络连接。虽然可能有人认为,详细的网络连接仿真可以提高结果的准确性,但它也会增加仿真的复杂性和仿真运行时间。为了获得简单和有效的模拟,我们捕捉所有低级别的行为在随机故障模型(参见。[14])。因此,SFERA体系结构并不详细地将原始系统映射到仿真,但其抽象级别足以用于重新启动机制的性能评估。5SFERA的实施细节在本节中,我们将讨论SFERA的几个实现细节,这可能是框架用户感兴趣的SFERA使用OMNet++离散事件仿真框架[17]实现,OMNet++的NED语言用于建立仿真模型。如第4节所述,SFERA为组合提供了三种不同类型的模块,每种模块都可以提供几种不同的方法。例如,客户端模块可以支持同步的、可中止的请求并使用固定间隔重启算法,或者SOA模块可以表现出老化和恢复。我们在表1中总结了目前支持的特征。8A. Danilkina等人理论计算机科学电子笔记291(2013)3表1SFERA模块摘要。模块名称特性客户端模块– 到达流程: 同步/异步请求– 重启策略:FI、QEST、JK– request class:abortable,non-abortable– 截止日期管理模块工作流:并行,按顺序,混合SOA模块– 老化:外显,内隐– 振兴:不同的政策– 服务进程:FIFO队列,同步– 服务器数量:无限,单个– 服务策略:插槽模式,处理器共享– 服务分布:标准统计,阶段类型5.1客户端模块我们实现了两种类型的客户端模块,它们在请求的到达间隔特性上有所不同。第一种类型称为顺序源,它向系统发送同步请求。第二个实现异步请求,我们称之为并行源。默认情况下,这两个服务都使用Poisson竞争过程作为请求的到达间隔过程.顺序源在向服务器发送下一个请求之前等待响应。在前一个作业正在处理时到达的作业存储在客户端的本地队列中。相反,并行源直接向服务器发送新请求。因此,对于顺序源,系统中永远不会有来自同一客户端的两个作业,而对于并行源,可以并行处理多个作业当前可用的客户端模块实现了第2节中讨论的三种重启机制;此外,还支持“不重启”策略。重启策略以模块化的方式实现,使用[12]中描述的oracle方法。源收集完成时间作为原始数据文件或使用OMNeT++提供的对象作为统计数据数据被写入每个客户端的一个输出文件,这使得以后可以使用外部脚本对数据进行调查出于性能原因,SFERA不使用OMNeT++的内置数据存储和分析设施。A. Danilkina等人理论计算机科学电子笔记291(2013)395.2SOA模块在实现中,SOA模块被称为工作服务器。工作服务器将SOA服务建模为接收请求和发送响应的黑盒,并通过请求和响应之间的延迟来建模处理。工作服务器使得仿真框架具有可重用性和可扩展性,因为一旦知道服务时间分布,它就可以工作服务器可以从OMNeT++提供的统计分布中获取它们的服务时间,或者使用Libphprng库[11]从阶段类型分布中获取它们通过使用[9]中描述的模块可以包括更一般的随机过程我们实现了三种类型的工作服务器,称为简单的,先进的,和处理器共享的工作服务器。简单工作服务器不对系统上的负载建模,只是从指定的分布中提取服务时间。高级工作服务器有一个由多个同时请求生成的负载模型。我们使用一个简单的例如,在一个示例中, 如果一个作业正在服务中而新作业到达,新工作的服务时间乘以系数2,因为只有一半 的服务能力可用于新作业。请注意,这个模型只粗略地捕捉了共享系统资源的效果,因为根本没有反映动态。然而,与处理器共享相比,该模型在仿真中被证明是非常有效的(参见。[6]例如)。最后,我们实现了处理器共享策略。服务模块监控服务中的作业数量,并在发生变化时相应地重新安排完成事件。5.3管理模块管理模块在客户端和服务器之间转发请求和响应,并管理工作流的执行工作流程描述了工作服务器的顺序,这些服务器应该处理客户端请求以构建最终答案。我们区分并行、顺序和混合工作流程。在并行工作流中,管理模块同时向所有工作服务器发送请求。在顺序工作流程中,请求被连续地发送到工作服务器。混合工作流程允许将前两种类型结合起来。6使用SFERA在本节中,我们将介绍一个案例研究,其中我们在评估中使用SFERA重新启动算法在两种情况下。第一个场景由请求一个服务的并行客户端组成,而在第二个场景中,单个客户端请求一个复杂的服务,该服务被实现为工作流。我们的目标是比较不同的重启算法对系统的定时行为的影响,并提供一个使用SFERA解决实际问题的例子。为了评估算法,需要收集完成时间和数据集10A. Danilkina等人理论计算机科学电子笔记291(2013)3必须加以分析和比较。案例研究的结构如下:首先,我们讨论模拟的设置。然后,我们提出了在评估中使用的参数,然后通过讨论可以获得的结果6.1仿真设置在第一个模拟中,我们希望模拟一个场景,其中大量客户端并行访问相同的服务。我们假设客户端请求属于两个类别之一,这两个类别的服务需求不同。 可以在SFERA中设置此场景,使用几个客户端模块、一个工作服务器和一个管理模块在客户端和工作服务器之间转发请求和响应第二个模拟使用一个请求复杂服务的客户端,该服务被实现为混合工作流。这个实验可以使用SFERA的客户端模块、实现工作流的管理模块和三个工作服务器来设置。为了获得逼真的模拟,我们需要一个适当的模型,在工作服务器的服务时间虽然可以使用OMNeT++提供的任何理论分布,但下面的实验方法可以产生更真实的服务时间:我们首先建立一个带故障注入和不带故障注入的 然后,我们测量了一个客户端的完成时间,没有重新启动。 在我们的评估中,完成时间的分布被用作服务时间分布。测试床由四个Web服务组成,具有提供组合服务的实际功能不同的服务完成不同的任务,占用不同的资源。个别服务分别部署在专用机器上,通过有线网络连接。进行了两个实验-在客户端和测试台服务之间有和没有注入数据包丢失。因为完成时间是在一个现实的系统中测量的,所以它们为系统时间的评估建立了坚实的基础。数据包丢失是基于网络的系统的传输层中的常见故障。数据包丢失可能是由过载或不稳定的连接引起的[19][14]。在其中一个实验中,我们使用NetemCGLinux内核模块注入数据包丢失[3][10]。我们在两个实验中测量了每种情况下5000个完成时间样本。然后使用PhFit相位类型拟合工具[4]用非循环相位类型分布近似完成时间。PhFit的输出是一个分布,它是收集的完成时间分布的精确模型。该模型被用于我们的评估模型的服务时间在工作服务器。6.2场景定义和SFERA设置我们在两个模拟中使用SFERA的并行客户端,它生成异步的,可中止的请求。我们选择了平均为4秒的指数到达间隔时间。在第一个模拟中,并行客户端的数量被设置为1、2、20、50和100。我们使用第5节中描述的采用混合工作流A. Danilkina等人理论计算机科学电子笔记291(2013)3111e+061000001000010001客户端2客户端20个客户端50个客户端100个客户端1客户图二.左侧为并行客户端,右侧为复杂服务的场景的完成时间均值(对数刻度; NR模拟一个并行客户端。工作流由三个工作服务器组合而成。首先,并行调用使用无故障服务时间的两个服务器。一旦管理模块从两个并行工作服务器接收到应答,就调用下一个工作服务器。该工作服务器表示故障服务,并使用来自具有分组丢失的测试床的服务时间我们使用固定间隔、Jacobson Karn和QEST重启算法进行了模拟根据测试台的完成时间估计重启算法的适当参数:固定间隔算法的超时设置为观察到的完成时间的平均值。根据经验分位数和方差调整QEST直方图的参数。Jacobson/Karn算法被设置为默认值[5][8]。6.3结果实验的下一步是评估两个实验重新开始时实验的统计特性。首先,我们通过所有的场景分析完成时间的经验平均值。我们将平均值视为重新启动算法对其他统计指标影响的指标。图2的左侧显示,对于具有并行客户端的场景,分析的每种重启方法都可以略微降低平均值。但是在有大量并行客户端的场景中,重启对平均值的影响更大图2的右侧显示了一个复杂服务和一个客户端的场景:只有FI算法可以降低均值。95%分位数的评价见图3。正如我们所看到的,并不是每一个分析的重启算法都可以减少分位数:JK和QEST算法在有1、2、20和50个客户端的情况下增加了95%分位数在这些情况下,只有FI算法可以减少这个指标。对于复杂服务的完成时间的分位数也可以观察到相同的趋势。应该注意的是,在所有情况下,平均值和95%分位数都只能略微减少。NRQESTJKFi是说12A. Danilkina等人理论计算机科学电子笔记291(2013)31e+071e+061000001000010001客户端2客户端20个客户端50个客户端100个客户端1客户图三. 95%-左侧为并行客户端,右侧为复杂服务的场景的分位数(对数标度; NR总结评估结果,三种重启算法都不能显著降低服务时间的统计特性。这可以通过测试台数据集的小scv(变异平方系数)来解释。没有故障的数据集scv = 1。195017,来自分组丢失实验的服务时间具有scv = 1。79.然而,这些实验显示了使用SFERA的实用性,因为可以评估第一种配置中并行客户端的复杂模拟和第二种配置中的梳理工作流程。从测试台设置中获得类似的场景结果将产生大量的硬件和软件成本。请注意,需要进行各种运行,以便为FI重启算法提供适当的最佳超时。上面的图表仅显示了最佳超时的结果。第七章结论SFERA框架提供了一个强大的背景,为分布式系统的时间行为的评估,服务的客户端应用重新启动。虽然我们在本文中的重点是面向服务的系统,并不局限于这样的系统。 该框架可用于评估重启在采用类似技术并且定时行为取决于系统的复杂层的正确操作的其他场景中。例如,一个未来的应用领域是云计算,其中服务请求来自高度复杂的服务器,其完成时间不仅取决于网络或负载,还取决于虚拟化层。SFERA是一个通用工具,用于模拟一般和复杂的服务配置和各种场景。框架的模块化设计允许有经验的用户使用例如PH分布的服务时间来设计综合实验;经验不足的用户可以简单地组成具有客户端重启的面向服务的架构。我们目前正在准备SFERA的分销。此外,我们的目标是扩展SFERA模块的功能,并提供新的模块。也NRQESTJKNR95%分位数A. Danilkina等人理论计算机科学电子笔记291(2013)313现有组件将进行优化,以加快模拟速度。确认这项工作得到DFG赠款WO 898/2-1和WO 898/3-1的支持。这幅作品是菲利普·赖恩在柏林的“自由联合会”时完成的。引用[1] F. Bause,P. Buchholz,J. Kriege,and S.瓦斯塔面向服务体系结构的仿真模型框架。In S.库涅夫岛Gorton和K. Sachs,编者,Performance Evaluation:Model and Benchmarks,计算机科学讲义第5119卷,第208-227页。Springer Berlin / Heidelberg,2008.[2] A. 贝尔托利诺湾D. Angelis和A.波里尼Web服务QoS测试床生成器在洛巴雷西,P. Fraternali和G.- J. Houben,编辑,ICWE,计算机科学讲义第4607卷,第17-31页。Springer,2007年。[3] M. D rager.E nturfundImplement ntierungeinesModulszurst ochastis chenFehlerinjektionforu? rIP-Netz wer k e gem?aesteineser wetertenGil bert-M odells.Ba chelorthesis,FreieUni versitüatBerlin ,2011. (德文)[4] A. Horva'th和M. 泰莱克。 PhFit:一个通用的相位类型拟合工具。 Field,T.,哈里森,PG,布拉德利,J.,哈德,美国。(编辑)TOOLS 2002. LNCS,2324:82 -91,2002 年。[5] 雅 各 布 森 拥 塞 避 免 和 控 制 。 在 Symposium proceedings on Communications architectures andprotocols,SIGCOMMACM。[6] R.杰恩计算机系统性能分析的艺术:实验设计,测量,模拟和建模技术。Wiley,1991年。[7] L.尤什奇克L. Truong和S.达斯达GENESIS -一个复杂Web服务网络测试床自动生成和控制的框架。在Proc.13th IEEE International Conference on Engineering of Complex Computer Systems ICECCS2008,第131-140页,2008年3月31日至2008年4月3日。[8] Karn和C. Paralysis.改进可靠传输协议中的往返时间估计。ACM Trans. Comput.系统,9:364[9] J. Kriege和P. Buchholz。使用OMNeT++模拟随机过程。第四届国际OMNeT++研讨会(OMNeT++2011)。ICST,2011年。[10] P. Reine cke,M. Dr?ager和K. 沃尔特。 NetemCGIP地址-使用连续时间吉尔伯特模型的损失注入。技术报告TR-B-11-0,柏林自由大学,2011年9月[11] P. Reine ck e和G. 霍瓦特离散-E ve nt仿真中真实建模的相型分布。2012年OMNeT++研讨会。ACM,2012年。出现。[12] P. Reinecke,A. P. A. Van Moorsel和K.沃尔特应用层重启动与传输协议相互作用的测量研究。In M.Malek,M. Reitenspiestan和J. Kaiser,编辑,服务可用性。第一届国际服务可用性研讨会论文集,LNCS第3335卷,第86-100页。Springer,May 2004.[13] P. Reinecke,A. P. A. Van Moorsel和K.沃尔特快速和公平:一个故障注入驱动的可靠Web服务重启预言机的比较。在第三届国际会议上的定量评估系统(QEST),页。375-384,Riverside,CA,USA,IEEE-CS Press,Sept. 2006年。第375IEEE-CS Press,2006.[14] P. Reinecke, K. Wolter和 M.马 利克 面 向服 务 系统 QoS 研 究的 故 障模 型 综述。技术报告B-2010-02,FreieUniversit?atBerlin,2010年4月[15] A. P. A. Van Moorsel和K.沃尔特重新启动的分析和算法。第一届系统定量评价国际会议(QEST,第195-204页)。IEEE计算机学会,2004年。[16] A. P. A. Van Moorsel和K.沃尔特软件系统重启动机制分析。 IEEE软件工程学报,32:547[17] A. 瓦尔加的 OMNeT++离散 事件仿真 系统在欧洲模拟多会议(ESM'2001)的会议记录14A. Danilkina等人理论计算机科学电子笔记291(2013)3[18] K. 沃尔特容错随机模型--重启、恢复和检查点。Springer Verlag,2010.[19] Y. Zhang,V. Paxson,and S.申克互联网路径属性的平稳性:路由,损耗和吞吐量。技术报告,ACIRI,2000年。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Aspose资源包:转PDF无水印学习工具
- Go语言控制台输入输出操作教程
- 红外遥控报警器原理及应用详解下载
- 控制卷筒纸侧面位置的先进装置技术解析
- 易语言加解密例程源码详解与实践
- SpringMVC客户管理系统:Hibernate与Bootstrap集成实践
- 深入理解JavaScript Set与WeakSet的使用
- 深入解析接收存储及发送装置的广播技术方法
- zyString模块1.0源码公开-易语言编程利器
- Android记分板UI设计:SimpleScoreboard的简洁与高效
- 量子网格列设置存储组件:开源解决方案
- 全面技术源码合集:CcVita Php Check v1.1
- 中军创易语言抢购软件:付款功能解析
- Python手动实现图像滤波教程
- MATLAB源代码实现基于DFT的量子传输分析
- 开源程序Hukoch.exe:简化食谱管理与导入功能
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功