唐利
摘要:分布式系统的多数端口分布在不同的物理位置,因此在对其进行测试的过程中,必须要保障每一个端口都要有一个测试者,每一个测试者可以观察自己端口的事件,进而加强控制,对此文章主要对分布式系统测试方式及应用实践进行简单的分析。
关键词:分布式系统;测试方法;应用实践
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)07-0073-02
Abstract: distributed systems most of the physical location of port distribution is not the same, this process in the test, we must protect each port must have a test, each test can observe their own port events, thereby strengthening control, this article mainly explores the simple analysis the testing methods of distributed system and application.
Key words: distributed system; test method; application practice
分布式系统在各个网络计算机之上进行分布,利用信息传递的方式进行通信以及动作的协调,进而完成相关任务系统的要求。分布式系统有着并发性、缺乏全局时钟以及故障独立性的特征,故而导致了分布式系统在测试过程中存在一定的困难。本文就分布式系统测试方法以及应用实践进行了简单的探究分析。
1 分布式系统特征
1.1异构性
第一、网络异构:分布式系统主要在网络环境中产生及生存的,在网络环境中其种类相对较多,有着不同的运行协议。
第二、计算机硬件异构:不同模式的硬件类型的计算机共同构建了分布式系统,也就是说,计算机硬件的构建导致了分布式系统的数据表示方式手段具有一定的差异性。
第三、操作系统异构:可以通过windows, unix, linux等系统进行运行。
第四、编程语言和开发者不同。
1.2开放性
软件系统自身的开放性特征直接影响了整个系统是否可以通过不同的方式拓展以及重现系统的开放性[1]。
1.3并发性
不同的、多重事务的同时发生,在没有有效的协调以及控制机制中进行操作,其并发性就会不受限制。在分布式系统中,必须要处理好并发性,这样才可以提升其整体质量。
1.4缺乏全局时钟
在系统协作的时候,主要通过消息协调动作,如果协调依赖于动作发生时间的共识,那么不同设备的时钟有所差异,同步相对较为困难。
2 分布式系统测试方法
2.1协同测试序列生成方法
文章所说的分布式系统测试方式,必须要基于了解全局测试序列基础之上开展的。要想有效的解决控制性以及观察性的问题,在实践中需要基于通道优化算法生产需要发送的系统控制消息的通道集合开展,基于协同消息的实际添加规则进行消息的增加,然后通过具备测试序列算法生产优化的方式进行局部的测试序列。
协同测试序列生产方式主要是基于协同分布式测试架构生产的,此系统分布测试架构与集中測试架构的不同就是集中模式测试架构在实践中只有一个测试者,主要就是在一些小型的分布模式系统中测试,而协同分布模式的测试架构在实践中的测试者没有限制,不同的测试者均可以利用对应的端口进行交互处理,也可以利用通道与其他相关测试者沟通联系[2]。
若想解决分布式系统测试中存在的控制性问题以及观察问题,其常规的解决方式就是应用协调消息、控制协同消息以及观察协同消息的方式同步开展,进而基于既定的测试序列开展测试。在实践中不同的测试者之间发送的消息必须要通过外部通道实现,构建以及维持通道势必会增加整个测试系统的成本,也会导致系统的延迟问题。对此在实践中要尽量地减少测试者的通道数量。
2.2分布式系统测试模型
分布式测试架构的测试系统是通过不同的测试者沟通,对此在进行系统测试过程中,必须要对IUT(ImPlementantaionUnderTes被测系统)的形式化描述,通过多个端口状态的有限状态机对其进行描述。在被测试的系统中,就可以基于多端口的有限状态机构建模型。在实践中可以将被测系统中的相关组件看做有限状态机的端口,基于系统模型构建全局测试的序列,其全局测试序列通过本地的测试序列就可以生产算法,并且将全局的测试序列在IUT的不同端口之上进行映射。如果其测试者可以观察到既定的输入以及输出序列,那么就意味着其与IUT的规范要求内容一致,否则就将其认为IUT在实践中存在着一定的错误与不足。测试机在实践中基于特定的算法执行本地的测试序列则可以完成整个分布式系统的测试。
2.3 控制性问题的解决方式
控制性问题就是在整个分布式的测试过程中,其中一个测试者没有将上一个输入进行发送或者并没有收到上一个输入的IUT输出,这名测试者在实践中不知道在什么时间向IUT发送下一个信息的输入,在这个时候就会出现一些控制性的问题。在多数状况之下还是会出现一些控制性的问题与不足。
在IUT的端口相对较多的时候,如果基于满足条件的测试者中进行随意选择,就会耗费系统中的通信资源以及配置资源,就会增强系统测试的成本。对此在实践中可以通过贪心算法开展操作,计算出在出现控制性问题时候的端口链接中最多的端口对数量,然后将此端口作为候选,进而可以把整个测试系统中构建的通道数降低到最少,真正的有效避免通信以及部署资源的过度浪费问题的出现。
贪心算法的输出结果直接导致最大化端口对的信息集合,在整个集合中进行选择可以有效地避免各种不必要的通信以及资源部署,在整个IUT系统中端口数量较多的时候,此种效果更为明显,在整个IUT端口数量相对较少的时候,则可以应用既定的规则进行选择[3]。在本地测试序列的生成算法过程中,应用此种方式融合相关要求,就可以有效的提升本地测试序列生成算法的伸缩性以及灵活性。
2.4 观察性问题解决方法
观察性问题就是在进行分布式的测试过程中,判断输入以及输出对应关系的整体能力,在常规状况之下与输入与输出移位错误有着一定的关系[4]。在出现观察性问题的时候,解决观察性问题的方式就是在本地测试序列中加入观测性的协同消息。
3 分布式系统测试方法及应用实践研究
3.1 电信业务运营支撑系统概述
电信业务运营支撑系统在实践中具有软件设计组件化、企业流程抽象化以及接口合同等相关特征,是一种基于组件为基础的分布式系统,其主要特征具体如下:
3.1.1软件设计组件化
电信运营支撑系统在实践中经常应用一种与技术没有关系的体系结构开展,系统在实践中不仅仅局限于特定的技术手段,此种系统结构是一个完全的分布模式的系统结构,在分布不同的物理位置之上的各个组件共同的完成业务流程[5]。系统中的各个组件在工作中至少需要两个接口,而其中一个组件就是进行管理,另一个组件的作用就是实现企业的合同,而合同的内容主要彰显了功能性需求,保障流程控制实体在实践中可以触发对应的处理流程,便于不同组件的组合,进而实现全新的功能,为其他相关组件提供服务。
3.1.2企业流程抽象化
运营支撑主要目的就是保障企业流程的通畅性,对其进行有效控制。而流程控制的主要目的就是让组件个体无需具备与流程操作具有关联的整体逻辑知识。流程的分解在实践中可以提升组件集成的灵活性。在流程控制组件的时候,此组件必须要既有合同定义的能力提供相关服务[6]。此种企业流程的抽象性以及分解,可以在企业流程不改变组件自身的基础之上改变企业流程,利用配置管理的方式实现工作,提升了整个组件的重用性。
3.1.3实行接口合同
电信运营支撑系统通过综合接口合同机制,组件的每一个接口都利用合同规范要求对其进行描述。
3.2补充业务处理流程操作实践
3.2.1案例描述
在客户要进行新业务的补充过程中,要先在业务受理组件发送请求,在受理组件执行之后,再触发订单处理组件就会生成订单,同时利用短信的方式通知组件发送短信对其进行通知,然后业务配置组件基于客户订单的需求进行业务实例的配置,激活操作[7]。在订单处理组件接到请求之后,将订单设置为完成状态,同时受理组件的组件业务实例,然后再通过短信的方式通知客户业务可以应用。
其中资源配置组件、订单处理组件、短信通知组件中的完工处理模块隶属于订单处理性的组件。因为此系统属于分布式系统,对此在实践中要利用协同分布式测试加工对其进行测试处理。
3.2.2局部测试序列生成
在协同消息的添加规则没有优化操作之前,如果有多个满足发送控制消息条件的测试人员的时候,其较为优化的算法就是随机的进行选择,但是此种方式增加了协同消息的数量,对此在实践中要构建一个通道[8]。根据添加协同消息的规则进行添加消息之后的测试序列映射测试,通过通道进行协同消息的发送,可以有效地减少测试过程中的通道数量,进而降低通道维护以及相关资金的投入。
虽然文章中探究的协同消息的添加规则减少了一些冗杂的协同消息,在整个过程中要协同的消息数量较少,因为在开始测试的时候增加了相关消息,对此发送协同消息的通道并没有真正的减少,基于实际的测试执行过程来说,其信息的添加可以为计算时间约束提供一定的便捷,在实践中计算等待的具体时间以及反应时间的时间约束公式就可以获得其既定的反应时间,如果在既定的反应时间中订单处理组件没有收到消息,则表示整个测试系统失败。
4 结束语
文章通过对分布式系统特征、分布式系统测试方法及应用实践进行了简单的探究,通过对其测试方式的探究,提出了通
道优化算法,在测试过程中减少通道数,进而减少测试,加强控制,希望可以有效地提升分布式系统测试方式的科学性与有效性,但是文章并没有对观察消息通道进行深入的研究,希望在今后的研究中,可以综合观察消息的通道以及控制消息的通道因素综合,进而提升分布式系统测试方式的科学性。
参考文献:
[1] 谢志海.分布式系统测试关键技术研究[D]. 西安:西安电子科技大学,2013:5-6.
[2] 李艳丽,王晓军.分布式系统测试方法的研究和应用[J].计算机技术与发展,2011,21(3):205-208,212.
[3] 李艳丽.分布式系统测试方法研究及应用[D]. 南京:南京邮电大学,2011:18-19.
[4] 戴义保.两级分布式微机系统测试1000管位晶体管参数的新方法[J].电气自动化,1994,16(3):123-126,129.
[5] 罗家融,季振山,熊斌.网络通讯技术在分布式控制系统中的应用[J].微计算机信息,2016(5):12-14.
[6] 张琛,段振华,田聪,等.分布式软件系统交互行为建模、验证与测试[J].计算机研究与发展,2015,52(7):1604-1619.
[7] 赵剑,欧阳丹彤,王晓宇,等.混成系统的分布式诊断方法[J].吉林大學学报:工学版,2012,42(6):1498-1504.
[8] 李兢,陈颖,沈沉.分布式仿真鲁棒性改进方法[J].电力系统自动化,2010,34(24):11-17.