首页> 中国专利> 一种基于CPN的面向服务软件性能建模与仿真分析方法

一种基于CPN的面向服务软件性能建模与仿真分析方法

摘要

本发明公开了一种基于CPN的面向服务软件性能建模与仿真分析方法,面向服务软件性能模型包括软件模型和负载模型;软件模型包括服务模型和交互模型;负载模型包括工作负载模型和外部负载模型;每个服务模型都具有一个服务内部结构模型;工作负载模型包括工作负载开始模型、工作负载结束模型;外部负载模型包括外部负载开始模型、外部负载结束模型。仿真分析方法首先对面向服务软件负载模型中的参数进行配置,设置仿真执行的步数或时间;创建监视器,对面向服务软件以及其中单个服务的性能进行仿真。本发明实用性强、建模软件性能的效率高、仿真分析准确,适用于各种面向服务软件的性能建模与仿真分析。

著录项

  • 公开/公告号CN105022870A

    专利类型发明专利

  • 公开/公告日2015-11-04

    原文格式PDF

  • 申请/专利权人 武汉大学;

    申请/专利号CN201510389946.6

  • 申请日2015-07-06

  • 分类号G06F17/50(20060101);G06F9/455(20060101);

  • 代理机构武汉科皓知识产权代理事务所(特殊普通合伙);

  • 代理人薛玲

  • 地址 430072 湖北省武汉市武昌区珞珈山武汉大学

  • 入库时间 2023-12-18 11:38:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-28

    未缴年费专利权终止 IPC(主分类):G06F17/50 授权公告日:20171128 终止日期:20180706 申请日:20150706

    专利权的终止

  • 2017-11-28

    授权

    授权

  • 2015-12-02

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20150706

    实质审查的生效

  • 2015-11-04

    公开

    公开

说明书

技术领域

本发明属于软件性能分析技术领域,具体涉及一种针对面向服务软件的性能 提出了一种基于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的大小, 也即通过改变某个服务外部负载的大小,研究不同的外部负载对面向服务软件和 该服务性能的影响。

应当理解的是,本说明书未详细阐述的部分均属于现有技术。

应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是 对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不 脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发 明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号