文档详情

一种面向业务流程模型的仿真验证方法

ji****81
实名认证
店铺
DOCX
574.20KB
约14页
文档ID:324784854
一种面向业务流程模型的仿真验证方法_第1页
1/14

    一种面向业务流程模型的仿真验证方法    李宁+徐珞+郝博+樊志强摘 要:基于SOA软件构架成为分布式解决方案的主流技术,业务流程模型是SOA系统设计的核心,其是否存在缺陷对系统具有重要影响,因此,如何对业务流程进行验证成为一个关键问题本文围绕业务流程模型验证需求,针对异构模型的联合仿真问题,提出基于HLA的业务流程模型仿真验证框架,通过对业务流程和网络部署进行仿真,有效对业务流程的功能和时间特性进行验证相关实验表明,本文提出的方法能够有效发现业务流程中存在的设计缺陷Key:业务流程;仿真;验证:TP316 :AAbstract:SOA software architecture has become the mainstream technology of distributed solutions.As the business process model is the core of SOA system design,it is significantly important whether there are some flaws in it.Therefore,the effective verification method of the business process model is quite critical.To meet the verification requirements of the business process model,this paper offers a solution to the collaborative simulation of the heterogeneous model,and puts forward the simulation verification framework of the business process model based on HLA.Through the simulation of the business process and the network deployment,the verification of the function and time characteristics is effectively implemented.The experimental results show that the proposed method can effectively find the design flaws in the business process.Keywords:business process;simulation;verification1 引言(Introduction)隨着软件开发技术的不断发展,信息系统的功能日新月异。

但由于不同软件的开发平台、开发工具、操作系统在体系结构上的紧耦合性,使得物理分散的独立系统形成了所谓的“信息孤岛”为了有效解决这一问题,需要一种标准化、开放性的体系结构完成从集中式到分布式的转换,在这一背景下,面向服务的体系结构SOA(Service Oriented Architecture)应运而生典型的基于SOA的软件开发过程往往首先建立业务流程模型,并以该模型作为系统设计,然后根据该模型,通过服务集成方法来自动或半自动的产生系统实现因此,业务流程模型的正确性对最终系统质量具有重要影响根据Ron Patton在《软件测试》中的论述可知,设计阶段存在的缺陷如果没有及时发现,在系统实现阶段修复该缺陷往往是设计阶段修复缺陷费用的100倍左右[1],如果在用户大规模使用时发现该缺陷,修复该缺陷的费用往往是设计阶段修复缺陷费用的万倍以上由此可见,对业务流程模型开展验证,对提高系统质量和降低软件开发费用大有益处2 相关研究(Related research)目前,最常用的方法是模型检查(Model Checking),即通过搜索系统的状态空间来对模型进行静态的形式化分析随着模型规范化程度和可执行能力的提升,将测试手段应用于模型验证的方法必将被逐渐重视起来,例如可执行UML模型的测试。

1)静态的模型检查方法模型检查主要是对有限状态的系统模型进行静态的形式化分析,通过搜索系统的状态空间来检查该系统是否满足期望的性质如果系统模型不能满足某一规格说明会给出反例现有模型检查方法主要有基于语义网络的方法、基于PI-演算的方法、基于Petri网的方法和基于模型检测的方法这些验证方法通过将系统转化为形式化的模型(如Petri网和自动机模型),借助模型检测器等自动化工具,验证协议和服务描述的完整性和一致性经典模型检查理论已基本成熟,实现这些理论的经典模型检查器有SMV和SPINE等状态空间爆炸是模型检查中需要解决的一个关键问题,因此关于这方面存在大量研究除了传统模型检查中的状态化简技术外,更多的方法结合了程序分析中的相关技术,例如:基于各种程序抽象技术计算源程序的抽象程序;利用程序切片减小程序规模;通过限定程序中不确定性的类型及其可能性的数量来获得程序状态空间的一个有限子集模型检查存在一定的局限性:在对大规模复杂系统进行模型检查时,状态空间爆炸问题几乎不可避免,因而难以对系统状态空间进行穷尽搜索;能够验证的指标受到模型描述能力的限制,对于系统需求中的一些非功能指标验证能力不足,也难以对系统的综合指标进行验证;模型检查的形式化模型和分析算法多种多样,没有统一的标准,如何决定最适合系统的方法存在一定难度。

相较而言,软件测试方法则是一种“普适”方法,可以解决模型检查的上述问题通过给出测试充分性准则,避免了对系统的状态进行穷尽的测试;测试方法可以很好的控制被测系统模型的运行状态,尤其适合业务流程模型的这类强调动态时变性的系统;测试的适用范围较宽,可以针对系统的多种功能和非功能指标进行测试 (2)动态的模型测试方法模型测试是指在系统开发早期利用软件测试手段对设计模型进行验证的方法目前国内外对于这方面的研究相对较少,典型的研究如UML设计模型测试方面UML(Unified Modeling Language)模型是软件领域中设计模型的常用表达方式传统的UML设计模型的验证通常通过预排、检测和一些设计审查技术,大部分属于手工操作对于庞大和复杂系统的UML设计模型的检查,检测人员需要手动的跟踪和关联多个视图中的概念,这是一项枯燥且容易出错的工作近来,随着UML模型可执行性的提高,有些研究将软件测试方法应用到系统设计的早期验证中,如Trung Dinh-Trong和Nilesh Kawane等人提出了一种针对UML模型设计验证的软件测试方法该方法基于UML类图、活动图、交互图生成被测模型的可测试执行体,并依据用户给出的测试充分性准则生成测试用例,最后通过模型的模拟执行进行测试。

