CN103853559B - 语义Web服务组合的自动验证方法及其系统 - Google Patents

语义Web服务组合的自动验证方法及其系统 Download PDF

Info

Publication number
CN103853559B
CN103853559B CN201410089115.2A CN201410089115A CN103853559B CN 103853559 B CN103853559 B CN 103853559B CN 201410089115 A CN201410089115 A CN 201410089115A CN 103853559 B CN103853559 B CN 103853559B
Authority
CN
China
Prior art keywords
migration
cpa
gsv
automat
wfl
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.)
Expired - Fee Related
Application number
CN201410089115.2A
Other languages
English (en)
Other versions
CN103853559A (zh
Inventor
唐郑熠
王颖
胡文瑜
陈义
王金水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian University of Technology
Original Assignee
Fujian University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian University of Technology filed Critical Fujian University of Technology
Priority to CN201410089115.2A priority Critical patent/CN103853559B/zh
Publication of CN103853559A publication Critical patent/CN103853559A/zh
Application granted granted Critical
Publication of CN103853559B publication Critical patent/CN103853559B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

本发明提供一种语义Web服务组合的自动验证方法及其系统,将OWL‑S描述的Web服务转化为一台原子过程自动机,将原子过程自动机组合为组合过程自动机;消除组合过程自动机的冗余并发和同步迁移,获得优化模型;依据用户限定的相容性要求,确定组合过程自动机的可接受位置集合;依据用户限定的有效性要求,确定逻辑公式CSV;将优化模型转换为UPPAAL的建模语言;将可接受位置集合和逻辑公式CSV表示为CTL公式;将建模语言描述的组合服务模型与CTL公式输入UPPAAL进行验证;对OWL‑S中的原子过程与组合过程的描述更具体完整,可以无差异地参加组合运算,支持逻辑公式和表达式,描述能力更强,提高了验证的效率。

Description

语义Web服务组合的自动验证方法及其系统
技术领域
本发明涉及一种语义Web服务组合的自动验证方法及其系统。
背景技术
随着Web服务标准的持续完善和支持Web服务的企业级软件平台的不断成熟,越来越多的企业和商业组织参与到软件服务化(Software as a Service)的行列中来,纷纷将其业务功能和组件包装成标准的Web服务发布出去,实现快速便捷的寻求合作伙伴、挖掘潜在客户和达到业务增值的目的。然而由于用户需求呈现复杂化趋势,单个Web服务已经难以提供用户所需的功能。但如果将分布于Web上的多个功能有限的简单Web服务按照共享上下文策略进行通信与协作,形成更大粒度、功能更强的复杂服务,就可能满足更多更复杂的用户需求。Web服务组合问题就是在这样的背景下被提出来的,它是指通过服务查找和服务之间的接口集成,将多个自治的Web服务根据用户需求进行连接,从而形成提供新的或增值功能的Web服务。
虽然通过服务组合,能够获得功能更强的组合服务,但也会使得服务之间的交互流程变得频繁和复杂,这导致组合服务难免会存在一些错误。因此对于Web服务组合的验证是必不可少的,主要原因有以下两点:
(1)Web服务组合是把功能不同的自治的Web服务连接起来,这需要通过定义和设计控制流及数据流来进行组织。通过控制流和数据流,就定义了Web服务之间的交互协议。交互协议是否是具有良定义性(Well-Formed)、活性(Live)和安全性(Safety),取决于组合服务设计人员的水平或者组合服务设计工具的能力。然而面对越来越复杂的Web服务组合,组合服务设计人员的水平和组合服务设计工具的能力显得愈加不足,很难保证服务的组合不会出错。
(2)用户只能对所需服务行远程调用,并不能控制其执行过程。所以存在错误的组合服务流程一旦投入运行,就可能产生无法弥补的损失,这是用户所不能接受的。因此对组合服务进行正确性验证,能够尽早地发现和解决问题,减少经济和时间成本的不必要消耗。
由于组合服务日趋复杂,采用人工分析的方式效率低下。同时其本身所具有的动态性特征,也大大增加了验证分析的工作量。而建立自动化的分析技术与工具,则必须要以形式化模型为基础,也是势在必行的工作。目前,国内外针对Web服务组合验证这一问题展开了广泛的研究,且均是以形式化方法为基础,如Petri网、自动机理论或进程代数,基本上可以分为两类:
1,直接验证
直接验证方法是指对组合服务进行形式化建模后,可以直接对模型进行分析和验证,例如Pi演算、通信系统演算CCS和Petri网。Pi演算适用于验证Web服务间的兼容性,能够对服务的行为和服务间的交互进行建模,通过Pi演算的操作、自动推演等理论判断服务间交互的兼容性。但它只能对两个服务间的兼容性进行验证,而无法验证一个服务与多个服务间的兼容性。通信系统演算CCS可以与Web服务编排协议WSCI进行直接的映射和转换,从而建立起Web服务组合的形式化模型,通过CCS的推理功能可验证两个或多个Web服务之间的兼容性,同时还可以验证服务之间的可替换性。Petri网是一种重要的分布式系统的建模和分析工具,适合于验证Web服务组合的流程正确性、操作兼容性和语义正确性。Petri网有多种形式的扩展与变种,可以表达Web服务的丰富语义,例如时间Petri网、有色Petri网、模糊Petri网等。同时Petri网还带有自动化验证工具,对模型的分析与验证提供了很大的便利。
2,间接验证
间接验证方法是指在建立起Web服务组合的形式化模型后,由于该种形式化模型没有直接的验证工具,必须将其转换成其它的形式化描述形式,才能进行验证。这类方法主要是一些专门的组合服务或流程的描述工具,设计的初衷就是为了对单一对象进行描述,通用描述能力往往不强,因此也就缺乏对它的分析和验证方面的研究。例如XLANG、WSFL、BPEL4WS等。
XLANG是由Microsoft提出的一种Web服务组合描述语言,它将工作流描述成有状态的长周期交互行为,用WSDL语言描述业务流程中各参与者的Web服务接口,并通过消息交换产生服务间的交互。它实际上是WSDL的一种扩展。
WSFL即Web服务流语言,是由IBM提出的一种基于XML的Web服务组合描述语言,由流模型和全局模型组成,前者用于描述如何使用组件Web服务提供的功能实现一个组合Web服务,并通过定义控制流和数据流的方向指定组件服务的执行顺序;后者用于描述各组件Web服务之间的交互情况。目前已有将WSFL描述的组合流程转换成Promela规范语言的算法,从而可以用对应的模型检测工具SPIN进行自动验证。
BPEL4WS是由IBM、Microsoft和BEA公司联合推出的,汲取了XLANG和WSFL的优点,结合了图形化和块结构的特点,是一个用于描述基于Web服务的可执行业务流程描述语言,已得到多种开源和商业引擎的支持。BPEL4WS将Web服务组合描述成一个有向图,顶点代表Web服务,边表示服务之间的依赖关系。依赖关系的运行语义可以在BPEL4WS的文档中指定。通过相应的进程代数编译器,可对Web服务组合进行验证。
与本发明最相似的技术方案是将OWL-S描述的语义Web服务转换为有色Petri网,然后通过对有色Petri网的性质分析(关联矩阵、活性、可达性等),完成对组合服务的验证。
OWL-S与语义Web服务:OWL-S是以OWL语言描述的Web服务本体,它是机器可理解并且显式而无歧义的标记语言(Markup Language),可以完整地描述服务的功能和属性。它是一种成熟且被广泛应用的技术规范,具有坚实的理论基础和强大的工业应用支持。OWL-S的顶层本体视图,如图1所示。
OWL-S通过三个部分来对一个Web服务进行描述:Service Profile、ServiceGrounding和Service Model。并且有如下规定:一个Web服务最多只能关联一个ServiceModel,但可以缺少;一个Service Grounding必须且只能与一个Web服务关联,而一个Web服务可以关联多个Service Grounding;一个Web服务可以关联零个或多个Service Profile。
1.Service Profile
Service Profile的作用是描述服务的概貌,包括三个部分的信息:
服务提供者:包括提供者的名称、文本描述和联系信息。
服务功能:提供服务的IOPEs(Input、Output、Precondition、Effect),分别从信息和状态两个角度来描述服务的功能。Service Profile并不单独描述IOPE,而是链接到Service Model中的IOPEs实例。
服务分类与质量:服务所属的类别,以及成本、响应时间、可靠度等用于衡量服务质量的信息。
服务提供者可以通过Service Profile来描述要发布的服务,而用户也可以通过它来描述对服务的需求,主要用于支持Web服务发现。此外,Service Profile是独立的技术,因此支持各种服务注册方式。
2.Service Model
Service Model包含服务的内部数据及控制流程,从而描述服务的具体执行过程。这种描述是基于过程(Process)的概念来实现的,如图2所示。
过程分为三类:原子过程(Atomic Process)、组合过程(Composite Process)和简单过程(Simple Process)。分别解释如下:
(1)原子过程:原子过程是不可再分的过程,对应一个可以被直接调用的Web服务,其内部执行是透明的。每个原子过程都必须关联一个Grounding文件,提调用该原子过程的必要信息。
(2)组合过程:组合过程由若干原子过程或其它组合过程复合构成,构件之间通过控制结构连接起来。OWL-S定义了8种控制结构:Sequence、Split、Split+Join、Unordered、Choice、If-Then-Else、Iterate、Repeat-Until。
(3)简单过程:简单过程是一个抽象概念,不能被直接调用,因此不需要也不能与Grounding文件绑定。简单过程不描述服务的内部细节,而只关心服务的输入和输出信息,是一种从外部视角观察服务的方式。原子过程是对简单过程的实现(Realizes),而组合过程则可以通过折叠(CollapseTo)成为简单过程。
服务的接口通过IOPEs来描述,分别是服务的输入和输出信息,服务的执行前提条件和执行后的效果。前者是从数据变换的角度、后者是从状态改变的角度来分别描述服务。Service Model主要用于支持服务的组合与验证。
3.Service Grounding
Service Grounding描述服务的调用信息和规范,包括访问服务的协议、消息格式、端口等信息。OWL-S并没有单独定义描述调用信息的语法,而是引入了已经成熟和完善的WSDL规范。OWL-S与WSDL之间存在两个部分的映射关系:
OWL-S中的原子过程映射到WSDL中的操作(Operation)。
OWL-S中的输入和输出信息映射到WSDL中的消息(Message)。
其中,Service Grounding支持服务的实际运行,与验证工作无关。
在OWL-S所描述的各类语义要素中,与服务组合验证相关的包括:服务的输入(Input)、输出(Output)、执行前提(Preconditon)、执行效果(Effect)、控制结构、服务质量信息。其中,IOPEs与控制结构用于进行功能性验证,即服务是否能够正确性执行,并满足预期的功能性需求;而服务质量信息则是用于非功能性验证,即服务的质量是否达到了预期要求。已有的技术方案实现的都是功能性的验证。
映射转换分为三个部分:
(1)一个变迁对应一个原子服务。
(2)用一个变迁的前置库所中,不同颜色的令牌及令牌的数量来表示服务的输入与执行前提;后置库所中的令牌表示输出;前置与后置库所的令牌数量的变化表示执行效果。
(3)通过组合原子服务的Petri网模型来表示控制结构。
验证方法:利用Petri网模型的各类矩阵及相应的算法,可判定组合服务能否正常运行,以及能否到达到预期的目标。
上述的现有技术方案存在以下缺点:
(1)只能够描述先输入后输出的两类消息传输模式,而不能描述另外先输出后输入的另两类消息传输模式。
(2)没有系统给出将执行前提转化为有色令牌的方法。
(3)所描述的执行效果只涉及消息数量的变化,对于其它类型的执行效果(例如对环境的改变)则无法描述。
(4)验证过程需要人工参与,容易引入新的错误。
(5)组合运算的对象都是原子服务,而没有给出对内部具有多个控制结构的复合服务进行组合的方法。
(6)没有对组合服务运行所需的良好性质进行分析,只是简单地归结到其所用技术的安全性或活性分析上,不仅其合理性值得商榷,也无法根据实际需求设定安全性的强度,增大了服务组合的难度。
发明内容
本发明要解决的技术问题,在于提供一种语义Web服务组合的自动验证方法及其系统,对OWL-S中的原子过程与组合过程的描述更具体完整,并保持了两者的形式一致,可以无差异地参加组合运算,支持逻辑公式和表达式,描述能力更强,尤其是对执行前提、执行效果与组合服务性质的描述,并且验证过程自动化,不仅降低了验证技术的应用门槛,也能够避免在验证过程中引入新的错误。
本发明方案一是这样实现的:一种语义Web服务组合的自动验证方法,包括如下步骤:
步骤10、将OWL-S描述的Web服务即原子过程转化为一台原子过程自动机,然后根据不同的控制结构,将原子过程自动机组合为组合过程自动机;
步骤20、消除组合过程自动机的冗余并发和同步迁移,获得优化模型;
步骤30、依据用户限定的相容性要求,确定组合过程自动机的可接受位置集合;
步骤40、依据用户限定的有效性要求,确定有效的逻辑公式CSV;
步骤50、将所述获得优化模型转换为UPPAAL的建模语言;
步骤60、将可接受位置集合和逻辑公式CSV表示为CTL公式;
步骤70、将建模语言描述的组合服务模型与CTL公式输入UPPAAL进行验证;若验证结果为完全相容且有效,则该组合服务满足用户需求;若验证结果为部分相容且有效,则可根据验证结果生成信息交互引擎,引导组合服务的运行轨迹,达到用户要求;若验证结果是不满足相容且有效,则该组合服务无法满足用户需求。
进一步地,所述步骤10进一步具体为:
步骤11,若控制结构为Sequence控制结构,则进行Sequence组合运算,即将所有的所述原子过程自动机按照排列的先后顺序依次将前一个原子过程自动机的终止位置连接后一个原子过程自动机的起始位置转化为组合过程自动机;
步骤12,若控制结构为AnyOrder控制结构,则进行AnyOrder组合运算,即构造一组逻辑公式初始时的值为true,其中表示将第1到第n个逻辑公式合取, 不含相同命题变元,之后将所有原子过程自动机的起始位置合并为一个新的起始位置ls,从原起始位置出发的迁移都改为从新起始位置出发,并且迁移标号的Pre部分并入一个从所有原终止位置引出一条到达ls的迁移,该迁移使得假,从而保证该组合过程不会被重复执行;增加一个新的位置le并作为终止位置,同时增加一个从ls到le的单步迁移e,其执行前提是公式为真,只有当所有的组合过程都被执行完后,才能到达le
步骤13,若控制结构为Choice控制结构,则进行Choice组合运算,即将所有组合过程的起始位置合并为一个新的起始位置ls1,之后将所有组合过程的终止位置合并为一个新的终止位置le1
步骤14,若控制结构为If-then-Else控制结构,则进行If-then-Else组合运算,即将选择条件表示成逻辑公式而后将所有组合过程的起始位置合并为一个新的起始位置ls2,从原起始位置出发的迁移改为从新起始位置出发,并用修改迁移标号的Pre部分,最后将所有组合过程的终止位置合并为一个新的终止位置le2
步骤15,若控制结构为Repeat-Until控制结构,则进行Repeat-Until组合运算,即将终止条件用逻辑公式表示,之后修改从起始位置出发的迁移,将并入迁移标号的Pre部分,使该组合过程只有在终止条件为假时可进行,增加一个新的位置le3作为终止位置,并从起始位置引出一个新的单步迁移e3到达le3,其执行前提是表示终止条件的逻辑公式为真;
步骤16,若控制结构为Repeat-while控制结构,则进行Repeat-while组合运算,即将终止条件用逻辑公式表示,修改从起始位置出发的迁移,将并入迁移标号的Pre部分,使该组合过程只有在终止条件为假时可进行,增加一个新的位置le4作为终止位置,并从起始位置引出一个新的单步迁移e4到达le4,其执行前提是表示终止条件的逻辑公式为真;
步骤17,若控制结构为Split-Join控制结构,则进行Split-Join组合运算,即将并发条件和汇合条件分别表示为逻辑公式增加一个新的位置ls5并作为起始位置,从它引出一个并发迁移到达所有组合过程的起始位置,其执行前提为并发条件增加一个新的位置le5并作为终止位置,从所有组合过程的终止位置引出一个到达le5的同步迁移,其执行前提为同步条件
进一步地,所述Sequence组合运算、所述AnyOrder组合运算、所述Choice组合运算及所述If-then-Else组合运算为因果约束,所述Repeat-Unti组合运算及所述Repeat-while组合运算为重复约束,所述Split-Join组合运算为分支约束,所述因果约束、所述重复约束及所述分支约束为组合约束。
进一步地,所述步骤30进一步具体为:
步骤31,第一可接受位置集合WFL:其中原子服务的WFL为其起始位置和终止位置为该原子服务的第一可接受位置,对n台组合过程自动机CPAi,进行组合运算后得到的新组合过程自动机CPA,其第一可接受位置集合WFL为各CPAi的第一可接受位置集合WFLi的并集,并且从WFL中移除组合过程中被剔除的位置,若组合过程中增加了新的位置,且该位置为起始位置或终止位置,则应添加到WFL中;
步骤32,组合过程自动机CPAi的第一可接受位置为WFLi,当在组合过程中出现组合约束时,获得的可接受位置组成第二可接受位置集合:
对n台组合过程自动机CPAi进行Sequence组合运算得到新的组合过程自动机CPASeq,若出现组合约束语义:若CPAi执行则CPAj也必须执行,其中i<j,则普通可接受位置集合OFLSeq为CPA1~CPAi-1,及CPAj+1~CPAn的第一可接受位置的并集,再加上CPAi的起始位置sLoci和CPAj的终止位置eLocj
或者对n台组合过程自动机CPAi进行AnyOrder组合运算得到新的组合过程自动机CPAAO,若出现组合约束语义:组合服务的运行不能停止在CPAj,则普通可接受位置集合OFLAO是在其第一可接受位置集合WFLAO的基础上,去除CPAj的第一可接受位置集合WFLj,即OFLAO=WFLAO-WFLj
或者对于n台组合过程自动机CPAi进行Choice组合运算得到新的组合过程自动机CPACho,若出现组合约束语义:若CPAj被选中执行则必须执行完成,则普通可接受位置集合OFLCho是在其第一可接受位置集合WFLCho基础上,去除CPAj的第一可接受位置集合WFLj,即OFLCho=WFLCho-WFLj
或者对于两台组合过程自动机CPA1和CPA2进行If-then-Else组合运算得到新的组合过程CPAItE,若出现组合约束语义:若CPAj被选中执行则必须执行完成,则普通可接受位置集合OFLItE是在其第一可接受位置集合WFLItE中去除CPAj的第一可接受位置集合WFLj,即OFLItE=WFLAO-WFLj
或者对于组合过程自动机CPA进行Repeat-Until组合运算得到新组合过程自动机CPARU,若出现组合约束语义:CPA必须重复执行直到终止条件成立,则普通可接受位置集合OFLRU={le},即只有终止位置可接受;
或者对于组合过程自动机CPA进行Repeat-while组合运算得到新组合过程自动机CPARW,若出现组合约束语义:CPA必须重复执行直到循环条件不成立,则普通可接受位置集合OFLRW={le},即只有终止位置可接受;
或者对于n台组合过程自动机CPAi进行Split-Join组合运算得到新的组合过程自动机CPASJ,若出现组合约束语义:分支组件CPAj必须执行完成,则普通可接受位置集合OFLSJ是在其第一可接受位置集合WFLSJ的基础上,去除CPAj的第一可接受位置集合WFLj,即OFLSJ=WFLSJ-WFLj
当组合过程中不存在组合约束语义时,第二可接受位置集合即等于第一可接受位置集合;
步骤33,组合过程自动机的第三可接受位置集合SFL,其为组合过程自动机的起始位置和终止位置,或者是组合过程自动机的终止位置。
进一步地,所述相容性为:
若组合服务由n台组合过程自动机组成,si为第i台组合过程自动机的位置集合,则组合服务的全局状态向量gsv=(s1,s2,...,sn),若有全局状态向量gsv=(s1,s2,...,sn)和gsv′=(s1′,s2′,...,sn′),其中一台组合过程自动机发生迁移,使得gsv中的某个si变化为gsv′中的si′,而其它的sj保持即 则称gsv发生迁移到达gsv′,记为gsv→gsv′;对于全局状态向量gsv:若满足则称gsv为起始全局状态向量,记为gsv0;若不存在gsv′,使得gsv→gsv′成立,则称gsv为终止全局状态向量,记为gsve
将组合服务从起始全局状态向量开始的一系列迁移称为组合服务的一次运行:gsv0→gsv1→gsv2→...→gsv,简记为gsv0[→]tr gsv,对于组合服务的一次运行gsv0[→]trgsv:若则称该次运行满足弱相容性,记为WC(gsv0[→]tr gsv);若则称该次运行满足普通/自定义相容性,记为OC(gsv0[→]tr gsv);若则称该次运行满足强相容性,记为SC(gsv0[→]tr gsv);将gsv0[→]tr gsve称为组合服务的一次完整运行;
一个组合服务CS是完全强/普通/弱相容的,当且仅当任意gsv0[→]tr gsve都是强/普通/弱相容的;一个组合服务CS是部分强/普通/弱相容的,当且仅当至少存在一个gsv0[→]tr gsve是强/普通/弱相容的。
进一步地,所述步骤20进一步具体为:
步骤21,若对于一个并发迁移e(l,slt)=tL={l1,...,ln},其源位置l属于另一个并发迁移e′(l′,slt′)=tL′={l1′,...,ln′}的目标位置集合,且两个并发迁移的并发条件相同,同时不存在以l为源位置或目标位置的单步迁移,则l是冗余位置,econ(l,slt)=tL={l1,...,ln}为冗余并发迁移,此时将冗余并发迁移e(l,slt)的目标位置集合tL并入另一并发迁移e′(l′,slt′)的目标位置集合tL′,同时移除冗余位置l和冗余并发迁移e(l,slt);否则位置l不是冗余位置,并发迁移e(l,slt)不是冗余并发迁移;
步骤22,若对于一个同步迁移e(sL={l1,...,ln},jn)=l,其目标位置l属于另一个同步迁移e′(sL′={l1′,...,ln′},jn′)=l′的源位置集合,且两个同步迁移的同步条件相同,同时不存在以l为源位置或目标位置的单步迁移,则l是冗余位置,e(sL={l1,...,ln},jn)=l为冗余并发迁;此时将冗余同步迁移e(sL={l1,...,ln},jn)的源位置集合sL并入另一同步迁移e′(sL′={l1′,...,ln′},jn)的源位置集合sL′,同时移除冗余位置l和冗余同步迁移e(sL={l1,...,ln},jn);否则位置l不是冗余位置,并发迁移e(l,slt)不是冗余并发迁移。
进一步地,所述步骤50进一步具体为:
步骤51,组合过程自动机CPA中的单步迁移esin(l,a)=l'直接转换为一台符合UPPAAL语法的时间自动机UTA的迁移离散迁移 迁移标号a=(In,Out,Pre,Eft)转换为a',其中g是由时钟变量表示的约束条件,r是需要被重置为0的时钟变量集合;
步骤52,CPA中的并发迁移esin(l,jlt)={l1,...,ln}转换为n台UTA和一个迁移其中:当UTA处于sli位置时,说明它进入了并发执行的分支;a包含并发条件及一个广播通道的发射动作conChni!;
步骤53,而与并发迁移对应的同步迁移esin({l1,...,ln},jn)=l',则转换为迁移b中包含广播通道的发射动作synChni!,使得多个分支能在同一时刻终结,同时,为了保证同步迁移在所有分支都执行各自的操作后才能发生,增加一个同步变量synVari,初值为0,并将“synVari==n”并入迁移标号b的Guard部分,其中n为分支数量,每个分支执行所有操作后都使其值加1;
步骤54,新创建的n台UTAi是用于述n个并发执行的分支,在首尾各增加一个新的位置bl和el,当UTAi处于bl时,说明还没有进入该分支;当UTAi处于el时,说明该分支已执行完毕;bl到对应分支的第一个状态的迁移标号包含广播通道的接收动作conChni?;而对应分支的最后一个状态到达el的迁移标号包含表达式synChni?;每个分支的最后一个迁移标号的Update部分,增加一个表达式synVari++,使同步变量的值加1。
进一步地,所述步骤51进一步具体为:
组合过程自动机CPA中的单步迁移esin(l,a)=l'直接转换为一台符合UPPAAL语法的时间自动机UTA的迁移离散迁移迁移标号其中,Guard是一个逻辑表达式,表示迁移执行的条件;Sync是一组通道的发射或接受动作,用于实现同步迁移;Update是一组表达式或用户函数,用于表达迁移的效果;语义信息缓冲区SIB=(SI,V,f),SI是语义信息集合,V是整型变量集合,映射f:SI→V,f是双射的;迁移标号被扩展为一个四元组(In,Out,Pre,Eft),其中Pre和Eft表示执行前提和执行效果,逻辑公式和表达式组成,直接并入到建模语言迁移标号的Guard和Update的部分;In是输入信息的集合,将其表示为:一个合取公式∧f(ci)并且并入迁移标号的Guard部分,合取项的数量与In的元素数量相等,其中f是信息缓冲区中的映射,ci∈In;将其表示为一组表达式{f(ci)--|ci∈In},并且并入迁移标号的Update部分;Out是输入信息的集合,将其表示为一组表达式{f(ci)++|ci∈Out}}并且并入迁移标号的Update部分。
进一步地,所述有效性逻辑公式CSV=(INFOS,EFFECTS),其中:INFOS为一组要求组合服务产生的语义信息集合;EFFECTS为一组逻辑公式,该逻辑公式描述要求组合服务必须达到的限定效果。
进一步地,所述步骤60进一步具体为:
相容性变量cptyVari∈{unconcerned,incompatible,weak,ordinary,strong},表示UTAi当前的相容性:unconcerned表示该UTAi所描述的并行分支还未被激活或已经结束,incompatible表示不相容,weak表示弱相容,ordinary表示普通/自定义相容,strong表示强相容,可以用取值范围为[0,3]的整型变量来表示相容性变量,数值0~4依次代表incompatible、weak、ordinary、strong、unconcerned,三种相容性在UPPAAL中可描述为:
满足强相容性;
满足普通/自定义相容性;
满足弱相容性;
当组合服务完成一次完整运行后没有迁移再发生,组合服务进入死锁状态,在UPPAAL中以deadlock关键字表示,故可将完全/部分相容性表示为CTL公式F1,如下:
其中cptyVari为相容性变量;
对于有效性CSV=(INFOS,EFFECTS),完全/部分有效且强/普通/弱相容表示为CTL公式F2,如下:
进一步地,所述信息交互引擎为一台信息交互引擎IEE=<excFac1,excFac2,...,excFacn>,excFaci=(type,obj,{ci})称为是一个交互因子,其中:type∈{!,?},表示交互的类型,“!”表示由IEE向Service发送信息,“?”表示由IEE接收Service发送的信息;obj∈{Servicei}称为交互对象是一个组件服务;{ci}是交互的信息集合。
本发明方案二是这样实现的:一种语义Web服务组合的自动验证系统,包括如下模块:
原子过程转换模块,将OWL-S描述的Web服务即原子过程转化为一台原子过程自动机,然后根据不同的控制结构,将原子过程自动机组合为组合过程自动机;
优化模型模块,消除组合过程自动机的冗余并发和同步迁移,获得优化模型;
可接受位置集合模块,依据用户限定的相容性要求,确定组合过程自动机的可接受位置集合;
逻辑公式模块,依据用户限定的有效性要求,确定有效的逻辑公式CSV;
转换建模语言模块,将所述获得优化模型转换为UPPAAL的建模语言;
CTL模块,将可接受位置集合和逻辑公式CSV表示为CTL公式;
验证模块,将建模语言描述的组合服务模型与CTL公式输入UPPAAL进行验证;若验证结果为完全相容且有效,则该组合服务满足用户需求;若验证结果为部分相容且有效,则可根据验证结果生成信息交互引擎,引导组合服务的运行轨迹,达到用户要求;若验证结果是不满足相容且有效,则该组合服务无法满足用户需求。
进一步地,所述原子过程转换模块进一步具体为:
Sequence组合运算单元,若控制结构为Sequence控制结构,则进行Sequence组合运算,即将所有的所述原子过程自动机按照排列的先后顺序依次将前一个原子过程自动机的终止位置连接后一个原子过程自动机的起始位置转化为组合过程自动机;
AnyOrder组合运算单元,若控制结构为AnyOrder控制结构,则进行AnyOrder组合运算,即构造一组逻辑公式初始时的值为true,其中表示将第1到第n个逻辑公式合取, 不含相同命题变元,之后将所有原子过程自动机的起始位置合并为一个新的起始位置ls,从原起始位置出发的迁移都改为从新起始位置出发,并且迁移标号的Pre部分并入一个从所有原终止位置引出一条到达ls的迁移,该迁移使得假,从而保证该组合过程不会被重复执行;增加一个新的位置le并作为终止位置,同时增加一个从ls到le的单步迁移e,其执行前提是公式为真,只有当所有的组合过程都被执行完后,才能到达le
Choice组合运算单元,若控制结构为Choice控制结构,则进行Choice组合运算,即将所有组合过程的起始位置合并为一个新的起始位置ls1,之后将所有组合过程的终止位置合并为一个新的终止位置le1
If-then-Else组合运算单元,若控制结构为If-then-Else控制结构,则进行If-then-Else组合运算,即将选择条件表示成逻辑公式而后将所有组合过程的起始位置合并为一个新的起始位置ls2,从原起始位置出发的迁移改为从新起始位置出发,并用修改迁移标号的Pre部分,最后将所有组合过程的终止位置合并为一个新的终止位置le2
Repeat-Until组合运算单元,若控制结构为Repeat-Until控制结构,则进行Repeat-Until组合运算,即将终止条件用逻辑公式表示,之后修改从起始位置出发的迁移,将并入迁移标号的Pre部分,使该组合过程只有在终止条件为假时可进行,增加一个新的位置le3作为终止位置,并从起始位置引出一个新的单步迁移e3到达le3,其执行前提是表示终止条件的逻辑公式为真;
Repeat-while组合运算单元,若控制结构为Repeat-while控制结构,则进行Repeat-while组合运算,即将终止条件用逻辑公式表示,修改从起始位置出发的迁移,将并入迁移标号的Pre部分,使该组合过程只有在终止条件为假时可进行,增加一个新的位置le4作为终止位置,并从起始位置引出一个新的单步迁移e4到达le4,其执行前提是表示终止条件的逻辑公式为真;
Split-Join组合运算单元,若控制结构为Split-Join控制结构,则进行Split-Join组合运算,即将并发条件和汇合条件分别表示为逻辑公式增加一个新的位置ls5并作为起始位置,从它引出一个并发迁移到达所有组合过程的起始位置,其执行前提为并发条件增加一个新的位置le5并作为终止位置,从所有组合过程的终止位置引出一个到达le5的同步迁移,其执行前提为同步条件
进一步地,所述Sequence组合运算、所述AnyOrder组合运算、所述Choice组合运算及所述If-then-Else组合运算为因果约束,所述Repeat-Unti组合运算及所述Repeat-while组合运算为重复约束,所述Split-Join组合运算为分支约束,所述因果约束、所述重复约束及所述分支约束为组合约束。
进一步地,所述可接受位置集合模块进一步具体为:
第一可接受位置集合单元,第一可接受位置集合WFL:其中原子服务的WFL为其起始位置和终止位置为该原子服务的第一可接受位置,对n台组合过程自动机CPAi,进行组合运算后得到的新组合过程自动机CPA,其第一可接受位置集合WFL为各CPAi的第一可接受位置集合WFLi的并集,并且从WFL中移除组合过程中被剔除的位置,若组合过程中增加了新的位置,且该位置为起始位置或终止位置,则应添加到WFL中;
第二可接受位置集合单元,组合过程自动机CPAi的第一可接受位置为WFLi,当在组合过程中出现组合约束时,获得的可接受位置组成第二可接受位置集合:
对n台组合过程自动机CPAi进行Sequence组合运算得到新的组合过程自动机CPASeq,若出现组合约束语义:若CPAi执行则CPAj也必须执行,其中i<j,则普通可接受位置集合OFLSeq为CPA1~CPAi-1,及CPAj+1~CPAn的第一可接受位置的并集,再加上CPAi的起始位置sLoci和CPAj的终止位置eLocj
或者对n台组合过程自动机CPAi进行AnyOrder组合运算得到新的组合过程自动机CPAAO,若出现组合约束语义:组合服务的运行不能停止在CPAj,则普通可接受位置集合OFLAO是在其第一可接受位置集合WFLAO的基础上,去除CPAj的第一可接受位置集合WFLj,即OFLAO=WFLAO-WFLj
或者对于n台组合过程自动机CPAi进行Choice组合运算得到新的组合过程自动机CPACho,若出现组合约束语义:若CPAj被选中执行则必须执行完成,则普通可接受位置集合OFLCho是在其第一可接受位置集合WFLCho基础上,去除CPAj的第一可接受位置集合WFLj,即OFLCho=WFLCho-WFLj
或者对于两台组合过程自动机CPA1和CPA2进行If-then-Else组合运算得到新的组合过程CPAItE,若出现组合约束语义:若CPAj被选中执行则必须执行完成,则普通可接受位置集合OFLItE是在其第一可接受位置集合WFLItE中去除CPAj的第一可接受位置集合WFLj,即OFLItE=WFLAO-WFLj
或者对于组合过程自动机CPA进行Repeat-Until组合运算得到新组合过程自动机CPARU,若出现组合约束语义:CPA必须重复执行直到终止条件成立,则普通可接受位置集合OFLRU={le},即只有终止位置可接受;
或者对于组合过程自动机CPA进行Repeat-while组合运算得到新组合过程自动机CPARW,若出现组合约束语义:CPA必须重复执行直到循环条件不成立,则普通可接受位置集合OFLRW={le},即只有终止位置可接受;
或者对于n台组合过程自动机CPAi进行Split-Join组合运算得到新的组合过程自动机CPASJ,若出现组合约束语义:分支组件CPAj必须执行完成,则普通可接受位置集合OFLSJ是在其第一可接受位置集合WFLSJ的基础上,去除CPAj的第一可接受位置集合WFLj,即OFLSJ=WFLSJ-WFLj
当组合过程中不存在组合约束语义时,第二可接受位置集合即等于第一可接受位置集合;
第三可接受位置集合单元,组合过程自动机的第三可接受位置集合SFL,其为组合过程自动机的起始位置和终止位置,或者是组合过程自动机的终止位置。
进一步地,所述相容性为:
若组合服务由n台组合过程自动机组成,si为第i台组合过程自动机的位置集合,则组合服务的全局状态向量gsv=(s1,s2,...,sn),若有全局状态向量gsv=(s1,s2,...,sn)和gsv′=(s1′,s2′,...,sn′),其中一台组合过程自动机发生迁移,使得gsv中的某个si变化为gsv′中的si′,而其它的sj保持即 则称gsv发生迁移到达gsv′,记为gsv→gsv′;对于全局状态向量gsv:若满足则称gsv为起始全局状态向量,记为gsv0;若不存在gsv′,使得gsv→gsv′成立,则称gsv为终止全局状态向量,记为gsve
将组合服务从起始全局状态向量开始的一系列迁移称为组合服务的一次运行:gsv0→gsv1→gsv2→...→gsv,简记为gsv0[→]tr gsv,对于组合服务的一次运行gsv0[→]trgsv:若则称该次运行满足弱相容性,记为WC(gsv0[→]tr gsv);若则称该次运行满足普通/自定义相容性,记为OC(gsv0[→]tr gsv);若则称该次运行满足强相容性,记为SC(gsv0[→]tr gsv);将gsv0[→]tr gsve称为组合服务的一次完整运行;
一个组合服务CS是完全强/普通/弱相容的,当且仅当任意gsv0[→]tr gsve都是强/普通/弱相容的;一个组合服务CS是部分强/普通/弱相容的,当且仅当至少存在一个gsv0[→]tr gsve是强/普通/弱相容的。
进一步地,所述优化模型模块进一步具体为:
并发迁移优化单元,若对于一个并发迁移e(l,slt)=tL={l1,...,ln},其源位置l属于另一个并发迁移e′(l′,slt′)=tL′={l1′,...,ln′}的目标位置集合,且两个并发迁移的并发条件相同,同时不存在以l为源位置或目标位置的单步迁移,则l是冗余位置,econ(l,slt)=tL={l1,...,ln}为冗余并发迁移,此时将冗余并发迁移e(l,slt)的目标位置集合tL并入另一并发迁移e′(l′,slt′)的目标位置集合tL′,同时移除冗余位置l和冗余并发迁移e(l,slt);否则位置l不是冗余位置,并发迁移e(l,slt)不是冗余并发迁移;
同步迁移优化单元,若对于一个同步迁移e(sL={l1,...,ln},jn)=l,其目标位置l属于另一个同步迁移e′(sL′={l1′,...,ln′},jn′)=l′的源位置集合,且两个同步迁移的同步条件相同,同时不存在以l为源位置或目标位置的单步迁移,则l是冗余位置,e(sL={l1,...,ln},jn)=l为冗余并发迁;此时将冗余同步迁移e(sL={l1,...,ln},jn)的源位置集合sL并入另一同步迁移e′(sL′={l1′,...,ln′},jn)的源位置集合sL′,同时移除冗余位置l和冗余同步迁移e(sL={l1,...,ln},jn);否则位置l不是冗余位置,并发迁移e(l,slt)不是冗余并发迁移。
进一步地,所述转换建模语言模块进一步具体为:
单步迁移转换单元,组合过程自动机CPA中的单步迁移esin(l,a)=l'直接转换为一台符合UPPAAL语法的时间自动机UTA的迁移离散迁移 迁移标号a=(In,Out,Pre,Eft)转换为a',其中g是由时钟变量表示的约束条件,r是需要被重置为0的时钟变量集合;
并发迁移转换单元,CPA中的并发迁移esin(l,jlt)={l1,...,ln}转换为n台UTA和一个迁移其中:当UTA处于sli位置时,说明它进入了并发执行的分支;a包含并发条件及一个广播通道的发射动作conChni!;
同步迁移转换单元,与并发迁移对应的同步迁移esin({l1,...,ln},jn)=l',则转换为迁移b中包含广播通道的发射动作synChni!,使得多个分支能在同一时刻终结,同时,为了保证同步迁移在所有分支都执行各自的操作后才能发生,增加一个同步变量synVari,初值为0,并将“synVari==n”并入迁移标号b的Guard部分,其中n为分支数量,每个分支执行所有操作后都使其值加1;
分支过程单元,新创建的n台UTAi是用于述n个并发执行的分支,在首尾各增加一个新的位置bl和el,当UTAi处于bl时,说明还没有进入该分支;当UTAi处于el时,说明该分支已执行完毕;bl到对应分支的第一个状态的迁移标号包含广播通道的接收动作conChni?;而对应分支的最后一个状态到达el的迁移标号包含表达式synChni?;每个分支的最后一个迁移标号的Update部分,增加一个表达式synVari++,使同步变量的值加1。
进一步地,所述单步迁移转换单元进一步具体为:
组合过程自动机CPA中的单步迁移esin(l,a)=l'直接转换为一台符合UPPAAL语法的时间自动机UTA的迁移离散迁移迁移标号其中,Guard是一个逻辑表达式,表示迁移执行的条件;Sync是一组通道的发射或接受动作,用于实现同步迁移;Update是一组表达式或用户函数,用于表达迁移的效果;语义信息缓冲区SIB=(SI,V,f),SI是语义信息集合,V是整型变量集合,映射f:SI→V,f是双射的;迁移标号被扩展为一个四元组(In,Out,Pre,Eft),其中Pre和Eft表示执行前提和执行效果,逻辑公式和表达式组成,直接并入到建模语言迁移标号的Guard和Update的部分;In是输入信息的集合,将其表示为:一个合取公式∧f(ci)并且并入迁移标号的Guard部分,合取项的数量与In的元素数量相等,其中f是信息缓冲区中的映射,ci∈In;将其表示为一组表达式{f(ci)--|ci∈In},并且并入迁移标号的Update部分;Out是输入信息的集合,将其表示为一组表达式{f(ci)++|ci∈Out}}并且并入迁移标号的Update部分。
进一步地,所述有效性逻辑公式CSV=(INFOS,EFFECTS),其中:INFOS为一组要求组合服务产生的语义信息集合;EFFECTS为一组逻辑公式,该逻辑公式描述要求组合服务必须达到的限定效果。
进一步地,所述CTL模块进一步具体为:
相容性变量cptyVari∈{unconcerned,incompatible,weak,ordinary,strong},表示UTAi当前的相容性:unconcerned表示该UTAi所描述的并行分支还未被激活或已经结束,incompatible表示不相容,weak表示弱相容,ordinary表示普通/自定义相容,strong表示强相容,可以用取值范围为[0,3]的整型变量来表示相容性变量,数值0~4依次代表incompatible、weak、ordinary、strong、unconcerned,三种相容性在UPPAAL中可描述为:
满足强相容性;
满足普通/自定义相容性;
满足弱相容性;
当组合服务完成一次完整运行后没有迁移再发生,组合服务进入死锁状态,在UPPAAL中以deadlock关键字表示,故将完全/部分相容性表示为CTL公式F1,如下:
其中cptyVari为相容性变量;
对于有效性CSV=(INFOS,EFFECTS),完全/部分有效且强/普通/弱相容表示为CTL公式F2,如下:
进一步地,所述信息交互引擎为一台信息交互引擎IEE=<excFac1,excFac2,...,excFacn>,excFaci=(type,obj,{ci})称为是一个交互因子,其中:type∈{!,?},表示交互的类型,“!”表示由IEE向Service发送信息,“?”表示由IEE接收Service发送的信息;obj∈{Servicei}称为交互对象是一个组件服务;{ci}是交互的信息集合。
本发明具有如下优点:对OWL-S中的原子过程与组合过程的描述更具体完整,并保持了两者的形式一致,可以无差异地参加组合运算,支持逻辑公式和表达式,描述能力更强,尤其是对执行前提、执行效果与组合服务性质的描述;通过验证过程自动化,不仅降低了验证技术的应用门槛,也能够避免在验证过程中引入新的错误;将有效性与相容性相结合,对组合服务的验证更全面;划分了相容性的强度等级,可避免因过强的相容性要求,而造成一些可用的组合服务被排除,其验证结果可用于错误定位,或引导组合服务正确执行,所使用的验证技术与工具在空间表示与维持上具有显著的优势,能够通过增加时钟、迁移概率等要素进行扩展,并且都有相应的模型检测工具支持。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为OWL-S的顶层本体视图。
图2为Process的结构视图。
图3为本发明系统原理框图。
图4为本发明方法执行流程图。
图5a为原子过程自动机示意一图。
图5b为原子过程自动机示意二图。
图5c为原子过程自动机示意三图。
图5d为原子过程自动机示意四图。
图6为原子过程自动机示意五图。
图7为sequence组合运算示意图。
图8为AnyOrder组合运算示意图。
图9为Choice组合运算示意图。
图10为If-Then-Else组合运算示意图。
图11为Repeat-Until组合运算示意图。
图12为Repeat-while组合运算示意图。
图13为Repeat-while组合运算示意图。
图14为冗余并发/同步迁移的产生示意图。
图15为优化后的组合过程自动机示意图。
图16为信息交互引擎示意图。
图17为并发/同步迁移转换示意图。
图18为本发明赋值规则示意图。
具体实施方式
如图4所示,一种语义Web服务组合的自动验证方法,其特征在于:包括如下步骤:
步骤10、将OWL-S描述的Web服务即原子过程转化为一台原子过程自动机,然后根据不同的控制结构,将原子过程自动机组合为组合过程自动机:步骤11,若控制结构为Sequence控制结构,则进行Sequence组合运算,即将所有的所述原子过程自动机按照排列的先后顺序依次将前一个原子过程自动机的终止位置连接后一个原子过程自动机的起始位置转化为组合过程自动机;
步骤12,若控制结构为AnyOrder控制结构,则进行AnyOrder组合运算,即构造一组逻辑公式初始时的值为true,其中表示将第1到第n个逻辑公式合取, 不含相同命题变元,之后将所有原子过程自动机的起始位置合并为一个新的起始位置ls,从原起始位置出发的迁移都改为从新起始位置出发,并且迁移标号的Pre部分并入一个从所有原终止位置引出一条到达ls的迁移,该迁移使得假,从而保证该组合过程不会被重复执行;增加一个新的位置le并作为终止位置,同时增加一个从ls到le的单步迁移e,其执行前提是公式为真,只有当所有的组合过程都被执行完后,才能到达le
步骤13,若控制结构为Choice控制结构,则进行Choice组合运算,即将所有组合过程的起始位置合并为一个新的起始位置ls1,之后将所有组合过程的终止位置合并为一个新的终止位置le1
步骤14,若控制结构为If-then-Else控制结构,则进行If-then-Else组合运算,即将选择条件表示成逻辑公式而后将所有组合过程的起始位置合并为一个新的起始位置ls2,从原起始位置出发的迁移改为从新起始位置出发,并用修改迁移标号的Pre部分,最后将所有组合过程的终止位置合并为一个新的终止位置le2
步骤15,若控制结构为Repeat-Until控制结构,则进行Repeat-Until组合运算,即将终止条件用逻辑公式表示,之后修改从起始位置出发的迁移,将并入迁移标号的Pre部分,使该组合过程只有在终止条件为假时可进行,增加一个新的位置le3作为终止位置,并从起始位置引出一个新的单步迁移e3到达le3,其执行前提是表示终止条件的逻辑公式为真;
步骤16,若控制结构为Repeat-while控制结构,则进行Repeat-while组合运算,即将终止条件用逻辑公式表示,修改从起始位置出发的迁移,将并入迁移标号的Pre部分,使该组合过程只有在终止条件为假时可进行,增加一个新的位置le4作为终止位置,并从起始位置引出一个新的单步迁移e4到达le4,其执行前提是表示终止条件的逻辑公式为真;
步骤17,若控制结构为Split-Join控制结构,则进行Split-Join组合运算,即将并发条件和汇合条件分别表示为逻辑公式增加一个新的位置ls5并作为起始位置,从它引出一个并发迁移到达所有组合过程的起始位置,其执行前提为并发条件增加一个新的位置le5并作为终止位置,从所有组合过程的终止位置引出一个到达le5的同步迁移,其执行前提为同步条件所述Sequence组合运算、所述AnyOrder组合运算、所述Choice组合运算及所述If-then-Else组合运算为因果约束,所述Repeat-Unti组合运算及所述Repeat-while组合运算为重复约束,所述Split-Join组合运算为分支约束,所述因果约束、所述重复约束及所述分支约束为组合约束;
步骤20、消除组合过程自动机的冗余并发和同步迁移,获得优化模型:步骤21,若对于一个并发迁移e(l,slt)=tL={l1,...,ln},其源位置l属于另一个并发迁移e′(l′,slt′)=tL′={l1′,...,ln′}的目标位置集合,且两个并发迁移的并发条件相同,同时不存在以l为源位置或目标位置的单步迁移,则l是冗余位置,econ(l,slt)=tL={l1,...,ln}为冗余并发迁移,此时将冗余并发迁移e(l,slt)的目标位置集合tL并入另一并发迁移e′(l′,slt′)的目标位置集合tL′,同时移除冗余位置l和冗余并发迁移e(l,slt);否则位置l不是冗余位置,并发迁移e(l,slt)不是冗余并发迁移;
步骤22,若对于一个同步迁移e(sL={l1,...,ln},jn)=l,其目标位置l属于另一个同步迁移e′(sL′={l1′,...,ln′},jn′)=l′的源位置集合,且两个同步迁移的同步条件相同,同时不存在以l为源位置或目标位置的单步迁移,则l是冗余位置,e(sL={l1,...,ln},jn)=l为冗余并发迁;此时将冗余同步迁移e(sL={l1,...,ln},jn)的源位置集合sL并入另一同步迁移e′(sL′={l1′,...,ln′},jn)的源位置集合sL′,同时移除冗余位置l和冗余同步迁移e(sL={l1,...,ln},jn);否则位置l不是冗余位置,并发迁移e(l,slt)不是冗余并发迁移;
步骤30、依据用户限定的相容性要求,确定组合过程自动机的可接受位置集合:步骤31,第一可接受位置集合WFL:其中原子服务的WFL为其起始位置和终止位置为该原子服务的第一可接受位置,对n台组合过程自动机CPAi,进行组合运算后得到的新组合过程自动机CPA,其第一可接受位置集合WFL为各CPAi的第一可接受位置集合WFLi的并集,并且从WFL中移除组合过程中被剔除的位置,若组合过程中增加了新的位置,且该位置为起始位置或终止位置,则应添加到WFL中;
步骤32,组合过程自动机CPAi的第一可接受位置为WFLi,当在组合过程中出现组合约束时,获得的可接受位置组成第二可接受位置集合:
对n台组合过程自动机CPAi进行Sequence组合运算得到新的组合过程自动机CPASeq,若出现组合约束语义:若CPAi执行则CPAj也必须执行,其中i<j,则普通可接受位置集合OFLSeq为CPA1~CPAi-1,及CPAj+1~CPAn的第一可接受位置的并集,再加上CPAi的起始位置sLoci和CPAj的终止位置eLocj
或者对n台组合过程自动机CPAi进行AnyOrder组合运算得到新的组合过程自动机CPAAO,若出现组合约束语义:组合服务的运行不能停止在CPAj,则普通可接受位置集合OFLAO是在其第一可接受位置集合WFLAO的基础上,去除CPAj的第一可接受位置集合WFLj,即OFLAO=WFLAO-WFLj
或者对于n台组合过程自动机CPAi进行Choice组合运算得到新的组合过程自动机CPACho,若出现组合约束语义:若CPAj被选中执行则必须执行完成,则普通可接受位置集合OFLCho是在其第一可接受位置集合WFLCho基础上,去除CPAj的第一可接受位置集合WFLj,即OFLCho=WFLCho-WFLj
或者对于两台组合过程自动机CPA1和CPA2进行If-then-Else组合运算得到新的组合过程CPAItE,若出现组合约束语义:若CPAj被选中执行则必须执行完成,则普通可接受位置集合OFLItE是在其第一可接受位置集合WFLItE中去除CPAj的第一可接受位置集合WFLj,即OFLItE=WFLAO-WFLj
或者对于组合过程自动机CPA进行Repeat-Until组合运算得到新组合过程自动机CPARU,若出现组合约束语义:CPA必须重复执行直到终止条件成立,则普通可接受位置集合OFLRU={le},即只有终止位置可接受;
或者对于组合过程自动机CPA进行Repeat-while组合运算得到新组合过程自动机CPARW,若出现组合约束语义:CPA必须重复执行直到循环条件不成立,则普通可接受位置集合OFLRW={le},即只有终止位置可接受;
或者对于n台组合过程自动机CPAi进行Split-Join组合运算得到新的组合过程自动机CPASJ,若出现组合约束语义:分支组件CPAj必须执行完成,则普通可接受位置集合OFLSJ是在其第一可接受位置集合WFLSJ的基础上,去除CPAj的第一可接受位置集合WFLj,即OFLSJ=WFLSJ-WFLj
当组合过程中不存在组合约束语义时,第二可接受位置集合即等于第一可接受位置集合;
步骤33,组合过程自动机的第三可接受位置集合SFL,其为组合过程自动机的起始位置和终止位置,或者是组合过程自动机的终止位置;
所述相容性为:若组合服务由n台组合过程自动机组成,si为第i台组合过程自动机的位置集合,则组合服务的全局状态向量gsv=(s1,s2,...,sn),若有全局状态向量gsv=(s1,s2,...,sn)和gsv′=(s1′,s2′,...,sn′),其中一台组合过程自动机发生迁移,使得gsv中的某个si变化为gsv′中的si′,而其它的sj保持即则称gsv发生迁移到达gsv′,记为gsv→gsv′;对于全局状态向量gsv:若满足则称gsv为起始全局状态向量,记为gsv0;若不存在gsv′,使得gsv→gsv′成立,则称gsv为终止全局状态向量,记为gsve;将组合服务从起始全局状态向量开始的一系列迁移称为组合服务的一次运行:gsv0→gsv1→gsv2→...→gsv,简记为gsv0[→]trgsv,对于组合服务的一次运行gsv0[→]tr gsv:若则称该次运行满足弱相容性,记为WC(gsv0[→]trgsv);若则称该次运行满足普通/自定义相容性,记为OC(gsv0[→]trgsv);若 则称该次运行满足强相容性,记为SC(gsv0[→]tr gsv);将gsv0[→]trgsve称为组合服务的一次完整运行;一个组合服务CS是完全强/普通/弱相容的,当且仅当任意gsv0[→]tr gsve都是强/普通/弱相容的;一个组合服务CS是部分强/普通/弱相容的,当且仅当至少存在一个gsv0[→]tr gsve是强/普通/弱相容的;
步骤40、依据用户限定的有效性要求,确定有效的逻辑公式CSV,所述有效性逻辑公式CSV=(INFOS,EFFECTS),其中:INFOS为一组要求组合服务产生的语义信息集合;EFFECTS为一组逻辑公式,该逻辑公式描述要求组合服务必须达到的限定效果;
步骤50、将所述获得优化模型转换为UPPAAL的建模语言:步骤51,组合过程自动机CPA中的单步迁移esin(l,a)=l'直接转换为一台符合UPPAAL语法的时间自动机UTA的迁移离散迁移迁移标号a=(In,Out,Pre,Eft)转换为a',其中g是由时钟变量表示的约束条件,r是需要被重置为0的时钟变量集合;
组合过程自动机CPA中的单步迁移esin(l,a)=l'直接转换为一台符合UPPAAL语法的时间自动机UTA的迁移离散迁移迁移标号其中,Guard是一个逻辑表达式,表示迁移执行的条件;Sync是一组通道的发射或接受动作,用于实现同步迁移;Update是一组表达式或用户函数,用于表达迁移的效果;语义信息缓冲区SIB=(SI,V,f),SI是语义信息集合,V是整型变量集合,映射f:SI→V,f是双射的;迁移标号被扩展为一个四元组(In,Out,Pre,Eft),其中Pre和Eft表示执行前提和执行效果,逻辑公式和表达式组成,直接并入到建模语言迁移标号的Guard和Update的部分;In是输入信息的集合,将其表示为:一个合取公式∧f(ci)并且并入迁移标号的Guard部分,合取项的数量与In的元素数量相等,其中f是信息缓冲区中的映射,ci∈In;将其表示为一组表达式{f(ci)--|ci∈In},并且并入迁移标号的Update部分;Out是输入信息的集合,将其表示为一组表达式{f(ci)++|ci∈Out}}并且并入迁移标号的Update部分;
步骤52,CPA中的并发迁移esin(l,jlt)={l1,...,ln}转换为n台UTA和一个迁移其中:当UTA处于sli位置时,说明它进入了并发执行的分支;a包含并发条件及一个广播通道的发射动作conChni!;
步骤53,而与并发迁移对应的同步迁移esin({l1,...,ln},jn)=l',则转换为迁移b中包含广播通道的发射动作synChni!,使得多个分支能在同一时刻终结,同时,为了保证同步迁移在所有分支都执行各自的操作后才能发生,增加一个同步变量synVari,初值为0,并将“synVari==n”并入迁移标号b的Guard部分,其中n为分支数量,每个分支执行所有操作后都使其值加1;
步骤54,新创建的n台UTAi是用于述n个并发执行的分支,在首尾各增加一个新的位置bl和el,当UTAi处于bl时,说明还没有进入该分支;当UTAi处于el时,说明该分支已执行完毕;bl到对应分支的第一个状态的迁移标号包含广播通道的接收动作conChni?;而对应分支的最后一个状态到达el的迁移标号包含表达式synChni?;每个分支的最后一个迁移标号的Update部分,增加一个表达式synVari++,使同步变量的值加1;
步骤60、将可接受位置集合和逻辑公式CSV表示为CTL公式;
相容性变量cptyVari∈{unconcerned,incompatible,weak,ordinary,strong},表示UTAi当前的相容性:unconcerned表示该UTAi所描述的并行分支还未被激活或已经结束,incompatible表示不相容,weak表示弱相容,ordinary表示普通/自定义相容,strong表示强相容,可以用取值范围为[0,3]的整型变量来表示相容性变量,数值0~4依次代表incompatible、weak、ordinary、strong、unconcerned,三种相容性在UPPAAL中可描述为:
满足强相容性;
满足普通/自定义相容性;
满足弱相容性;
当组合服务完成一次完整运行后没有迁移再发生,组合服务进入死锁状态,在UPPAAL中以deadlock关键字表示,故可将完全/部分相容性表示为CTL公式F1,如下:
其中cptyVari为相容性变量;
对于有效性CSV=(INFOS,EFFECTS),完全/部分有效且强/普通/弱相容,表示为CTL公式F2,如下:
步骤70、将建模语言描述的组合服务模型与CTL公式输入UPPAAL进行验证;若验证结果为完全相容且有效,则该组合服务满足用户需求;若验证结果为部分相容且有效,则可根据验证结果生成信息交互引擎,引导组合服务的运行轨迹,达到用户要求;若验证结果是不满足相容且有效,则该组合服务无法满足用户需求,所述信息交互引擎为一台信息交互引擎IEE=<excFac1,excFac2,...,excFacn>,excFaci=(type,obj,{ci})称为是一个交互因子,其中:type∈{!,?},表示交互的类型,“!”表示由IEE向Service发送信息,“?”表示由IEE接收Service发送的信息;obj∈{Servicei}称为交互对象是一个组件服务;{ci}是交互的信息集合。
如图3所示,一种语义Web服务组合的自动验证系统,包括如下模块:
原子过程转换模块,将OWL-S描述的Web服务即原子过程转化为一台原子过程自动机,然后根据不同的控制结构,将原子过程自动机组合为组合过程自动机,所述原子过程转换模块进一步具体为:
Sequence组合运算单元,若控制结构为Sequence控制结构,则进行Sequence组合运算,即将所有的所述原子过程自动机按照排列的先后顺序依次将前一个原子过程自动机的终止位置连接后一个原子过程自动机的起始位置转化为组合过程自动机;
AnyOrder组合运算单元,若控制结构为AnyOrder控制结构,则进行AnyOrder组合运算,即构造一组逻辑公式初始时的值为true,其中表示将第1到第n个逻辑公式合取, 不含相同命题变元,之后将所有原子过程自动机的起始位置合并为一个新的起始位置ls,从原起始位置出发的迁移都改为从新起始位置出发,并且迁移标号的Pre部分并入一个从所有原终止位置引出一条到达ls的迁移,该迁移使得假,从而保证该组合过程不会被重复执行;增加一个新的位置le并作为终止位置,同时增加一个从ls到le的单步迁移e,其执行前提是公式为真,只有当所有的组合过程都被执行完后,才能到达le
Choice组合运算单元,若控制结构为Choice控制结构,则进行Choice组合运算,即将所有组合过程的起始位置合并为一个新的起始位置ls1,之后将所有组合过程的终止位置合并为一个新的终止位置le1
If-then-Else组合运算单元,若控制结构为If-then-Else控制结构,则进行If-then-Else组合运算,即将选择条件表示成逻辑公式而后将所有组合过程的起始位置合并为一个新的起始位置ls2,从原起始位置出发的迁移改为从新起始位置出发,并用修改迁移标号的Pre部分,最后将所有组合过程的终止位置合并为一个新的终止位置le2
Repeat-Until组合运算单元,若控制结构为Repeat-Until控制结构,则进行Repeat-Until组合运算,即将终止条件用逻辑公式表示,之后修改从起始位置出发的迁移,将并入迁移标号的Pre部分,使该组合过程只有在终止条件为假时可进行,增加一个新的位置le3作为终止位置,并从起始位置引出一个新的单步迁移e3到达le3,其执行前提是表示终止条件的逻辑公式为真;
Repeat-while组合运算单元,若控制结构为Repeat-while控制结构,则进行Repeat-while组合运算,即将终止条件用逻辑公式表示,修改从起始位置出发的迁移,将并入迁移标号的Pre部分,使该组合过程只有在终止条件为假时可进行,增加一个新的位置le4作为终止位置,并从起始位置引出一个新的单步迁移e4到达le4,其执行前提是表示终止条件的逻辑公式为真;
Split-Join组合运算单元,若控制结构为Split-Join控制结构,则进行Split-Join组合运算,即将并发条件和汇合条件分别表示为逻辑公式增加一个新的位置ls5并作为起始位置,从它引出一个并发迁移到达所有组合过程的起始位置,其执行前提为并发条件增加一个新的位置le5并作为终止位置,从所有组合过程的终止位置引出一个到达le5的同步迁移,其执行前提为同步条件
所述Sequence组合运算、所述AnyOrder组合运算、所述Choice组合运算及所述If-then-Else组合运算为因果约束,所述Repeat-Unti组合运算及所述Repeat-while组合运算为重复约束,所述Split-Join组合运算为分支约束,所述因果约束、所述重复约束及所述分支约束为组合约束。
优化模型模块,消除组合过程自动机的冗余并发和同步迁移,获得优化模型;所述优化模型模块进一步具体为:
并发迁移优化单元,若对于一个并发迁移e(l,slt)=tL={l1,...,ln},其源位置l属于另一个并发迁移e′(l′,slt′)=tL′={l1′,...,ln′}的目标位置集合,且两个并发迁移的并发条件相同,同时不存在以l为源位置或目标位置的单步迁移,则l是冗余位置,econ(l,slt)=tL={l1,...,ln}为冗余并发迁移,此时将冗余并发迁移e(l,slt)的目标位置集合tL并入另一并发迁移e′(l′,slt′)的目标位置集合tL′,同时移除冗余位置l和冗余并发迁移e(l,slt);否则位置l不是冗余位置,并发迁移e(l,slt)不是冗余并发迁移;
同步迁移优化单元,若对于一个同步迁移e(sL={l1,...,ln},jn)=l,其目标位置l属于另一个同步迁移e′(sL′={l1′,...,ln′},jn′)=l′的源位置集合,且两个同步迁移的同步条件相同,同时不存在以l为源位置或目标位置的单步迁移,则l是冗余位置,e(sL={l1,...,ln},jn)=l为冗余并发迁;此时将冗余同步迁移e(sL={l1,...,ln},jn)的源位置集合sL并入另一同步迁移e′(sL′={l1′,...,ln′},jn)的源位置集合sL′,同时移除冗余位置l和冗余同步迁移e(sL={l1,...,ln},jn);否则位置l不是冗余位置,并发迁移e(l,slt)不是冗余并发迁移。
可接受位置集合模块,依据用户限定的相容性要求,确定组合过程自动机的可接受位置集合,所述可接受位置集合模块进一步具体为:
第一可接受位置集合单元,第一可接受位置集合WFL:其中原子服务的WFL为其起始位置和终止位置为该原子服务的第一可接受位置,对n台组合过程自动机CPAi,进行组合运算后得到的新组合过程自动机CPA,其第一可接受位置集合WFL为各CPAi的第一可接受位置集合WFLi的并集,并且从WFL中移除组合过程中被剔除的位置,若组合过程中增加了新的位置,且该位置为起始位置或终止位置,则应添加到WFL中;
第二可接受位置集合单元,组合过程自动机CPAi的第一可接受位置为WFLi,当在组合过程中出现组合约束时,获得的可接受位置组成第二可接受位置集合:
对n台组合过程自动机CPAi进行Sequence组合运算得到新的组合过程自动机CPASeq,若出现组合约束语义:若CPAi执行则CPAj也必须执行,其中i<j,则普通可接受位置集合OFLSeq为CPA1~CPAi-1,及CPAj+1~CPAn的第一可接受位置的并集,再加上CPAi的起始位置sLoci和CPAj的终止位置eLocj
或者对n台组合过程自动机CPAi进行AnyOrder组合运算得到新的组合过程自动机CPAAO,若出现组合约束语义:组合服务的运行不能停止在CPAj,则普通可接受位置集合OFLAO是在其第一可接受位置集合WFLAO的基础上,去除CPAj的第一可接受位置集合WFLj,即OFLAO=WFLAO-WFLj
或者对于n台组合过程自动机CPAi进行Choice组合运算得到新的组合过程自动机CPACho,若出现组合约束语义:若CPAj被选中执行则必须执行完成,则普通可接受位置集合OFLCho是在其第一可接受位置集合WFLCho基础上,去除CPAj的第一可接受位置集合WFLj,即OFLCho=WFLCho-WFLj
或者对于两台组合过程自动机CPA1和CPA2进行If-then-Else组合运算得到新的组合过程CPAItE,若出现组合约束语义:若CPAj被选中执行则必须执行完成,则普通可接受位置集合OFLItE是在其第一可接受位置集合WFLItE中去除CPAj的第一可接受位置集合WFLj,即OFLItE=WFLAO-WFLj
或者对于组合过程自动机CPA进行Repeat-Until组合运算得到新组合过程自动机CPARU,若出现组合约束语义:CPA必须重复执行直到终止条件成立,则普通可接受位置集合OFLRU={le},即只有终止位置可接受;
或者对于组合过程自动机CPA进行Repeat-while组合运算得到新组合过程自动机CPARW,若出现组合约束语义:CPA必须重复执行直到循环条件不成立,则普通可接受位置集合OFLRW={le},即只有终止位置可接受;
或者对于n台组合过程自动机CPAi进行Split-Join组合运算得到新的组合过程自动机CPASJ,若出现组合约束语义:分支组件CPAj必须执行完成,则普通可接受位置集合OFLSJ是在其第一可接受位置集合WFLSJ的基础上,去除CPAj的第一可接受位置集合WFLj,即OFLSJ=WFLSJ-WFLj
当组合过程中不存在组合约束语义时,第二可接受位置集合即等于第一可接受位置集合;
第三可接受位置集合单元,组合过程自动机的第三可接受位置集合SFL,其为组合过程自动机的起始位置和终止位置,或者是组合过程自动机的终止位置;
所述相容性为:若组合服务由n台组合过程自动机组成,si为第i台组合过程自动机的位置集合,则组合服务的全局状态向量gsv=(s1,s2,...,sn),若有全局状态向量gsv=(s1,s2,...,sn)和gsv′=(s1′,s2′,...,sn′),其中一台组合过程自动机发生迁移,使得gsv中的某个si变化为gsv′中的si′,而其它的sj保持即则称gsv发生迁移到达gsv′,记为gsv→gsv′;对于全局状态向量gsv:若满足则称gsv为起始全局状态向量,记为gsv0;若不存在gsv′,使得gsv→gsv′成立,则称gsv为终止全局状态向量,记为gsve
将组合服务从起始全局状态向量开始的一系列迁移称为组合服务的一次运行:gsv0→gsv1→gsv2→...→gsv,简记为gsv0[→]tr gsv,对于组合服务的一次运行gsv0[→]trgsv:若则称该次运行满足弱相容性,记为WC(gsv0[→]tr gsv);若则称该次运行满足普通/自定义相容性,记为OC(gsv0[→]tr gsv);若则称该次运行满足强相容性,记为SC(gsv0[→]tr gsv);将gsv0[→]tr gsve称为组合服务的一次完整运行;
一个组合服务CS是完全强/普通/弱相容的,当且仅当任意gsv0[→]tr gsve都是强/普通/弱相容的;一个组合服务CS是部分强/普通/弱相容的,当且仅当至少存在一个gsv0[→]tr gsve是强/普通/弱相容的。
逻辑公式模块,依据用户限定的有效性要求,确定有效的逻辑公式CSV;所述有效性逻辑公式CSV=(INFOS,EFFECTS),其中:INFOS为一组要求组合服务产生的语义信息集合;EFFECTS为一组逻辑公式,该逻辑公式描述要求组合服务必须达到的限定效果。
转换建模语言模块,将所述获得优化模型转换为UPPAAL的建模语言;所述转换建模语言模块进一步具体为:
单步迁移转换单元,组合过程自动机CPA中的单步迁移esin(l,a)=l'直接转换为一台符合UPPAAL语法的时间自动机UTA的迁移离散迁移 迁移标号a=(In,Out,Pre,Eft)转换为a',其中g是由时钟变量表示的约束条件,r是需要被重置为0的时钟变量集合;所述单步迁移转换单元进一步具体为:
组合过程自动机CPA中的单步迁移esin(l,a)=l'直接转换为一台符合UPPAAL语法的时间自动机UTA的迁移离散迁移迁移标号其中,Guard是一个逻辑表达式,表示迁移执行的条件;Sync是一组通道的发射或接受动作,用于实现同步迁移;Update是一组表达式或用户函数,用于表达迁移的效果;语义信息缓冲区SIB=(SI,V,f),SI是语义信息集合,V是整型变量集合,映射f:SI→V,f是双射的;迁移标号被扩展为一个四元组(In,Out,Pre,Eft),其中Pre和Eft表示执行前提和执行效果,逻辑公式和表达式组成,直接并入到建模语言迁移标号的Guard和Update的部分;In是输入信息的集合,将其表示为:一个合取公式∧f(ci)并且并入迁移标号的Guard部分,合取项的数量与In的元素数量相等,其中f是信息缓冲区中的映射,ci∈In;将其表示为一组表达式{f(ci)--|ci∈In},并且并入迁移标号的Update部分;Out是输入信息的集合,将其表示为一组表达式{f(ci)++|ci∈Out}}并且并入迁移标号的Update部分;
并发迁移转换单元,CPA中的并发迁移esin(l,jlt)={l1,...,ln}转换为n台UTA和一个迁移其中:当UTA处于sli位置时,说明它进入了并发执行的分支;a包含并发条件及一个广播通道的发射动作conChni!;
同步迁移转换单元,与并发迁移对应的同步迁移esin({l1,...,ln},jn)=l',则转换为迁移b中包含广播通道的发射动作synChni!,使得多个分支能在同一时刻终结,同时,为了保证同步迁移在所有分支都执行各自的操作后才能发生,增加一个同步变量synVari,初值为0,并将“synVari==n”并入迁移标号b的Guard部分,其中n为分支数量,每个分支执行所有操作后都使其值加1;
分支过程单元,新创建的n台UTAi是用于述n个并发执行的分支,在首尾各增加一个新的位置bl和el,当UTAi处于bl时,说明还没有进入该分支;当UTAi处于el时,说明该分支已执行完毕;bl到对应分支的第一个状态的迁移标号包含广播通道的接收动作conChni?;而对应分支的最后一个状态到达el的迁移标号包含表达式synChni?;每个分支的最后一个迁移标号的Update部分,增加一个表达式synVari++,使同步变量的值加1。
CTL模块,将可接受位置集合和逻辑公式CSV表示为CTL公式;所述CTL模块进一步具体为:
相容性变量cptyVari∈{unconcerned,incompatible,weak,ordinary,strong},表示UTAi当前的相容性:unconcerned表示该UTAi所描述的并行分支还未被激活或已经结束,incompatible表示不相容,weak表示弱相容,ordinary表示普通/自定义相容,strong表示强相容,可以用取值范围为[0,3]的整型变量来表示相容性变量,数值0~4依次代表incompatible、weak、ordinary、strong、unconcerned,三种相容性在UPPAAL中可描述为:
满足强相容性;
满足普通/自定义相容性;
满足弱相容性;
当组合服务完成一次完整运行后没有迁移再发生,组合服务进入死锁状态,在UPPAAL中以deadlock关键字表示,故可将完全/部分相容性表示为CTL公式F1,如下:
其中cptyVari为相容性变量;
对于有效性CSV=(INFOS,EFFECTS),完全/部分有效且强/普通/弱相容,CTL公式F2如下:
验证模块,将建模语言描述的组合服务模型与CTL表达式输入UPPAAL进行验证;若验证结果为完全相容且有效,则该组合服务满足用户需求;若验证结果为部分相容且有效,则可根据验证结果生成信息交互引擎,引导组合服务的运行轨迹,达到用户要求;若验证结果是不满足相容且有效,则该组合服务无法满足用户需求,所述信息交互引擎为一台信息交互引擎IEE=<excFac1,excFac2,...,excFacn>,excFaci=(type,obj,{ci})称为是一个交互因子,其中:type∈{!,?},表示交互的类型,“!”表示由IEE向Service发送信息,“?”表示由IEE接收Service发送的信息;obj∈{Servicei}称为交互对象是一个组件服务;{ci}是交互的信息集合。
验证框架的前端是一种服务描述语言(标准),这可以让研究工作始终处在标准的约束下,使得验证方法具有通用性,而不是局限于某个具体的实例。本发明选择的是目前业界最为认可的服务描述语言OWL-S。
由于模型检测工具并不是为验证Web服务而设计的,因此通常不适合直接描述Web服务,因此需要一个转换中介。通过对服务描述语言的研究与分析,将其转化为一种合适的形式化模型,为使用建模语言描述Web服务提供基础。
在建立了形式化模型之后,需要进一步进行分析,保证它的正确性。在此前提下,还可以进行改进和优化,使其更精简高效。通过性质分析技术,将组合服务的相关性质映射到形式化模型上,得到待验证的系统性质。
最后,使用模型检测工具的建模语言对形式化模型进行描述,并将待验证的组合服务的性质转换为模型检测工具的性质描述语言。将两者输入到模型检测器,即可进行自动验证。
原子过程的模型在OWL-S描述的Web服务中,最小的单位是原子过程,可视为一个不可再分的原子服务,用一个IOPEs来描述。而若干个原子过程或组合过程通过控制结构组合在一起形成新的组合过程。对于一个原子过程,很自然地可以把它表示成自动机的一个迁移,组合过程就可以表示成一台具有多个迁移的自动机。但是,OWL-S中原子过程或组合过程是按一定的控制结构组合在一起的,并不只是简单的顺序组合。传统的自动机并不能很好地表达这些控制结构,尤其是OWL-S中的Split和Join控制结构。因此,需要将传统的自动机扩展为并发有限自动机:
定义1(并发有限自动机)一台并发有限自动机CFA=(L,IL,FL,Σ,E),其中:L为位置集合,IL∈L为初始位置集合,为可接受位置;Σ为迁移标号集合;迁移边集合E={esin}∪{econ}∪{esyn},分为单步、并发和同步三类:
esin:L×Σ→L.
econ:L×Σ→2L.
esyn:2L×Σ→L.
并发迁移从一个位置迁移到多个位置(即确定型有限自动机中的状态),而同步迁移从多个位置迁移到一个位置。因此,并发有限自动机的迁移是位置集合之间的转换。
在并发有限自动机的基础上,扩展起始位置和终止位置,就成为了一台组合过程自动机(Composite Process Automata)。
定义2(组合过程自动机)一台组合过程自动机是一台扩展的并发有限自动机CPA=(L,IL,FL,sLoc,eLoc,Σ,E),其中:sLoc记录CPA的起始位置,eLoc记录CPA的终止位置。且规定IL={sLoc},eLoc∈FL。
从接口的角度,WSDL 1.1规范为Web服务定义了四种类型的消息传输模式:
One-Way:仅接收一条消息,如图5a所示。
Notification:仅发送一条消息,如图5b所示。
Request-Respone:先接收一条消息,再发送一条消息,如图5c所示。
Solicit-Respone:先发送一条消息,再接收一条消息,如图5d所示。
显然,原子过程可能有发送和接收两个动作,且有先后顺序之后,对应的也应有四种原子过程。如图5a、图5b、图5c及图5d所示,其中,起始位置用被一个独立的箭头指向(如l0),终止位置用双圆表示(如l2)。
在OWL-S中,用IOPEs来描述接口,这可以通过扩展迁移标号来实现:
定义3(迁移标号的扩展)一台组合过程自动机的迁移标号集合Σ={(In,Out,Pre,Eft)},其中:In、out是输入和输出信息的集合,由OWL本体概念描述;Pre、Eft是执行前提和执行效果集合,由逻辑公式和表达式描述。
组合方法
OWL-S提供了九种控制结构用于流程描述:
Sequence:一组原子或组合过程按先后顺序连接在一起。
Anyorder:一组原子或组合过程以任意的次序执行,但一个过程结束前,另一个过程不能开始执行,即多个过程的执行不可交错。
Choice:从一组原子或组合过程中选择一个执行,但没有明确定义选择条件,可以用于实现随机选择。
If-then-else:从两个原子或组合过程中选择一个执行,其选择条件是明确定义的。
Repeat-until:重复执行一个原子或组合过程,直到(until)终止条件成立。
Repeat-while:当(until)循环条件成立,重复执行一个原子或组合过程。
Iterate:是一个抽象概念,但在OWL-S过程模型中不能被实例化,因此不予分析和使用。
Split:一组原子或组合过程并发执行,即将一组过程激活。所有过程的激活条件都是相同的,但可以为空。
Split+Join:同样是激活一组原子或组合过程,使它们并发执行,但还要求这些组合过程执行结束。所有过程的激活条件和结束都是相同的,但可以为空。
在实际应用中,组合通常是对多个组合过程,虽然可以通过多次的两两组合来实现,但这样会造成一些不便。因此,以下介绍的组合运算,其运算对象可以有多个,但不包括对运算对象个数有限制(如If-then-Else)的组合运算。由于Split实际上就是Split+Join的一部分,因此没有另外定义Split组合运算。介绍组合运算时所使用的示例,将以图6中的两台原子过程自动机作为运算对象,其中a、b、c及d为迁移事件。
1、Sequence
Sequence组合运算是将多个组合过程,按照排列的先后顺序连接在一起。如图7所示。组合方法如下:将CPA1的终止位置(l12),与CPA2的起始位置(l20)合并。
2、AnyOrder
AnyOrder组合运算将多个组合过程以任意次序不重叠地组合在一起。如图8所示。组合方法如下:
(1)构造一组逻辑公式初始时的值为true,其中表示将第1到第n个逻辑公式合取, 不含相同命题变元。
(2)将所有的起始位置(l10、l20)合并为一个新的起始位置(ls),从原起始位置出发的迁移都改为从新起始位置出发,并且迁移标号的Pre部分并入一个即为这样能够保证每次随机选取一个为真的迁移执行,即随机执行一个组合过程。
(3)从所有原终止位置(l12、l22)以出一条到达ls的迁移,该迁移的作用是使得为假,从而保证该组合过程不会被重复执行。
(4)增加一个新的位置le并作为终止位置,同时增加一个从ls到le的单步迁移e,其执行前提是公式为真,从而保证,只有当所有的组合过程都被执行完后,才能到达le
3、Choice
Choice组合运算将多个组合过程并行连接,但只会有一个组合过程会被执行。如图9所示。组合方法如下:
(1)将所有组合过程的起始位置(l10、l20)合并为一个新的起始位置(ls)。
(2)将所有组合过程的终止位置(l12、l22)合并为一个新的终止位置(le)。
4、If-then-Else
f-then-Else组合运算的运算对象只有两个,只有其中一个组合过程会被执行。选择条件是明确定义的,用逻辑公式表示。如图10所示。组合方法如下:
(1)将选择条件表示成逻辑公式
(2)将所有组合过程的起始位置(l10、l20)合并为一个新的起始位置(ls),从原起始位置出发的迁移改为从新起始位置出发,并用修改迁移标号的Pre部分,即为保证只会有一个组合过程被执行。
(3)将所有组合过程的终止位置(l12、l22)合并为一个新的终止位置(le)。
5、Repeat-Until
Repeat-Until组合运算的运算对象只有一个,它将被反复执行,直到终止条件为真。如图11所示。组合方法如下:
(1)将终止条件用逻辑公式表示。
(2)修改从起始位置l10出发的迁移,将并入迁移标号的Pre部分即为使该组合过程只有在终止条件为假时可进行。
(3)增加一个新的位置le作为终止位置,并从起始位置l10引出一个新的单步迁移e到达le,其执行前提是表示终止条件的逻辑公式为真,这样可以保证该迁移在终止条件成立以前不会被执行。
6、Repeat-while
Repeat-While组合运算的运算对象只有一个,当循环条件成立时,它将被反复执行。如图12所示。其组合方法与Repeat-Until类似,只是将终止条件即为替换为循环条件。
7、Split-Join
Split-Join组合运算激活多个组合过程,使它们并发执行,并在所有进程都结束后汇合终止。如图13所示。组合方法如下:
(1)将并发条件和汇合条件分别表示为逻辑公式但这两个条件都不是必需的。
(2)增加一个新的位置ls并作为起始位置,从它引出一个并发迁移到达所有组合过程的起始位置(l10、l20),其执行前提为并发条件
(3)增加一个新的位置le并作为终止位置,从所有组合过程的终止位置(l12、l22)引出一个到达le的同步迁移,其执行前提为同步条件
由以上7个组合运算可知,组合过程都是对组合过程自动机的起始位置和终止位置所进行的连接,而且组合运算产生的结果依然是组合过程自动机(有起始位置和终止位置),这就保证了无论具有怎样复杂结构的组合服务,都能够参与新的组合运算。
模型改进:在建立Web服务的形式化模型的过程中,可能会因为描述或组织的不当,导致模型不够精炼简洁。因此需要对模型进一步的分析,在不影响其正确性的前提下,进行改进和优化,也就是验证框架中的模型改进的部分。本发明主要研究在组合过程中所产生的冗余并发/同步迁移,并给出改进方法。
当两个以Split-Join结构连接、且并发/同步条件相同的组合过程自动机,再以相同的并发/同步条件按照Split-Join结构连接,则会产生冗余的迁移和位置,如图13所示。位置l10、l20、l17、l27及对应的并发/同步迁移都是冗余的,l11、l12、l21、l22都可以直接与ls连接,而l15、l16、l25、l26则可以直接与le连接。在实际的Web服务中,Split和Split-Join控制结构的并发和同步条件经常为空,因此在建立形式化模型的过程中,很容易出现冗余的并发/同步迁移。
1.冗余并发迁移的判定及消除
对于一个并发迁移e(l,slt)=tL={l1,...,ln},其源位置l若属于另一个并发迁移e′(l′,slt′)=tL′={l1′,...,ln′}的目标位置集合,且两个并发迁移的并发条件相同,同时不存在以l为源位置或目标位置的单步迁移,则l是冗余位置,econ(l,slt)=tL={l1,...,ln}为冗余并发迁移。
消除的方法是:将冗余并发迁移e(l,slt)的目标位置集合tL并入另一并发迁移e′(l′,slt′)的目标位置集合tL′,同时移除冗余位置l和冗余并发迁移e(l,slt)。
2.冗余同步迁移的判定及消除
对于一个同步迁移e(sL={l1,...,ln},jn)=l,其目标位置l若属于另一个同步迁移e′(sL′={l1′,...,ln′},jn′)=l′的源位置集合,且两个同步迁移的同步条件相同,同时不存在以l为源位置或目标位置的单步迁移,则l是冗余位置,e(sL={l1,...,ln},jn)=l为冗余并发迁移。
消除的方法是:将冗余同步迁移e(sL={l1,...,ln},jn)的源位置集合sL并入另一同步迁移e′(sL′={l1′,...,ln′},jn)的源位置集合sL′,同时移除冗余位置l和冗余同步迁移e(sL={l1,...,ln},jn)。
按照上述方法,对图14所示的组合过程自动机进行优化,结果如图15所示。
组合服务的相容性与有效性分析:在前面所建立的组合过程自动机模型的基础上,可以依据可接受位置来分析组合服务的相容性,并分为三个等级。由于Web服务的自治性及独立性,很难保证能够实现完全的融合。但实际上,当用户的应用需求完成后,若组合服务能够处于相容状态,则该组合服务即是可用的,即使后面的交互会出现不相容的问题,也可以通过在相容状态时终止服务的运行来避免。
可接受位置及其分级:本节给出了可接受位置的明确定义,以及在组合运算中可接受位置的变化,并依据可接受位置的重要程度,将相容性分为了三个等级。
可接受位置是一个抽象概念,可以是任意良好的性质。当自动机处于可接受位置,认为它处于一种可接受的状态。为了适应不同程度的相容性需求,将其分为三个等级:强可接受位置(Strong Acceptable Locaiton)即为第三可接受位置、普通/自定义可接受位置(Ordinary Acceptable Locaiton)即为第二可接受位置、弱可接受位置(Weak AcceptableLocaiton)即为第一可接受位置。
定义4(可接受位置的分级)一台组合过程自动机CPA=(L,IL,FL,sLoc,eLoc,Σ,E)的可接受位置集合FL=WFL∪OFL∪SFL,WFL是弱可接受位置集合、OFL是普通/自定义可接受位置集合、SFL是强可接受位置集合。
弱可接受位置保障了最基本的相容性需求,它从原子过程开始定义,在组合运算中被逐步扩充。它认为:若服务处于任意原子操作的可接受位置,则整个服务就是可接受的。
定义5(弱可接受位置集合)一台原子过程自动机APA=(L,IL,FL,sLoc,eLoc,Σ,E)的弱可接受位置记为WFL。通常情况下,认为原子服务的WFL={sLoc,eLoc},即起始位置和终止位置。但在实际应用中,可以根据具体的应用背景增加或减少。组合过程自动机的可接受位置集合,在原子服务的可接受位置的基础上定义:对n台组合过程自动机CPAi,进行组合运算后得到的新组合过程自动机CPA,其弱可接受位置集合WFL为各CPAi的弱可接受位置集合WFLi的并集,并做如下修正:
(1)从WFL中移除组合过程中被剔除的位置。
(2)若组合过程中增加了新的位置,且该位置为起始位置或终止位置,则应添加到WFL中。
普通/自定义可接受位置在弱可接受位置的基础上增加了更强的约束,它在弱可接受位置的基础上,根据组合约束,剔除了一些可接受位置。
定义6(组合约束)当一台组合过程自动机参与组合运算时,由于与其它的组合过程自动机产生了上下文关联,从而产生了对组件服务执行状况的要求,称为组合约束语义。组合约束语义可以分为三类:
●因果约束:当某种情况发生时,某个组件服务必须要完成。
●分支约束:并发执行的某个分支组件服务必须完成。
●重复约束:某个组件服务必须重复执行,直到循环条件不成立。
在弱可接受位置的基础上,加入组合约束而获得可接受位置集合,称为普通可接受位置。是否要使用组合约束语义可以根据实际的应用背景来决定,同时也可以加入新的组合约束语义类型,因此普通可接受位置也称为自定义可接受位置。它认为:服务只有处于某些特定原子操作的可接受位置,整个服务才是可接受的。
本发明为每种组合运算给出了一个组合约束,从而获得普通普通/自定义可接受位置集合。其中:Sequence、Choice、If-then-Else、AnyOrder组合运算中的组合约束属于因果约束;Repeat-Until、Repeat-While组合运算中的组合约束属于重复约束;Split-Join组合运算中的组合约束属于分支约束。
定义7(普通/自定义可接受位置集合)组合过程自动机CPAi的弱可接受位置为WFLi,当在组合过程中出现组合约束时,获得的可接受位置组成普通/自定义可接受位置集合:
●对n台组合过程自动机CPAi进行Sequence组合运算得到新的组合过程自动机CPASeq,若出现组合约束语义:若CPAi执行则CPAj也必须执行(i<j),则普通可接受位置集合OFLSeq为CPA1~CPAi-1,及CPAj+1~CPAn的弱可接受位置的并集,再加上CPAi的起始位置sLoci和CPAj的终止位置eLocj
●对n台组合过程自动机CPAi进行AnyOrder组合运算得到新的组合过程自动机CPAAO,若出现组合约束语义:组合服务的运行不能停止在CPAj,则普通可接受位置集合OFLAO是在其弱可接受位置集合WFLAO的基础上,去除CPAj的弱可接受位置集合WFLj,即OFLAO=WFLAO-WFLj
●对于n台组合过程自动机CPAi进行Choice组合运算得到新的组合过程自动机CPACho,若出现组合约束语义:若CPAj被选中执行则必须执行完成,则普通可接受位置集合OFLCho是在其弱可接受位置集合WFLCho基础上,去除CPAj的弱可接受位置集合WFLj,即OFLCho=WFLCho-WFLj
●对于两台组合过程自动机CPA1和CPA2进行If-then-Else组合运算得到新的组合过程CPAItE,若出现组合约束语义:若CPAj被选中执行则必须执行完成(j∈{1,2}),则普通可接受位置集合OFLItE是在其弱可接受位置集合WFLItE的基础上,去除CPAj的弱可接受位置集合WFLj,即OFLItE=WFLAO-WFLj
●对于组合过程自动机CPA进行Repeat-Until组合运算得到新组合过程自动机CPARU,若出现组合约束语义:CPA必须重复执行直到终止条件成立,则普通可接受位置集合OFLRU={le},即只有终止位置可接受。
●对于组合过程自动机CPA进行Repeat-while组合运算得到新组合过程自动机CPARW,若出现组合约束语义:CPA必须重复执行直到循环条件不成立,则普通可接受位置集合OFLRW={le},即只有终止位置可接受。
●对于n台组合过程自动机CPAi进行Split-Join组合运算得到新的组合过程自动机CPASJ,若出现组合约束语义:分支组件CPAj必须执行完成,则普通可接受位置集合OFLSJ是在其弱可接受位置集合WFLSJ的基础上,去除CPAj的弱可接受位置集合WFLj,即OFLSJ=WFLSJ-WFLj
显然,当组合过程中不存在组合约束语义时,普通/自定义可接受位置集合即等于若可接受位置集合。
强可接受位置保证了最强的相容性,它规定一个服务如果开始执行,就必须执行完成,而不能停止在某个原子操作上。而一个服务如果能够顺利执行完成,那么显然与整个组合服务是相容的。
定义8(强可接受位置集合)组合过程自动机CPA的强可接受位置为SFL={sLoc,eLoc}或{eLoc},前者表示该组合服务可以不执行,后者表示该组合服务必须执行(如增加了重复约束时).
通过定义5、定义7和定义8,可以确定一台组合过程自动机的三种等级的可接受位置,从而满足不同程度相容性的验证需求。需要说明的是,组合服务在没有运行时也满足强相容性,但这种相容性显然是没有意义的,因此在后面的验证中排除掉了这种情况。
4.2组合服务的相容性分析
一个组合服务是由多个子服务构成,而这多个子服务本身也可能是组合服务。区别在于,子服务本身所含的组件服务之间具有固定的控制结构和流程,具有定义良好的交互协议,通常不会出现不相容的情况;而子服务之间则是通过信息的交换进行协作,具有不确定性,因此在交互过程中可能会导致子服务无法到达可接受的状态。
为了分析和定义组合服务的相容性,需要定义组合服务的全局状态向量(GlobalState Vector):
定义9(全局状态向量)若组合服务由n台组合过程自动机组成,si为第i台组合过程自动机的位置集合,则组合服务的全局状态向量gsv=(s1,s2,...,sn)。
定义10(全局状态向量的迁移)若有全局状态向量gsv=(s1,s2,...,sn)和gsv′=(s1′,s2′,...,sn′),若其中一台组合过程自动机发生迁移,使得gsv中的某个si变化为gsv′中的si′,而其它的sj保持(即),则称gsv发生迁移到达gsv′,记为gsv→gsv′。
定义11(起始与终止全局状态向量)对于全局状态向量gsv:若满足 则称gsv为起始全局状态向量,记为gsv0;若不存在gsv′,使得gsv→gsv′成立,则称gsv为终止全局状态向量,记为gsve
将组合服务从起始全局状态向量开始的一系列迁移称为组合服务的一次运行:gsv0→gsv1→gsv2→...→gsv,简记为gsv0[→]tr gsv。其相容性定义如下:
定义12(组合服务运行的相容性)对于组合服务的一次运行gsv0[→]trgsv:若则称该次运行满足弱相容性,记为WC(gsv0[→]trgsv);若则称该次运行满足普通/自定义相容性,记为OC(gsv0[→]tr gsv);若则称该次运行满足强相容性,记为SC(gsv0[→]tr gsv)。
将gsv0[→]tr gsve称为组合服务的一次完整运行,并定义组合服务的相容性:
定义13(组合服务的相容性)一个组合服务CS是完全强/普通/弱相容的,当且仅当任意gsv0[→]tr gsve都是强/普通/弱相容的;一个组合服务CS是部分强/普通/弱相容的,当且仅当至少存在一个gsv0[→]tr gsve是强/普通/弱相容的。
显然,无论是组合服务运行的相容性,还是组合服务的相容性,都满足:
组合服务的有效性分析:组合服务的有效性即组合需要满足的用户的应用需求,包括两个方面:一是能够获得用户所需的信息;二是能够满足用户所要求的效果或性质。因此,组合服务的有效性(Validity of Composition Service)可定义如下:
定义14(组合服务的有效性)组合服务的有效性CSV=(INFOS,EFFECTS),其中:INFOS为一组要求组合服务产生的语义信息集合;EFFECTS为一组逻辑公式,描述要求组合服务必须达到的效果。当INFOS和EFFECTS被同时满足时,认为组合服务达到有了有效性要求。
对于组合服务的一个全局状态向量gsv=(s1,s2,...,sn),以及一个性质在s1∪s2∪...∪sn下是可以满足的,则称gsv满足记为若将有效性记为并将(强/普通/弱)相容性记为ψ,对于组合服务的一次运行gsv0[→]tr gsv,若有则称gsv0[→]tr gsv是有效且(强/普通/弱)相容的。
对于Web服务而言,主要是通过编配(Orchestration)和编排(Choreography)来定义组合服务的交互协议。编配与编排之间存在着重要的差别,目前对于两者之间的定义还没有形成统一,存在着多种观点,认可度较高的一种解释是:编配指的是自动执行一个工作流,即用一种执行语言(如BPELP)定义好工作流,同时让编配引擎在运行时执行这一工作流;而编排指的是,对两个或两个以上参与方之间的协调交互的描述。
通过对相容性和有效性的分析可知,强相容性是一种过高的相容性要求,而即使组合服务达到了相容性要求,也未必能够满足有效性。组合服务所应该达到的要求即有效且普通/自定义相容,但并非所有路径都可满足,即是部分的。满足部分有效且相容的组合服务实际上已经可以达到应用需求,因此达到完全相容并非是必要的。关键在于,能够让组合服务按照能够满足有效且相容的轨迹执行。因此可以通过编排的方式生成信息交互引擎(Information Exchange Engine),作为控制器,通过信息的交互来驱动和引导组合服务,使其按照预期的轨迹执行,如图16所示。
显然,信息交互引擎通过一系列有序的信息交互动作,来完成对组合服务的控制。下面给出其形式化定义:
定义15(信息交互引擎)一台信息交互引擎IEE=<excFac1,excFac2,...,excFacn)>,excFaci=(type,obj,{ci})称为是一个交互因子,其中:type∈{!,?},表示交互的类型,“!”表示由IEE向Service发送信息,“?”表示由IEE接收Service发送的信息;obj∈{Servicei}称为交互对象,是一个组件服务;{ci}是交互的信息集合。
恰当的信息交互引擎能够引导服务按照可以达到预期的目标的轨迹执行,而不恰当的信息交互引擎则会使组合服务达不到预期的目标。本发明所采用的验证工具UPPAAL给出的检测结果就是一系列的迁移,因此可以很自然地转换为信息交互引擎。
模型/性质向建模语言/性质描述语言的转换:在建立了Web服务的并发自动机模型后,需要将其转化为UPPAAL的建模语言,从而能够输入到验证器中进行自动验证。转换包括:语义信息的抽象、输入/输出动作的描述、迁移的转换、性质的描述以及模型的合成。
依据UPPAAL 4.0的语法[4,5],其建模语言是扩展时间自动机,增加了丰富的数据类型、表达式和运算,并且对迁移标号进行了扩展:迁移标号a=(Select,Guard,Sync,Update)。本文的工作只用到后三个部分,因此Select总是为空:Guard是一个逻辑表达式,表示迁移执行的条件;Sync是一组通道的发射或接受动作,用于实现同步迁移;Update是一组表达式或用户函数,用于表达迁移的效果。
语义信息的抽象:在组合服务的验证中,由于Web服务采用的是异步交互的方式,所以必须考虑语义信息的数量。因此,需要设立一个语义信息缓冲区(SemanticInformation Buffer),它由一组语义信息、一组整型变量和一个映射组成:
定义16(语义信息缓冲区)一个语义信息缓冲区SIB=(SI,V,f),SI是语义信息集合,V是整型变量集合,映射f:SI→V(f是双射的)。
语义信息所对应的整型变量,用于记录该语义信息的数量。相应的,当服务操作输入或输出语义信息时,需要变更对应的变量:当输入一个语义信息c时,要执行f(c)--;当输出一个语义信息c时,要执行f(c)++。
输入输出动作的描述:在Web服务的并发自动机模型中,迁移标号被扩展为一个四元组(In,Out,Pre,Eft),用建模语言描述如下:
●Pre和Eft表示执行前提和执行效果,逻辑公式和表达式组成,因此可直接并入到建模语言迁移标号的Guard和Update的部分。
●In是输入信息的集合,将其表示为:一个合取公式∧f(ci)并且并入(合取)迁移标号的Guard部分,合取项的数量与In的元素数量相等,其中f是信息缓冲区中的映射,ci∈In;一组表达式{f(ci)--|ci∈In},并且并入迁移标号的Update部分。
●Out是输入信息的集合,将其表示为一组表达式{f(ci)++|ci∈Out}}并且并入迁移标号的Update部分。
迁移的转换:对于并发自动机的三类迁移,UPPAAL的建模语言只能直接描述其中的单步迁移,而对于并发迁移和同步迁移则无法直接表达,但可以通过其中的广播通道来间接描述。对于一台组合过程自动机CPA=(L,IL,FL,sLoc,eLoc,Σ,E),可以转换为一个UPPAAL的时间自动机集合{UTAi}(不会为空),转换方法如下:
(1)CPA中的单步迁移esin(l,a)=l'可直接转换为UTA的迁移离散迁移迁移标号a=(In,Out,Pre,Eft)按照前面所述的方法转换为a'。
(2)CPA中的并发迁移esin(l,jlt)={l1,...,ln}需要转换为n台UTA,和一个迁移其中:sli是特殊的位置,当UTA处于该位置时,说明它进入了并发执行的分支;a包含并发条件,以及一个广播通道的发射动作conChni!。
(3)而与并发迁移对应的同步迁移esin({l1,...,ln},jn)=l',则转换为迁移迁移b中包含广播通道的发射动作synChni!,使得多个分支能在同一时刻终结。同时,为了保证同步迁移在所有分支都执行各自的操作后才能发生,增加一个同步变量synVari,初值为0,并将“synVari==n”(n为分支数量)并入(合取)迁移标号b的Guard部分,每个分支执行所有操作后都使其值加1。
(4)新创建的n台UTAi是用于述n个并发执行的分支,除了分支本身所具有的状态和迁移外,在首尾各增加一个新的位置bl和el。当UTAi处于bl时,说明还没有进入该分支;当UTAi处于el时,说明该分支已执行完毕。bl到对应分支的第一个状态的迁移标号包含广播通道的接收动作conChni?;而对应分支的最后一个状态到达el的迁移标号包含表达式synChni?;每个分支的最后一个迁移标号的Update部分,增加一个表达式synVari++,使同步变量的值加1。
图17是并发/同步迁移转换的示例。需要注意的是,在UPPAAL的建模语言中,用双圆形(如UTA0中的l0)代表起始位置,并且没有定义明确的可接受位置,这与并发有限自动机是不同的。
此外,其中的迁移标号“b'∧(synVar++)”和“c'∧(synVar++)是不规范的表达,表示迁移发生除了要满足和执行迁移标号后,还要执行synVar++。
性质的描述:从上述的分析中可知,因此 而Web服务运行的相容性是对组合过程自动机的位置集合整体而言的,以强相容性为例:若一台CPA在运行中某个时刻的位置集合中,只要有一个不是强可接受位置,则该CPA在此时就不满足强相容性。
显然,当组合过程自动机进入位置l时:若则CPA一定不满足强相容性;若则CPA一定不满足普通/自定义相容性;若则CPA一定不满足弱相容性。
从前面的迁移转换方法可知,组合过程自动机被划分为若干台并行的UTAi,在同一时刻,每台UTAi只会处于一个位置,因此当每次迁移发生时,都可以立刻知道该台UTAi是否满足相容性以及满足何种相容性。
而对于整个Web服务而言:只要有一个UTAi不满足相容性,则整个Web服务就不满足相容性;若所有的UTAi都满足相容性,则整个Web服务的相容性取决于所有UTAi中最弱的相容性。
为了记录每台UTAi的相容性状况,为每台UTAi分配一个相容性变量(CompatibleVariable):
定义17(相容性变量)相容性变量cptyVari∈{unconcerned,incompatible,weak,ordinary,strong},表示UTAi当前的相容性:unconcerned表示该UTAi所描述的并行分支还未被激活或已经结束,incompatible表示不相容,weak表示弱相容,ordinary表示普通/自定义相容,strong表示强相容。
因此,若有一个组合过程自动机CPA,转换为一组对应的{UTAi},及一组相容性变量{cptyVari},其相容性可描述为:
满足强相容性。
满足普通/自定义相容性。
满足弱相容性。
相应的,需要为UTAi的每个迁移发生时,都要相应改变cptyVari的值,依据目标位置l,赋值规则如图18所示;
在UPPAAL中,可以用取值范围为[0,4]的整型变量来表示相容性变量,数值0~3依次代表incompatible、weak、ordinary、strong、unconcerned。从上文对相容性的描述和分析,可知有且unconcerned对服务的相容性不会产生影响,故三种相容性在UPPAAL中可描述为:
满足强相容性。
满足普通/自定义相容性。
满足弱相容性。
当组合服务完成一次完整运行,因为没有迁移再发生,组合服务进入死锁状态(在UPPAAL中以deadlock关键字表示),故可用CTL公式将完全/部分相容性表示为:
对于有效性CSV=(INFOS,EFFECTS),完全/部分有效且(强/普通/弱)相容,可以表示为:
其中CTL逻辑把系统的运行视为状态序列,而一个系统可能会有多个不同的运行(状态序列)。例如,一个有12个小时的时钟系统,它最常见的运行是:1->2->3->4->…->12(这里只用时间这一个变量来描述系统状态),这个运行有12个状态。另一个运行可能是:1->2->3->3->3(时钟出现了停顿,可以理解为时钟有故障了)。实际上,时钟的运行有无限多个,每个运行的状态数量可能是不同的。
A的语义是“所有运行”,E的语义是“存在至少一个运行”,的语义是“所有状态”,◇的语义是“存在至少一个状态”。用F代表一个逻辑公式,解释如下:
在系统的所有运行中的所有状态,公式F都是成立的。
A◇F:在系统的所有运行中,都至少存在一个状态,使得公式F成立。
在系统的至少一个运行中的所有状态,公式F都是成立的。
EF:在系统的至少一个运行中,存在至少一个状态,使得公式F成立。
多个模型的合成:综上所述,一台组合过程自动机CPA,可转换为一个UPPAAL的模型WSUPL=(SIB,{UTAi},{cptyVari})。
若有n个CPAi构成组合服务,则对应有n个WSUPLi=(SIBi,{UTAj}i,{cptyVarj}i),则组合服务的UPPAAL模型CSUPL=(SIB,{UTAk},{cptyVark}),其中各个元素的合成方法如下:
(1)SIB.SI=SIB1.SI∪…∪SIBn.SI,SIB.SI=SIB1.V∪…∪SIBn.V,SIB.f=SIB1.f∪…∪SIBn.f(映射规则的并)。
(2){UTAk}={UTAj}1∪…∪{UTAj}n
(3){cptyVark}={cptyVark}1∪…∪{cptyVark}n
生成信息交互引擎:UPPAAL的验证结果由一系列的迁移构成,迁移分为三种:用于表示单步的迁移,用于并发的迁移,用于表示同步的迁移。后两种迁移不涉及信息的交互,而第一种迁移分为发送信息和接收信息两种。显然,除服务组合自动机SCA外,对于每个单步迁移e(即不含广播通道),都可以将其转换为一个交互因子excFaci=(type,obj,{ci}):
迁移e若是接收操作(f(ci)--),则type=!;迁移e若是发送操作(f(ci)++),则type=?。
迁移e所属的服务Service,即为交互对象。
迁移e所包含的信息,即为交互的信息集合。
本发明具有如下优点:对OWL-S中的原子过程与组合过程的描述更具体完整,并保持了两者的形式一致,可以无差异地参加组合运算,支持逻辑公式和表达式,描述能力更强,尤其是对执行前提、执行效果与组合服务性质的描述;通过验证过程自动化,不仅降低了验证技术的应用门槛,也能够避免在验证过程中引入新的错误;将有效性与相容性相结合,对组合服务的验证更全面;划分了相容性的强度等级,可避免因过强的相容性要求,而造成一些可用的组合服务被排除,其验证结果可用于错误定位,或引导组合服务正确执行,所使用的验证技术与工具在空间表示与维持上具有显著的优势,能够通过增加时钟、迁移概率等要素进行扩展,并且都有相应的模型检测工具支持。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

