没有合适的资源?快使用搜索试试~ 我知道了~
基于组件的软件架构性能预测方法及实证分析
理论计算机科学电子笔记176(2007)69-87www.elsevier.com/locate/entcs参数型绩效契约:非马尔可夫环模型与实证分析维多利亚·菲鲁斯2奥尔登堡大学研究生院Trustsoft 26121 Oldenburg,Germany3摘要即使今天的硬件改进,性能问题仍然是常见的许多软件系统。解决基于组件的软件架构的这个问题的一种方法是在早期开发阶段通过结合预制组件的性能规格来预测性能。现有的基于构件的性能预测方法忽略了影响构件性能的若干因素。在本文中,我们提出了一种方法来计算组件服务的性能,同时包括外部服务和不同的用途的影响。我们使用具有非马尔可夫循环迭代的随机正则表达式来建模软件组件的抽象控制流程,并使用概率质量函数来以细粒度的方式指定内部和外部服务的时间消耗。一个实验评估报告比较结果的方法与测量基于组件的Web服务器。评估结果表明,使用测量数据作为输入,我们的方法可以预测服务的平均响应时间,与在我们的场景中执行服务时所采取的测量值的关键词:性能预测,参数性能契约,服务时间分布,软件构件,随机正则表达式,非马尔可夫环1介绍尽管计算机硬件的性能(即,在响应时间和吞吐量方面的时间效率)快速增长,但在当今的许多大型硬件/软件系统中仍然可以观察到性能问题。这些问题持续存在的原因之一是软件的复杂性不断增加。大型软件系统必须处理复杂的用户需求,并且通常使用即使使用附加硬件也不能很好地扩展的1电邮地址:heiko. informatik.uni-oldenburg.de2电子邮件:viktoria. informatik.uni-oldenburg.de3 这项工作得到了德国研究基金会(DFG)的支持,grant GRK 1076/11571-0661 © 2007 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2006.02.03270H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 176基于代理的软件系统[1]可能会对工程软件进行重大改进大量的研究是针对基于组件的软件体系结构在早期开发阶段的性能分析。其目的是通过结合单个预制组件的性能规格来预测整个架构的性能组件开发人员应以可参数化的形式提供这些规范,以便软件架构师或组件组装人员可以将其提供给工具,以获得对其设计的预期性能通过这种方式,应支持有关组件的设计决策,并且应使组件装配人员能够比较功能等效组件的非功能属性。为了指定组件的性能,必须考虑多个外部因素,因为组件应该是第三方可部署的[1]。组件可以执行外部服务来提供它们的服务,它们可以部署在不同的硬件、操作系统和中间件平台上。此外,它们通过使用系统的有限资源与环境交互,并且它们可能由非常不同的用户组执行。任何旨在预测基于组件的系统的性能特性的方法都必须考虑所有这些因素才能精确。大多数现有的方法在上述因素中的至少一个方面不足[2]。在本文中,我们扩展了我们以前的方法来建模组件的性能对外部服务的依赖性我们还通过指定控制流分支上的转移概率和循环迭代次数的概率质量函数来隐式地考虑不同使用情况的影响我们使用随机正则表达式[4]来构建一个基于组件服务的服务效果规范的性能模型[5]。提供了一个实验评估,因为我们已经实现了我们的方法,并将其应用于实验Web服务器。我们的方法是精确的,因为我们使用离散概率质量函数来模拟内部和外部计算的时间消耗。它是composi- tional的,因为我们的预测结果再次是一个离散的概率质量函数,可以用来模拟另一个组件的外部服务的性能此外,该方法是参数化的,因为可以使用不同的概率质量函数(例如,取决于底层硬件),并且可以通过改变循环迭代的转移概率和概率函数来调整预测以适应不同的使用情况。此外,可以使用我们的方法检查服务质量建模语言(QML)[6]中指定的组件服务的性能合同。本文的贡献是双重的:首先,我们提出了一个新的概念,建模循环的概率质量函数,并引入随机正则表达式。其次,我们报告的实验评估我们的方法上的一个原型基于组件的软件系统,并比较我们的方法与测量的预测。从我们的评估中可以看出,计算的概率质量函数与实际测量值仅略有不同,突出了我们方法的精度H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 17671Foo本文的组织如下:第2节介绍了我们的建模方法的基础上,服务效果规范,描述了随机注释和解释的计算。第3节描述了我们的实验评估,并说明了结果。第4节讨论了相关的工作,第5节总结了本文,并概述了未来的工作。2组件性能建模2.1服务质量标准我们描述组件性能的模型是基于服务效果规范[5]的,这已经被证明对于建模软件组件的外部依赖关系的影响是有用的。在对组件的性能(即响应时间、吞吐量)建模时,必须考虑组件服务对象规范对组件的已提供服务对其所需服务的调用进行建模。通常,规范被表示为一个自动机来限制可能的调用序列。自动机模型外部调用和状态的转换表示组件的内部因此,服务执行自动机可以被认为是控制流程抽象。一个zlbCFig. 1. 示例组件foo和服务z的相应服务执行自动机图1在左侧显示了一个UML 2.0表示法的示例组件foo,提供了服务z和所需的服务a、b和c。服务z的服务效果自动机显示在右侧。 它是一个有限状态机,描述了z发出的所有可能的调用序列。服务效果规范包括由组件开发人员为组件装配人员提供服务效果规范可以从源代码中生成,也可以从设计文档中导出由于我们还希望对服务的内部计算的时间消耗进行建模,因此我们首先分解服务输出自动机。对于每个状态,插入一个额外的转换和状态,并将转换标记为前一个状态的名称(图1)。2)的情况。例如,从Bs0一CS1S272H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 176Bs0S1一CS2前状态S2到新的最终状态。这一步也是必要的,以方便以后的计算。图二. 分解服务执行自动机具有控制流程的循环由服务效果自动机中的循环建模。循环使分析复杂化,因为它们可以相互连接,包括其他循环或有多个入口点。我们想用概率函数来建模循环迭代,这将在后面描述,所以我们必须显式地识别所有的循环。正因为如此,我们将服务输出自动机转换为正则表达式。正则表达式是分层结构的,循环有明确的入口和出口点,可以通过Kleene星形运算符识别。此外,正则表达式非常适合于后面的计算,因为可以通过遍历其抽象语法树来执行计算。对于转换,我们使用GNFA算法[7]。上述服务输出自动机的正则表达式为:(s0a s1b)s0c s22.2随机注释服务效果规范最初设计用于计算提供协议之外的软件组件的需求协议,并支持组件之间的互操作性检查[8]。为了进行性能分析,我们需要控制流中分支的概率,对循环迭代次数的描述以及附加到正则表达式元素的定时值。我们在下面描述随机正则表达式(SRE)(类似于[4])设a是字母表中的一个终端符号。SRER的语法递归地定义为:R:apaRp1Rp2Rp1Rp2Rl1 2 1 2对于另一个 Rp1...它必须保持np1,和1ni 1iH. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 176731212I1102在控制流的分支上,不同选择的概率总是等于1。连接中的点可以省略。对于循环构造Rl,l被定义为循环迭代次数n上的概率质量函数,其中Nl:n pn,nN0,0pn1,NN0:i N:l i0,n0的L n1有了这个定义,我们为每个循环迭代次数分配一个概率(例如,可以定义一个循环执行3次的概率为0.2,执行6次的概率为0.8)。此外,循环迭代的次数是有界的,因为我们只允许概率大于0的迭代次数有限。这是一种比经典马尔可夫模型更实用的模型循环方法[9]。在那里,回路被建模为具有重新进入的概率p循环和概率1 p退出循环。这将绑定循环的数量迭代到几何分布,并且不能表示例如循环被精确地执行n次。 不能表示执行较大次数的循环迭代的概率比执行较小次数的循环迭代的概率高。但在实际的许多应用中可以发现这种情况,其中循环迭代的几何分布是一个例外。问题的建模循环与马尔可夫模型也已表示由Doerner等。”[10]他们用不同的方法来解决这个问题。其他方法仅通过提供平均迭代次数来建模循环[11]。这种方法也是不利的,因为实际上,循环迭代的次数可能会根据组件的使用情况而严重不同,并且平均值不足以对这种行为进行建模。上述语法的语义定义如下:符号(apa):a以概率pa被执行。备选方案(Rp1Rp2):要么以概率p1执行R1,要么执行R2概率为p2。 这个表达式的总概率是paltp1p2.序列(Rp1Rp2):首先执行R1,然后执行R2。 总概率-表达的可能性是pseqp1p2。R被执行的概率 为l1R R被执行的概率为 l2环(Rl):.n执行的概率为l n表达式的总概率是nL i1.一、对于上面的正则表达式示例,可能的SRE可以是ps00阿派阿派S1bpb)lsps0cpcsps2R... RS74H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 176ps0paps1pbpcps21、0和 171、 0.为了对表达式的定时行为进行建模,随机变量XR被分配给每个输入符号R,如[3]中所述。 随机变量可以用概率质量函数来描述。它对被调用的服务或内部计算的时间消耗进行建模。 在下文中,我们将概率质量函数记为xαnxα:n pn P X αn采样率α。 采样率α是概率质量函数中的区间的步长,并且可以被选择为例如区间长度的最大公约数(gcd):α gcd xi 1,xi i 1,2,...,M1.例如,上面的随机正则表达式中的服务s0被分配了一个随机变量X0,其概率质量函数对s0的执行时间进行建模。概率质量函数是计算的结果,测量的,或估计的(参见。第2.4节)。使用随机变量而不是常数值可以实现更精细的粒度预测,并且非常适合于对未固定为常数值的内部和外部时间消耗进行建模。它们取决于许多因素,如底层硬件和中间件平台,组件的内部状态或用户输入的输入。2.3计算所提供的服务的性能是从表示为随机正则表达式的带注释的服务效果规范计算出来的。对于计算,构建正则表达式的抽象语法树,并使用概率、循环迭代函数和随机变量进行注释以节省时间。然后自下而上遍历树,直到计算出根节点(即所提供的服务)的结果随机在下文中,我们将解释基本构造序列、替代和循环的计算步骤。一个序列的时间消耗是每个表情。序列的概率质量函数可以计算为单个概率质量函数的卷积xR1R2 nxR1xR2 n对于替代方案,时间消耗被计算为由分支概率加权的替代路径的总和。相应的概率质量函数为:xR1 R2 np1xR1 np2xR2 n由于我们已经为循环迭代次数指定了概率质量函数,因此循环的随机变量为:H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 17675XRXRXRl.NI1其中NN0和i N:l i0的情况。因此,环的概率质量函数具有以下形式:xRl nNiL ii1j1xRn为了计算概率质量函数的卷积,我们使用离散傅立叶变换,如[3]中所述,其中还详细讨论了该方法的计算复杂性组件foo的提供服务z的概率质量函数从上面的例子有形式:xz n7我L ii1j1xs0xa xs1xb xs0xcxs2 n2.4获取必要的值为了用我们的方法进行性能分析,需要不同的输入可通过分析源代码或设计文档获得服务效果规范例如,UML序列图可能已经为某些组件指定,并包含构建服务事件规范的信息。服务效果规范使用转移概率和循环迭代的随机变量组件开发人员不能通过分析组件的代码来提供例如,在服务事件规范中的替代方案中,控制流可以根据服务的输入参数值采取不同的方向。因此,这些值必须由系统组装人员提供,他们对预期的用户将如何使用组件有一定的期望一种类似于哈姆雷特等工作的方法。al.[12]可能被系统汇编程序用来获得转移概率和循环迭代概率此外,服务效果规范使用随机变量进行注释,这些随机变量表示外部服务的时间消耗(在转换时)和内部计算的时间消耗(在状态时)。所需的概率函数可以从测量值(例如,通过对组件和外部服务进行基准测试)或通过基于以前的经验估计值,可能由SPE[13]之类的方法支持。以概率L 1XR以概率L 2XR以概率L N76H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 176目前还不清楚我们的方法是否可以完全应用于现有的黑盒组件,例如通过分析字节码。可能必须进行代码注释,以便从源代码中完全检索我们的方法所需的信息。重新设计现有组件以使其对我们的方法有用的方向是我们未来研究的一部分。3实验验证在下文中,我们提供了我们的性能预测方法的第一个初始实验评估我们将测量数据与计算数据进行比较,假设计算的输入数据可用。这一假设也需要在未来进行测试,因为目前还不清楚基于组件的系统的开发人员是否这个假设可以通过学生参与的受控实验或工业环境中的实验来检验,但这超出了本文所述的验证范围。我们的实验评估的目标是从开发人员的角度分析我们的性能预测方法我们提出以下问题并使用所描述的指标来回答这些问题:精确度:计算相对于测量的精确度如何?作为度量,我们使用描述性统计。抽样率:概率质量函数的抽样率对我们的计算有什么影响?我们将使用描述性统计和用于计算不同抽样率的时间来回答这个问题。效率:计算的效率如何?计算的时间将在这里用作度量。此外,我们将讨论计算的复杂性。3.1实验主题:Web服务器在我们的实验中,我们将性能预测方法应用于一个基于组件的Web服务器上,该服务器是我们小组为研究目的而开发的。该服务器是为. NET平台设计的,用C#实现。它是多线程的,因为调度器组件为每个传入请求生成一个新线程。页面可以从硬盘静态提供,也可以通过使用连接的数据库(Microsoft SQL服务器)的内容动态组装Web服务器由12个组件组成,这些组件以灵活的体系结构组织。存在多个组件来处理对Web服务器的不同类型的请求(例如HTTP请求)。这些组件以责任链模式组织[14],以方便扩展其他类型的请求(例如FTP或HTTPS请求)。 我们在这里省略了服务器的完整架构,而是专注于预测单个组件的性能,同时考虑连接的组件。StaticFileProvider组件(图3)提供了一个名为IHTTP的接口H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 17677请 求 处 理 器 处 理 简 单 的 HTTP 请 求 并 从 硬盘 中 检 索 文 件 。 它 要 求IWebserverMonitor和IWebserverConfiguration接口写入日志消息并查询全局Web服务器配置。 此外,IRequestProcessorTools接口用于打开文件并将其发送到客户端。IHTTPRequestProcessorIWebserverMonitorIWebserverConfigurationIRequestProcessorTools图三.组件StaticFileProvider服务HandleRequest的服务事件自动机[15]描述了服务的抽象行为,并包含了每个外部服务调用的转换(图4)。首先,为请求的文件构建路径信息,如果路径实际存在,则执行检查如果请求了一个文件,服务会写入一个日志条目,然后开始从硬盘读取文件并将其传输到客户端。如果请求目录,服务首先检查Web服务器配置(通过IWebserverConfiguration接口)是否允许标准文件名(例如index.htm),然后在循环中检查,如果标准文件之一可以在请求的目录中找到名称。该文件被检索并发送到客户端。如果找不到文件或默认文件名不存在,则会向客户端发送错误消息。通过应用GNFA算法[7]获得了对应于服务效果规范的正则表达式(图5)转换的名称为了简洁起见,我们在这里省略了服务执行自动机状态的正则表达式在下文中,我们定义了我们实验的独立、相关和可能的干扰变量自变量在测量和计 算 之 间 没 有 改 变 它 们 分 别 是 硬 件 、 中 间 件 平 台 、 部 署 、 分 析 组 件(StaticFileProvider)和使用情况。 为了减少使用关于实验结果,我们分析了三种不同的情况,上述的服务效果规范,将在后面描述。我们实验的因变量是我们在Web服务器上测量的指标,即不同场景的响应时间(以毫秒为单位)。可能的干扰变量是活动的后台进程,这些进程可能会扭曲测量结果,Web服务器的缓存,日志消息输出的时间消耗,测量方法对测量结果的可能干扰,垃圾收集,即时编译等。我们试图通过例如停用后台进程并尽可能有效地实施测量应用程序来尽可能降低干扰变量的影响。StaticFileProvider78H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 176图4.IHTTPRequestProcessor.HandleRequest:服务 检验自动机BCP SHE1 +(BCP GDF WL2 + BCP WL1)(WL3)SHE2 +(BCP GDF WL2 + BCP WL1)(WL3)GFM WL4的SHH SCD WL5图5.IHTTPRequestProcessor.HandleRequest:正则表达式3.2场景我们将我们的方法应用于StaticFileProvider组件的HandleRequest服务的三个不同场景。这些场景反映了基本的控制流程结构,如顺序、选择和循环。在场景1中,从Web服务器请求了一个50 KB的HTML文件。 由于没有请求目录,因此在此方案中没有执行循环(l101.一、0和l1i0,iN),并且控制流程简单地遵循一个序列。图6显示了该场景的随机正则表达式。包括的只是概率对于使表达式更可读的替代方案,另一个表达式的概率都是1,0。H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 17679(BCP SHE1)0. 0+(BCP GDF WL2)0. 5+(BCP WL1)0. 5)(WL3)11SHE2)0. 0+(BCPGDF WL2)0. 0+(BCP WL1)1. 0)(WL3)11 GFM WL4的SHH SCD WL5)1. 0见图6。场景1的随机正则表达式(序列)场景2涉及两个不同的请求,触发控制流程中的替代方案。交替请求一个50KByte HTML文件和一个文件夹。 未执行循环(l201.一、0和l2i0,iN),因为在这种情况下,可以立即找到文件中的文件(图1)。7)。(BCP SHE1)0. 0+(BCP GDF WL2)0. 5+(BCP WL1)0. 5)(WL3)12SHE2)0. 0+(BCPGDF WL2)0. 5+(BCP WL1)0. 5)(WL3)12 GFM WL4的SHH SCD WL5)1. 0见图7。场景2的随机正则表达式(可选)场景3包含了5次循环的执行,因为请求了一个文件,并且Web服务器在找到文件之前搜索了5个不同的文件名。因此,循环迭代的概率函数为l351.一、0d和l3i0 ,iN05 . 否则,在此中按顺序进行转换场景,如图所示。8 .第八条。(BCP SHE1)0. 0+(BCP GDF WL2)0. 5+(BCP WL1)0. 5)(WL3)13SHE2)0. 0+(BCPGDF WL2)0. 0+(BCP WL1)1. 0)(WL3)13 GFM WL4的SHH SCD WL5)1. 0见图8。 场景3的随机正则表达式(循环)3.3测量和计算为了测量场景,我们为我们的Web服务器实现了一个监控框架,使用拦截器来装饰带有测量设施的组件接口[14]。测量每个服务呼叫的响应时间。在测量过程中,数据存储在内存中,并在Web服务器关闭后以XML文件格式写入磁盘。通过这种方式,我们试图消除由于硬盘访问而对测量结果的监控测量在笔记本电脑上本地进行,笔记本电脑配有奔腾M处理器1.6 GHz和512 MBRAM,网络服务器在.NET平台上运行。这些场景的请求是由商业Web压力测试工具生成的,随后在每个场景中重复一分钟所有请求均非同时执行。对于计算,我们使用单个服务的测量数据作为输入,以指定每个服务的时间消耗的随机变量。转移概率和循环迭代次数由测量数据生成,以确保两种方法之间的一致性。在计算过程中,遍历正则表达式的抽象语法树,并自底向上计算序列、替换和循环80H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 176是说STD. Dev.最大Y测量(μs)2124,781387,571650计算(μs)2115,151253,441670偏差(%)0,459,671,20表1场景1(序列):描述性统计我们使用10的采样率进行每次计算,这意味着从概率质量函数中组合10个值来计算结果函数的每个值此外,我们还测量了每次计算的持续时间。3.4结果3.4.1精度图9-11显示了来自StaticFileProvider组件的HandleRequest服务的每个场景的响应时间(μs)将测量数据(虚线)与计算数据(黑线)进行比较对于场景1的顺序执行,计算出的概率与测量出的概率(图9中可观察到)非常一致。由于计算中涉及到卷积,因此计算出的线比测量出的线看起来更平滑。 作为两个分布函数的拟合优度检验,统计学中常用的检验方法[16]。 三自由度χ2在这里的两个分布函数上产生的χ2值太高,无法保持我们定义的显著性水平0,05。因此,两个结果的偏差太大,无法确认相同的潜在概率函数。然而,我们仍然认为结果是有用的,因为从开发人员的角度来看,偏差很小。测量和计算的平均值仅偏离0.45%,标准差为9.67%(表1)。①的人。概率的最大值在测量值为1650μ s时,在计算值为1670μ s时,这意味着最可能的值在响应时间内仅偏离1.2%。我们还发现,无论是测量还是计算,80%的值都在1500到2000μ s用于性能分析人员试图在早期开发阶段用大量不稳定的信息预测部件的响应时间,精度应该足以做出粗略的估计并支持设计决策。场景2涉及服务效果规范的控制流程的替代方案。与场景1的顺序执行类似,计算的概率与测量的概率非常相似,如图10所示。尽管如此,χ2检验的假设必须像场景1那样被拒绝但与场景1一样,测量和计算的平均值和标准差非常相似(表1)。2)的情况。最大概率出现在1650μ s(测量值)和1690μ s(计算值),响应时间的偏差75%的测量概率,H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 176810,090,080,070,060,050,040,030,020,010响应时间见图9。场景1(序列):概率质量函数计算值介于1550和1920μ s之间。因此,计算几乎与场景1一样0,070,060,050,040,030,020,010响应时间见图10。场景2(备选):概率质量函数场景3(循环迭代)的结果可以在图11中找到。 测量的和计算的概率的线的形状看起来相似,尽管测量计算测量计算概率概率154015801620166017001740178018201860190019401980202010301090115012101270133013901450151015701630169017501810187019301990205021102170223022902350241024702530259026502710277028302890295030102060210021402180222022602300234023802420246025002540258026202660270027402780282028602900294029803020306031003140318032203260330033403380342034603500354082H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 176是说STD. Dev.最大Y测量(μs)2215,381681,251650计算(μs)2206,661508,891690偏差(%)0,3910,252,37表2设想2(备选):描述性统计当测量的曲线稍微向右偏移时,可以检测到偏差。 如上所述,χ2检验导致拒绝相同潜在概率函数的假设。0,050,0450,040,0350,030,0250,020,0150,010,0050响应时间见图11。 场景3(循环):概率质量函数测量和计算的平均值仅偏离1.58%,测量和计算的标准差和最高概率响应时间非常相似(表1)。3)。对于测量值和计算值,超过81%的概率值可以在6400μ s和8800μ s之间找到精度对于性能预测再次显得有用图图11中,我们还使用马尔可夫环概念(虚线)对这种情况进行了计算有了这个概念,重新进入和退出循环的概率被指定。在场景3中发现的恰好五次循环迭代的情况因此,计算不像我们使用非马尔可夫循环迭代的计算那样接近测量值。马尔可夫环模型的曲线几乎看起来像指数测量计算计算(旧循环概念)概率64006550670068507000715073007450760077507900805082008350850086508800895091009250940095509700985010000101501030010450106001075010900110501120011350H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 17683是说STD. Dev.最大Y测量(μs)8160,872726,856650计算(μs)8031,652918,986850偏差(%)1,587,052,92表3场景3(循环):描述性统计分布向右移动。其原因是,通过指定具有转移概率的循环,循环迭代的次数总是绑定到几何分布(指数分布的离散情况)。在图中可以清楚地观察到以非马尔可夫方式建模循环的实际优势,因为预测确实更接近测量3.4.2采样率为了分析抽样率α对概率质量函数的影响不同采样率下的计算时间分别为103秒、7秒、3秒、2秒,清楚地显示了采样率对我们方法的定时效率的影响。查看结果(图) 12,左上角: α1,右上角α5、左下角: α 十,右下角α50,可以观察到计算结果与采样率高达10。只有采样率为50的结果与测量结果有较大的差异。 这表明,我们可以以更高的采样率执行计算,而不会损失太多的精度。3.4.3复杂性与效率在下文中,我们讨论了我们的计算的时间复杂度和时间效率。为了计算序列或循环的定时行为,必须执行相应概率质量函数的卷积。我们使用离散傅里叶变换,因为卷积变成了频域中的乘积。首先,我们将分析计算的时间复杂度。在不失一般性的情况下,考虑一个随机变量X描述循环体的定时行为设w是X的值的数目,并且设N是由函数l确定的循环迭代的最大可能数目。在傅立叶变换之前,必须将X的取值范围扩大到Nw。一个随机变量的离散傅里叶变换的复杂度为O N2w2Nw 。离散随机变量的N重卷积对应于傅立叶变换的N重由于傅立叶变换也有Nw个值,因此N重积的复杂度为O N2w 。 然后,逆傅立叶因此,必须执行具有与傅立叶变换相同复杂度的傅立叶变换。总而言之,概率计算的复杂性84H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 1760,0140,0120,010,0080,0060,0040,0020响应时间0,050,0450,040,0350,030,0250,020,0150,010,0050响应时间0,090,080,070,060,050,040,030,020,010响应时间0,350,30,250,20,150,10,050测量计算1500155016001650170017501800185019001950 2000响应时间见图12。 在采样率N次循环迭代的质量函数为O N2w2N2w Nw .我们亦花时间计算上述情景,以分析我们的方法在我们的环境中的实际时间效率。在采样率为10的情况下,场景1的计算耗时3秒,场景2耗时7秒消耗额外的时间来从测量值导出用于计算的输入数据。就我们的评估而言,我们计算的时间效率是足够的。到目前为止,我们还没有优化计算代码,也没有分析更复杂的组件。4相关工作我们的方法旨在支持设计决策在早期的软件系统的生命周期阶段基于构件的软件体系结构的时间和资源效率应在开发过程中尽早进行评估,以避免在开始实施后重新设计的SPE(软件性能工程)方法论由Smith et.[17,13]是这一方向的第一步。Balsamo et. [18]对基于模型的性能预测方法进行了广泛的调查。最近,Becker et. [2]具体分类基于组件的系统的性能预测方法。他们区分定量和定性方法。定量方法分为基于计量、基于模型和综合方法。我们的性能预测方法是一种定量的方法,因为它的目的是提供系统设计者的性能指标,如响应时间或吞吐量。此外,它是基于模型的,测量计算测量计算测量计算概率1540156315861609163216551678170117241747177017931816183918621885190819311954197720002023概率概率概率15401570160016301660169017201750178018101840187019001930196019902020H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 17685作为一种特殊的随机过程来进行分析。已经提出了许多其他基于模型的方法。西塔拉曼等[19,20]解决了指定软件组件性能的困难问题。它们扩展了经典的O-表示法来指定组件的时间和空间要求,并解决了性能对输入数据的依赖性希萨姆等[21]提出了一个通用术语,用于基于组件的系统的服务质量预测。哈姆雷特等al. [12]使用所提供接口上的输入子域如何映射到后续组件的接口的信息贝尔托利诺等al.[11]开发了CB-SPE框架,该框架基于SPE方法。在这种方法中,基于组件的架构的UML模型根据UML SPT profile [22]用性能值进行注释,然后映射到嵌入网络。Wuet. [23]定义了一种基于XML的基于组件的建模语言来描述基于组件的软件系统的性能,埃斯肯纳齐等等人[24]介绍了一种增量方法来预测由组件组成的系统的性能Chaudron et. [25]针对实时基于组件的系统,并使用模拟来预测性能。进一步的工作是相关的符号使用。Reussner等人已经开发了软件组件的参数化合同。等[15]。随机增强服务效应规范已用于基于组件的架构的可靠性预测[26]。服务质量建模语言(QML)[6]可以用来表达组件的性能契约斯托查特[27]是类似于我们的注释服务效果规范的随机增强状态图。然而,在这种方法中,循环迭代的次数被约束到几何分布。Doerner等讨论了用马尔可夫链建模环路的问题。等[10]。随机正则表达式已经被Garg et.等[4]。SOFA组件模型使用类似于我们提供的行为协议,并要求协议指定允许的服务调用序列,用于互操作性检查[28]。5结论和今后的工作在本文中,我们通过引入新的循环概念来更好地模拟实际情况,扩展了我们以前的参数性能合同[3我们使用随机正则表达式代替马尔可夫模型,因为它更容易识别循环,并且通过遍历表达式的抽象语法树的能力减少了计算的时间。此外,我们提出了一个实验评估,发现测量数据和计算数据之间的密切相似之处。我们还讨论了该方法的有效性在实验评估的鼓舞下,我们认为我们的组件性能建模方法将对未来的组件开发者和系统组装者有所帮助基于组件的系统的架构师将能够86H. 科齐奥莱克河谷Firus/Electronic Notes in Theoretical Computer Science 176识别其体系结构中的瓶颈,并且在选择具有相同功能但不同QoS特性的组件时也将得到支持然而,这种方法还远未完全或立即适用于实践。未来的工作旨在包括并发能够模拟一个大类的实际应用程序。此外,性能预测应针对底层硬件和中间件平台进行参数化,这仍然隐含在我们的概率函数中。我们还设想更好地处理组件的使用情况,因为到目前为止,我们假设使用建模的必要值已经可用。计算的复杂性以及实际可行性也必须进行更深入的分析。4致谢:我们要感谢Jens Happe和Helge Hartmann帮助我们实施和验证我们的方法。引用[1] Szyperski,C.,Gruntz,D.,Murer,S.:组件软件:超越面向对象编程。02 The Dog(2002)[2] Becker,S.,格伦斯克湖米兰多拉河Overhage,S.:基于组件系统的性能预测:从工程角度的调查。在Reussner河,Sta Baud,J.,Szyperski,C.,编辑:使用可信组件构建系统出现在LNCS中的数字05 TheDog(2005)[3] Firus,V.,Becker,S.,Happe,J.:QML特定软件组件的参数性能合同。在FESCA '05:嵌入式软件和基于代理的软件架构研讨会的正式基础会议记录。(2005年)64[4] 加尔格,V.,库马尔河,巴西-地马库斯,S.:随机离散事件系统的概率语言形式。IEEE自动控制学报44(1999)280[5] Reussner,R.H.,Schmidt,H.W.:使用参数化契约预测基于构件的软件体系结构的属性。在茨尔恩科维奇,Larsson,S.,Sta Baud,J.,编辑:基于组件的软件工程研讨会(与第九届IEEE会议和基于计算机的系统工程研讨会联合举办),瑞典隆德,2002年。(2002年)[6] Frolund,S.,Koistinen,J.:QML:服务质量规范的语言。技术报告HPL-98-1U,HP软件技术实验室(1998年)[7] Sisper,M.:计算理论导论。 03 The Dog(2001)[8] 我们都知道,R. H.:ParametrisierteVertraüge祖尔Prokolladaptionbei所以我们要-02TheDogoftheDog(2001)[9] Trivedi,K.S.:概率与统计与可靠性、概率与计算机科学应用。03 The Dog of the Dog(1982)[10] Doerner,K.,Gutjahr,W.J.:具有非马尔可夫状态转移的软件使用模型的表示与优化。信息软件技术42(2000)873[11]Bertolino,A.,米兰多拉,R.:CB-SPE工具:将基于组件的性能工程付诸实践。在茨尔恩科维奇,StaEscherichord,J.A.,施密特,H.W., Wallnau,K.C., 编辑: 第七届国际研讨会,CBSE 2004,爱丁堡,英国,2004年5月24-25日,诉讼计算机科学讲义第3054Springer(2004)233[12] 哈姆雷特,D.,Mason,D.,沃特,D.:软件开发:案例研究。 从组件合成的软件系统的属性。第1卷基于代理的软件开发系列。世界科学出版公司(2004年)1294
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功