基于Petri网的Web服务组合流程的验证.docx

基于Petri网的Web服务组合流程的验证.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

?

?

基于Petri网的Web服务组合流程的验证

?

?

论文导读:过程验证器将组合服务转换为对应的Petri网,并通过检查PN模型的活跃度来判断是否存在死锁(详见第三节)。Web服务组合被看作是一个组合的过程,根据一定的控制结构连接一些原子过程。

关键词:Web服务,面向服务的计算,服务组合,Petri网

?

1、序言

近年来,面向服务的计算(SOC)[1]已经成为分布式环境下(如网格或对等网络)解决集成异构应用问题的主要方法。SOC下的服务作为软件实体被定义,研究主要集中在一个服务如何与其它服务协作完成某个应用任务上。因而服务组合被作为面向服务计算下构建应用的主要方式。Internet的异构和动态的特性要求基于Web的服务能够按要求实现服务,即现有的服务能够协同工作以满足用户的要求[2]。

目前关于服务组合的研究项目,包括HP实验室的eFlow[3],加利福尼亚伯克利大学的Ninja[4]服务组合,斯坦福大学的SWORD[5],都只是典型的加强服务编制,忽略了用户和服务的上下文。另外,请求者也许会由于上述方法中的缺乏组合服务的过程验证而得到无效的组合结果。因此,本文提出了一种基于Petri网组合服务建模机制[6],同时引入一种验证算法以验证服务组合流程的正确性。

2、过程验证器

过程验证器的主要功能是验证中介注册代理生成的服务执行队列是否可行,并检查队列中是否存在服务之间的不兼容。

定义1.一个假定的事件是一条XML消息产生的。如果Web服务WS1要求输入事件消息X在输出事件消息Y之前,而Web服务WS2要求输入事件消息Y在输出事件消息X之前,这样一个顺序关系将导致WS1和WS2之间的无效组合。这种现象称之为服务组合的不兼容性。

过程验证器将组合服务转换为对应的Petri网,并通过检查PN模型的活跃度来判断是否存在死锁(详见第三节)。如果存在死锁,服务执行层将用中介层返回的服务列表中的可供选择的兼容服务替换掉服务A或服务B或是AB都替换掉。如果当前列表中没有可替换的服务,则服务执行层将向中介层请求新的服务或报告失败。最后将验证执行计划发送给执行引擎。

3、验证组合服务流程

过程验证器利用Petri网对组合服务建模,并基于模型的模拟观察服务的行为属性,包括安全性,可达性,死锁及冗余。Petri网对于以下特征的信息处理系统是一种很强的建模和分析工具,如协同并发式、异步式、分布式、平行式、非确定式、随机式。

3.1、用Petri对组合服务建模

定义2.Petri网是一个四元PN=(P,T,F,M0),其中

①P={p1,p2,…,pm}是一组有限的位置;

②T={t1,t2,…,tn}是一组有限的转换;

③F属于(P×T)∪(T×P)是一组有向弧;

④M0:P→{0,1,2,3,…}是一个初始标记。每一个标记代表着一个令牌的分配。如果M是一个标记,则M(p)代表在位置p∈P处的令牌数。

定义3.一个服务流网是一个六元SFN=(P,T,F,M0,pi,p0),其中

①(P,T,F,M0)是一个PN;

②pi是关于·pi={x∈P∪T︱(x,pi)∈F}=Φ的输入位置;

③p0是关于p0·={x∈P∪T︱(p0,x)∈F}=Φ的输出位置;

④如果通过添加从t*到T、(pi,t*)及(t*,pi)到F的转换,则SFN*是强连通。

定义4.一个组合的服务是一个四元的CS=(N,D,E,SFN),其中

①N是CS的名称,用来作为组合服务的唯一标识;

②D是CS的描述,它概括了组合服务提供的内容;

③E是组成CS的一组子服务,可以是一个基本服务也可以是一个组合的服务;

④SFN是由Petri网描述的服务流模型。

Web服务组合被看作是一个组合的过程,根据一定的控制结构连接一些原子过程。因此,下列pi位置将被分解成多个代表不同的服务过程的位置点。根据服务的描述,分解将基于图1所示的不同的控制结构来执行。当所有的组合过程被分解后,CS建模也就完成了。模型可以用来进行死锁、无穷循环及冗余等错误的分析和模拟。

图1基于控制结构的Petri

3.2、模型验证

组合服务的过程可以通过分析对应的Petri网模型以及各种可以被Petri网应用的分析方法[8](包括可达树、状态方程、映射矩阵)来检查。本文采用可达树来执行一个流程模型的验证,通过将构造可达树与合法性验证相结合来实现。

可达树是用来描述所有从初始状态开始的可达状态。在可达树中,代表M0和它所有可达的后继节点中:M0代表树的根结点;叶子节点对应系统的最终状态;弧代表相关的转换。从根结点到一个确定的节点的路径代表一个可执行的序列。符号ω代表某个节点位置处的有效令牌数为无穷。本文的方法是通过检查流程网的状态和某个位置节点的有效令牌数,来实现构造可达树过程中的CS模型的验证

文档评论(0)

151****0181 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档