CN105022870A - 一种基于cpn的面向服务软件性能建模与仿真分析方法 - Google Patents
一种基于cpn的面向服务软件性能建模与仿真分析方法 Download PDFInfo
- Publication number
- CN105022870A CN105022870A CN201510389946.6A CN201510389946A CN105022870A CN 105022870 A CN105022870 A CN 105022870A CN 201510389946 A CN201510389946 A CN 201510389946A CN 105022870 A CN105022870 A CN 105022870A
- Authority
- CN
- China
- Prior art keywords
- service
- model
- transition
- institute
- storehouse institute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于CPN的面向服务软件性能建模与仿真分析方法,面向服务软件性能模型包括软件模型和负载模型;软件模型包括服务模型和交互模型;负载模型包括工作负载模型和外部负载模型;每个服务模型都具有一个服务内部结构模型;工作负载模型包括工作负载开始模型、工作负载结束模型;外部负载模型包括外部负载开始模型、外部负载结束模型。仿真分析方法首先对面向服务软件负载模型中的参数进行配置,设置仿真执行的步数或时间;创建监视器,对面向服务软件以及其中单个服务的性能进行仿真。本发明实用性强、建模软件性能的效率高、仿真分析准确,适用于各种面向服务软件的性能建模与仿真分析。
Description
技术领域
本发明属于软件性能分析技术领域,具体涉及一种针对面向服务软件的性能提出了一种基于CPN(Coloured Petri Net)的性能建模与仿真分析方法。
背景技术
Web服务通过异构领域间的互操作,实现了领域间的通信。随着Web服务相关标准的完善和支持Web服务开发与运行平台的不断成熟,Web服务已经成为互联网中主要的软件形态和计算资源。Web服务是具有自组织、自适应、自管理、自描述和模块化的应用程序。而面向服务软件本质上是大量服务的集合,每个服务都驻留在一定的自治软硬件资源上,通过相关协议实现服务的发布、交互和组合,并协调多个服务提供者的行为,以便为消费者提供增值服务。本发明针对服务这一特定类型的软件实体,将面向服务软件看成由一组独立的、松耦合的服务按照一定的交互关系组合而成。
为了预测Internet环境下面向服务软件运行时的性能表现,可以先构建面向服务软件的性能模型并通过数学或仿真的方法分析其性能。由于服务的共享性,通常有多个软件系统请求服务节点上的同一服务,这些外部负载会影响服务进而影响面向服务软件的性能,因此在研究面向服务软件的性能时需要将这些外部负载考虑在内。
目前,有研究者提出采用广义随机Petri网和随机Petri网建模Web服务组合的性能,然而,随机Petri网的状态空间会随着问题的增大而指数性地增长,使得同构的马尔可夫链难以求解。此外,还有人提出一种基于层次着色Petri网的Saas软件性能预测方法,但是没有在性能模型中引入外部负载,从而不能刻画SaaS软件的实际性能。某些研究者注意到了这点,在服务节点的排队Petri网模型中引入了外部负载,并且仿真分析了外部负载的到达时间间隔对服务和服务节点性能的影响,但排队网络的描述能力有限,特别是在同步、阻塞、顾客分裂等现象的描述上。
CPN Tools由丹麦Aarhus大学的Kurt Jensen教授于2000年领导开发的一款开源工具软件,旨在提供可视化的建模环境,并支持模型的验证、仿真与性能分析,是现今最成熟的研究着色Petri网的平台;CPN是在Petri网基础上发展起来并整合了高级编程语言的离散事件建模语言,它除了可以描述系统的并发、异步和分布式特征,在系统建模分析上还有一些特有的优势:1)扩展了Petri网中的令牌类型,具有更强的建模能力;2)引入了层次概念,使得对系统的建模更为标准化和规范化。3)加入时间信息,支持对系统的性能分析。CPN继承和发展了Petri网的优点,能够更好地描述复杂的面向服务软件的性能表现。
发明内容
针对上述研究背景和问题,本发明提出了一种基于CPN的面向服务软件性能建模与仿真分析方法。该方法首先采用CPN建立考虑外部负载的面向服务软件的性能模型,然后仿真分析面向服务软件的性能。
本发明提供的一种基于CPN的面向服务软件性能建模方法,其特征在于:面向服务软件S由n个服务s1、s2、…、sn-1、sn通过一个业务流程p组合而成,则面向服务软件性能模型的建模步骤为:
步骤1:将S中服务s1、s2、…、sn-1、sn分别对应一个服务模型,得到n个服务模型;
步骤2:通过设计CPN的变迁触发机制来描述服务之间的交互关系,得到5种基本交互结构类型;按照5种基本交互结构类型的CPN结构,构造面向服务软件的交互模型;将得到的交互模型与步骤1中的服务模型组合起来,便得到了面向服务软件的软件模型;
步骤3:将步骤1中得到的n个服务模型的内部结构使用CPN描述,得到n个服务内部结构模型;
步骤4:构建外部负载开始模型、外部负载结束模型,在服务内部结构模型的处理流程起始端和结束端分别加上外部负载开始模型和外部负载结束模型,便得到面向服务软件中单个服务的性能模型,它包括服务模型和负载模型;
步骤5:构建工作负载开始模型、工作负载结束模型,在软件模型的业务流程起始端和结束端分别加上工作负载开始模型和工作负载结束模型,便得到面向服务软件的性能模型,它包括软件模型和负载模型;所述的软件模型包括服务模型和交互模型;所述的负载模型包括工作负载模型和外部负载模型;所述的服务模型都有一个与之对应的服务内部结构模型;所述的工作负载模型包括工作负载开始模型、工作负载结束模型;所述的外部负载模型包括外部负载开始模型、外部负载结束模型。
作为优选,步骤1中所述的服务模型采用CPN进行描述,它由输入库所、替代变迁和输出库所连接而成;起具体构建过程包括以下子步骤:
步骤1.1:创建一个输入库所SrvReqx,用于存放请求该服务的令牌;其中,x表示1到n之间的一个整数,与第n个服务对应;
步骤1.2:创建一个替代变迁Srvx,用于抽象服务的处理过程,其展开后的内部结构模型视图为Servicex;
步骤1.3:创建一条有向弧从输入库所SrvReqx指向替代变迁Srvx;
步骤1.4:创建一个输出库所SrvEndx,当服务请求的令牌经替代变迁Srvx进入输出库所SrvReqx时,表示该服务的处理过程结束;
步骤1.5:创建一条有向弧从替代变迁Srvx指向输出库所SrvEndx。
作为优选,步骤2中所述的交互关系包括顺序关系(Sequence)、选择关系(OR-split)、并发关系(AND-split)、与连接关系(AND-join)和或连接关系(OR-join);
以下用3个服务实体,分别为服务1、服务2、服务3来阐述5种基本交互结构类型的构建过程:
服务1和服务2之间的顺序关系对应的顺序交互关系模型的构建过程为:(1)创建一个变迁;(2)创建一条有向弧从服务1对应服务模型的输出库所SrvEnd1指向变迁;(3)创建一条有向弧从变迁指向服务2对应服务模型的输入库所SrvReq2;
服务1执行完后,选择执行服务2和服务3,对应的选择交互关系模型的构建过程为:(1)创建一个变迁,创建两条有向弧,分别从服务1对应服务模型的输出库所SrvEnd1指向变迁、从变迁指向服务2对应服务模型的输入库所SrvReq2;(2)创建一个变迁,创建两条有向弧,分别从服务1对应服务模型的输出库所SrvEnd1指向变迁、从变迁指向服务3对应服务模型的输入库所SrvReq3;
服务1执行完后,并发执行服务2和服务3,对应的并发交互关系模型的构建过程为:(1)创建一个变迁;(2)创建三条有向弧,分别从服务1对应服务模型的输出库所SrvEnd1指向变迁、从变迁指向服务2对应服务模型的输入库所SrvReq2、从变迁指向服务3对应服务模型的输入库所SrvReq3;
服务1或服务2中的任何一个执行完后,执行服务3,对应的或连接交互关系模型的构建过程为:(1)创建一个变迁,创建两条有向弧,分别从服务1对应服务模型的输出库所SrvEnd1指向变迁、从变迁指向服务3对应服务模型的输入库所SrvReq3;(2)创建一个变迁,创建两条有向弧,分别从服务2对应服务模型的输出库所SrvEnd1指向变迁、从变迁指向服务3对应服务模型的输入库所SrvReq3;
服务1和服务2都执行完后,执行服务3,对应的与连接交互关系模型的构建过程为:(1)创建一个变迁;(2)创建三条有向弧,分别从服务1对应服务模型的输出库所SrvEnd1指向变迁、从服务2对应服务模型的输出库所SrvEnd2指向变迁、从变迁指向服务3对应服务模型的输入库所SrvReq3、从变迁指向服务3对应服务模型的输入库所SrvReq3。
作为优选,步骤2中所述的软件模型,其具体构建过程包括以下子步骤:
步骤2.1:将面向服务软件中的每个服务实体映射为一个服务模型;
步骤2.2:将服务实体之间的交互关系按照5种基本交互结构类型进行建模。
作为优选,步骤3中所述的服务内部结构模型是服务模型的详细展开视图,每个服务模型对应一个服务内部结构模型;单个服务内部结构模型Servicex对应于替代变迁Srvx展开后的详细视图,SrvReqx库所和SrvEndx库所由CPN Tools工具自动创建;其具体创建过程如下:
(1)建模来自面向服务软件的服务请求的网络传输和排队;
依次创建变迁Request和库所Transmit,并分别添加从库所SrvReqx到变迁Request和从变迁Request到库所Transmit的有向弧,当令牌进入库所Transmit,来自面向服务软件的服务请求进入网络传输状态;
依次创建变迁Transmit和库所TranReq,并分别添加从库所Transmit到变迁Transmit和从变迁Transmit到库所TranReq的有向弧,当令牌进入库所TranReq,则来自面向服务软件的服务请求结束网络传输;
依次创建变迁Arrive和库所Queuex,并分别添加从库所TranReq到变迁Arrive和从变迁Arrive到库所Queuex的有向弧,当令牌进入库所Queue,来自面向服务软件的服务请求进入排队状态;
(2)建模外部负载的网络传输和排队;
与来自面向服务软件的服务请求的网络传输和排队类似,依次创建库所EReq、变迁ETramsmit、库所ETranReq、变迁EArrive,并分别添加从库所EReq到变迁ETramsmit、从变迁ETramsmit到库所ETranReq、从库所ETranReq到变迁EArrive和从变迁EArrive到库所Queuex的有向弧,当令牌进入库所Queuex,则外部负载进入排队状态;
(3)服务的处理;
依次创建变迁Start、库所Busy、变迁Stop、库所Output,并分别添加从库所Queuex到变迁Start、从变迁Start到库所Busy、从库所Busy到变迁Stop和从变迁Stop到库所Output的有向弧,当令牌进入库所Output,服务处理结束。
作为优选,步骤4中所述的工作负载开始模型,其构建过程如下:(1)创建库所Next,初始状态时令牌数置为1;令牌建模了对面向服务软件的请求;(2)创建变迁Start,添加Next库所和Start变迁之间的双向有向弧,使得当Start变迁实施时,建模面向服务软件请求的令牌同时被销毁,而隔一段时间后仍能在Next库所中产生;添加一条从Start变迁到面向服务软件中第一个服务对应服务模型的输入库所SrvReq1;(3)创建融合库所Init,初始状态时令牌置为“1`1”,从而为对面向服务的请求添加一个从1开始的整形序号,并添加Start变迁和Init库所之间的双向有向弧;
步骤4中所述的工作负载结束模型,其构建过程如下:(1)创建变迁End,添加从面向服务软件最后一个服务对应服务模型的输出库所SrvEndn到变迁End的有向弧;(2)创建库所End,添加一条从变迁End到库所End的有向弧;
步骤4中所述的外部负载开始模型和外部负载结束模型,分别与工作负载开始模型和工作负载结束模型结构基本一样,区别仅在于:(1)外部负载开始模型中从ERequest变迁开始的有向弧指向服务内部模型中的库所EReq;(2)外部负载结束模型中指向End变迁的有向弧来自服务内部模型中的库所Output。
本发明一种基于CPN的面向服务软件性能仿真分析方法,其特征在于,包括以下步骤:
步骤1:对负载模型中的参数进行配置;参数包括初始状态下各库所中的令牌个数、工作负载、外部负载、各服务的执行时间。
步骤2:使用CPN Tools中的仿真工具Simulation设置仿真执行的步数或时间;使用监视工具Monitoring创建监视器,对面向服务软件以及其中单个服务的性能进行仿真;
步骤3:改变面向服务软件性能模型中工作负载的大小,仿真分析不同工作负载下面向服务软件的性能;改变面向服务软件性能模型中外部负载的大小,仿真分析不同外部负载下面向服务软件和单个服务的性能。
作为优选,步骤1中所述的参数包括初始状态下各库所中的令牌个数、工作负载、外部负载、各服务的执行时间。
相对于现有技术,本发明的有益效果是:(1)层次着色Petri网很适合建模面向服务软件这种大型复杂系统的性能;(2)CPN Tools工具提供简单、快捷的建模平台并支持用户根据需要灵活地设置监视器从而计算性能指标的估算值。
附图说明
附图1:本发明实施例的基于CPN的面向服务软件性能模型元素的元模型;
附图2:本发明实施例的面向服务软件性能模型中的服务模型;
附图3:本发明实施例的面向服务软件中的基本交互关系模型;
附图4:本发明实施例的面向服务软件性能模型中的工作负载模型;
附图5:本发明实施例的单个服务内部结构模型中的外部负载模型;
附图6:本发明实施例的面向服务软件的单个服务性能模型;
附图7:本发明实施例的含有六个服务的面向服务软件性能模型的案例;
附图8:本发明实施例的在附图7中Srv1替代变迁对应的单个服务性能模型。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
基于CPN的面向服务软件性能模型是利用CPN对面向服务软件中的服务、服务之间的交互关系进行建模,并给予了性能方面的考虑,加入了负载模型对面向服务软件的工作负载和软件中服务外部负载等参数进行设置,使得可以对面向服务软件的性能进行仿真分析。
基于CPN的面向服务软件性能模型由两个部分组成:软件模型和负载模型。软件模型由服务模型和交互模型组成。服务模型采用CPN描述,它是由输入库所、替代变迁和输出库所连接而成。库所中的令牌建模服务的请求,令牌从输入库所经替代变迁后进入输出库所的整个过程表示了服务请求的处理过程。其中,替代变迁用于抽象地建模服务请求的处理动作,而每个替代变迁分别对应一个服务内部结构模型,它是服务内部结构的详细展开视图,它详细地考虑了每个服务的处理过程,即服务请求的网络传输、排队和服务的执行;交互模型是通过设计CPN的变迁触发机制来描述服务之间的交互关系。负载模型分为工作负载模型和外部负载模型,工作负载模型建模来自面向服务软件的负载,包括工作负载开始模型和工作负载结束模型,分别位于服务处理流程的首尾。在软件模型中加入工作负载模型,就可以对面向服务软件的性能进行仿真,因此我们将其称之为面向服务软件的性能模型;外部负载模型建模来自其它软件系统的负载,包括外部负载开始模型和外部负载结束模型,在服务内部结构模型中加入外部负载模型,就可以对面向服务软件中单个服务的性能进行仿真,因此我们将其称之为面向服务软件的单个服务性能模型。
根据上述定义,附图1给出了基于CPN的面向服务软件性能模型的元模型,包括软件模型和负载模型;软件模型包括服务模型和交互模型;负载模型包括工作负载模型和外部负载模型;服务模型包括服务内部结构模型;工作负载模型包括工作负载开始模型、工作负载结束模型;外部负载模型包括外部负载开始模型、外部负载结束模型。从附图1中可以看出,基于CPN的面向服务软件的性能模型建立在传统的CPN对面向服务软件建模基础之上,新增加了服务内部结构模型以及负载模型,使得可以对面向服务软件的性能进行建模。
本发明提供的一种基于CPN的面向服务软件性能建模方法,面向服务软件S由n个服务s1、s2、…、sn-1、sn通过一个业务流程p组合而成,则面向服务软件性能模型的建模步骤为:
步骤1:将S中服务s1、s2、…、sn-1、sn分别对应一个服务模型,得到n个服务模型;
服务模型采用CPN进行描述,它由输入库所、替代变迁和输出库所用有向弧连接而成。对于面向服务软件中的服务实体,将其映射为服务实体,也即服务模型的构建过程如下:(1)创建一个库所SrvReqx(输入库所),用于存放请求该服务的令牌(其中,x表示1到n之间的一个整数,与第n个服务对应,下同);(2)创建一个替代变迁Srvx,用于抽象服务的处理过程,其展开后的视图为Servicex;(3)创建一条有向弧从输入库所指向替代变迁;(4)创建一个库所SrvEndx(输出库所),当建模服务请求的令牌经替代变迁进入输出库所时,表示该服务的处理过程结束;(5)创建一条有向弧从替代变迁指向输出库所。
附图2中的CPN结构是服务模型,用来建模面向服务软件中的服务。SrvReqx库所中的令牌建模服务请求。双线矩形框表示替代变迁,Srvx替代变迁关联一个展示替代变迁行为更详细视图的名为Servicex的子层CPN。服务处理完成后,建模服务请求的令牌进入SrvEndx库所,从而进入下一个服务的请求阶段或结束面向服务软件的业务处理流程。
通过设计CPN的变迁触发机制来描述服务之间的交互关系,得到5种基本交互结构类型,按照上述5种基本交互结构类型的CPN结构,构造面向服务软件的交互模型,将交互模型与步骤1中的服务模型组合起来,便得到了面向服务软件的软件模型;
本发明中定义的交互关系有:顺序关系(Sequence)、选择关系(OR-split)、并发关系(AND-split)、与连接关系(AND-join)和或连接关系(OR-join);附图3(a)-附图3(e)中粗线条部分所示的CPN结构分别用于建模上述5种基本交互关系。
以下用3个服务实体,分别为服务1、服务2、服务3来阐述5种基本交互结构类型的构建过程:
如图3(a)所示,服务1和服务2之间的顺序关系对应的顺序交互关系模型的构建过程为:(1)创建一个变迁;(2)创建一条有向弧从服务1对应服务模型的输出库所SrvEnd1指向变迁;(3)创建一条有向弧从变迁指向服务2对应服务模型的输入库所SrvReq2。
如图3(b)所示,服务1执行完后,选择执行服务2和服务3,对应的选择交互关系模型的构建过程为:(1)创建一个变迁,创建两条有向弧,分别从服务1对应服务模型的输出库所SrvEnd1指向变迁、从变迁指向服务2对应服务模型的输入库所SrvReq2;(2)创建一个变迁,创建两条有向弧,分别从服务1对应服务模型的输出库所SrvEnd1指向变迁、从变迁指向服务3对应服务模型的输入库所SrvReq3;
如图3(c)所示,服务1执行完后,并发执行服务2和服务3,对应的并发交互关系模型的构建过程为:(1)创建一个变迁;(2)创建三条有向弧,分别从服务1对应服务模型的输出库所SrvEnd1指向变迁、从变迁指向服务2对应服务模型的输入库所SrvReq2、从变迁指向服务3对应服务模型的输入库所SrvReq3;
如图3(d)所示,服务1或服务2中的任何一个执行完后,执行服务3,对应的或连接交互关系模型的构建过程为:(1)创建一个变迁,创建两条有向弧,分别从服务1对应服务模型的输出库所SrvEnd1指向变迁、从变迁指向服务3对应服务模型的输入库所SrvReq3;(2)创建一个变迁,创建两条有向弧,分别从服务2对应服务模型的输出库所SrvEnd1指向变迁、从变迁指向服务3对应服务模型的输入库所SrvReq3;
如图3(e)所示,服务1和服务2都执行完后,执行服务3,对应的与连接交互关系模型的构建过程为:(1)创建一个变迁;(2)创建三条有向弧,分别从服务1对应服务模型的输出库所SrvEnd1指向变迁、从服务2对应服务模型的输出库所SrvEnd2指向变迁、从变迁指向服务3对应服务模型的输入库所SrvReq3、从变迁指向服务3对应服务模型的输入库所SrvReq3;
有了步骤1中的服务模型和步骤2中的交互模型,就能够得到软件模型,如附图7中细线条部分所示,其构建过程如下:(1)将面向服务软件中的每个服务实体映射为一个服务模型;(2)将服务实体之间的交互关系映射为交互模型,通过交互模型把服务模型连接起来。
步骤3:本发明将服务的内部结构统一建模为一种服务内部结构模型,这样便于考虑单个服务的性能和整个面向服务软件的性能。于是,将步骤2中得到的软件模型中的n个服务模型进行建模,得到n个服务内部结构模型;
服务内部结构模型是服务模型的详细展开视图,每个服务模型对应一个服务内部结构模型。单个服务内部结构模型如附图6中的细线条部分所示,它用来建模服务请求的网络传输、排队以及服务的执行。
步骤3中所述的服务内部结构模型是服务模型的详细展开视图,每个服务模型对应一个服务内部结构模型;单个服务内部结构模型Servicex对应于替代变迁Srvx展开后的详细视图,SrvReqx库所和SrvEndx库所由CPN Tools工具自动创建;其具体创建过程如下:
(1)建模来自面向服务软件的服务请求的网络传输和排队;
依次创建变迁Request和库所Transmit,并分别添加从库所SrvReqx到变迁Request和从变迁Request到库所Transmit的有向弧,当令牌进入库所Transmit,来自面向服务软件的服务请求进入网络传输状态;
依次创建变迁Transmit和库所TranReq,并分别添加从库所Transmit到变迁Transmit和从变迁Transmit到库所TranReq的有向弧,当令牌进入库所TranReq,则来自面向服务软件的服务请求结束网络传输;
依次创建变迁Arrive和库所Queuex,并分别添加从库所TranReq到变迁Arrive和从变迁Arrive到库所Queuex的有向弧,当令牌进入库所Queue,来自面向服务软件的服务请求进入排队状态;
(2)建模外部负载的网络传输和排队;
与来自面向服务软件的服务请求的网络传输和排队类似,依次创建库所EReq、变迁ETramsmit、库所ETranReq、变迁EArrive,并分别添加从库所EReq到变迁ETramsmit、从变迁ETramsmit到库所ETranReq、从库所ETranReq到变迁EArrive和从变迁EArrive到库所Queuex的有向弧,当令牌进入库所Queuex,则外部负载进入排队状态;
(3)服务的处理;
依次创建变迁Start、库所Busy、变迁Stop、库所Output,并分别添加从库所Queuex到变迁Start、从变迁Start到库所Busy、从库所Busy到变迁Stop和从变迁Stop到库所Output的有向弧,当令牌进入库所Output,服务处理结束。
端口库所SrvReqx中的令牌建模来自面向服务软件的服务请求,从主模块关联的槽库所SrvReqx中获取。时间变迁Transmit建模来自面向服务软件的服务请求的网络传输。经过一段时间的网络传输后,服务请求到达服务节点并排队。Queuex库所建模服务请求的排队队列。
当服务请求以先到先服务的方式接受服务节点的处理后,服务开始执行,用时间变迁Start表示。服务的执行时间服从指数分布,平均执行时间etm可根据实际情况设置。库所Idle建模服务节点的并发处理能力,只有当Idle中剩余令牌时,Start变迁才能实施。
时间变迁ETransmit建模外部负载的网络传输。外部负载也在Queuex库所中排队。服务执行完成后Stop变迁实施,将来自面向服务软件的服务请求对应的令牌输出到库所Output,从而结束该服务的处理过程;但对于外部负载,输出到Output库所的为empty,也即将建模该服务外部负载的令牌就此销毁,不参与整个面向服务软件的业务处理流程。
步骤4:构建工作负载开始模型、工作负载结束模型以及外部负载开始模型、外部负载结束模型;在软件模型的业务流程起始端和结束端分别加上工作负载开始模型和工作负载结束模型;在服务内部结构模型的处理流程起始端和结束端分别加上外部负载开始模型和外部负载结束模型,便得到了面向服务软件中单个服务的性能模型;从而得到基于CPN的面向服务软件性能模型;
如图4中workload_start所指的粗线条部分所示的CPN结构是工作负载开始模型,其构建过程如下:(1)创建库所Next,初始状态时令牌数置为1;令牌建模了对面向服务软件的请求;(2)创建变迁Start,添加Next库所和Start变迁之间的双向有向弧,使得当Start变迁实施时,建模面向服务软件请求的令牌同时被销毁,而隔一段时间后仍能在Next库所中产生;添加一条从Start变迁到面向服务软件中第一个服务对应服务模型的输入库所SrvReq1;(3)创建融合库所Init,初始状态时令牌置为“1`1”(该描述是正确的吗?),从而为对面向服务的请求添加一个从1开始的整形序号,并添加Start变迁和Init库所之间的双向有向弧。
如图4中workload_end所指的粗线条部分所示的CPN结构是工作负载结束模型,其构建过程如下:(1)创建变迁End,添加从面向服务软件最后一个服务对应服务模型的输出库所SrvEndn到变迁End的有向弧;(2)创建库所End,添加一条从变迁End到库所End的有向弧。
附图5中所示的外部负载开始模型和外部负载结束模型与工作负载开始模型和工作负载结束模型结构基本一样,区别仅在于:(1)外部负载开始模型中从ERequest变迁开始的有向弧指向服务内部模型中的库所EReq;(2)外部负载结束模型中指向End变迁的有向弧来自服务内部模型中的库所Output。
附图4中粗线条部分所示的CPN结构是工作负载模型,图中的workload_start和workload_end分别为工作负载开始模型和工作负载结束模型。工作负载开始模型用于来自面向服务软件负载的初始化和配置。Next库所在模型的初始状态时含有一个建模面向服务软件请求的令牌。令牌在Start变迁实施后销毁,并每隔一段时间重新产生,以保证建模工作负载的令牌可以不断生成。本发明中时间间隔服从指数分布,平均时间间隔interval反映了工作负载的大小,可根据需要进行设置。融合库所Init为该令牌产生一个递增的整数序列号,所有的融合库所Init总是共享相同的标记。弧表达式中的intTime()获取当前模型时间作为面向服务软件请求时间并将其保存在变量req中。工作负载结束模型用来建模面向服务软件业务处理流程的结束。当面向服务软件的业务处理流程结束时,End变迁实施,End库所收集输出的令牌。
服务内部结构模型中的外部负载模型如附图5中的粗线条部分的CPN结构所示。下面一行粗线条部分的CPN结构表示外部负载开始模型,用于该服务来自其它软件系统负载的初始化和配置。Externalx库所在模型的初始状态时含有一个令牌,该令牌建模来自其它软件系统的服务请求。令牌在ERequest变迁实施后销毁,并每隔一段时间重新产生,以保证建模外部负载的令牌可以不断产生。本发明中时间间隔服从指数分布,平均时间间隔eInterval反映了外部负载的大小,可根据需要自行设置。融合库所Init为该令牌产生一个递增的整数序列号,所有的融合库所Init总是共享相同的标记。弧表达式中的intTime()获取当前模型时间作为该服务来自其它软件系统的请求时间并将其保存在变量sreq中。上面一行粗线条部分的CPN结构表示外部负载结束模型,需要注意的是,对于外部负载,输出到SrvEndx库所的为empty,也即将建模该服务外部负载的令牌就此销毁,不参与整个面向服务软件的业务处理流程。
为了更好的说明本发明的方法,对某信息服务应用系统的运行管理部分进行建模。这里只涉及用到的6个服务实体,分别为服务1、服务2、服务3,服务4以及并发执行的服务5和服务6。面向服务软件性能模型的构建如附图7所示。将6个服务实体分别对应为6个服务模型,根据服务实体之间的交互关系将6个服务模型连接起来(也即在有交互关系的两个服务对应的服务模型之间加上相应的基本交互结构模型),并在服务1的服务模型之前加上工作负载负载开始模型,服务5和服务6对应的服务模型用与连接交互结构模型连接之后加上工作负载结束模型;附图7所示的面向服务软件的性能模型中替代变迁Srv1对应的单个服务性能模型如附图8所示。其它替代变迁对应的服务内部结构模型加上外部负载模型后与附图8基本相同(标识服务的字符串常量,如标识服务1的是“SID1”,以及部分库所名存在微小差异),这里不再赘述。由此,就得到由6个服务组成的面向服务软件性能模型。
本发明提供的一种基于CPN的面向服务软件性能仿真分析方法,包括以下步骤:
步骤1:对负载模型中的参数进行配置;参数包括初始状态下各库所中的令牌个数、工作负载、外部负载、各服务的执行时间;
步骤2:使用CPN Tools中的仿真工具Simulation设置仿真执行的步数或时间;使用监视工具Monitoring创建监视器,对面向服务软件以及其中单个服务的性能进行仿真;
步骤3:改变面向服务软件性能模型中工作负载的大小,仿真分析不同工作负载下面向服务软件的性能;改变面向服务软件性能模型中外部负载的大小,仿真分析不同外部负载下面向服务软件和单个服务的性能。
模型的初始状态下,附图4中只有Next库所含有一个令牌,该令牌建模来一个来自面向服务软件的服务请求;附图4中的interval用于设置面向服务软件工作负载的大小;附图6中的eInterval用于设置单个服务的外部负载的大小;附图6中的etm用于设置单个服务执行时间的大小。
为了在仿真的过程中获取与系统性能相关的数据,使用监视工具Monitoring创建监视器。每个监视器对应四个监视器函数:Predicate、Observer、Init和Stop。将监视器定义在一组库所或变迁上,当与监视器相关联的变迁中的任意一个实施时,Predicate函数返回真,此时,Observer函数从模型的状态和所发生的变迁中采集数据。根据需要编写Observer函数中的程序块来返回观测数据。观测数据对应系统的某个性能指标(响应时间、吞吐量等)或是与性能指标密切相关的量。还可以使用Init函数和Stop函数从系统的初始状态和结束状态中采集数据。
在性能仿真中关注的性能指标有:面向服务软件的平均响应时间、吞吐量以及服务的平均响应时间、吞吐量、平均延迟时间、平均队列长度。针对本发明用到的案例,为获取所需的性能指标,设置了如表1所示的监视器。
表1 监视器设置
监视器名称 | 注册的库所/变迁 | 观测数据 |
ResponseTime | 附图5中的End变迁 | 面向服务软件的平均响应时间 |
ExecuteCount | 附图5中的End变迁 | 面向服务软件的执行次数 |
Throughput | 无 | 面向服务软件的吞吐量 |
ResponseTime0 | 附图7中的End变迁 | 服务0的平均响应时间 |
ExecuteCount0 | 附图7中的End变迁 | 服务0的执行次数 |
Throughput0 | 无 | 服务0的吞吐量 |
Queue0_length | 附图7中的Queue0库所 | 服务0的队列长度 |
Queue0_delay | 附图7中的Start变迁 | 服务0的队列延迟 |
实施多次性能仿真,在每一次仿真中,重新设置附图4中interval的大小,即可研究不同的工作负载对面向服务软件性能的影响;
实施多次性能仿真,在每一次仿真中,重新设置附图6中eInterval的大小,也即通过改变某个服务外部负载的大小,研究不同的外部负载对面向服务软件和该服务性能的影响。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
Claims (8)
1.一种基于CPN的面向服务软件性能建模方法,其特征在于:面向服务软件S由n个服务s1、s2、…、sn-1、sn通过一个业务流程p组合而成,则面向服务软件性能模型的建模步骤为:
步骤1:将S中服务s1、s2、…、sn-1、sn分别对应一个服务模型,得到n个服务模型;
步骤2:通过设计CPN的变迁触发机制来描述服务之间的交互关系,得到5种基本交互结构类型,按照上述5种基本交互结构类型的CPN结构,构造面向服务软件的交互模型,将交互模型与步骤1中的服务模型组合起来,便得到了面向服务软件的软件模型;
步骤3:将步骤1中得到的n个服务模型的内部结构使用CPN描述,得到n个服务内部结构模型;
步骤4:构建外部负载开始模型、外部负载结束模型,在服务内部结构模型的处理流程起始端和结束端分别加上外部负载开始模型和外部负载结束模型,便得到面向服务软件中单个服务的性能模型,它包括服务模型和负载模型;
步骤5:构建工作负载开始模型、工作负载结束模型,在软件模型的业务流程起始端和结束端分别加上工作负载开始模型和工作负载结束模型,便得到面向服务软件的性能模型,它包括软件模型和负载模型;所述的软件模型包括服务模型和交互模型;所述的负载模型包括工作负载模型和外部负载模型;所述的服务模型都有一个与之对应的服务内部结构模型;所述的工作负载模型包括工作负载开始模型、工作负载结束模型;所述的外部负载模型包括外部负载开始模型、外部负载结束模型。
2.根据权利要求1所述的基于CPN的面向服务软件性能建模方法,其特征在于:步骤1中所述的服务模型采用CPN进行描述,它由输入库所、替代变迁和输出库所连接而成;起具体构建过程包括以下子步骤:
步骤1.1:创建一个输入库所SrvReqx,用于存放请求该服务的令牌;其中,x表示1到n之间的一个整数,与第n个服务对应;
步骤1.2:创建一个替代变迁Srvx,用于抽象服务的处理过程,其展开后的内部结构模型视图为Servicex;
步骤1.3:创建一条有向弧从输入库所SrvReqx指向替代变迁Srvx;
步骤1.4:创建一个输出库所SrvEndx,当服务请求的令牌经替代变迁Srvx进入输出库所SrvReqx时,表示该服务的处理过程结束;
步骤1.5:创建一条有向弧从替代变迁Srvx指向输出库所SrvEndx。
3.根据权利要求1所述的基于CPN的面向服务软件性能建模方法,其特征在于:步骤2中所述的交互关系包括顺序关系(Sequence)、选择关系(OR-split)、并发关系(AND-split)、与连接关系(AND-join)和或连接关系(OR-join);
以下用3个服务实体,分别为服务1、服务2、服务3来阐述5种基本交互结构类型的构建过程:
服务1和服务2之间的顺序关系对应的顺序交互关系模型的构建过程为:(1)创建一个变迁;(2)创建一条有向弧从服务1对应服务模型的输出库所SrvEnd1指向变迁;(3)创建一条有向弧从变迁指向服务2对应服务模型的输入库所SrvReq2;
服务1执行完后,选择执行服务2和服务3,对应的选择交互关系模型的构建过程为:(1)创建一个变迁,创建两条有向弧,分别从服务1对应服务模型的输出库所SrvEnd1指向变迁、从变迁指向服务2对应服务模型的输入库所SrvReq2;(2)创建一个变迁,创建两条有向弧,分别从服务1对应服务模型的输出库所SrvEnd1指向变迁、从变迁指向服务3对应服务模型的输入库所SrvReq3;
服务1执行完后,并发执行服务2和服务3,对应的并发交互关系模型的构建过程为:(1)创建一个变迁;(2)创建三条有向弧,分别从服务1对应服务模型的输出库所SrvEnd1指向变迁、从变迁指向服务2对应服务模型的输入库所SrvReq2、从变迁指向服务3对应服务模型的输入库所SrvReq3;
服务1或服务2中的任何一个执行完后,执行服务3,对应的或连接交互关系模型的构建过程为:(1)创建一个变迁,创建两条有向弧,分别从服务1对应服务模型的输出库所SrvEnd1指向变迁、从变迁指向服务3对应服务模型的输入库所SrvReq3;(2)创建一个变迁,创建两条有向弧,分别从服务2对应服务模型的输出库所SrvEnd1指向变迁、从变迁指向服务3对应服务模型的输入库所SrvReq3;
服务1和服务2都执行完后,执行服务3,对应的与连接交互关系模型的构建过程为:(1)创建一个变迁;(2)创建三条有向弧,分别从服务1对应服务模型的输出库所SrvEnd1指向变迁、从服务2对应服务模型的输出库所SrvEnd2指向变迁、从变迁指向服务3对应服务模型的输入库所SrvReq3、从变迁指向服务3对应服务模型的输入库所SrvReq3。
4.根据权利要求3所述的基于CPN的面向服务软件性能建模方法,其特征在于:步骤2中所述的软件模型,其具体构建过程包括以下子步骤:
步骤2.1:将面向服务软件中的每个服务实体映射为一个服务模型;
步骤2.2:将服务实体之间的交互关系按照5种基本交互结构类型进行建模。
5.根据权利要求1所述的基于CPN的面向服务软件性能建模方法,其特征在于:步骤3中所述的服务内部结构模型是服务模型的详细展开视图,每个服务模型对应一个服务内部结构模型;单个服务内部结构模型Servicex对应于替代变迁Srvx展开后的详细视图,SrvReqx库所和SrvEndx库所由CPN Tools工具自动创建;其具体创建过程如下:
(1)建模来自面向服务软件的服务请求的网络传输和排队;
依次创建变迁Request和库所Transmit,并分别添加从库所SrvReqx到变迁Request和从变迁Request到库所Transmit的有向弧,当令牌进入库所Transmit,来自面向服务软件的服务请求进入网络传输状态;
依次创建变迁Transmit和库所TranReq,并分别添加从库所Transmit到变迁Transmit和从变迁Transmit到库所TranReq的有向弧,当令牌进入库所TranReq,则来自面向服务软件的服务请求结束网络传输;
依次创建变迁Arrive和库所Queuex,并分别添加从库所TranReq到变迁Arrive和从变迁Arrive到库所Queuex的有向弧,当令牌进入库所Queue,来自面向服务软件的服务请求进入排队状态;
(2)建模外部负载的网络传输和排队;
与来自面向服务软件的服务请求的网络传输和排队类似,依次创建库所EReq、变迁ETramsmit、库所ETranReq、变迁EArrive,并分别添加从库所EReq到变迁ETramsmit、从变迁ETramsmit到库所ETranReq、从库所ETranReq到变迁EArrive和从变迁EArrive到库所Queuex的有向弧,当令牌进入库所Queuex,则外部负载进入排队状态;
(3)服务的处理;
依次创建变迁Start、库所Busy、变迁Stop、库所Output,并分别添加从库所Queuex到变迁Start、从变迁Start到库所Busy、从库所Busy到变迁Stop和从变迁Stop到库所Output的有向弧,当令牌进入库所Output,服务处理结束。
6.根据权利要求1所述的基于CPN的面向服务软件性能建模方法,其特征在于:步骤4中所述的工作负载开始模型,其构建过程如下:(1)创建库所Next,初始状态时令牌数置为1;令牌建模了对面向服务软件的请求;(2)创建变迁Start,添加Next库所和Start变迁之间的双向有向弧,使得当Start变迁实施时,建模面向服务软件请求的令牌同时被销毁,而隔一段时间后仍能在Next库所中产生;添加一条从Start变迁到面向服务软件中第一个服务对应服务模型的输入库所SrvReq1;(3)创建融合库所Init,初始状态时令牌置为“1`1”,从而为对面向服务的请求添加一个从1开始的整形序号,并添加Start变迁和Init库所之间的双向有向弧;
步骤4中所述的工作负载结束模型,其构建过程如下:(1)创建变迁End,添加从面向服务软件最后一个服务对应服务模型的输出库所SrvEndn到变迁End的有向弧;(2)创建库所End,添加一条从变迁End到库所End的有向弧;
步骤4中所述的外部负载开始模型和外部负载结束模型,分别与工作负载开始模型和工作负载结束模型结构基本一样,区别仅在于:(1)外部负载开始模型中从ERequest变迁开始的有向弧指向服务内部模型中的库所EReq;(2)外部负载结束模型中指向End变迁的有向弧来自服务内部模型中的库所Output。
7.一种基于CPN的面向服务软件性能仿真分析方法,其特征在于,包括以下步骤:
步骤1:对负载模型中的参数进行配置;
步骤2:使用CPN Tools中的仿真工具Simulation设置仿真执行的步数或时间;使用监视工具Monitoring创建监视器,对面向服务软件以及其中单个服务的性能进行仿真;
步骤3:改变面向服务软件性能模型中工作负载的大小,仿真分析不同工作负载下面向服务软件的性能;改变面向服务软件性能模型中外部负载的大小,仿真分析不同外部负载下面向服务软件和单个服务的性能。
8.根据权利要求7所述的基于CPN的面向服务软件性能仿真分析方法,其特征在于:步骤1中所述的参数包括初始状态下各库所中的令牌个数、工作负载、外部负载、各服务的执行时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510389946.6A CN105022870B (zh) | 2015-07-06 | 2015-07-06 | 一种基于cpn的面向服务软件性能建模与仿真分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510389946.6A CN105022870B (zh) | 2015-07-06 | 2015-07-06 | 一种基于cpn的面向服务软件性能建模与仿真分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105022870A true CN105022870A (zh) | 2015-11-04 |
CN105022870B CN105022870B (zh) | 2017-11-28 |
Family
ID=54412838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510389946.6A Expired - Fee Related CN105022870B (zh) | 2015-07-06 | 2015-07-06 | 一种基于cpn的面向服务软件性能建模与仿真分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105022870B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106997411A (zh) * | 2017-03-22 | 2017-08-01 | 中国电子科技集团公司第二十八研究所 | 基于着色Petri网能力使命线程形式描述与验证方法 |
CN108829956A (zh) * | 2018-06-01 | 2018-11-16 | 北京航空航天大学 | 一种基于有色广义随机Petri网的IT架构服务可靠性建模方法 |
CN107229789B (zh) * | 2017-05-25 | 2020-06-05 | 东北大学 | 基于hstpn模型的混杂系统建模仿真平台及仿真方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5257363A (en) * | 1990-04-09 | 1993-10-26 | Meta Software Corporation | Computer-aided generation of programs modelling complex systems using colored petri nets |
CN102708243A (zh) * | 2012-05-09 | 2012-10-03 | 天津理工大学 | 基于分层有色Petri网(HCPN)的炼铁系统物流能耗模型的建模方法 |
CN103902282A (zh) * | 2014-02-28 | 2014-07-02 | 中标软件有限公司 | Web服务组合到有色Petri网的模型转化方法 |
-
2015
- 2015-07-06 CN CN201510389946.6A patent/CN105022870B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5257363A (en) * | 1990-04-09 | 1993-10-26 | Meta Software Corporation | Computer-aided generation of programs modelling complex systems using colored petri nets |
CN102708243A (zh) * | 2012-05-09 | 2012-10-03 | 天津理工大学 | 基于分层有色Petri网(HCPN)的炼铁系统物流能耗模型的建模方法 |
CN103902282A (zh) * | 2014-02-28 | 2014-07-02 | 中标软件有限公司 | Web服务组合到有色Petri网的模型转化方法 |
Non-Patent Citations (2)
Title |
---|
朱连章等: ""基于CPN Tools的性能评价仿真研究"", 《微计算机应用》 * |
顾军等: ""基于排队Petri网的服务系统性能建模与分析方法"", 《计算机学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106997411A (zh) * | 2017-03-22 | 2017-08-01 | 中国电子科技集团公司第二十八研究所 | 基于着色Petri网能力使命线程形式描述与验证方法 |
CN106997411B (zh) * | 2017-03-22 | 2020-09-29 | 中国电子科技集团公司第二十八研究所 | 基于着色Petri网能力使命线程形式描述与验证方法 |
CN107229789B (zh) * | 2017-05-25 | 2020-06-05 | 东北大学 | 基于hstpn模型的混杂系统建模仿真平台及仿真方法 |
CN108829956A (zh) * | 2018-06-01 | 2018-11-16 | 北京航空航天大学 | 一种基于有色广义随机Petri网的IT架构服务可靠性建模方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105022870B (zh) | 2017-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Heinrich et al. | Integrating business process simulation and information system simulation for performance prediction | |
CN107122243B (zh) | 用于cfd仿真计算的异构集群系统及计算cfd任务的方法 | |
Verma et al. | Two sides of a coin: Optimizing the schedule of mapreduce jobs to minimize their makespan and improve cluster performance | |
CN101382968B (zh) | 一种先进综合式航空电子仿真系统及其仿真方法 | |
Gehlot et al. | An introduction to systems modeling and simulation with colored petri nets | |
CN102176723A (zh) | 一种支持制造资源和能力按需使用和动态协同的制造云系统 | |
CN103617067A (zh) | 一种基于云计算的电力软件仿真系统 | |
CN102780583B (zh) | 物联网业务描述、组合和服务质量评估的方法 | |
Shakkottai et al. | Evolution of the internet as-level ecosystem | |
Zhou et al. | A survey on network calculus tools for network infrastructure in real-time systems | |
CN105022870A (zh) | 一种基于cpn的面向服务软件性能建模与仿真分析方法 | |
Yang et al. | A design flow for building automation and control systems | |
O’Donovan et al. | Simulating design processes to assist design process planning | |
CN112948353A (zh) | 一种应用于DAstudio的数据分析方法、系统及存储介质 | |
Fu et al. | Modeling and performance analysis of product development process network | |
CN110007618B (zh) | 群智能建筑应用程序与仿真模型运行交互方法 | |
Hammers et al. | Governing the process chain of product development with an enhanced Quality Gate approach | |
CN1369983A (zh) | 波分复用光网络模拟方法 | |
Zhang et al. | Integrating web services technology to HLA-based multidisciplinary collaborative simulation system for complex product development | |
CN103105838A (zh) | 智能化物流电子选取系统及实现方法 | |
CN113656952B (zh) | 一种云边端计算环境的建模工具 | |
CN102890642A (zh) | 基于匹配矩阵的异构重构计算的性能分析方法 | |
Emadi et al. | Mapping annotated use case and sequence diagrams to a petri net notation for performance evaluation | |
Nägele et al. | Building Distributed Co-simulations using CoHLA | |
Shao et al. | A method for analyzing and predicting reliability of BPEL process |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171128 Termination date: 20180706 |