通过分析测试结果与系统需求的一致性来验证被测模型设计的正确性由于UML中多数的视图并不具有可执行性,或者转换为可执行体的方法非常复杂,且多个视图是从不同的角度反映系统设计,因而很难形成一个完整的模型设计,因此,UML模型测试技术尚待发展,还有很多需要进一步研究的问题3 模型验证流程及建模(The modeling process andmodel verification)3.1 业务流程模型仿真验证过程本文提出的业务流程模型仿真验证过程如图1所示根据该图可知,业务流程模型和网络部署模型需要在仿真引擎才能进行仿真执行,从而进行模型验证实际上业务流程往往描述系统的整体流程,一般使用流程图或状态图进行描述;而网络部署模型往往描述系统实际的网络部署环境,往往使用特定的网络模型和仿真算法进行建模,由于这两类模型的差异较大,很难使用统一的仿真引擎進行仿真,因此需要为此选择适合各自模型特点的仿真引擎由于业务流程模型和网络部署模型需要使用不同的仿真引擎进行仿真执行,但在仿真过程中二者需要进行交互,这就需要对异构仿真模型进行协同仿真,针对这一问题,提出了基于HLA的异构模型联合仿真方法在仿真过程中,通过仿真引擎将仿真过程中的信息进行打印输出,从而获取仿真信息,最后通过分析上述信息就能够实现对业务流程模型的仿真分析。

3.2 业务流程模型仿真根据业务流程模型特点,选择Stateflow插件作为为业务流程模型仿真建模工具与常见的Matlab模型和Simulink模型相比,Stateflow插件具备可视化的建模界面,更易于建模人员进行建模,另外,Stateflow插件提供丰富的可扩展机制,以完成复杂的逻辑运算图2给出了使用Stateflow插件对某数据发布服务的建模实例其中业务流程中的活动主要使用Stateflow中的状态进行描述;消息则使用Stateflow中的迁移进行描述;部分复杂的数学逻辑可在Matlab中自行定义,然后在Stateflow中以M文件调用的方式使用3.3 网络部署模型仿真OPNET是目前最为常用的网络仿真工具,其采用阶层性的模拟方式,从协议间关系看,节点模块建模完全符合OSI标准,实现了从业务层→TCP层→IP层→IP封装层→ARP层→MAC层→物理层的各层仿真;从网络物件层次关系看,提供了三层建模机制,最底层为进程(Process)模型,以状态机来描述协议;其次为节点(Node)模型,由相应的协议模型构成,反映设备特性;最上层为网络模型三层模型和实际的协议、设备、网络完全对应,全面反映了网络的相关特性。

它的功能十分强大,采用网络、节点、进程三层建模机制,不仅支持面向对象的建模方式,还提供图形化的操作界面,使用方便快捷,能够为网络系统的建模提供良好的开发环境[3]图3给出了使用OPNET建立的小型局域网模型4 基于HLA的异构模型联合仿真方法(Co simulation of heterogeneous model method based on HLA)由于业务流程模型和网络部署模型采用了不同的仿真引擎,而在实际仿真过程中这两类模型之间必然存在交互,这就需要一种能够支持异构模型的联合仿真方法本文采用HLA机制用以解决异构模型联合仿真问题HLA技术体制是IEEE公开发布的标准,该标准的主要目的是制定一套仿真框架,能够尽量涵盖仿真领域所涉及的各种不同的仿真模型,使得不同的仿真之间能够进行互操作,从而满足复杂大系统的仿真需求[4]HLA使用联邦代表不同的仿真成员,其关注于如何由多个联邦成员构建联邦,通过协议规范进行各个联邦成员之间的交互活动因此,HLA制定了十大规则,用以规范联邦(Federation)和联邦成员(Federate)的活动,最终组建一个用于数据交互的有序的公共虚拟执行环境RTI(Run-Time Infrastructure)是HLA接口规范的具体实现,是基于HLA的核心部件也是仿真应用程序的设计和运行的基础。

同时,提供了仿真运行管理功能,底层通信传输服务,具有较好的扩充性,实现了仿真系统中各组成部件的“即插即用”HLA的逻辑结构框架如图4所示RTI为不同的联邦成员提供统一的支撑运行环境,联邦成员之间按照HLA协议规范的要求,通过各自的RTI代理与RTI进程之间的交互,可以进行联合分布式仿真,完成联邦成员的同步交互和联邦的构建根据HLA技术机制,结合本文需要解决的技术问题,提出了一套基于HLA的异构模型联合仿真方法,该方法的主要结构如图5所示由该图可知,该结构逻辑上分为模型层和运行层模型层负责业务流程和网络部署模型的设计、仿真参数的配置、邦元集成接口约定和邦元数据交互模型,为运行层提供仿真实体模型;运行层负责封装各类模型并集成RTI代理组成不同的联邦成员 RTI代理的执行流程如图6所示一般而言,进行时间推进之前,需要完成所有的初始化工作。

下载提示
相似文档
正为您匹配相似的精品文档