一种OWL-S复杂进程的Petri网自动生成方法

文档序号:6537242阅读:113来源:国知局
一种OWL-S复杂进程的Petri网自动生成方法
【专利摘要】本发明公开了一种OWL-S复杂进程的Petri网自动生成方法。本方明提出的方法采用以输入、输出为核心的数据流为中心的策略,得到各原子进程的输入、输出关系,将这种数据流关系转换为Petri网中的库所/变迁关系,并最终得到复杂进程中的所有内部行为。采用本发明可以更加准确、高效地完成模型转换,并可采用成熟的Petri网分析技术分析OWL-S复杂进程的内部行为。
【专利说明】—种OWL-S复杂进程的Petri网自动生成方法
【技术领域】
[0001]本发明属于Web服务建模领域,具体涉及到一种OWL-S复杂进程的Petri网自动生成方法。
【背景技术】
[0002]面向服务的计算(SOC)成为了软件领域最热门的研究内容之一。SOC的核心理念是在交互的软件成分之间,构建松耦合的协同软件体系。SOC以Web服务作为基本组成成分,并采用了一系列标准化的协议进行交互。Web服务技术在刚刚兴起时,通过对原子服务进行灵活组合来快速构建业务流程相对简单的信息系统,取得了良好的效果;但随着复杂业务流程的日益增多,越来越多的功能丰富、内部逻辑复杂的大粒度服务开始出现在Web服务组合中;大粒度服务不仅包含原子服务中拥有的静态的语法和语义信息,例如服务的操作、输入、输出、消息等,而且也包含了内部控制流、数据流、交互协议、状态变迁等动态行为属性,服务内部拥有相对比较复杂且稳定的时序等逻辑关系;因此,在对大粒度服务进行描述、发现、组合以及验证时,需要区别于传统原子服务;OWL-S复杂进程模型可以精确地描述大粒度Web服务的内部行为,被广泛用于描述大粒度Web服务。
[0003]研究OWL-S复杂进程的Petri网建模方法,可以通过形式化模型清晰、准确地分析大粒度Web服务的内部行为。然而,大部分研究工作都采用手动方法建立OWL-S复杂进程的Petri网模型。虽然,当OWL-S复杂进程内部行为比较简单时,手动方式可以较准确地建立其Petri网模型;但是,当OWL-S复杂进程内部行为非常复杂时,通过手动方式建立OWL-S复杂进程的Petri网模型不具有可行性。

【发明内容】