Claims (18)

1.一种语义Web服务组合的自动验证方法,其特征在于:包括如下步骤:
步骤10、将OWL-S描述的Web服务即原子过程转化为一台原子过程自动机,然后根据不同的控制结构,将原子过程自动机组合为组合过程自动机;
步骤20、消除组合过程自动机的冗余并发和同步迁移,获得优化模型;
步骤30、依据用户限定的相容性要求,确定组合过程自动机的可接受位置集合;
步骤40、依据用户限定的有效性要求,确定有效的逻辑公式CSV,所述有效的逻辑公式CSV=(INFOS,EFFECTS),其中:INFOS为一组要求组合服务产生的语义信息集合;EFFECTS为一组逻辑公式,该逻辑公式描述要求组合服务必须达到的限定效果;
步骤50、将所述获得优化模型转换为UPPAAL的建模语言;
步骤60、将可接受位置集合和逻辑公式CSV表示为CTL公式:相容性变量cptyVari∈{unconcerned,incompatible,weak,ordinary,strong},表示UTAi当前的相容性:unconcerned表示该UTAi所描述的并行分支还未被激活或已经结束,incompatible表示不相容,weak表示弱相容,ordinary表示普通/自定义相容,strong表示强相容,可以用取值范围为[0,4]的整型变量来表示相容性变量,数值0~4依次代表incompatible、weak、ordinary、strong、unconcerned,三种相容性在UPPAAL中可描述为:
满足强相容性;
满足普通/自定义相容性;
满足弱相容性;
当组合服务完成一次完整运行后没有迁移再发生,组合服务进入死锁状态,在UPPAAL中以deadlock关键字表示,故可将完全/部分相容性表示为CTL公式F1,如下:
其中cptyVari为相容性变量;
对于有效性CSV=(INFOS,EFFECTS),完全/部分有效且强/普通/弱相容,表示为CTL公式F2,如下:
所述A的语义是“所有运行”,E的语义是“存在至少一个运行”;所述UTAi表示第i台时间自动机;f(c)表示c的映射;
步骤70、将建模语言描述的组合服务模型与CTL公式输入UPPAAL进行验证;若验证结果为完全相容且有效,则该组合服务满足用户需求;若验证结果为部分相容且有效,则可根据验证结果生成信息交互引擎,引导组合服务的运行轨迹,达到用户要求;若验证结果是不满足相容且有效,则该组合服务无法满足用户需求。
2.根据权利要求1所述的一种语义Web服务组合的自动验证方法,其特征在于:所述步骤10进一步具体为:
步骤11,若控制结构为Sequence控制结构,则进行Sequence组合运算,即将所有的所述原子过程自动机按照排列的先后顺序依次将前一个原子过程自动机的终止位置连接后一个原子过程自动机的起始位置转化为组合过程自动机;
步骤12,若控制结构为AnyOrder控制结构,则进行AnyOrder组合运算,即构造一组逻辑公式初始时的值为true,其中表示将第1到第n个逻辑公式合取, 不含相同命题变元,之后将所有原子过程自动机的起始位置合并为一个新的起始位置ls,从原起始位置出发的迁移都改为从新起始位置出发,并且迁移标号的Pre部分并入一个从所有原终止位置引出一条到达ls的迁移,该迁移使得假,从而保证该组合过程不会被重复执行;增加一个新的位置le并作为终止位置,同时增加一个从ls到le的单步迁移e,其执行前提是公式为真,只有当所有的组合过程都被执行完后,才能到达le
步骤13,若控制结构为Choice控制结构,则进行Choice组合运算,即将所有组合过程的起始位置合并为一个新的起始位置ls1,之后将所有组合过程的终止位置合并为一个新的终止位置le1
步骤14,若控制结构为If-then-Else控制结构,则进行If-then-Else组合运算,即将选择条件表示成逻辑公式而后将所有组合过程的起始位置合并为一个新的起始位置ls2,从原起始位置出发的迁移改为从新起始位置出发,并用修改迁移标号的Pre部分,最后将所有组合过程的终止位置合并为一个新的终止位置le2
步骤15,若控制结构为Repeat-Until控制结构,则进行Repeat-Until组合运算,即将终止条件用逻辑公式表示,之后修改从起始位置出发的迁移,将并入迁移标号的Pre部分,使该组合过程只有在终止条件为假时可进行,增加一个新的位置le3作为终止位置,并从起始位置引出一个新的单步迁移e3到达le3,其执行前提是表示终止条件的逻辑公式为真;
步骤16,若控制结构为Repeat-while控制结构,则进行Repeat-while组合运算,即将终止条件用逻辑公式表示,修改从起始位置出发的迁移,将并入迁移标号的Pre部分,使该组合过程只有在终止条件为假时可进行,增加一个新的位置le4作为终止位置,并从起始位置引出一个新的单步迁移e4到达le4,其执行前提是表示终止条件的逻辑公式为真;
步骤17,若控制结构为Split-Join控制结构,则进行Split-Join组合运算,即将并发条件和汇合条件分别表示为逻辑公式增加一个新的位置ls5并作为起始位置,从它引出一个并发迁移到达所有组合过程的起始位置,其执行前提为并发条件增加一个新的位置le5并作为终止位置,从所有组合过程的终止位置引出一个到达le5的同步迁移,其执行前提为同步条件
3.根据权利要求2所述的一种语义Web服务组合的自动验证方法,其特征在于:所述Sequence组合运算、所述AnyOrder组合运算、所述Choice组合运算及所述If-then-Else组合运算为因果约束,所述Repeat-Unti组合运算及所述Repeat-while组合运算为重复约束,所述Split-Join组合运算为分支约束,所述因果约束、所述重复约束及所述分支约束为组合约束。
4.根据权利要求3所述的一种语义Web服务组合的自动验证方法,其特征在于:所述步骤30进一步具体为:
步骤31,第一可接受位置集合WFL:其中原子服务的WFL为其起始位置和终止位置为该原子服务的第一可接受位置,对n台组合过程自动机CPAi,进行组合运算后得到的新组合过程自动机CPA,其第一可接受位置集合WFL为各CPAi的第一可接受位置集合WFLi的并集,并且从WFL中移除组合过程中被剔除的位置,若组合过程中增加了新的位置,且该位置为起始位置或终止位置,则应添加到WFL中;
步骤32,组合过程自动机CPAi的第一可接受位置为WFLi,当在组合过程中出现组合约束时,获得的可接受位置组成第二可接受位置集合:
对n台组合过程自动机CPAi进行Sequence组合运算得到新的组合过程自动机CPASeq,若出现组合约束语义:若CPAi执行则CPAj也必须执行,其中i<j,则普通可接受位置集合OFLSeq为CPA1~CPAi-1,及CPAj+1~CPAn的第一可接受位置的并集,再加上CPAi的起始位置sLoci和CPAj的终止位置eLocj
或者对n台组合过程自动机CPAi进行AnyOrder组合运算得到新的组合过程自动机CPAAO,若出现组合约束语义:组合服务的运行不能停止在CPAj,则普通可接受位置集合OFLAO是在其第一可接受位置集合WFLAO的基础上,去除CPAj的第一可接受位置集合WFLj,即OFLAO=WFLAO-WFLj
或者对于n台组合过程自动机CPAi进行Choice组合运算得到新的组合过程自动机CPACho,若出现组合约束语义:若CPAj被选中执行则必须执行完成,则普通可接受位置集合OFLCho是在其第一可接受位置集合WFLCho基础上,去除CPAj的第一可接受位置集合WFLj,即OFLCho=WFLCho-WFLj
或者对于两台组合过程自动机CPA1和CPA2进行If-then-Else组合运算得到新的组合过程CPAItE,若出现组合约束语义:若CPAj被选中执行则必须执行完成,则普通可接受位置集合OFLItE是在其第一可接受位置集合WFLItE中去除CPAj的第一可接受位置集合WFLj,即OFLItE=WFLAO-WFLj
或者对于组合过程自动机CPA进行Repeat-Until组合运算得到新组合过程自动机CPARU,若出现组合约束语义:CPA必须重复执行直到终止条件成立,则普通可接受位置集合OFLRU={le},即只有终止位置可接受;
或者对于组合过程自动机CPA进行Repeat-while组合运算得到新组合过程自动机CPARW,若出现组合约束语义:CPA必须重复执行直到循环条件不成立,则普通可接受位置集合OFLRW={le},即只有终止位置可接受;
或者对于n台组合过程自动机CPAi进行Split-Join组合运算得到新的组合过程自动机CPASJ,若出现组合约束语义:分支组件CPAj必须执行完成,则普通可接受位置集合OFLSJ是在其第一可接受位置集合WFLSJ的基础上,去除CPAj的第一可接受位置集合WFLj,即OFLSJ=WFLSJ-WFLj
当组合过程中不存在组合约束语义时,第二可接受位置集合即等于第一可接受位置集合;
步骤33,组合过程自动机的第三可接受位置集合SFL,其为组合过程自动机的起始位置和终止位置,或者是组合过程自动机的终止位置。
5.根据权利要求4所述的一种语义Web服务组合的自动验证方法,其特征在于:所述相容性为:
若组合服务由n台组合过程自动机组成,si为第i台组合过程自动机的位置集合,则组合服务的全局状态向量gsv=(s1,s2,...,sn),若有全局状态向量gsv=(s1,s2,...,sn)和gsv′=(s1′,s2′,...,sn′),其中一台组合过程自动机发生迁移,使得gsv中的某个si变化为gsv′中的si′,而其它的sj保持即 则称gsv发生迁移到达gsv′,记为gsv→gsv′;对于全局状态向量gsv:若满足则称gsv为起始全局状态向量,记为gsv0;若不存在gsv′,使得gsv→gsv′成立,则称gsv为终止全局状态向量,记为gsve
将组合服务从起始全局状态向量开始的一系列迁移称为组合服务的一次运行:gsv0→gsv1→gsv2→...→gsv,简记为gsv0[→]tr gsv,对于组合服务的一次运行gsv0[→]tr gsv:若则称该次运行满足弱相容性,记为WC(gsv0[→]tr gsv);若则称该次运行满足普通/自定义相容性,记为OC(gsv0[→]tr gsv);若则称该次运行满足强相容性,记为SC(gsv0[→]tr gsv);将gsv0[→]tr gsve称为组合服务的一次完整运行;
一个组合服务CS是完全强/普通/弱相容的,当且仅当任意gsv0[→]tr gsve都是强/普通/弱相容的;一个组合服务CS是部分强/普通/弱相容的,当且仅当至少存在一个gsv0[→]tr gsve是强/普通/弱相容的。
6.根据权利要求1所述的一种语义Web服务组合的自动验证方法,其特征在于:所述步骤20进一步具体为:
步骤21,若对于一个并发迁移e(l,slt)=tL={l1,...,ln},其源位置l属于另一个并发迁移e′(l′,slt′)=tL′={l1′,...,ln′}的目标位置集合,且两个并发迁移的并发条件相同,同时不存在以l为源位置或目标位置的单步迁移,则l是冗余位置,econ(l,slt)=tL={l1,...,ln}为冗余并发迁移,此时将冗余并发迁移e(l,slt)的目标位置集合tL并入另一并发迁移e′(l′,slt′)的目标位置集合tL′,同时移除冗余位置l和冗余并发迁移e(l,slt);否则位置l不是冗余位置,并发迁移e(l,slt)不是冗余并发迁移;
步骤22,若对于一个同步迁移e(sL={l1,...,ln},jn)=l,其目标位置l属于另一个同步迁移e′(sL′={l1′,...,ln′},jn′)=l′的源位置集合,且两个同步迁移的同步条件相同,同时不存在以l为源位置或目标位置的单步迁移,则l是冗余位置,e(sL={l1,...,ln},jn)=l为冗余并发迁;此时将冗余同步迁移e(sL={l1,...,ln},jn)的源位置集合sL并入另一同步迁移e′(sL′={l1′,...,ln′},jn)的源位置集合sL′,同时移除冗余位置l和冗余同步迁移e(sL={l1,...,ln},jn);否则位置l不是冗余位置,并发迁移e(l,slt)不是冗余并发迁移。
7.根据权利要求1所述的一种语义Web服务组合的自动验证方法,其特征在于:所述步骤50进一步具体为:
步骤51,组合过程自动机CPA中的单步迁移esin(l,a)=l'直接转换为一台符合UPPAAL语法的时间自动机UTA的迁移离散迁移 迁移标号a=(In,Out,Pre,Eft)转换为a',其中g是由时钟变量表示的约束条件,r是需要被重置为0的时钟变量集合;
步骤52,CPA中的并发迁移esin(l,jlt)={l1,...,ln}转换为n台UTA和一个迁移其中:当UTA处于sli位置时,说明它进入了并发执行的分支;a包含并发条件及一个广播通道的发射动作conChni!;
步骤53,而与并发迁移对应的同步迁移esin({l1,...,ln},jn)=l',则转换为迁移b中包含广播通道的发射动作synChni!,使得多个分支能在同一时刻终结,同时,为了保证同步迁移在所有分支都执行各自的操作后才能发生,增加一个同步变量synVari,初值为0,并将“synVari==n”并入迁移标号b的Guard部分,其中n为分支数量,每个分支执行所有操作后都使其值加1;
步骤54,新创建的n台UTAi是用于述n个并发执行的分支,在首尾各增加一个新的位置bl和el,当UTAi处于bl时,说明还没有进入该分支;当UTAi处于el时,说明该分支已执行完毕;bl到对应分支的第一个状态的迁移标号包含广播通道的接收动作conChni?;而对应分支的最后一个状态到达el的迁移标号包含表达式synChni?;每个分支的最后一个迁移标号的Update部分,增加一个表达式synVari++,使同步变量的值加1。
8.根据权利要求7所述的一种语义Web服务组合的自动验证方法,其特征在于:所述步骤51进一步具体为:
组合过程自动机CPA中的单步迁移esin(l,a)=l'直接转换为一台符合UPPAAL语法的时间自动机UTA的迁移离散迁移迁移标号其中,Guard是一个逻辑表达式,表示迁移执行的条件;Sync是一组通道的发射或接受动作,用于实现同步迁移;Update是一组表达式或用户函数,用于表达迁移的效果;语义信息缓冲区SIB=(SI,V,f),SI是语义信息集合,V是整型变量集合,映射f:SI→V,f是双射的;迁移标号被扩展为一个四元组(In,Out,Pre,Eft),其中Pre和Eft表示执行前提和执行效果,逻辑公式和表达式组成,直接并入到建模语言迁移标号的Guard和Update的部分;In是输入信息的集合,将其表示为:一个合取公式∧f(ci)并且并入迁移标号的Guard部分,合取项的数量与In的元素数量相等,其中f是信息缓冲区中的映射,ci∈In;将其表示为一组表达式{f(ci)--|ci∈In},并且并入迁移标号的Update部分;Out是输入信息的集合,将其表示为一组表达式{f(ci)++|ci∈Out}}并且并入迁移标号的Update部分。
9.根据权利要求1所述的一种语义Web服务组合的自动验证方法,其特征在于:所述信息交互引擎为一台信息交互引擎IEE=<excFac1,excFac2,...,excFacn>,excFaci=(type,obj,{ci})称为是一个交互因子,其中:type∈{!,?},表示交互的类型,“!”表示由IEE向Service发送信息,“?”表示由IEE接收Service发送的信息;obj∈{Servicei}称为交互对象是一个组件服务;{ci}是交互的信息集合。
10.一种语义Web服务组合的自动验证系统,其特征在于:包括如下模块:
原子过程转换模块,将OWL-S描述的Web服务即原子过程转化为一台原子过程自动机,然后根据不同的控制结构,将原子过程自动机组合为组合过程自动机;
优化模型模块,消除组合过程自动机的冗余并发和同步迁移,获得优化模型;
可接受位置集合模块,依据用户限定的相容性要求,确定组合过程自动机的可接受位置集合;
逻辑公式模块,依据用户限定的有效性要求,确定有效的逻辑公式CSV,所述有效的逻辑公式CSV=(INFOS,EFFECTS),其中:INFOS为一组要求组合服务产生的语义信息集合;EFFECTS为一组逻辑公式,该逻辑公式描述要求组合服务必须达到的限定效果;
转换建模语言模块,将所述获得优化模型转换为UPPAAL的建模语言;
CTL模块,将可接受位置集合和逻辑公式CSV表示为CTL公式:相容性变量cptyVari∈{unconcerned,incompatible,weak,ordinary,strong},表示UTAi当前的相容性:unconcerned表示该UTAi所描述的并行分支还未被激活或已经结束,incompatible表示不相容,weak表示弱相容,ordinary表示普通/自定义相容,strong表示强相容,可以用取值范围为[0,4]的整型变量来表示相容性变量,数值0~4依次代表incompatible、weak、ordinary、strong、unconcerned,三种相容性在UPPAAL中可描述为:
满足强相容性;
满足普通/自定义相容性;
满足弱相容性;
当组合服务完成一次完整运行后没有迁移再发生,组合服务进入死锁状态,在UPPAAL中以deadlock关键字表示,故可将完全/部分相容性表示为CTL公式F1,如下:
其中cptyVari为相容性变量;
对于有效性CSV=(INFOS,EFFECTS),完全/部分有效且强/普通/弱相容,表示为CTL公式F2,如下:
所述A的语义是“所有运行”,E的语义是“存在至少一个运行”;所述UTAi表示第i台时间自动机;f(c)表示c的映射;
验证模块,将建模语言描述的组合服务模型与CTL公式输入UPPAAL进行验证;若验证结果为完全相容且有效,则该组合服务满足用户需求;若验证结果为部分相容且有效,则可根据验证结果生成信息交互引擎,引导组合服务的运行轨迹,达到用户要求;若验证结果是不满足相容且有效,则该组合服务无法满足用户需求。
11.根据权利要求10所述的一种语义Web服务组合的自动验证系统,其特征在于:所述原子过程转换模块进一步具体为:
Sequence组合运算单元,若控制结构为Sequence控制结构,则进行Sequence组合运算,即将所有的所述原子过程自动机按照排列的先后顺序依次将前一个原子过程自动机的终止位置连接后一个原子过程自动机的起始位置转化为组合过程自动机;
AnyOrder组合运算单元,若控制结构为AnyOrder控制结构,则进行AnyOrder组合运算,即构造一组逻辑公式初始时的值为true,其中表示将第1到第n个逻辑公式合取, 不含相同命题变元,之后将所有原子过程自动机的起始位置合并为一个新的起始位置ls,从原起始位置出发的迁移都改为从新起始位置出发,并且迁移标号的Pre部分并入一个从所有原终止位置引出一条到达ls的迁移,该迁移使得假,从而保证该组合过程不会被重复执行;增加一个新的位置le并作为终止位置,同时增加一个从ls到le的单步迁移e,其执行前提是公式为真,只有当所有的组合过程都被执行完后,才能到达le
Choice组合运算单元,若控制结构为Choice控制结构,则进行Choice组合运算,即将所有组合过程的起始位置合并为一个新的起始位置ls1,之后将所有组合过程的终止位置合并为一个新的终止位置le1
If-then-Else组合运算单元,若控制结构为If-then-Else控制结构,则进行If-then-Else组合运算,即将选择条件表示成逻辑公式而后将所有组合过程的起始位置合并为一个新的起始位置ls2,从原起始位置出发的迁移改为从新起始位置出发,并用修改迁移标号的Pre部分,最后将所有组合过程的终止位置合并为一个新的终止位置le2
Repeat-Until组合运算单元,若控制结构为Repeat-Until控制结构,则进行Repeat-Until组合运算,即将终止条件用逻辑公式表示,之后修改从起始位置出发的迁移,将并入迁移标号的Pre部分,使该组合过程只有在终止条件为假时可进行,增加一个新的位置le3作为终止位置,并从起始位置引出一个新的单步迁移e3到达le3,其执行前提是表示终止条件的逻辑公式为真;
Repeat-while组合运算单元,若控制结构为Repeat-while控制结构,则进行Repeat-while组合运算,即将终止条件用逻辑公式表示,修改从起始位置出发的迁移,将并入迁移标号的Pre部分,使该组合过程只有在终止条件为假时可进行,增加一个新的位置le4作为终止位置,并从起始位置引出一个新的单步迁移e4到达le4,其执行前提是表示终止条件的逻辑公式为真;
Split-Join组合运算单元,若控制结构为Split-Join控制结构,则进行Split-Join组合运算,即将并发条件和汇合条件分别表示为逻辑公式增加一个新的位置ls5并作为起始位置,从它引出一个并发迁移到达所有组合过程的起始位置,其执行前提为并发条件增加一个新的位置le5并作为终止位置,从所有组合过程的终止位置引出一个到达le5的同步迁移,其执行前提为同步条件
12.根据权利要求11所述的一种语义Web服务组合的自动验证系统,其特征在于:所述Sequence组合运算、所述AnyOrder组合运算、所述Choice组合运算及所述If-then-Else组合运算为因果约束,所述Repeat-Unti组合运算及所述Repeat-while组合运算为重复约束,所述Split-Join组合运算为分支约束,所述因果约束、所述重复约束及所述分支约束为组合约束。
13.根据权利要求12所述的一种语义Web服务组合的自动验证系统,其特征在于:所述可接受位置集合模块进一步具体为:
第一可接受位置集合单元,第一可接受位置集合WFL:其中原子服务的WFL为其起始位置和终止位置为该原子服务的第一可接受位置,对n台组合过程自动机CPAi,进行组合运算后得到的新组合过程自动机CPA,其第一可接受位置集合WFL为各CPAi的第一可接受位置集合WFLi的并集,并且从WFL中移除组合过程中被剔除的位置,若组合过程中增加了新的位置,且该位置为起始位置或终止位置,则应添加到WFL中;
第二可接受位置集合单元,组合过程自动机CPAi的第一可接受位置为WFLi,当在组合过程中出现组合约束时,获得的可接受位置组成第二可接受位置集合:
对n台组合过程自动机CPAi进行Sequence组合运算得到新的组合过程自动机CPASeq,若出现组合约束语义:若CPAi执行则CPAj也必须执行,其中i<j,则普通可接受位置集合OFLSeq为CPA1~CPAi-1,及CPAj+1~CPAn的第一可接受位置的并集,再加上CPAi的起始位置sLoci和CPAj的终止位置eLocj
或者对n台组合过程自动机CPAi进行AnyOrder组合运算得到新的组合过程自动机CPAAO,若出现组合约束语义:组合服务的运行不能停止在CPAj,则普通可接受位置集合OFLAO是在其第一可接受位置集合WFLAO的基础上,去除CPAj的第一可接受位置集合WFLj,即OFLAO=WFLAO-WFLj
或者对于n台组合过程自动机CPAi进行Choice组合运算得到新的组合过程自动机CPACho,若出现组合约束语义:若CPAj被选中执行则必须执行完成,则普通可接受位置集合OFLCho是在其第一可接受位置集合WFLCho基础上,去除CPAj的第一可接受位置集合WFLj,即OFLCho=WFLCho-WFLj
或者对于两台组合过程自动机CPA1和CPA2进行If-then-Else组合运算得到新的组合过程CPAItE,若出现组合约束语义:若CPAj被选中执行则必须执行完成,则普通可接受位置集合OFLItE是在其第一可接受位置集合WFLItE中去除CPAj的第一可接受位置集合WFLj,即OFLItE=WFLAO-WFLj
或者对于组合过程自动机CPA进行Repeat-Until组合运算得到新组合过程自动机CPARU,若出现组合约束语义:CPA必须重复执行直到终止条件成立,则普通可接受位置集合OFLRU={le},即只有终止位置可接受;
或者对于组合过程自动机CPA进行Repeat-while组合运算得到新组合过程自动机CPARW,若出现组合约束语义:CPA必须重复执行直到循环条件不成立,则普通可接受位置集合OFLRW={le},即只有终止位置可接受;
或者对于n台组合过程自动机CPAi进行Split-Join组合运算得到新的组合过程自动机CPASJ,若出现组合约束语义:分支组件CPAj必须执行完成,则普通可接受位置集合OFLSJ是在其第一可接受位置集合WFLSJ的基础上,去除CPAj的第一可接受位置集合WFLj,即OFLSJ=WFLSJ-WFLj
当组合过程中不存在组合约束语义时,第二可接受位置集合即等于第一可接受位置集合;
第三可接受位置集合单元,组合过程自动机的第三可接受位置集合SFL,其为组合过程自动机的起始位置和终止位置,或者是组合过程自动机的终止位置。
14.根据权利要求13所述的一种语义Web服务组合的自动验证系统,其特征在于:所述相容性为:
若组合服务由n台组合过程自动机组成,si为第i台组合过程自动机的位置集合,则组合服务的全局状态向量gsv=(s1,s2,...,sn),若有全局状态向量gsv=(s1,s2,...,sn)和gsv′=(s1′,s2′,...,sn′),其中一台组合过程自动机发生迁移,使得gsv中的某个si变化为gsv′中的si′,而其它的sj保持即 则称gsv发生迁移到达gsv′,记为gsv→gsv′;对于全局状态向量gsv:若满足则称gsv为起始全局状态向量,记为gsv0;若不存在gsv′,使得gsv→gsv′成立,则称gsv为终止全局状态向量,记为gsve
将组合服务从起始全局状态向量开始的一系列迁移称为组合服务的一次运行:gsv0→gsv1→gsv2→...→gsv,简记为gsv0[→]tr gsv,对于组合服务的一次运行gsv0[→]tr gsv:若则称该次运行满足弱相容性,记为WC(gsv0[→]tr gsv);若则称该次运行满足普通/自定义相容性,记为OC(gsv0[→]tr gsv);若则称该次运行满足强相容性,记为SC(gsv0[→]tr gsv);将gsv0[→]tr gsve称为组合服务的一次完整运行;
一个组合服务CS是完全强/普通/弱相容的,当且仅当任意gsv0[→]tr gsve都是强/普通/弱相容的;一个组合服务CS是部分强/普通/弱相容的,当且仅当至少存在一个gsv0[→]tr gsve是强/普通/弱相容的。
15.根据权利要求10所述的一种语义Web服务组合的自动验证系统,其特征在于:所述优化模型模块进一步具体为:
并发迁移优化单元,若对于一个并发迁移e(l,slt)=tL={l1,...,ln},其源位置l属于另一个并发迁移e′(l′,slt′)=tL′={l1′,...,ln′}的目标位置集合,且两个并发迁移的并发条件相同,同时不存在以l为源位置或目标位置的单步迁移,则l是冗余位置,econ(l,slt)=tL={l1,...,ln}为冗余并发迁移,此时将冗余并发迁移e(l,slt)的目标位置集合tL并入另一并发迁移e′(l′,slt′)的目标位置集合tL′,同时移除冗余位置l和冗余并发迁移e(l,slt);否则位置l不是冗余位置,并发迁移e(l,slt)不是冗余并发迁移;
同步迁移优化单元,若对于一个同步迁移e(sL={l1,...,ln},jn)=l,其目标位置l属于另一个同步迁移e′(sL′={l1′,...,ln′},jn′)=l′的源位置集合,且两个同步迁移的同步条件相同,同时不存在以l为源位置或目标位置的单步迁移,则l是冗余位置,e(sL={l1,...,ln},jn)=l为冗余并发迁;此时将冗余同步迁移e(sL={l1,...,ln},jn)的源位置集合sL并入另一同步迁移e′(sL′={l1′,...,ln′},jn)的源位置集合sL′,同时移除冗余位置l和冗余同步迁移e(sL={l1,...,ln},jn);否则位置l不是冗余位置,并发迁移e(l,slt)不是冗余并发迁移。
16.根据权利要求10所述的一种语义Web服务组合的自动验证系统,其特征在于:所述转换建模语言模块进一步具体为:
单步迁移转换单元,组合过程自动机CPA中的单步迁移esin(l,a)=l'直接转换为一台符合UPPAAL语法的时间自动机UTA的迁移离散迁移 迁移标号a=(In,Out,Pre,Eft)转换为a',其中g是由时钟变量表示的约束条件,r是需要被重置为0的时钟变量集合;
并发迁移转换单元,CPA中的并发迁移esin(l,jlt)={l1,...,ln}转换为n台UTA和一个迁移其中:当UTA处于sli位置时,说明它进入了并发执行的分支;a包含并发条件及一个广播通道的发射动作conChni!;
同步迁移转换单元,与并发迁移对应的同步迁移esin({l1,...,ln},jn)=l',则转换为迁移b中包含广播通道的发射动作synChni!,使得多个分支能在同一时刻终结,同时,为了保证同步迁移在所有分支都执行各自的操作后才能发生,增加一个同步变量synVari,初值为0,并将“synVari==n”并入迁移标号b的Guard部分,其中n为分支数量,每个分支执行所有操作后都使其值加1;
分支过程单元,新创建的n台UTAi是用于述n个并发执行的分支,在首尾各增加一个新的位置bl和el,当UTAi处于bl时,说明还没有进入该分支;当UTAi处于el时,说明该分支已执行完毕;bl到对应分支的第一个状态的迁移标号包含广播通道的接收动作conChni?;而对应分支的最后一个状态到达el的迁移标号包含表达式synChni?;每个分支的最后一个迁移标号的Update部分,增加一个表达式synVari++,使同步变量的值加1。
17.根据权利要求16所述的一种语义Web服务组合的自动验证系统,其特征在于:所述单步迁移转换单元进一步具体为:
组合过程自动机CPA中的单步迁移esin(l,a)=l'直接转换为一台符合UPPAAL语法的时间自动机UTA的迁移离散迁移迁移标号其中,Guard是一个逻辑表达式,表示迁移执行的条件;Sync是一组通道的发射或接受动作,用于实现同步迁移;Update是一组表达式或用户函数,用于表达迁移的效果;语义信息缓冲区SIB=(SI,V,f),SI是语义信息集合,V是整型变量集合,映射f:SI→V,f是双射的;迁移标号被扩展为一个四元组(In,Out,Pre,Eft),其中Pre和Eft表示执行前提和执行效果,逻辑公式和表达式组成,直接并入到建模语言迁移标号的Guard和Update的部分;In是输入信息的集合,将其表示为:一个合取公式∧f(ci)并且并入迁移标号的Guard部分,合取项的数量与In的元素数量相等,其中f是信息缓冲区中的映射,ci∈In;将其表示为一组表达式{f(ci)--|ci∈In},并且并入迁移标号的Update部分;Out是输入信息的集合,将其表示为一组表达式{f(ci)++|ci∈Out}}并且并入迁移标号的Update部分。
18.根据权利要求10所述的一种语义Web服务组合的自动验证系统,其特征在于:所述信息交互引擎为一台信息交互引擎IEE=<excFac1,excFac2,...,excFacn>,excFaci=(type,obj,{ci})称为是一个交互因子,其中:type∈{!,?},表示交互的类型,“!”表示由IEE向Service发送信息,“?”表示由IEE接收Service发送的信息;obj∈{Servicei}称为交互对象是一个组件服务;{ci}是交互的信息集合。
CN201410089115.2A 2014-03-12 2014-03-12 语义Web服务组合的自动验证方法及其系统 Expired - Fee Related CN103853559B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410089115.2A CN103853559B (zh) 2014-03-12 2014-03-12 语义Web服务组合的自动验证方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410089115.2A CN103853559B (zh) 2014-03-12 2014-03-12 语义Web服务组合的自动验证方法及其系统

