CN103902282B - Web服务组合到有色Petri网的模型转化方法 - Google Patents
Web服务组合到有色Petri网的模型转化方法 Download PDFInfo
- Publication number
- CN103902282B CN103902282B CN201410071950.3A CN201410071950A CN103902282B CN 103902282 B CN103902282 B CN 103902282B CN 201410071950 A CN201410071950 A CN 201410071950A CN 103902282 B CN103902282 B CN 103902282B
- Authority
- CN
- China
- Prior art keywords
- input
- output
- web service
- colored petri
- place
- 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.)
- Active
Links
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种Web服务组合到有色Petri网模型的转化方法,包括:形式化定义所获取的采用OWL‑S语言描述的Web服务组合和有色Petri网;基于有色Petri网,对形式化定义后的Web服务组合进行建模;对建模后的Web服务组合进行结构转化和数据流转化以获取相应的有色Petri网模型。本发明的转化方法,其中包括控制结构的绑定、参数绑定的转化,参数绑定主要针对基于资源描述框架模式的参数类型到CPN模型中颜色令牌的转化。相对于原来形式化转化方法,本发明更注重有色Petri模型与原Web服务组合的一致性,不仅支持结构化的转化方式,还支持参数类型检查、表达式映射的功能。
Description
技术领域
本发明涉及语义web服务及Petri网(Petri Net,PN)领域,尤其涉及一种Web服务组合到有色Pepri网(Colored Petri Net,CPN)的模型转化方法。
背景技术
服务组合是语义Web的重要组成部分,其功能是将简单的、分布式的单个服务编排为复杂的组合服务。此过程需要Web服务发现、Web服务执行、Web服务组合和可用性验证等步骤。
当前,基于服务的本体描述语言(Ontology Web Language For Service,OWL-S)提出了使用本体来描述特定服务,将服务的语义与实现联系在一起,并且提供了组合Web服务的语义,目标是完成服务自动发现、服务自动组合、服务自动调用等功能。
但是描述语言的表达能力有限,难以翻译成其他的基于流程的语言,因此需要形式化的方法对其进行建模、验证。从本质上来说,基于Web服务的体系结构属于分布式、并发的架构,目前的形式化模型中,Petri网具有强大的分布式模拟能力、成熟的数学验证模型,是目前验证服务组合可用性的主要方法。因此很多研究机构与个人致力于Web服务描述语言OWL-S到有色Petri网的转化。
综合分析国内外研究学者所建立的转化模型,发现虽然这些理论和工具已经证明了通过有色Petri网模型对服务组合建模的可行性,但是其并没有考虑到参数以及表达式到有色Petri模型转化;更重要的是,现有理论生成的模型实际上是不可模拟运行的有色Petri网模型,与原Web服务模型有偏差,从而不能利用现有有色Petri网的理论和工具,影响了验证流程。
因此,扩展和完善现有的基于OWL-S的Web服务组合模型到CPN模型的转化方法是非常有必要的。
发明内容
本发明所要解决的技术问题之一是需要提供一种Web服务组合到有色Petri网模型的转化方法,该方法能够实现有色Petri模型与原Web服务组合的一致性,不仅支持结构化的转化方式,还支持参数类型检查、表达式映射的功能。
为了解决上述技术问题,本发明提供了一种Web服务组合到有色Petri网模型的转化方法,包括:形式化定义所获取的采用OWL-S语言描述的Web服务组合和有色Petri网;基于有色Petri网,对形式化定义后的Web服务组合进行建模;对建模后的Web服务组合进行结构转化和数据流转化以获取相应的有色Petri网模型。
在一个实施例中,在对建模后的Web服务组合进行数据流转化的步骤中,进一步包括:将建模后的Web服务组合中的绑定转化到有色Petri网中;将建模后的Web服务组合中的表达式转化到有色Petri网中。
在一个实施例中,在绑定类型为ValueOf时,在将建模后的Web服务组合中的绑定转化到有色Petri网中的步骤中,进一步包括:
步骤10,生成关于该Web组合服务的开始库所、标签、结束库所和结束绑定变迁;
步骤20,对于该Web组合服务中所有输入Input1,Input2...Inputn,使用ML语言定义一个如下颜色集:
colsetcol_name=productcontrol*input1*input2*...*inputn
其中,control是一种特殊的类型,其类型为CONTROL_TOKEN,用于控制组合服务流程,对于原子服务,control总为真,并将开始库所的类型定义为col_name,product表示后面的表达式产生输出结果,*表示元素之间组合的关系;
步骤30,对于该Web组合服务的所有输出Output1,Output2...Outputn,使用ML语言定义一个颜色集:
colset'col_name=productcontrol*output1*output2*...*outputn,
其中,control是一种特殊的类型,其类型为CONTROL_TOKEN,用于控制组合服务流程,对于原子服务,control总为真,并将结束库所的类型定义为col_name;
步骤40,连接开始库所到标签,以及结束绑定变迁到结束库所;
步骤50,获得该Web组合服务的所有组合结构,如果组合结构为原子服务,则使用第一算法,否则使用第二算法,生成每个子有色Petri网模型;
步骤60,根据组合结构的类型的不同,生成不同的控制库所,进而控制有色Petri网的结构化模型;
步骤70,根据该Web组合服务的生成,连接所有与结果相关的库所到结束绑定变迁。
在一个实施例中,在绑定类型为ValueOf时,在将建模后的Web服务组合中的绑定转化到有色Petri网中包括:
步骤11,根据第二算法生成该Web服务组合中所有执行所对应的过程有色Petri网模型的集合M;
步骤21,生成输入绑定变迁和输出绑定变迁,并建立输入绑定变迁到输入库所,以及输出库所到输出绑定变迁的弧,且每个弧上的ML表达式为:
元组(control,input1,input2...inputn)
步骤31,找到每个执行的所有输入,在过程有色Petri网模型的集合M中找到每个输入所对应的执行的过程有色Petri网模型m;
步骤41,在有向图G中创建节点,节点的键为执行的序列号;
步骤51,对于执行所有的输入,在有向图G中寻找源执行节点,如果该源执行节点与现节点没有边,则进入步骤61,否则进入步骤71;
步骤61,创建从源执行节点到现节点的边,并且初始化边的向量表;
步骤71,向边的向量表中添加输入的序列号;
步骤81,对于执行的所有的输入,生成哈希对,令键为输入的通用资源标识符,取值为执行所对应的过程有色Petri网模型,加入到哈希表中;
步骤91,判断是否还有执行未被处理,若存在则返回步骤11;
步骤101,广度优先遍历有向图G,对于每个边,生成参数绑定变迁的库所,库所类型和弧的表达式为:
元组(control,input1,input2...inputn)
其中,inputi作为有向图边上向量表的集合。
在一个实施例中,所述第二算法包括:
步骤521,根据所述第一算法生成该Web服务组合所有执行所对应的过程有色Petri网模型的集合M;
步骤522,生成输入绑定变迁和输出绑定变迁,并建立输入绑定变迁至输入库所,以及输出库所至输出绑定变迁的弧,令每个弧上的ML表达式为:
元组(control,input1,input2...inputn);
步骤523,找到每个执行的所有输入,在过程有色Petri网模型的集合M中找到每个输入所对应的执行的过程有色Petri网模型m;
步骤524,生成一个参数绑定变迁的库所p,将每个输入所对应的执行的过程有色Petri网模型m中的输出绑定变迁与库所p,以及库所p与过程有色Petri网模型的集合M中的输入绑定变迁连接;
步骤525,对于执行的所有输入,生成哈希对,令键为输入的通用资源标识符,取值为执行所对应的过程有色Petri网模型,加入到哈希表中。
在一个实施例中,所述第一算法包括以下步骤:
步骤511,生成关于该Web组合服务的输入库所、输出库所和Web服务执行变迁;
步骤512,生成分别连接输入库所至Web服务执行变迁以及Web服务执行变迁至输出库所的输入弧和输出弧;
步骤513,对于该Web组合服务中所有输入Input1,Input2...Inputn,使用ML语言定义一个如下颜色集colset:
colsetcol_name=productcontrol*input1*input2*...*inputn
其中,control是一种特殊的类型,其类型为CONTROL_TOKEN,用于控制组合服务流程,对于原子服务,control总为真,并将输入库所的类型定义为col_name,product表示后面的表达式产生输出结果,*表示元素之间组合的关系;
步骤514,对于该Web组合服务的所有输出Output1,Output2...Outputn,使用ML语言定义一个颜色集colset':
colset'col_name=productcontrol*output1*output2*...*outputn
其中,control是一种特殊的类型,用于控制组合服务流程,对于原子服务,control总为真,并将输出库所的类型定义为col_name。
在一个实施例中,在将建模后的Web服务组合中的表达式转化到有色petri网中,包括:
步骤12,读取该Web服务组合的SWRL表达式,分析SWRL结构,将其分解为属性集和变量集;
步骤22,生成状态变迁;
步骤23,分析变量集中变量属性来源,若变量为变量名,进入步骤24,否则进入步骤25;
步骤24,在全局变量表中查找变量的源执行,并且建立从该源执行的输出绑定变迁到状态变迁,并将状态变迁的警备变迁设置为该逻辑表达式,算法结束;
步骤25,若变量为常量,且常量输入为xsd类型,则直接转化为字符常量。
在一个实施例中,还包括:在有色Petri网模型中调用OWL-S服务;对调出的OWL-S服务进行模拟运行和验证。
在一个实施例中,在有色Petri网模型中调用OWL-S服务的步骤中,进一步包括:
在生成原子服务模型时,在Web组合服务的变迁中自动嵌入Web服务调用模块,并且同时在服务端生成监听有色Petri网模型的代码,在每次有色Petri网模型请求Web服务调用时,自动解析输入并且执行Web组合服务的OWL-S服务的输出。
在一个实施例中,对调出的OWL-S服务进行模拟运行和验证的步骤中,进一步包括:对OWL-S服务进行单步执行/或多步执行的模拟运行;对该有色Petri网模型的可达性、有界性和参数一致性进行验证。
本发明提出了服务组合模型到CPN模型的转化方法,其中包括控制结构的绑定、参数绑定的转化;控制结构的转化主要针对基于结构的Sequence、Split+Join、Repeat、If-Then-Else以及基于参数控制的执行与生成,参数绑定主要针对基于资源描述框架模式(Resource Description Framework Schema,RDFS)的参数类型,到CPN模型中颜色令牌的转化。相对于原来的形式化转化方法,本发明更注重有色Petri模型与原Web服务组合的一致性,不仅支持结构化的转化方式,还支持参数类型检查、表达式映射的功能。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1是根据本发明一实施例的Web服务组合模型到CPN模型的转化方法的流程图;
图2是原子服务的CPN模型示意图;
图3是将Web服务组合的顺序结构转化为CPN模型的示意图;
图4是将Web服务组合的Split+Join结构转化为CPN模型示意图。
图5是将Web服务组合的If-Then-Else结构转化为CPN模型示意图;
图6是Web服务组合的Repeat-Until结构转化为CPN模型示意图;
图7是将OWL-S的绑定(Binding)到CPN模型转化示意图;
图8是将输入绑定的警备表达转化为ML表达式的说明示意图;
图9是利用CPN工具对CPN模型中的Web服务进行单步执行的示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明一实施例的Web服务组合模型到CPN模型的转化方法的流程图,下面参考图1来详细说明本实施例的各个步骤。
步骤S110、形式化定义所获取的采用OWL-S语言描述的Web服务组合与有色Petri网。
首先说明对Web服务组合的形式化定义。
(1)服务S形式化定义
S=(Name,TextDesc,ID,Profile,Process,Grounding)
其中,Name是指Web服务(Web Service)的名称,这里是非形式化的字符串;
TextDesc是指非形式化的描述,用于服务发现;ID是指RDF ID,用来定义全网唯一的服务;Profile是指Web服务的概貌;Process是指Web服务的过程模型;Grounding是指Web服务的实现。
(2)OWL-S过程P形式化定义
P=(Input,Output,Precondition,Local,Effect,Participation,Model)
其中,Input={Input1∩Input2∩...Inputn},n≥0,Input是一个服务的有限输入集合;Output={Output1∩Output2∩...Outputn},n≥0,Output是一个服务的有限输出集合;Precondition={PreCond1∩PreCond2∩...PreCondn},n≥0,Precondtion是一个服务的有限先决条件集合;Local={Local1∩Local2∩...Localn}n≥0,Local是一个服务的本地变量集合;Effect={Effect1∩Effect2∩...Effectn},n≥0,Effect是一个服务的有限影响集合;Participation={Participation1∩Participation2∩...Participationn},n≥2,Participation是一个服务的有限参与者集合,参与者数量必须大于等于2;Model是指任何实现过程从先决条件和输入映射到输出和影响的集合,即
(3)Web服务简单过程(Web Service Simple Process)形式化定义
SP=(Serυer,Realizer,P)
其中,Server是实现此原子服务所在的服务器,Server有且仅有一个;Realizer是原子服务的实际执行者,可能是WSDL或者REST等,对应OWL-S中的执行者(Performer);P=(Input,Output,Precondition,Locals,Effect,Participation,Model)是过程P的服务原型。
(4)Web服务复杂过程(Web Service Composite Process)形式化定义
CP=(Componets,ControlConstruct,P)
其中,Components(P)是实现此组合服务的所有子服务;Control Construct是各个Components之间执行顺序的控制结构;P=(Input,Output,Precondition,Locals,Effect,Participation,Model)是过程P的服务原型。
下面说明有关有色Petri网络CPN的形式化定义。
在本实施例中,将有色Petri网CPN定义为一个7元组,如下所示:
CPN=(C,P,T,F,K,G,E)
其中,C是有限的颜色集合C={Colori|Colori是令牌(Token)的颜色},对应着所有的Web服务信息(Web Service Message)的类型集合;P(Place)是库所的集合,对应Web服务所处的状态;T(Transition)是变迁的集合,对应Web服务处理输入产生输出的过程;F∈(Place X Transition)∪(Trasition X Place),是指Web服务在状态与运行之间变迁;K是一个数据类型映射函数,K:P→C是指每个库所上的令牌颜色对应的数据类型都是C的一个子集;G是一个变迁到颜色集合的表达式集合,G(t)∈Colors,对应着Web服务执行的先决条件,即一个变迁发生的条件;E是一个状态转化(F)的表达式集合,G(f)∈(Input Output),对应着Web服务的输入和输出。
下面说明从Web服务中的一个过程P到有色Petri网络CPN的转化:
Transform=(P,CPN,I,O)
其中,P指代过程,CPN代表CPN模型;I是输入库所,输入库所没有任何输入弧(来自于其他的过程,并非来自本过程P);O是输出库所,O=输出库所没有任何输出变迁弧(输出到其他过程,但并非来自本过程P)。
步骤S120、基于有色Petri网,对形式化定义后的Web服务组合进行建模。
在有色Petri网中,Web服务组合中的主要元素(可称为服务元素)都会转化为对应的CPN模型,在本实施例中,下面基于令牌、库所、变迁这三个元素来说明如何实现Web服务元素在CPN模型中的建模。
库所:图形表示为一个圆形节点,代表系统的一个状态,每个库所可以包含多个令牌;
变迁:图形表示为一个方形节点,代表状态之间的跃迁,一个变迁的发生有以下两个条件:输入库所满足条件、警备表达式(Guard Expression)为真;
令牌:库所中的动态对象,在变迁发生时从一个库所转移到另一个库所,在CPN中,令牌还包含颜色属性;
空转换ε:空服务是指不包含任何操作的服务,即输入、输出、先决条件、本地变量、影响、参与者和模式都为空,对应的CPN模型中P,C,K,F也为空;
原子服务转换:原子服务转换中Transform=(SP,CPN,I,O)
SP为只读,不能发生任何变化
对于CPN模型CPN=(C,P,T,F,K,G,E)
即每个输入和输出类型对应一种颜色;
P=Pinput∪Poutput
T=Tservice∪TinputBinding∪ToutputBinding
F={Pinput×Tservice,Tservice×Poutput}
一个典型的Web原子服务转化的Petri网模型如图2所示。
在这部分提出的服务结构,仅仅是结构化转化,不包含任何的数据流信息,仅仅是结构的信息。图2中的开始库所和结束库所并不代表任何的信息,在这里只是为了代指“外界”,否则的话,原子服务的模型的输入绑定变迁和输出绑定变迁,是不符合CPN语义的。
步骤S130、对建模后的Web组合服务的各种控制结构进行结构转化。
在本步骤中主要是对各种控制结构例如顺序结构(Sequence)、Split+Join结构、Split结构、If-Then-Else结构、选择结构(Choice)等进行转化。
(1)有关顺序结构
Sequence的XML语义可定义为如下:
需要说明的是,顺序结构是指服务顺序执行,只有前一个服务执行完毕,下一个服务才可以执行。但是前一个组件的输出不一定做为下一个组件的输入,多个组件之间的输入输出不一定存在依赖关系。因此,顺序结构的CPN模型如图3所示。
在图3中,黑色的C代表的是控制令牌(Control Token),是一种独立与输入和输出的特殊令牌,只有包含令牌的流程才可以执行。图中的“过程”可能是原子服务或者是组合服务,也有可能是其他的控制结构。
(2)关于Split和Split+Join结构
Split和Split+Join类似于操作系统中的fork和fork+wait,用来同时调用多个不相关服务,对于Split+Join来说,多个服务需要全部执行完毕才可以继续执行。具体可参考图4所示。
Split+Join结构的XML定义如下所示:
(3)关于If-Then-Else结构
If-Then-Else是一种选择结构,在面向过程设计语言中常见,具体可参考图5所示,其一般格式为:
If<condition>
Then语句
Else语句
使用XML语法表示为:
(4)关于Choice结构
Choice结构是一种适用于处理多分支的条件选择结构,具体可参考图6所示。
步骤S140、将建模后的OWL-S中的绑定转化到CPN模型。
需要说明的是,这里并不特指某种绑定,而是泛指所有的绑定,包括输入绑定变迁(InputBinding)、输出绑定变迁(OutputBinding)和本地绑定变迁(LocalBinding)等。因为ValueFunction在实际中比较复杂,且不常用,这里主要讨论类型为ValueOf的绑定方式。
下面说明关于绑定中的关键因素源过程的定位。
ValueOf有一个属性为fromProcess,其值表示某个参数是来源一个执行(Perform)的。在基于RDF的描述中,每个参数都有唯一的URI表示。因此可以通过每次遍历一个执行,使用一个哈希记录其所有的参数,在处理绑定时从哈希表中寻找对应的源结构。
该步骤具体涉及到以下算法。
算法1:原子过程(Atomic Process)的转化算法
说明:这里说明原子服务生成的算法。
输入:原子服务SP
输出:CPN模型m
算法2:执行(Perform)的转化算法
说明:执行所对应的是一个原子服务或者组合结构,执行所对应的是数据流的转化。生成(Produce)是简化的执行,与执行的生成算法基本相同,在此省去。
输入:OWL-S中的执行,空的哈希表map
输出:CPN模型
算法3:组合服务转化算法
说明:组合服务的转化是一个递归的过程,需要循环使用到算法1和算法2
输入:组合服务
输出:CPN模型
另外,还可以使用算法4来替换算法3进行绑定的转化。
算法4:基于有向图的参数绑定算法
说明:算法3的改进算法
输入:组合服务过程Process,空有向图G,空哈希表map
输出:CPN模型
具体可参考图7所示。
步骤S150、将建模后的OWL-S中表达式(Expression)转化到CPN模型中。
需要说明的是,OWL-S支持多种表达式格式,通过逻辑语言指定使用的语言,目前,OWL-S共支持六种语言:SWRL,DRS,KIF,SPARQL,RDQL,SWRL-FOL。其中SWRL作为W3C推荐的Web服务规则描述语言,应用最广泛。下面以SWRL语言为例,研究基于SWRL到CPN模型的转化,其他的逻辑语言原理类似,需要规则转化引擎将基于XML的描述语言转化为ML表达式。
本实施例主要集中于状态(Condition)的转化,大部分的Web服务实际上并不需要OWL-S进行任何计算,更多的是用来比较,所以本发明主要考虑数学运算和算术运算。
SWRL Build-in Atom一般是二元的,如built-in中GreaterThanEqual(?x,?y)可以替换成ML中x>y。表1主要列出了从SWRL到ML的转化规则。
表1SWRL到ML的转化
算法5OWL-S到CPN ML表达式转化
说明:主要支持算术表达式和数学表达式
输入:SWRL表达式S
输出:CPN表达式M
下面举例说明,对于swrl builtin表达式
<swrlx:builtinAtom swrlx:builtin="&swrlb;#booleanNot">
<ruleml:var>a</ruleml:var>
</swrlx:builtinAtom>
</ruleml:_body>
假设A是来源于Param库所,InputBinding的GuadExpression即为转化后的ML表达式,具体可如图8所示。
步骤S160、在CPN模型中调用OWL-S服务。
算法6:Web Service调用自动生成算法
说明:在自动生成原子服务模型时,在CPN工具(CPN Tools)中的Web服务变迁中自动嵌入Web服务调用模块,并且同时在服务端生成监听CPN模型的代码,在每次CPN模型请求Web服务调用时,自动解析输入并且执行Web服务输出,并且将输出发送给到CPN Tools
输入:Web原子服务SP
输出:CPN模型
步骤S170、对调出的OWL-S服务进行模拟运行和验证。
(1)Web服务模拟运行
CPN模型的模拟运行共支持两种模拟方式,单步执行(如图9所示)和多步执行。一次执行称为一次激励(Fire),当变迁为绿色时,说明变迁是可激励的。使用单步调试的好处是可以跟踪每次令牌Token转义的细节,主要用来调试。
还有一种模拟方式是多步执行,可以支持任意次激励的执行,当有多个变迁可发生时,任意选择一个激励,多步执行的方式是用来检查CPN的特性,也是人工不可能做到的一些效果。
在模拟运行服务运算时,如果有弧出现了语义问题、令牌不可达,变迁的行动action异常(如openConnection失败),将会在左下角出现提示。
(2)CPN性质验证
CPN性质验证目前已经有很多成熟的方法,最常见的性质验证主要包括:可达性,有界性,参数一致性,函数一致性,等,在这里简要介绍其算法:
首先介绍邻接矩阵D+和D-,设
CPN模型邻接矩阵D=D+-D-
算法7:可达性和有界性检测
输入:CPN模型,模型中A表示一个邻接矩阵,M0代表初始状态向量,Me代表结束状态向量
输出:是否可达
算法8:CPN模型参数检查
输入:设参数类型集合为Σ,C(Place)表示Place的颜色类型
输出:参数类型是否合法
综上所述,本发明提出了服务组合模型到CPN模型的转化方法,其中包括控制结构的绑定、参数绑定的转化;控制结构的转化主要针对Sequence、Split+Join、Repeat、If-Then-Else结构以及基于参数控制的执行与生成,参数绑定主要针对基于资源描述框架模式的参数类型,到CPN模型中颜色令牌的转化。相对于原来的形式化转化方法,本发明更注重有色Petri模型与原Web服务组合的一致性,不仅支持结构化的转化方式,还支持参数类型检查、表达式映射的功能。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人员在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (8)
1.一种Web服务组合到有色Petri网模型的转化方法,其特征在于,包括:
形式化定义所获取的采用OWL-S语言描述的Web服务组合和有色Petri网;
基于有色Petri网,对形式化定义后的Web服务组合进行建模;
对建模后的Web服务组合进行结构转化和数据流转化以获取相应的有色Petri网模型,
其中,在对建模后的Web服务组合进行数据流转化的步骤中,进一步包括:
将建模后的Web服务组合中的绑定转化到有色Petri网中;
将建模后的Web服务组合中的表达式转化到有色Petri网中,
其中,在将建模后的Web服务组合中的表达式转化到有色Petri网中,包括:
步骤12,读取该Web服务组合的SWRL表达式,分析SWRL结构,将其分解为属性集和变量集;
步骤22,生成状态变迁;
步骤23,分析变量集中变量属性来源,若变量为变量名,进入步骤24,否则进入步骤25;
步骤24,在全局变量表中查找变量的源执行,并且建立从该源执行的输出绑定变迁到状态变迁,并将状态变迁的警备变迁设置为逻辑表达式,算法结束;
步骤25,若变量为常量,且常量输入为xsd类型,则直接转化为字符常量。
2.根据权利要求1所述的转化方法,其特征在于,在绑定类型为ValueOf时,在将建模后的Web服务组合中的绑定转化到有色Petri网中的步骤中,进一步包括:
步骤10,生成关于该Web组合服务的开始库所、标签、结束库所和结束绑定变迁;
步骤20,对于该Web组合服务中所有输入Input1,Input2...Inputn,使用ML语言定义一个如下颜色集:
colset col_name=product control*input1*input2*...*inputn
其中,control是一种特殊的类型,其类型为CONTROL_TOKEN,用于控制组合服务流程,对于原子服务,control总为真,并将开始库所的类型定义为col_name,product表示后面的表达式产生输出结果,*表示元素之间组合的关系;
步骤30,对于该Web组合服务的所有输出Output1,Output2...Outputn,使用ML语言定义一个颜色集:
colset'col_name=product control*output1*output2*...*outputn,
其中,control是一种特殊的类型,其类型为CONTROL_TOKEN,用于控制组合服务流程,对于原子服务,control总为真,并将结束库所的类型定义为col_name;
步骤40,连接开始库所到标签,以及结束绑定变迁到结束库所;
步骤50,获得该Web组合服务的所有组合结构,如果组合结构为原子服务,则使用第一算法,否则使用第二算法,生成每个子有色Petri网模型;
步骤60,根据组合结构的类型的不同,生成不同的控制库所,进而控制有色Petri网的结构化模型;
步骤70,根据该Web组合服务的生成,连接所有与结果相关的库所到结束绑定变迁。
3.根据权利要求1所述的转化方法,其特征在于,在绑定类型为ValueOf时,在将建模后的Web服务组合中的绑定转化到有色petri网中包括:
步骤11,根据第二算法生成该Web服务组合中所有执行所对应的过程有色Petri网模型的集合M;
步骤21,生成输入绑定变迁和输出绑定变迁,并建立输入绑定变迁到输入库所,以及输出库所到输出绑定变迁的弧,且每个弧上的ML表达式为:
元组(control,input1,input2...inputn)
步骤31,找到每个执行的所有输入,在过程有色Petri网模型的集合M中找到每个输入所对应的执行的过程有色Petri网模型m;
步骤41,在有向图G中创建节点,节点的键为执行的序列号;
步骤51,对于执行所有的输入,在有向图G中寻找源执行节点,如果该源执行节点与现节点没有边,则进入步骤61,否则进入步骤71;
步骤61,创建从源执行节点到现节点的边,并且初始化边的向量表;
步骤71,向边的向量表中添加输入的序列号;
步骤81,对于执行的所有的输入,生成哈希对,令键为输入的通用资源标识符,取值为执行所对应的过程有色Petri网模型,加入到哈希表中;
步骤91,判断是否还有执行未被处理,若存在则返回步骤11;
步骤101,对有向图G进行广度优先遍历,对于每个边,生成参数绑定变迁的库所,库所类型和弧的表达式为:
元组(control,input1,input2...inputn)
其中,inputi作为有向图边上向量表的集合。
4.根据权利要求2或3所述的转化方法,其特征在于,所述第二算法包括:
步骤521,根据第一算法生成该Web服务组合所有执行所对应的过程有色Petri网模型的集合M;
步骤522,生成输入绑定变迁和输出绑定变迁,并建立输入绑定变迁至输入库所,以及输出库所至输出绑定变迁的弧,令每个弧上的ML表达式为:
元组(control,input1,input2...inputn);
步骤523,找到每个执行的所有输入,在过程有色Petri网模型的集合M中找到每个输入所对应的执行的过程有色Petri网模型m;
步骤524,生成一个参数绑定变迁的库所p,将每个输入所对应的执行的过程有色Petri网模型m中的输出绑定变迁与库所p,以及库所p与过程有色Petri网模型的集合M中的输入绑定变迁连接;
步骤525,对于执行的所有输入,生成哈希对,令键为输入的通用资源标识符,取值为执行所对应的过程有色Petri网模型,加入到哈希表中。
5.根据权利要求2所述的转化方法,其特征在于,所述第一算法包括以下步骤:
步骤511,生成关于该Web组合服务的输入库所、输出库所和Web服务执行变迁;
步骤512,生成分别连接输入库所至Web服务执行变迁以及Web服务执行变迁至输出库所的输入弧和输出弧;
步骤513,对于该Web组合服务中所有输入Input1,Input2...Inputn,使用ML语言定义一个如下颜色集colset:
colset col_name=product control*input1*input2*...*inputn
其中,control是一种特殊的类型,其类型为CONTROL_TOKEN,用于控制组合服务流程,对于原子服务,control总为真,并将输入库所的类型定义为col_name,product表示后面的表达式产生输出结果,*表示元素之间组合的关系;
步骤514,对于该Web组合服务的所有输出Output1,Output2...Outputn,使用ML语言定义一个颜色集colset':
colset'col_name=product control*output1*output2*...*outputn
其中,control是一种特殊的类型,用于控制组合服务流程,对于原子服务,control总为真,并将输出库所的类型定义为col_name。
6.根据权利要求1所述的转化方法,其特征在于,还包括:
在有色Petri网模型中调用OWL-S服务;
对调出的OWL-S服务进行模拟运行和验证。
7.根据权利要求6所述的转化方法,其特征在于,在有色Petri网模型中调用OWL-S服务的步骤中,进一步包括:
在生成原子服务模型时,在Web组合服务的变迁中自动嵌入Web服务调用模块,并且同时在服务端生成监听有色Petri网模型的代码,在每次有色Petri网模型请求Web服务调用时,自动解析输入并且执行Web组合服务的OWL-S服务的输出。
8.根据权利要求6或7所述的转化方法,其特征在于,对调出的OWL-S服务进行模拟运行和验证的步骤中,进一步包括:
对OWL-S服务进行单步执行/或多步执行的模拟运行;
对该有色Petri网模型的可达性、有界性和参数一致性进行验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410071950.3A CN103902282B (zh) | 2014-02-28 | 2014-02-28 | Web服务组合到有色Petri网的模型转化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410071950.3A CN103902282B (zh) | 2014-02-28 | 2014-02-28 | Web服务组合到有色Petri网的模型转化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103902282A CN103902282A (zh) | 2014-07-02 |
CN103902282B true CN103902282B (zh) | 2017-05-17 |
Family
ID=50993625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410071950.3A Active CN103902282B (zh) | 2014-02-28 | 2014-02-28 | Web服务组合到有色Petri网的模型转化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103902282B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022870B (zh) * | 2015-07-06 | 2017-11-28 | 武汉大学 | 一种基于cpn的面向服务软件性能建模与仿真分析方法 |
CN108681502B (zh) * | 2018-05-21 | 2021-05-14 | 昆明理工大学 | 一种基于分层并行算法的cps软件能耗计算方法 |
CN109388377A (zh) * | 2018-10-08 | 2019-02-26 | 广西民族大学 | 一种基于形式化建模的软件安全需求获取方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101808109A (zh) * | 2009-10-20 | 2010-08-18 | 清华大学 | 语义Web服务组合的模型转换及形式化验证方法 |
CN102013055A (zh) * | 2010-12-07 | 2011-04-13 | 山东中创软件工程股份有限公司 | 一种服务编排流程的验证方法及系统 |
-
2014
- 2014-02-28 CN CN201410071950.3A patent/CN103902282B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101808109A (zh) * | 2009-10-20 | 2010-08-18 | 清华大学 | 语义Web服务组合的模型转换及形式化验证方法 |
CN102013055A (zh) * | 2010-12-07 | 2011-04-13 | 山东中创软件工程股份有限公司 | 一种服务编排流程的验证方法及系统 |
Non-Patent Citations (1)
Title |
---|
"基于分层着色Petri网的Web服务动态组合建模与验证";孙连侠;《中国优秀硕士学位论文全文数据库 信息科技辑》;20111015;I139-231-第25-42,52-53页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103902282A (zh) | 2014-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Saldivar et al. | Industry 4.0 with cyber-physical integration: A design and manufacture perspective | |
CN104346377B (zh) | 一种基于唯一标识的数据集成和交换方法 | |
Huang et al. | System and simulation modeling using SysML | |
CN104156313A (zh) | 一种Web服务测试用例自动生成方法 | |
CN101382893B (zh) | 一种基于Web服务的构件在线组装方法 | |
CN101436185A (zh) | 一种利用xml内存树实现多种文件兼容的方法 | |
KR20180133375A (ko) | 데이터 분석 및 처리 방법, 장치, 컴퓨터 장치 및 저장 매체 | |
CN109189393A (zh) | 业务处理方法及装置 | |
CN109933331A (zh) | 一种客户端服务器间数据转换方法及相关组件 | |
CN103902282B (zh) | Web服务组合到有色Petri网的模型转化方法 | |
Naily et al. | A framework for modelling variable microservices as software product lines | |
CN107704235A (zh) | 图形化建模中数据流程图的解析方法、系统及存储介质 | |
Le et al. | Domain-driven design using meta-attributes: A DSL-based approach | |
CN113641591A (zh) | 测试用例生成方法及装置、测试方法及装置 | |
Sanchez et al. | Bigraphical modelling of architectural patterns | |
CN106096400B (zh) | 一种Linux内核并行LSM框架实现方法 | |
Meyers et al. | Composing textual modelling languages in practice | |
CN105556504A (zh) | 从物理流生成逻辑表示 | |
CN103699746B (zh) | 基于数据库的cadds5管系三维设计方法及系统 | |
He et al. | Template-based model generation | |
CN112328231A (zh) | python字典和结构体间的快速转换方法 | |
CN115525321A (zh) | 分布式任务生成方法、装置、设备及存储介质 | |
CN108304219B (zh) | 二次开发平台及方法 | |
CN109298857A (zh) | Dsl语句模型的建立方法、介质、装置和计算设备 | |
Lu et al. | DCEM: A data cell evolution model for service composition based on bigraph theory |
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 |