[0004]本发明针对现有技术的不足,提供了一种OWL-S复杂进程的Petri网自动生成方法。
[0005]本发明方法的具体步骤是:
[0006]步骤(I).读入一个用OWL-S复杂进程模型描述的大粒度Web服务描述文件,该描述文件用〈process:Sequence〉表不 Sequence (顺序)结构,〈process:Split_Join>表示Split-Join(分支合并)结构,〈process:Split〉表示Split(分支)结构,〈process:Choice〉表不 Choice(选择)结构,〈process:Repeat_While> 与〈process:Repeat-Unti 1>表示循环结构,〈process:Perform〉标签表示原子进程,〈process:getDataFrom〉表示原子进程的输入。
[0007]步骤(2).解析OWL-S复杂进程的描述文件的结构,将该文件中控制结构以及控制结构中的原子进程为节点构造树结构,深度优先遍历该树结构,得到OWL-S复杂进程所包含的原子进程集合;解析得到OWL-S复杂进程的描述文件结构中由标签〈process: getDataFrom〉表不的原子进程的输入,若P为原子进程T1的输入,且P为原子进程T的输出,记为P.from = T, P.to = T1,遍历所有原子进程,得到所有原子进程的输入集人
口 O
[0008]步骤(3).解析步骤⑵中获得的树结构中的控制结构节点,若控制结构为Sequence结构,该控制结构中的原子进程为TiQ = 1,2,...1ihTi依次执行,原子进程Ti的输出为Pi,则P1.from = TijP1.to = Ti+1 ;若控制结构为Split-Join结构,该控制结构中的原子进程为Ti (i = 1,2,...n),Ti并发执行,原子进程Ti的输出为Pi,该控制结构的前驱原子进程为T,后继原子进程为T1,T的输出为P」(j = i),则P」, from = T, Pj.to = TijP1.from=TijP^to = T1 ;若控制结构为Choice,该控制结构中的原子进程为Ti (i = 1,2,...n),Ti选择执行,原子进程Ti的输出为P,该控制结构的前驱原子进程为T,后继原子进程为T1,则P.from = (T1 V T2 V...V Tj , P.to = T ;若控制结构为Split结构,该控制结构中的原子进程为Ti (i = 1,2,...n),Ti并发执行,原子进程Ti的输出为Pi,该控制结构的前驱原子进程为T,T的输出为Pj (j = i),则P」, from = T, Pj.to = Ti ;若控制结构为Itepeat-While或R印eat-Until,该控制结构中的原子进程为T,原子进程T的输出为P,该控制结构的后继原子进程为T1,则P.from = {T A Tj , P.to = T1 ;遍历所有控制结构节点,得到所有原子进程的输出集合。 [0009]去除步骤(2)中得到的输入集合与步骤(3)中得到的输出集合中重复的集合元素,构造新的输入输出集合,例如,输出集合中的元素P,P.from = T, P.to = T1,输入结合中的元素P1, P1.from = T, P1.to = T1,则P与P1应为同一元素,应去除重复元素P1O
[0010]步骤(4).将步骤(3)中的获得的原子进程集合中的元素映射为Petri网中的变迁元素,并构造变迁集合;将步骤(3)中获得的输入输出集合中的元素映射为Petri网中库所元素,构造库所集合。
[0011]步骤(5).以步骤⑷中得到的变迁集合为列向量,以步骤⑷中得到的库所集合为行向量构造Petri网的邻接矩阵A,并将矩阵元素初始化为O。
[0012]步骤(6).根据步骤(3)中得到的变迁元素与库所元素的关系,若变迁元素T的输入为库所元素P,则将A[T, P]置为-1,若变迁元素T的输出为库所元素P,则将A[T, P]置为
1
[0013]步骤(7).在展示界面中,将行向量中的元素图形化表示为圆圈标识的库所元素,将列向量中的元素图形化表示为矩形表示的变迁元素;若行向量中的元素P满足P.from =null,即P不为任何变迁的输出元素,则选取P作为起始节点,深度优先遍历步骤(6)中得到的Petri网邻接矩阵,遍历结束后,将得到OWL-S复杂进程对应的Petri网模型的图形化表不。
[0014]本发明所提供的OWL-S复杂进程的Petri网自动生成方法由一组功能模块组成,它们包括:配置文件读入模块、配置文件结构解析模块、Petri网邻接矩阵生成模块和Petri网绘制模块。
[0015]配置文件读入模块完成OWL-S复杂进程的描述文件的读入,该描述文件是由OffL-S API提供的工具生成的。
[0016]配置文件结构解析模块根据读入的OWL-S复杂进程的描述文件,解析得到OWL-S复杂进程中包含的原子进程以及控制结构,并得到所有原子进程的输入输出集合;根据转换规则删除输入输出集合中的重复元素,并将原子进程集合中的元素转换为Petri网中的变迁集合,将输入输出集合中的元素转换为Petri网中的库所集合。[0017]Petri网邻接矩阵生成模块以变迁集合为列向量,以库所集合为行向量,建立Petri网的邻接矩阵A,并将矩阵元素初始化为0 ;若变迁元素T的输入为库所元素P,则将A[T, P]置为-1,若变迁元素T的输出为库所元素P,则将A[T,P]置为I。
[0018]Petri网绘制模块采用深度优先遍历策略,遍历Petri网邻接矩阵,并将结果以图形化的形式表示。
[0019]本方明提出的方法采用以输入、输出为核心的数据流为中心的策略,得到各原子进程的输入、输出关系,将这种数据流关系转换为Petri网中的库所/变迁关系,并最终得到复杂进程中的所有内部行为。该方法采用以输入、输出为核心的数据流为中心的建模策略,可以清晰地体现OWL-S复杂进程内部的行为;在分析OWL-S复杂进程的内部行为过程中,与其他以控制流为中心的方法相比,采用本方法可以更加准确、高效地完成模型转换,并可采用成熟的Petri网分析技术分析OWL-S复杂进程的内部行为。
【专利附图】

【附图说明】
[0020]图10WL-S控制结构转换图;
[0021]图2数据流图;
[0022]图3转换流程图。
【具体实施方式】
[0023]本发明基于转换规则集完成OWL-S复杂进程到Petri网模型的转换实现;转化规则集中包含9条转换规则,规则集中的规则I至规则3完成OWL-S复杂进程元素与Petri网对应元素的映射,规则4-1至规则4-6描述OWL-S控制结构的映射规则,具体规则如下:
[0024]规则1:构成OWL-S复杂进程的原子进程的输入、输出均映射为Petri网的库所(Place);`
[0025]规则2:构成OWL-S复杂进程的原子进程均映射为Petri网的变迁(Transaction);
[0026]规则3:构成OWL-S复杂进程的原子进程的输入输出有序关系均映射为Petri网的弧(Acre);
[0027]规则4-1 (Sequence (T0, T1)结构映射规则):根据规则2,将Sequence结构中的原子进程U1映射为Petri网中的变迁TtlJ1 J0^T1顺序执行,〈list:first〉标签标识的原子进程Ttl运行结束之后应执行由<list:rest>标签标识的原子进程T1 JdTtl.next = T1, T1.next = null ;
[0028]Sequence结构的主体描述如下,其对应的Petri网结构如图1(a)所示;
[0029]
【权利要求】
1.一种OWL-S复杂进程的Petri网自动生成方法,其特征在于该方法的具体步骤是:步骤(1).读入一个用OWL-S复杂进程模型描述的大粒度Web服务描述文件,该描述文件用〈process: Sequence〉表不 Sequence 结构,〈process: Split_Join> 表不 Split-Join 结构,〈process:Split> 表不 Split 结构,〈process:Choice〉表不Choice 结构,〈process:Repeat-While> 与〈process:Repeat_Until> 表不循环结构,〈process:Perform〉标签表示原子进程,〈process:getDataFrom〉表示原子进程的输入;步骤(2).解析描述文件,以该描述文件中控制结构以及控制结构中的原子进程为节点构造树结构,深度优先遍历该树结构,得到OWL-S复杂进程所包含的原子进程集合;解析得到OWL-S复杂进程的描述文件结构中由标签〈process: getDataFrom)表示的原子进程的输入,若P为原子进程T1的输入,且P为原子进程T的输出,记为P.from = T, P.to = T1,遍历所有原子进程,得到所有原子进程的输入集合; 步骤(3).解析步骤(2)中获得的树结构中的控制结构节点,若控制结构为Sequence结构,该控制结构中的原子进程为Ti (i = 1,2,...n),Ti依次执行,原子进程Ti的输出为Pi,贝U P1.from = Ti, P1.to = Ti+1 ;若控制结构为Split-Join结构,该控制结构中的原子进程为TiQ = l,2,...n),Ti并发执行,原子进程Ti的输出SPi,该控制结构的前驱原子进程为T,后继原子进程为T1, T的输出为Pj (j = i),则P」, from = T, Pj.to = Ti, P1.from =TijP1.to = T1 ;若控制结构为Choice,该控制结构中的原子进程为TiQ = 1,2,...11),1\选择执行,原子进程Ti的输出为P,该控制结构的前驱原子进程为T,后继原子进程为T1,则P.from = (T1 V T2 V...V Tj , P.to = T ;若控制结构为Split结构,该控制结构中的原子进程为Ti (i = 1,2,...n),Ti并发执行,原子进程Ti的输出为Pi,该控制结构的前驱原子进程为T,T的输出为Pj (j = i),则P」, from = T, Pj.to = Ti ;若控制结构为Itepeat-While或R印eat-Until,该控制结构中的原子进程为T,原子进程T的输出为P,该控制结构的后继原子进程为T1,则P.from = { T A Tj , P.to = T1 ;遍历所有控制结构节点,得到所有原子进程的输出集合; 去除步骤(2)中得到的输入集合与步骤(3)中得到的输出集合中重复的集合元素,构造新的输入输出集合; 步骤(4).将步骤(2)中的获得的原子进程集合中的元素映射为Petri网中的变迁元素,并构造变迁集合;将步骤(3)中获得的输入输出集合中的元素映射为Petri网中库所元素,构造库所集合; 步骤(5).以步骤⑷中得到的变迁集合为列向量,以步骤⑷中得到的库所集合为行向量构造Petri网的邻接矩阵A,并将矩阵元素初始化为0 ; 步骤(6).根据步骤(3)中得到的变迁元素与库所元素的关系,若变迁元素T的输入为库所元素P,则将A[T, P]置为-1,若变迁元素T的输出为库所元素P,则将A[T,P]置为I ; 步骤(7).在展示界面中,将行向量中的元素图形化表示为圆圈标识的库所元素,将列向量中的元素图形化表示为矩形表示的变迁元素;若行向量中的元素P满足P.from =null,即P不为任何变迁的输出元素,则选取P作为起始节点,深度优先遍历步骤(6)中得到的Petri网邻接矩阵,遍历结束后,将得到OWL-S复杂进程对应的Petri网模型的图形化表不。
【文档编号】G06F9/44GK103761105SQ201410041086
【公开日】2014年4月30日 申请日期:2014年1月28日 优先权日:2014年1月28日
【发明者】俞东进, 刘志清, 杨威 申请人:杭州电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1