Publications (2)

Publication Number Publication Date
CN103853559A CN103853559A (zh) 2014-06-11
CN103853559B true CN103853559B (zh) 2017-04-12

Family

ID=50861257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410089115.2A Expired - Fee Related CN103853559B (zh) 2014-03-12 2014-03-12 语义Web服务组合的自动验证方法及其系统

Country Status (1)

Country Link
CN (1) CN103853559B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446952B (zh) * 2014-08-20 2019-03-19 国际商业机器公司 用于处理语义片段的方法和系统
CN107562430B (zh) * 2017-09-22 2020-07-28 吉林大学 一种针对移动π演算语言的文件处理功能的编译方法
CN108228410B (zh) * 2018-01-24 2020-09-25 北京航空航天大学 一种基于Event-B的多核并发系统验证方法
CN109522713A (zh) * 2018-11-15 2019-03-26 桂林电子科技大学 一种基于Büchi自动机化简运行时验证监控器的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004767A (zh) * 2010-11-10 2011-04-06 北京航空航天大学 一种基于抽象业务逻辑的交互式语义Web服务动态组合方法
CN102360295A (zh) * 2011-10-07 2012-02-22 彭志平 一种基于多Web服务链组合的服务匹配方法
US8341269B2 (en) * 2010-03-19 2012-12-25 International Business Machines Corporation Configuring cloud resources

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341269B2 (en) * 2010-03-19 2012-12-25 International Business Machines Corporation Configuring cloud resources
CN102004767A (zh) * 2010-11-10 2011-04-06 北京航空航天大学 一种基于抽象业务逻辑的交互式语义Web服务动态组合方法
CN102360295A (zh) * 2011-10-07 2012-02-22 彭志平 一种基于多Web服务链组合的服务匹配方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于多元Pi-演算的Web服务组合描述与验证;胡 静 等;《天津大学学报(自然科学与工程技术版)》;20130630;第46卷(第6期);全文 *
基于模型检测技术的语义Web服务自动组合;唐郑熠 等;《吉林大学学报(工学版)》;20130331;第43卷(第2期);全文 *

Also Published As

Publication number Publication date
CN103853559A (zh) 2014-06-11

Similar Documents

Publication Publication Date Title
CN101694643B (zh) 使用一个或多个自动机的系统验证
CN103853559B (zh) 语义Web服务组合的自动验证方法及其系统
CN104408222B (zh) 实时分布式仿真平台可重构方法
CN101950269B (zh) 针对软件构件的自动化测试方法
CN101655943B (zh) 企业应用集成工作流管理方法及系统
CN107807878A (zh) 基于关键字的自动化测试引擎
CN103235881B (zh) 一种基于最小割集的核反应堆故障监测系统
CN101901150A (zh) 通用分布式机载设备健康管理仿真平台及其实现方法
Wahbi et al. Dischoco 2: A platform for distributed constraint reasoning
CN101673198A (zh) 一种验证uml模型中动态行为与时序契约的一致性的方法
CN111767031A (zh) 一种基于仿真的核电工业互联网实验床
Saleh Synthesis of communications protocols: an annotated bibliography
CN103677841B (zh) 基于元素级模板的ietm的代码生成方法及装置
Wang et al. Optimizing the shunting schedule of electric multiple units depot using an enhanced particle swarm optimization algorithm
CN106096159A (zh) 一种云平台下的分布式系统行为仿真分析系统的实现方法
Voorhoeve Compositional modeling and verification of workflow processes
CN102508720B (zh) 一种提高前处理模块和后处理模块效率的方法及系统
CN107943476A (zh) 一种基于模型驱动的计算机联锁软件开发方法
CN104573855B (zh) 基于二分图的满足时序约束的迭代增量式的最大派工方法
Zhao et al. Identification and analysis of key technical elements and prospects for software-defined vehicles
Marsan et al. TOPNET: A tool for the visual simulation of communication networks
CN106708595B (zh) 程序语句形式化转换的方法及装置
Beaumariage Investigation of an Object Oriented Modeling environment for the generation of simulation models
Zhao An agent based architecture for constructing interactive simulation systems
CN108062219A (zh) 一种分布式软件开发过程管理方法

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: 20170412