基于时间概率代价进程代数的犠犲犫服务...

Post on 23-Jul-2020

20 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

书书书

第35卷 第5期2012年5月

计  算  机  学  报CHINESEJOURNALOFCOMPUTERS

Vol.35No.5May2012

 

收稿日期:20100104;最终修改稿收到日期:20111120.本课题得到国家“八六三”高技术研究发展计划项目基金(2009AA010307)、国家自然科学基金(60873025、61100034)、江苏省自然科学基金(BK2008389)资助.肖芳雄,男,1971年生,博士,副教授,主要研究方向为软件工程和服务计算.Email:xiao.fangxiong@gmail.com.李 燕,女,1972年生,硕士,讲师,主要研究方向为软件工程和软件过程改进.黄志球,男,1965年生,教授,博士生导师,主要研究领域为软件工程和知识工程.曹子宁,男,1972年生,博士,教授,主要研究领域为形式化方法和人工智能.陈 哲,男,1981年生,博士,讲师,主要研究方向为软件工程和软件可靠性.范大娟,女,1982年生,博士研究生,主要研究方向为软件工程和服务计算.

基于时间概率代价进程代数的犠犲犫服务组合建模和分析

肖芳雄1),2) 李 燕1) 黄志球2) 曹子宁2) 陈 哲2) 范大娟2)

1)(广西财经学院信息与统计学院 南宁 530003)2)(南京航空航天大学计算机科学与技术学院 南京 210016)

摘 要 形式化建模Web服务组合并分析其功能正确性和QoS可满足性,是提高组合服务可信性的重要手段,但目前形式化方法侧重功能正确性建模和分析,对QoS可满足性的建模和分析支持不足.为此提出一种时间概率代价进程代数TPPPA(TimedProbabilisticPricedProcessAlgebra),给出了TPPPA的语法和语义,并证明其具有功能、时间、概率和代价的统一建模和分析能力.用实例表明了TPPPA可有效支持Web服务组合功能正确性和QoS可满足性的形式化统一建模和分析.

关键词 Web服务组合;QoS;进程代数;建模;分析中图法分类号TP311   犇犗犐号:10.3724/SP.J.1016.2012.00918

犕狅犱犲犾犻狀犵犪狀犱犃狀犪犾狔狕犻狀犵犠犲犫犛犲狉狏犻犮犲狊犆狅犿狆狅狊犻狋犻狅狀犝狊犻狀犵犜犻犿犲犱犘狉狅犫犪犫犻犾犻狊狋犻犮犘狉犻犮犲犱犘狉狅犮犲狊狊犃犾犵犲犫狉犪

XIAOFangXiong1),2) LIYan1) HUANGZhiQiu2) CAOZiNing2) CHENZhe2) FanDaJuan2)1)(犛犮犺狅狅犾狅犳犐狀犳狅狉犿犪狋犻狅狀犪狀犱犛狋犪狋犻狊狋犻犮狊,犌狌犪狀犵狓犻犝狀犻狏犲狉狊犻狋狔狅犳犉犻狀犪狀犮犲犪狀犱犈犮狅狀狅犿犻犮狊,犖犪狀狀犻狀犵 530003)

2)(犆狅犾犾犲犵犲狅犳犆狅犿狆狌狋犲狉犛犮犻犲狀犮犲犪狀犱犜犲犮犺狀狅犾狅犵狔,犖犪狀犼犻狀犵犝狀犻狏犲狉狊犻狋狔狅犳犃犲狉狅狀犪狌狋犻犮狊犪狀犱犃狊狋狉狅狀犪狌狋犻犮狊,犖犪狀犼犻狀犵 210016)

犃犫狊狋狉犪犮狋 ItisimportanttomodelWebservicecompositionformallyandanalyzeifitmeetrequirementsfrombothfunctionalandQoSview.However,existingformalmethodsmainlysupportmodelingandverifyingWebservicecompositionfromfunctionalaspect.Inthispaper,anovelprocessalgebracalledTPPPA(TimedProbabilisticPricedProcessAlgebra)isproposedformodelingandanalyzingWebservicecompositionfrombothfunctionalandQoSaspects.Thesyntaxandsemanticsispresented.AnditscapabilityofmodelingandanalyzingWebservicecompositionfromaspectsoffunctionality,time,probabilityandcost,isprovedintheory.TheeffectivenessofTPPPAisillustratedbyanexample.

犓犲狔狑狅狉犱狊 Webservicescomposition;QoS;processalgebra;modeling;analysis

1 引 言目前Web服务组合的建模和分析一般对功能

和QoS分别进行,由于需要分别建立功能模型和QoS模型,并且两者建立的阶段可能不同步,通过功能验证的模型可能并不满足QoS要求,需要重新进行设计或调整,从而增加了开发成本,同时延长了

开发周期.造成这一问题的原因在于目前建模验证的方法工具对Web服务组合功能和QoS统一建模验证的支持不足,因此,有必要对现有建模验证的方法工具进行QoS建模扩展以支持Web服务组合功能和QoS统一建模验证.

由于Web服务组合的主要特征在于组合,同样具有组合特征的进程代数PAs(ProcessAlgebras)成为适合建立Web服务组合形式模型的建模语言.PAs是一种形式化建模语言,具有以自然的方式对并发和组合系统建模的特征[2],例如提供了顺序、选择、并发、循环等丰富的组合算子和进程结构,可以将子系统组合成更大的系统,便于进行问题分解和组合层次建模;可以通过隐藏算子将系统不关心的活动隐藏为内部活动,便于进行问题抽象和简化;基于代数方法,具有简洁的语法和精确的语义,便于进行形式描述和验证;提供了互模拟概念,便于支持等价划分和问题简化.因而,PAs适合作为Web服务组合的形式理论基础[34].

因此,近年来有不少研究者利用PAs进行服务组合的研究,典型的有:Salaün在流程执行语言BPEL(BusinessProcessExcutionLanguage)和进程代数CCS(CalculusofCommunicationSystem)之间建立映射,从而可以借助CCS的建模方法和工具对BPEL流程程序的正确性进行验证[5].Lucchi给出了基于进程代数PiCulculus的BPEL的形式语义[6].Abouzaid在进程代数PiCulculus的基础上针对BPEL流程正确性验证问题提出了一种新的进程代数BPCulculus,用于BPEL流程的建模和正确性验证[7].Yuan使用PiCulculus建模多业务流程,并把多业务流程可看做是多个BPEL流程的协作,从而可以使用PiCulculus来验证复杂的多业务流程的正确性问题[8].

然而,上述利用PAs的研究都集中在服务组合的功能建模和验证方面,忽视了服务组合的QoS建模,原因在于已有PAs对QoS建模的支持不足.现有的PAs主要有[2]:经典进程代数CPAs(ClassicalProcessAlgebras),包括CCS(CalculusofCommunicationSystem),CSP(CommunicatingSequentialProcesses)和ACP(AlgebraofCommunicatingProcess)以及在CPAs上发展起来的支持移动计算建模的PiCalculus,支持实时系统建模的时间进程代数TPAs(TimedorTemporalProcessAlgebras),支持性能建模的随机进程代数SPAs(StochasticProcessAlgebras)等.虽然TPAs和SPAs分别可

以对服务组合的时间和性能建模,但是尚不支持对服务组合的时间优化选择和性能优化选择.另外,对于代价这一重要的QoS属性,现有PAs尚不支持对其建模.虽然Eberbach面向Agent领域在PiCalculus上扩展了代价信息而提出了cost演算,但该cost演算是专为Agent定制的,语法复杂,没有用于且不适合用于Web服务组合[9].

Web服务组合的建模和验证不应只局限于功能上,而应是对功能和QoS的统一建模(为叙述简便,下文把功能和QoS统一建模简称为统一建模或统一模型).功能和QoS的统一建模在设计阶段就提前进行分析QoS属性,识别决定系统QoS指标的关键活动,指导系统实现,从而有助于降低Web服务实现风险,提高系统可信性.因此,有必要研究基于PAs的Web服务组合统一建模的建模语言和分析方法.为此,本文在TPAs基础上扩展概率和代价信息,提出时间概率代价进程代数TPPPA(TimedProbabilisticPricedProcessAlgebra),以支持Web服务组合的功能、时间、概率、代价的统一建模和分析.

本文第2节给出TPPPA所基于的进程代数TCCS的介绍;第3节提出TPPPA,阐述其语法和语义,证明其具有功能、时间、概率和代价统一建模能力;第4节阐述基于TPPPA的Web服务组合建模和分析方法;第5节介绍相关研究;第6节是结束语.

2 犜犆犆犛经典的TPAs包括[2]:基于CCS扩展时间的

TCCS(TemporalCalculusofCommunicatingSystems)和TimedCCS(TimedCalculusofCommunicatingSystems),基于CSP扩展时间的TCSP(TimedCommunicatingSequentialProcesses),基于ACP扩展时间的PAT(ProcessAlgebrawithTiming).它们的共同之处在于把时间延时也看做是进程的动作,称为时间动作.不同之处在于:一是所基于的经典进程代数不同;二是扩展的时间不同,TCCS扩展的是离散时间,其它扩展的是连续时间.由于扩展离散时间的TCCS概念简洁,且满足Web服务组合建模的要求,因此本文选择TCCS进行扩展.下面对本文涉及的TCCS相关背景进行介绍,关于TCCS的详细介绍可参阅文献[10].21 犜犆犆犛定义

进程是TCCS的建模实体,其形式化定义如下.定义1. 一个TCCS有限状态进程是一个五

9195期 肖芳雄等:基于时间概率代价进程代数的Web服务组合建模和分析

元组犜犉犛犘=(犛,狊0,Σ,犃犮狋,!),其中:犛={狊犻|0犻犛}是非空有穷状态集;狊0是初始状态;Σ是字母表;犃犮狋=Λ∪Γ是动作集,Λ={}τ∪犃∪犃是功能动作集,τ是进程的内部动作,对外不可见,犃={犪|犪∈Σ}是接收动作集,′犃={′犪|犪∈Σ}是发送动作集,Γ={[狋]|狋∈"∩狋犖max,"

是正整数域,犖max

是"

中某个正整数}是时间动作集;!犛×犃犮狋×犛

是状态转移关系.定义2. TCCS进程表达式可由如下BNF范

式表示:犈····=0|α!犈|[狋]!犈|犈+犈|犈|犈|犈\犔|犃犆,

其中:0是空进程;α!犈表示前缀顺序功能动作执行;[狋]!犈表示前缀顺序时间动作执行;犈+犈表示分支选择;犈|犈表示进程并发执行;犈\犔表示在进程式犈中把动作集合犔中的动作对外隐藏起来;犃犆表示常量进程式.

定义3. TCCS的BNF范式算子的结构化操作语义定义如下:Prefix:α!犈→α犈;[狋]!犈[狋→]犈.Prefix算子语义表明动作顺序执行的情况.Choice:犈1α→1犈′1

犈1+犈2α→1犈′1;犈1[狋→]犈′1犈1+犈2[狋→]犈′1

Choice算子语义表明环境在犈1和犈2之间选择.Parallel:犈1α→1犈′1

犈1|犈2α→1犈′1|犈2;犈1[狋→]犈′1犈1|犈2[狋→]犈′1|犈2

Parallel算子语义表明犈1和犈2异步并发执行.Cooperation:犈1 →α犈′1,犈2 →α犈′2犈1|犈2 →τ犈′1|犈′2

;犈1[狋→]犈′1,犈2[狋→]犈′2

犈1|犈2[狋→]犈′1|犈′2.

Cooperation算子语义表明犈1和犈2的同步并发协作.

Hiding:犈→α犈′

犈\犔→α犈′\犔;犈[狋→]犈′犈\犔[狋→]犈′\犔

Hiding算子语义表明动作集合犔中被隐藏的动作不被系统外所见.

Constant:犈→α犈′犃犆 →α犈′

,犃犆犈;犈[狋→]犈′

犃犆[狋→]犈′,犃犆犈.

Constant算子语义表明表达式中的常量犃犆可以用其它表达式替代.

定义4. TCCS的语义定义为标记迁移系统犔犜犛=(犛,狊0,犃犮狋,{→α}),其中:犛为非空有穷状态集;狊0为初始状态;α∈犃犮狋为动作集;→α∈犛×犃犮狋×犛为标记迁移.

定义5. 对称二元关系!犛×犛称为弱互模拟,如果对任意(狊1,狊2)∈!

蕴涵:若狊1 →α狊′1,存在狊′2使得狊2==α^狊2,且(狊′1,狊′2)∈!.其中:α∈犃犮狋,==α^为包含外部动作α和零到多个内部动作τ的动作系列.22 基于犜犆犆犛的分析和验证

由于TCCS把时间延时看作是时间动作并纳入到动作概念中,TCCS的动作成为一个统一概念:包括功能动作和时间动作,这使得TCCS与CCS在动作概念上一致,因而TCCS沿用了CCS的分析方法,并可运用CCS分析验证工具CWBNC[11]对设计模型进行经典的功能分析和验证,如:

(1)安全检查.可运用死锁检测命令对各个子服务和组合服务进行死锁检查和活性检查.

(2)活动观察.可运用单步命令模拟和跟踪进程行为,观察和分析进程行为是否符合预期,对可能存在的问题进行调试.

(3)功能验证.可运用互模拟验证命令验证设计模型与需求模型是否弱互模拟,也即验证设计模型在外部行为上是否满足需求.如果两者不弱互模拟,则可继续进行上述活动(2),对存在的问题进行调试,不断调整设计,直至通过验证.

功能分析和验证已有相关研究[58,11],在此不再赘述.

3 时间概率代价进程代数犜犘犘犘犃31 犜犘犘犘犃的时间、概率和代价扩展

包括TCCS在内的TPAs主要用于实时系统超时(Timeout)特性的建模,未涉及累积时间特性的建模和分析,不支持路径分析,未能应用于服务组合的建模和分析.此外,缺乏对概率和代价建模和分析的能力.为建立支持服务组合时间、概率、代价统一建模语言,需要对TCCS进行相应的时间、概率和代价扩展.为此,需要明确两个问题:如何进行时间、概率和代价的扩展;时间、概率、代价的参数从何而

029 计  算  机  学  报 2012年

来.本文提出扩展方法如下.(1)时间的扩展由于进程代数是描述系统行为的语言,对系统

行为的描述主要体现在动作和动作引起的状态迁移上,因此把时间信息与动作联系起来.

TCCS中有两类动作:功能动作和时间动作.功能动作表示系统为实现某个功能而执行的动作,时间动作表示系统在某一状态上停留一段时间.

当对服务组合建模时,功能动作对应消息收发.由于TCCS是同步的,因此假设服务之间的消息通信也是同步的.但由于实际网络中服务从发送消息到收到应答消息之间会有时间间隔,为此,规定TPPPA中代表消息收发的功能动作都将持续相同的时间,从而缩小了与实际情况的差距.持续时间参数的设定,应当尽量与实际网络情况相符.本文着重说明运用TPPPA建模分析的原理,对持续时间参数的设定做了简化处理,假设为一个时间步,比如1s.

时间动作对应Web服务组件交互期间在某种状态下的延时行为,这里所指的状态指的是与代价相联系的状态,比如收费语音Web服务在连接建立之后、持续通话期间的状态,在这种状态下,收取的费用是按某个费率与延续时间长短成正比的.对于延时行为,扩展的时间属性值取实际的延时时间的离散值.取离散值的原因为:一是符合大多数收费Web服务的计时情况,大多数收费Web服务的计时是离散值,比如收费语音Web服务的计时最小单位是秒,不会出现小于1s的小数;二是与TCCS的时间动作的离散时间域相对应.因此,时间动作都扩展一个时间属性,其值的获取一般可采取3种方法:①可依据Web服务提供者的历史日志数据来估计;②Web服务消费者的测量数量来估计;③建模者根据对Web服务的经验来估计.

(2)概率的扩展由于进程代数是描述系统行为的语言,对系统

行为的描述主要体现在动作和动作引起的状态迁移上,进程代数中的不确定性是通过动作引发的不确定迁移来描述的,因此把概率信息与动作引发的不确定迁移联系起来,从而使得动作引发的迁移遵循一定的概率.

由于目前主流的Web服务组合执行语言,如WSBPEL等,其概率信息体现在选择结构向不同分支迁移上,而向不同分支迁移的概率往往取决于具体参与选择的Web服务,因此需要针对具体流程来分析不同分支迁移的概率.一般而言,概率参数的

获取与时间参数的获取类似,一是可依据Web服务提供者的历史日志数据来估计向不同分支迁移的概率.二是根据建模者对Web服务的经验来估计向不同分支迁移的概率.

(3)代价的扩展首先说明,本文中代价是一个抽象的概念,泛指

对资源的消费.本文中资源也是一个抽象的概念,泛指软件在完成任务的过程中消费的各种资源,包括但不限于处理器时间、内存、外存、功耗、带宽等.当把TPPPA应用于具体系统时,需要把抽象的资源和代价映射到具体的资源和代价.

本文为TPPPA的动作赋予价格(price),表示动作的执行是有代价的,代价在数值上等于动作联系的价格.由于进程代数的动作执行会引起状态的变迁,为TPPPA的状态赋予成本(cost),其值为系统从初始状态出发,经过一系列动作的执行到达该状态时,这一系列动作的价格之和.本文后面对两者不作严格区分时,将两者通称为代价.

当对服务组合建模时,TPPPA的功能动作对应服务组件的消息收发,假设消耗的是带宽资源.本文为着重说明TPPPA的QoS建模原理和方法,对模型做适当简化,假设不考虑消息的大小和通道的种类等,收发一个消息所占用的带宽资源的价格都是1.

TPPPA的时间动作对应Web服务组件交互期间在某种状态下的延时行为,假设消耗的是计算资源.计算资源的价格假设以该服务组件的单位时间使用费用表示,可取为该服务组件在UDDI/WSDL上声明的价格.当提供持续服务时,将产生计时服务代价.

根据上述扩展方法,下面给出TPPPA的相关定义和定理.32 犜犘犘犘犃的定义和定理

定义6. 一个TPPPA时间概率代价有限状态进程是一个八元组犜犘犘犉犛犘=(犛,狊0,Σ,犃犮狋,!,犳,犵,犺),其中:犛=狊犻|0犻{ }犛是非空有穷状态集;狊0是初始状态;Σ是字母表;犃犮狋=Λ∪Γ是动作集,其中:Λ={}τ∪犃∪犃是功能动作集,τ是进程的内部动作,对外不可见,犃={犪|犪∈Σ}是接收动作集,′犃=′犪|犪∈{ }Σ是发送动作集,Γ={[狋]|狋∈"∩狋犖max,"

是正整数域,犖max是"

中某个正整数}是时间动作集;

!犛×犃犮狋×犛是状态迁移关系;犳:!→犚+是迁移概率函数;犵:Λ→犚+是功能动作价格函数;犺:Γ→犚+是时间动作价格函数.

1295期 肖芳雄等:基于时间概率代价进程代数的Web服务组合建模和分析

从定义6可以看出,TPPFSP在TFSP基础上扩展了迁移概率函数犳,功能动作价格函数犵和时间动作价格函数犺.

定义7. TPPPA进程表达式由如下BNF范式表示:犈····=0|(α,犵(α))!犈|([狋],犺([狋]))!犈|Σ犻∈犐ω犻犈犻|犈|

犈|犈\犔|犃犆,其中:0是空进程;(α,犵(α))!犈表示前缀顺序动作执行,其中(α,犵(α))为功能价格动作;([狋],犺([狋]))!犈表示前缀顺序动作执行,其中([狋],犺([狋]))为时间价格动作;Σ犻∈犐ω犻犈犻为分支迁移的概率选择,其中:设有分支迁移犈α→犻犈犻,则ω犻=犳(犈α→犻犈犻)为分支迁移概率,且满足Σ犻∈犐ω犻=1;犈|犈表示进程并发执行;犈\犔表示在进程式犈中把动作集合犔中的动作对外隐藏起来;犃犆表示常量进程式.

定义8. TPPPA的时间概率代价动作是一个五元组α犮=(α,狋,犳(→α),犵(α),犺(α)),其中:α∈犃犮狋;狋∈Γ,犳(→α)是动作迁移概率;犵(α)是动作功能价格;犺(α)是动作计时价格.

特别地:对于功能动作,因为假设是同步通信且所需时间为一个时间步,有α犮=(犪,1,犳(→犪),犵(犪),0),犪∈Λ;对于时间动作,有α犮=([狋],狋,犳([狋→]),0,犺([狋])),[狋]∈Γ.

定义9. TPPPA的时间概率代价状态是一个五元组狊犮=(狊,犮狋,犮狉,犮犵,犮犺),其中:狊∈犛;犮狋是从初始状态到达狊的累积时间;犮狉是从初始状态到达狊的累积概率;犮犵是从初始状态到达狊的累积功能成本;犮犺是从初始状态到达狊的累积计时成本.

定义10. TPPPA的语义定义为时间概率代价迁移系统犜犘犘犔犛=(犛犆,狊犮0,犃犮狋,{

α→犮}),其中:犛犆={狊犮|狊犮∈犛犆}为时间概率代价状态集;狊犮0=(狊0,0,1,0,0)为初始时间概率代价状态;α∈犃犮狋;α→犮∈犛犆×犃犮狋×犚+×[0,1]×犚+×犚+×犛犆为时间概率代价迁移关系,其中α犮=(α,狋,犳(→α),犵(α),犺(α)).

经典进程代数的引导图DG(DerivationGraph)描述了进程所有可能的行为演化,在DG的基础上,提出时间概率代价引导图TPPDG(TimedProbabilisticPricedDerivationGraph)的概念,用于描述TPPFSP的行为演化.

定义11. 任一TPPFSP的时间概率代价引导图TPPDG对应该TPPFSP的时间概率代价迁移系统犜犘犘犔犛=(犛犆,狊犮0,犃犮狋,{

α→犮}),其中的节点为

时间概率代价状态,其中的边为动作引发的时间概率代价迁移.

定义12. 路径时间是指TPPDG中该路径所有边的时间之和.

定义13. 路径概率是指TPPDG中该路径所有边的概率之积.

定义14. 路径成本是指TPPDG中该路径所有边的代价之和.

图1给出了一个时间概率代价迁移系统对应的时间概率代价迁移图TPPDG(TimedProbabilisticPricedDerivationGraph),以此为例来说明TPPPA语义.

图1 时间概率代价引导图图1中,狊犮0(狊0,0,1,0,0)为初始节点,从狊犮0出发

有3条路径可到达狊犮犻(狊犻,犮狋犻,犮狉犻,犮犵犻,犮犺犻),分别为σ1=狊犮0α犮1狊犮1…狊犮犻-1α犮犻-1狊犮犻,σ2=狊犮0α犮2狊犮2…狊犮犻-2α犮犻-2狊犮犻,σ3=狊犮0α犮3狊犮3…狊犮犻-3α犮犻-3狊犮犻,其中狊犮犽=(狊犽,犮狋犽,犮狉犽,犮犵犽,犮犺犽),α犮犽=(α犽,狋犽,犳(α犽),犵(α犽),犺(α犽)),犽=1,2,…,犻-1.则它们的路径时间分别为犜(σ1)=狋1+…+狋犻-1,犜(σ2)=狋2+…+狋犻-2,犜(σ2)=狋3+…+狋犻-3.它们的路径概率分别为犘(σ1)=犳(α1)×…×犳(α犻-1),犘(σ2)=犳(α2)×…×犳(α犻-2),犘(σ3)=犳(α3)×…×犳(α犻-3).它们的路径功能成本分别为犆犵(σ1)=犵(α1)+…+犵(α犻-1),犆犵(σ2)=犵(α2)+…+犵(α犻-2),犆犵(σ3)=犵(α3)+…+犵(α犻-3).它们的路径计时成本分别为犆犺(σ1)=犺(α1)+…+犺(α犻-1),犆犺(σ2)=犺(α2)+…+犺(α犻-2),犆犺(σ3)=犺(α3)+…+犺(α犻-3).

状态节点狊犮犻的概率犮狉犻为从初始状态节点出发到达狊犮犻的所有可能性,其值为到达狊犮犻的所有路径概率之和,也即犮狉犻=∑

犾=1犘(σ犾).然而,状态节点狊犮犻的累

积时间犮狋犻不是路径σ1,σ2,σ3的时间之和,而是单条路径的时间.通过不同路径到达狊犮犻的时间各不相同,应用中实际关注的往往是最小路径时间,即关注满足犮狋犻=min(犜(σ1),犜(σ2),犜(σ3))的路径及其时间.同理,关注满足犮犵犻=min(犮犵(σ1),犮犵(σ2),犮犵(σ3))和满足犮犺犻=min(犮犺(σ1),犮犺(σ2),犮犺(σ3))的路径及其成本.

229 计  算  机  学  报 2012年

以下为TPPPA的BNF范式算子的结构化操作语义,每个TPPPA算子的语义都由5部分组成:①动作执行的经典结构化操作语义[2],这部分与经典进程代数的语义保持一致;②动作执行的时间语义;③动作执行的概率语义;④动作执行的功能代价语义;⑤动作执行的计时代价语义.为表示方便,令狊犫、狊犲分别表示算子执行前、后的状态;令犮狋_犫、犮狉_犫、犮犵_犫、犮犺_犫分别表示算子执行前状态的最小累积时间、累积概率、最小累积功能成本、最小累积计时成本,令犮狋_犲、犮狉_犲、犮犵_犲、犮犺_犲分别表示算子执行后状态的最小累积时间、累积概率、最小累积功能成本、最小累积计时成本.

定义15.TPPPA的算子结构化操作语义如下:Prefix:①

(α,狋,犳(→α),犵(α),犺(α))!犈(α,狋,犳(→α),犵(α),犺(α→))犈,α∈犃犮狋.

②犮狋_犲=min(犮狋_犫+狋,犮狋_犲).③犮狉_犲=犮狉_犫×犳(→α).④犮犵_犲=min(犮犵_犫+犵(α),犮犵_犲).⑤犮犺_犲=min(犮犺_犫+犺(α),犮犺_犲).Prefix算子语义表明:①顺序动作算子表示的

动作可以无条件执行,动作的执行联系了时间、概率、功能成本、计时成本;②遵循最小累积时间语义;③动作α执行后的状态概率为执行前的状态概率与α分支迁移概率之乘积;④遵循最小累积功能代价语义;⑤遵循最小累积计时代价语义.

Choice:

①犈1(α1,狋1,犳(α→1),犵(α1),犺(α1→))犈′1

犈1+犈2(α1,狋1,犳(α→1),犵(α1),犺(α1→))犈′1

犈2(α2,狋2,犳(α→2),犵(α2),犺(α2→))犈′2

犈1+犈2(α2,狋2,犳(α→2),犵(α2),犺(α2→))犈′2

满足:α1,α2∈犃犮狋且犳(α→1)+犳(α→2)=1.②犮狋_犲=min(犮狋_犫+狋1,犮狋_犲).③犮狉_犲=犮狉_犲+犮狉_犫×犳(α→1).④犮犵_犲=min(犮犵_犫+犵(α1),犮犵_犲).⑤犮犺_犲=min(犮犺_犫+犺(α1),犮犺_犲).Choice算子语义表明:①为系统环境对犈1+犈2

的概率选择.犈1+犈2选择执行α1演化为犈′1的概率为犳(α→1),犈1+犈2选择执行α2演化为犈′2的概率为犳(α→2),且满足犳(α→1)+犳(α→2)=1.该语义表

明存在分支结构时,向全部分支迁移的概率之和为1,可推广至任意多重分支结构;②、③、④、⑤分别为犈1+犈2选择执行α1演化为犈′1时的最小累积时间、累积概率、最小累积功能成本、最小累积计时成本.限于篇幅,在此省略犈1+犈2选择执行α2演化为犈′2的对称迁移语义.Parallel:

① 犈1(α1,狋1,犳(

α→1),犵(α1),犺(α1→

))犈′1犈1|犈2

(α1,狋1,犳(α→1),犵(α1),犺(α1→

))犈′1|犈2,

α∈犃犮狋.②犮狋_犲=min(犮狋_犫+狋1,犮狋_犲).③犮狉_犲=犮狉_犲+犮狉_犫×犳(α→1).④犮犵_犲=min(犮犵_犫+犵(α1),犮犵_犲).⑤犮犺_犲=min(犮犺_犫+犺(α1),犮犺_犲).Parallel算子语义表明:犈1|犈2异步并发执行,

异步并发中如果执行了动作α1,则演化为犈′1|犈2异步并发执行,动作执行保持最小累积时间、累积概率、最小累积功能成本、最小累积计时成本语义.

Cooperation:①

犈1(α,1,犳(→α),犵(α),0→)犈′1,犈2(α,1,犳(→α),犵(α),0→)犈′2犈1|犈2(τ,1,犳(→α)×犳(→α),犵(α)+犵(α),0→)犈′1|犈′2

α,α∈Λ.②犮狋_犲=犮狋_犫+1.③犮狉_犲=犮狉_犲+犮狉_犫×犳(→α)×犳(→α).④犮犵_犲=min(犮犵_犫+犵(α)+犵(α),犮犵_犲).⑤犮犺_犲=犮犺_犫.Cooperation算子语义表明:①是犈1和犈2的同

步并发协作,并发协作是功能动作之间的协作,协作动作可以抽象为内部动作α1|α2→τ;②因为是功能动作,同步所耗时间为1;③是协作概率为参加协作的动作各自概率之积;④表示协作的功能成本为参加协作的动作各自价格之和,且遵循最小累积功能代价语义;⑤由于动作协作在功能动作之间进行,无计时成本,动作协作前后状态的累积计时成本不变.

Hiding:

①犈(α,狋,犳(→α),犵(α),犺(α→))犈′犈\犔(α,狋,犳(→α),犵(α),犺(α→))犈′\犔

②犮狋_犲=min(犮狋_犫+狋,犮狋_犲).③犮狉_犲=犮狉_犲+犮狉_犫×犳(→α).

3295期 肖芳雄等:基于时间概率代价进程代数的Web服务组合建模和分析

④犮犵_犲=min(犮犵_犫+犵(α),犮犵_犲).⑤犮犺_犲=min(犮犺_犫+犺(α),犮犺_犲).Hiding算子语义表明:动作集合犔中被隐藏的

动作不被系统外所见,限制算子不影响时间、概率、功能成本、计时成本的计算.

Constant:

①犈(α,狋,犳(→α),犵(α),犺(α→))犈′

犃犆(α,狋,犳(→α),犵(α),犺(α→))犈′,犃犆犈.

②犮狋_犲=min(犮狋_犫+狋,犮狋_犲).③犮狉_犲=犮狉_犲+犮狉_犫×犳(→α).④犮犵_犲=min(犮犵_犫+犵(α),犮犵_犲).⑤犮犺_犲=min(犮犺_犫+犺(α),犮犺_犲).Constant算子语义表明:表达式中的常量犃犆

可以用其它表达式替代,常量被替代后将具有替代表达式相同的执行能力,不影响时间、概率、功能成本、计时成本的计算.

下面讨论扩展TPPPA累积时间、累积概率和累积代价的完备性和合理性.完备性指任一TPPFSP进程的TPPDG描述了该进程所有的时间概率代价迁移行为.合理性指对任一时间概率代价状态,或者状态的累积时间是从初始状态到达该状态的最小路径时间,且状态的累积概率是从初始状态到达该状态的所有路径概率之和,或者状态的累积成本是从初始状态到达该状态的最小路径成本.

定理1. 任一TPPFSP进程的TPPDG描述了该进程所有的时间概率代价状态及其迁移,状态的累积时间是从初始状态到达该状态的最小路径时间,状态的累积概率是从初始状态到达该状态的所有路径概率之和,状态的累积成本是从初始状态到达该状态的最小路径成本.

证明. 完备性证明.DG描述了进程所有的状态及其迁移,TPPDG是DG的时间、概率和代价扩展,因而TPPDG也描述了进程所有的状态及其迁移.同时在TPPDG中,所有的状态和迁移都在功能动作迁移和时间动作迁移基础上扩展了累积时间、累积概率和累积代价信息,因而TPPDG描述了进程所有的时间概率代价状态及其迁移.

合理性证明.TPPDG中任一时间概率代价状态中的累积时间、累积概率和累积成本,都是按照定义15计算出来的,这就保证了或者该时间概率代价状态中的时间是从初始状态到达该状态的最小路径时间,状态的概率是从初始状态到达该状态的所有路径概率之和,或者状态的成本是从初始状态到达

该状态的最小路径成本. 证毕.下面讨论TPPPA和TCCS的关系,为此引入

派生类的概念,证明TPPPA是TCCS的派生类,即TPPPA扩充了TCCS的累积时间、累积概率和累积代价建模能力.

定义16. 如果A类进程代数的任一个进程可接受的语言都能够被B类进程代数的某个进程所接受,那么称B类进程代数是A类进程代数的派生类.

定理2.  TPPPA是TCCS的派生类.证明. 令是TCCS中任意一个有限状态进

程FSP,能接受的语言为犔;φ是TPPPA中对应的一个TPPFSP,φ能接受的语言为犔φ.犔为能接受的所有动作序列,对于犔中任意一个动作序列σ=(α1,α2,…,α狀)(其中α犻∈Λ∩Γ,犻=1,2,…,狀),则唯一对应犔φ中一个时间概率代价动作序列δ=(α1,狋1,犳(α→1),犵(α1),犺(α1)).(α2,狋2,犳(α→2),犵(α2),犺(α2)).….(α狀,狋狀,犳(α→狀),犵(α狀),犺(α狀)),即φ也能接受犔,所以TPPPA是TCCS的派生类.

证毕.定理2证明了TPPPA是TCCS的派生类,即

TPPPA在TCCS基础上扩充了累积时间、累积概率和累积代价建模能力.如果令所有时间概率代价动作中的累积时间、累积概率和累积代价为0,则TPPPA退化为TCCS,也即TPPPA是TCCS的保守扩展.

4 基于犜犘犘犘犃的犠犲犫服务组合建模和分析

41 犜犘犘犘犃与犅犘犈犔/犠犛犇犔的映射由于目前BPEL4WS已成为业界基于流程对

Web服务进行编制(Orchestration)组合的事实标准[12],本节给出TPPPA与BPEL/WSDL之间的映射.参考文献[5]的映射方法,可把WSDL描述的Web服务映射为TPPPA的进程,把Web服务之间的消息交互行为映射为TPPPA的功能动作,把BPEL的顺序、选择、并发、循环等结构映射为TPPPA的相应算子和结构.除此之外,由于TPPPA为进程扩展了时间、概率和代价等信息,还需把这些信息映射为BPEL/WSDL的相关信息.为此可采用本文3.1节提出的方法,具体说明如下:

(1)时间的映射.对于BPEL的消息收发动作,如receive、reply、invoke等,映射为TPPPA的功能动作,时间参数为1;对于BPEL和Web服务的延

429 计  算  机  学  报 2012年

时行为,如delay等,映射为TPPPA的时间动作,时间值的获取一般可采取3种方法:一是可依据Web服务提供者的历史日志数据来估计;二是Web服务消费者的测量数量来估计;三是建模者根据对Web服务的经验来估计.

(2)概率的映射.对于BPEL的选择结构,如switch、if等,映射为TPPPA的分支选择结构,BPEL中的概率信息体现在选择结构向不同分支迁移上,向不同分支迁移的概率往往取决于具体参与选择的Web服务.概率参数的获取途径:一是可依据Web服务提供者的历史日志数据来估计向不同分支迁移的概率.二是根据建模者对Web服务的经验来估计向不同分支迁移的概率.

(3)价格的映射.对于BPEL的消息收发动作,如receive、reply、invoke等,映射为TPPPA的功能动作,价格参数为1;对于BPEL和Web服务组件的延时行为,如delay等,映射为TPPPA的时间动作,价格以服务组件的单位时间使用费用表示,可取为该服务组件在UDDI/WSDL上声明的价格.当提供持续服务时,将产生计时服务代价.下面表1给出TPPPA与WSDL/BPEL之间的映射关系.

通过上述映射,BPEL/WSDL描述的Web服务组合就可以映射为TPPPA的进程演算,进而运用

表1 犜犘犘犘犃与犅犘犈犔/犠犛犇犔的对应关系TPPPA   BPEL/WSDL 

functionalactions WSDL:message,operationBPEL:receive,reply,invoke

timedaction BPEL/WSDL:delaybehaviorprice WSDL:pricesequence‘.’ BPEL:sequencechoice‘+’ BPEL:switch,ifprobabilityof‘+’ BPEL:probabilityofswitchorifparallel‘|’ BPEL:flow,pickrestrictionset‘\’ BPEL:interactions,assigntermination‘0’ BPEL:emptyrecursive BPEL:whiledullaction BPEL:assign,interactionsprocess BPEL/WSDL:service

TPPPA的分析方法进行分析验证,经过分析验证的TPPPA服务组合模型可以作为BPEL流程实现的参考模型,经过映射和精化后进一步可成为Web服务组合的BPEL流程,从而有助于提高组合服务的可信性.42 基于犜犘犘犘犃的犠犲犫服务组合建模4.2.1 Web服务组合实例

下面以文献[12]中描述的旅行订票系统为基础,省略了与TPPPA建模分析无关的环节,得到图2所示简化的旅行订票系统,以此为例来说明基于TPPPA的Web服务组合建模.

图2 旅行订票系统

5295期 肖芳雄等:基于时间概率代价进程代数的Web服务组合建模和分析

本文着重于阐述运用TPPPA对组合服务建模和分析的原理,对实例适当作了一些简化,省略了部分细节问题,并做如下适当假设:

(1)子服务的外部行为是可知的,体现在其接口的消息交互中;

(2)子服务之间的通信是同步通信,且同步时间为1;

(3)实例中子服务的时间、概率、代价等参数,依据前述方法已事先获得;

(4)异常处理表现为预订房间失败情况下对预订机票的服务事务补偿.

该旅行预定系统(TravelBookingSystem)由旅行代理服务(TAgent)、宾馆服务(Hotel)和航空服务(AirlineA和AirlineB)等Web服务组件组合而成.图中假设TAgent的单位时间价格为5;Hotel的单位时间价格为2;AirlineA的单位时间价格为3;AirlineB的单位时间价格为4.由于TAgent是组合服务的核心服务组件,为此从TAgent的角度来描述组合服务的流程.并且在发送消息的动作加前缀“′”,而接收动作无此前缀,以便区分发送动作和接收动作.服务组合流程说明如下:

(1)TAgent平时处于等待提供服务状态,收到Client的订票请求(犅犽犚狇,1,1,1,0)(其中:第1个1指功能动作犅犽犚狇消耗的时间为1;第2个1指TAgent在等待提供服务状态下接受消息犅犽犚狇的迁移概率,因为TAgent在等待提供服务状态下必须经历该迁移,否则其它迁移将无法发生;第3个1指接受消息犅犽犚狇的带宽价格;0指该消息映射的服务时间代价).

(2)TAgent并行地向AirlineA和AirlineB发出机票查询(′犉狋犃犙狔,1,1,1,0)和(′犉狋犅犙狔,1,1,1,0),为简化建模,采用(′犉狋犃犙狔|′犉狋犅犙狔,1,1,2,0)来统一表示这两个动作(其中:′犉狋犃犙狔|′犉狋犅犙狔指并行发送查询消息;第1个1指消耗的时间;第2个1指TAgent在收到犅犽犚狇的状态下发送′犉狋犃犙狔|′犉狋犅犙狔的概率为1;2指并行发送′犉狋犃犙狔|′犉狋犅犙狔的带宽价格为2,0指该消息没有映射服务价格).

(3)TAgent并行地接收AirlineA和AirlineB的响应.AirlineA的响应分为(犉狋犃犐犳,1,0.7,1,0)/(犃犜犿犗狋,1,0.3,0,0)两种情况,其中(犉狋犃犐犳,1,0.7,1,0)表示返回机票信息的概率为0.7,(犃犜犿犗狋,1,0.3,0,0)表示无响应的概率为0.3(其中犃犜犿犗狋表示TAgent的内部超时动作,不占用带宽,因而其带宽价格为0.因为此时尚未提供计时服

务,因而计时代价也为0).同理,AirlineB的响应分为(犉狋犅犐犳,1,0.8,1,0)/(犅犜犿犗狋,1,0.2,0,0)两种情况.为简化建模,统一AirlineA和AirlineB的响应为4种情况:

(3.1)AirlineA和AirlineB都返回机票信息(犉狋犃犐犳|犉狋犅犐犳,1,0.56,2,0)(其中:时间参数为1;概率参数为0.56=0.8×0.7;带宽价格为2;计时服务代价为0.在此状态下,TAgent将基于某些标准(比如QoS等)来选择服务,假设TAgent将以概率0.5向AirlineA发送订票请求′犉狋犃犚狊,或以概率0.5向AirlineB发送订票请求′犉狋犅犚狊).

(3.2)AirlineA返回机票信息而AirlineB无响应(犉狋犃犐犳|犅犜犿犗狋,1,0.14,1,0)(其中:时间参数为1;概率参数为0.14=0.7×0.2;带宽价格为1;计时服务代价为0.在此状态下,TAgent将以概率1向AirlineA发送订票请求′犉狋犃犚狊).

(3.3)AirlineA无响应而AirlineB返回机票信息(犃犜犿犗狋|犉狋犅犐犳,1,0.24,1,0)(其中:时间参数为1;概率参数为0.24=0.3×0.8;带宽价格为1;计时服务代价为0.在此状态下,TAgent将以概率1向AirlineB发送订票请求′犉狋犅犚狊).

(3.4)AirlineA和AirlineB都无响应(犃犜犿犗狋|犅犜犿犗狋,1,0.06,0,0)(其中:时间参数为1;概率参数为0.06=0.3×0.2;带宽价格为0;计时服务代价为0.在此状态下,TAgent将以概率1向Client发送服务失败消息(′犅犽犚犳,1,1,1,0)).

(4)如果TAgent向AirlineA发送了′犉狋犃犚狊,在此状态下,则它们开始提供计时服务.假设它们之间在一次服务组合事务过程中不再出现故障,且为机票处理需要10个单位时间,则可建模为([10],10,1,0,50)(其中:时间参数为10;概率参数为1;功能价格为0;计时代价为50=10×5).之后TAgent收到AirlineA订机票成功的概率为1,也即动作(犉狋犃犃犽,1,1,1,0).

同理,如果TAgent向AirlineB发送了′犉狋犅犚狊,在此状态下,则它们开始提供计时服务.假设它们之间在一次服务组合事务过程中不再出现故障,且为机票处理需要9个单位时间,则可建模为([9],9,1,0,45)(其中:时间参数为9;概率参数为1;功能价格为0;计时代价为45=9×5).之后TAgent收到AirlineA订机票成功的消息(犉狋犅犃犽,1,1,1,0),向Client发送服务成功消息(′犅犽犃犽,1,1,1,0).

(5)订机票成功后,TAgent向Hotel发送房间查询请求(′犎狋犙狔,1,1,1,0).

629 计  算  机  学  报 2012年

(6)Hotel的响应分为(犎狋犐犳,1,0.9,1,0)/(犎狋犜犿犗狋,1,0.1,0,0)两种情况:

(6.1)如果TAgent收到(犎狋犐犳,1,0.9,1,0),则向Hotel发送订房请求(′犎狋犚狊,1,1,1,0).在此状态下,则它们开始提供计时服务.假设它们之间在一次服务组合事务过程中不再出现故障,且为订房处理需要5个单位时间,则可建模为([5],5,1,0,25).之后TAgent收到Hotel订房成功的概率为1,建模为(犎狋犃犽,1,1,1,0).

(6.2)如果Hotel无响应,则建模为(犎狋犜犿犗狋,1,0.1,0,0).在此状态下,还需:

(6.2.1)如果向AirlineA订过机票,TAgent还需向AirlineA发送取消订票消息(′犉狋犃犆犾,1,1,1,0).由于在此状态下已假定TAgent与AirlineA在一次组合事务过程中不再有故障,则会收到AirlineA取消订票的确认消息,建模为(犃犆犾犃犽,1,1,1,-50)(其中:-50表示取消与AirlineA组合的计时服务代价,因为组合服务是以成功提供服务来计算费用的,不成功提供组合服务将不计算费用,这可以看做是Web服务事务中的补偿机制).

相应地,如果向AirlineB订过机票,TAgent还需向AirlineB发送取消订票消息(′犉狋犅犆犾,1,1,1,0).由于在此状态下已假定TAgent与AirlineB在一次组合事务过程中不再有故障,则会收到AirlineB取消订票的确认消息,建模为(犅犆犾犃犽,1,1,1,-45)(其中:-45表示取消与AirlineB组合的计时服务代价).

(6.2.2)TAgent向Client发送服务失败消息(′犅犽犚犳,1,1,1,0).4.2.2 Web服务组合的TPPPA模型

对上述Web服务组合流程,把其中的Web服务分别建模为TPPPA的进程,而组合服务TravelBookingSystem则建模为这些TPPPA进程的并发合成.另外需要说明的是,Client不是组成TravelBookingSystem的子服务,而是作为TravelBookingSystem的需求者来验证组合服务是否满足需求.因为Client是与TravelBookingSystem交互的,如果TravelBookingSystem满足Client需求,则Client与TravelBookingSystem可以看作是一对互补的系统,且客户对偶RClient(即与Client互补的满足需求的理想进程,对Client进程表达式中所有的动作取相应的补动作,可直接得到RClient的表达式)与TravelBookingSystem在外部行为上应是一致的,这正好可以通过RClient与TravelBook

ingSystem是否弱互模拟来验证.因此,把Client和RClient也建模为TPPPA进程.下面给出它们的TPPPA表达式:

TAgent的进程表达式如下:procTAgent=(犅犽犚狇,1,1,1,0)!(′犉狋犃犙狔|′犉狋犅犙狔,1,1,2,0)!TAgent1procTAgent1=(犉狋犃犐犳|犅犜犿犗狋,1,0.14,1,0)!TAgent2+

(犉狋犃犐犳|犉狋犅犐犳,1,0.54,2,0)!TAgent3+(犃犜犿犗狋|犉狋犅犐犳,1,0.24,1,0)!TAgent4+(犃犜犿犗狋|犅犜犿犗狋,1,0.06,0,0)!TAgent5

procTAgent2=(′犉狋犃犚狊,1,1,1,0)!TAgent6procTAgent3=(′犉狋犃犚狊,1,0.5,1,0)!TAgent6+

(′犉狋犅犚狊,1,0.5,1,0)!TAgent7procTAgent4=(′犉狋犅犚狊,1,1,1,0)!TAgent7procTAgent5=(′犅犽犚犳,1,1,1,0)!TAgentprocTAgent6=([10],10,1,0,50)!(FtAAk,0,1,1,0)!(′犎狋犙狔,1,

1,1,0)!TAgent8procTAgent7=([9],9,1,0,45)!(FtBAk,1,1,1,0)!(′犎狋犙狔,1,1,

1,0)!TAgent9procTAgent8=(犎狋犐犳,1,0.9,1,0)!TAgent10+(犎狋犜犿犗狋,1,0.1,

0,0)!TAgent11procTAgent9=(犎狋犐犳,1,0.9,1,0)!犜犃犵犲狀狋10+(HtTmOt,1,0.1,

0,0)!TAgent12procTAgent10=(′犎狋犚狊,1,1,1,0)!([5],5,1,0,25)!(犎狋犃犽,1,1,1,

0)!(′犅犽犃犽,1,1,1,0)!TAgentprocTAgent11=(′犉狋犃犆犾,1,1,1,0)!(犃犆犾犃犽,1,1,1,-50)!TAgent5procTAgent12=(′犉狋犅犆犾,1,1,1,0)!(犅犆犾犃犽,1,1,1,-45)!TAgent5  说明:TAgent的表达式是对上述TAgent流程的建模.

AirlineA的进程表达式如下:procAirlineA=(犉狋犃犙狔,1,0.5,1,0)!(′犉狋犃犐犳,1,1,1,0)!AirlineA+

(犉狋犃犚狊,1,0.4,1,0)!([10],10,1,0,30)!(′犉狋犃犃犽,1,1,1,0)!AirlineA+(犉狋犃犆犾,1,0.1,1,0)!(′犃犆犾犃犽,1,1,1,-30)!AirlineA

  说明:AirlineA在等待提供服务的状态下存在3种可能行为:接收机票查询(犉狋犃犙狔,1,0.5,1,0)、接收机票预定(犉狋犃犚狊,1,0.4,1,0)、接收机票预定取消(犉狋犃犆犾,1,0.1,1,0).其中,如果接收到机票预定,AirlineA将与TAgent组合进行10个时间单位的计时机票处理服务([10],10,1,0,30),AirlineA的计时服务代价为30=10×3.如果接收到机票预定取消,将进行补偿处理(′犃犆犾犃犽,1,1,1,-30),AirlineA的计时服务代价为30将被取消.

AirlineB的的进程表达式如下:procAirlineB=(犉狋犅犙狔,1,0.5,1,0)!(′犉狋犅犐犳,1,1,1,0)!AirlineB+

(犉狋犅犚狊,1,0.4,1,0)!([9],9,1,0,36)!(′犉狋犅犃犽,1,1,1,0)!AirlineB+(犉狋犅犆犾,1,0.1,1,0)!(′犅犆犾犃犽,1,1,1,-36)!AirlineB

  说明:AirlineB的情形与AirlineA的类似.Hotel的进程表达式如下:

procHotel=(犎狋犙狔,1,0.5,1,0)!(′犎狋犐犳,1,1,1,0)!Hotel+(犎狋犚狊,1,0.5,1,0)!([5],5,1,0,10)!(′犎狋犃犽,1,1,1,0)!Hotel

7295期 肖芳雄等:基于时间概率代价进程代数的Web服务组合建模和分析

组合服务TravelBookingSystem的进程表达式如下:setIn={犉狋犃犙狔,犉狋犅犙狔,犉狋犃犐犳,犉狋犅犐犳,犉狋犃犚狊,犉狋犅犚狊,犉狋犃犃犽,

犉狋犅犃犽,犉狋犃犆犾,犉狋犅犆犾,犃犆犾犃犽,犅犆犾犃犽,犎狋犙狔,犎狋犐犳,犎狋犚狊,犎狋犃犽,犃犜犿犗狋,犅犜犿犗狋,犎狋犜犿犗狋}

procTravelBookingSystem=(TAgent|AirlineA|AirwayB|Hotel)\In说明:TravelBookingSystem由子服务TAgent、

AirlineA、AirlineB和Hotel并发组合而成.动作集合In中的动作是TravelBookingSystem内各子服务之间的交互动作,对用户Client是不可见的,应作为内部动作使用隐藏算子隐藏起来.

客户Client的进程表达式如下:procClient=(′犅犽犚狇,1,1,0)!Client1procClient1=(犅犽犃犽,?,?,?,?)!Client+

(犅犽犚犳,?,?,?,?)!Client说明:Client是组合服务TravelBookingSystem

的需求者,从Client的角度而言,(犅犽犃犽,?,?,?,?)和(犅犽犚犳,?,?,?,?)表示接收到犅犽犃犽(即服务组合成功)和犅犽犚犳(即服务组合失败)的累积时间、累积概率、累积带宽成本、累积计时服务成本等未知,需要在组合服务的设计验证阶段求解.需要注意的是,这两个动作与图中标注的动作(′犅犽犃犽,1,1,1,0)和(′犅犽犚犳,1,1,1,0)是不同的,后者是从TAgent的角度而言,其中(′犅犽犃犽,1,1,1,0)表示TAgent在预订机票和房间都成功的状态下必然向Client发送成功消息,概率为1,而(′犅犽犚犳,1,1,1,0)表示TAgent在预订机票失败或预订房间失败的状态下必然向Client发送失败消息,概率为1.

客户对偶RClient的进程表达式如下:procRClient=(犅犽犚狇,1,1,1,0)!RClient1procRClient1=(′犅犽犃犽,?,?,?,?)!RClient1+

(′犅犽犚犳,?,?,?,?)!RClient1说明:RClient是Client的对偶进程,其表达式

是对Client表达式中的动作求补.43 基于犜犘犘犘犃的犠犲犫服务组合分析

建立TPPPA模型后,可对其进行功能分析和QoS分析.由于TPPPA是对TCCS的时间、概率和代价的保守扩展,如果把TPPPA模型中的时间、概率和代价信息忽略,则可得到一个TCCS模型.可在TCCS模型上进行功能分析,包括安全检查、活动观察、功能验证等,本文第2节对此已做了介绍,在此不再赘述,本文重点是阐述对TCCS时间、概率和代价等QoS建模和分析能力的扩展,及其在服务组合中的应用.

根据TPPPA的时间概率代价迁移语义,可以构造出TPPPA进程表达式对应的时间概率代价状态空间,也即时间概率代价引导图TPPDG,进而可

以在TPPDG中进行服务组合的时间、概率和代价等QoS分析.下面先介绍时间概率代价状态空间的构造.4.3.1 时间概率代价状态空间构造

由上述Web服务组合实例的TPPPA模型可以看出,TravelBookingSystem由子服务TAgent、AirlineA、AirlineB和Hotel并发组合而成.TravelBookingSystem的状态空间应是4个子服务状态空间的笛卡儿积,根据进程代数已有算法,可以求解出TravelBookingSystem的状态空间,但是算法的时间和空间复杂度将随子服务的增多呈指数级增长,并可能带来状态空间爆炸问题.为此本文提出一种简化方法来处理此问题.

考虑基于BPEL的编制服务组合,总存在着一个BPEL组合流程,该BPEL组合流程运行在BPEL执行引擎上,用于协调各子服务所有操作的执行,体现了组合服务的行为.为降低组合服务状态空间处理的时间和空间复杂度,使状态空间的构造在有限时间空间内完成,本文提出对组合服务状态空间的分析转化为对BPEL组合流程的分析.此外,本文给出的旅行订票系统案例中,组合流程与代理服务TAgent的流程是一致的,因而基于TAgent的流程来说明状态空间的分析问题.

为此,需把其它子Web服务相关信息映射到TAgent的TPPPA模型中.由于假设子Web服务之间是同步通信,子Web服务之间交互时的延时和概率相同,因此无须映射时间信息和概率信息.对于带宽代价,由于两个Web服务之间的一个收发消息行为建模为一个功能动作,而TAgent已包含了与其它子Web服务的消息交互,因此其它子Web服务的带宽代价无须映射到TAgent中.对于计时服务代价,则需映射到TAgent的TPPPA模型中.当AirlineA与TAgent交互时,把AirlineA的单位时间成本映射到TAgent中,则此时TAgent的单位时间成本为8(其中5为TAgent自身的单位时间成本,3为AirlineA的单位时间成本).同理,当AirlineB与TAgent交互时,映射后的TAgent单位时间成本为9(其中4为AirlineB的单位时间成本);当TAgent与Hotel交互时,映射后的TAgent单位时间成本为7(其中2为Hotel的单位时间成本).下面给出映射了代价信息后的TAgent的TPPPA进程表达式,其中:([10],10,1,0,80)是当AirlineA与TAgent交互时,映射后的时间概率代价动作;([9],9,1,0,81)是当AirlineB与TAgent交互时,

829 计  算  机  学  报 2012年

映射后的时间概率代价动作;([5],5,1,0,35)是当Hotel与TAgent交互时,映射后的时间概率代价动作.经过信息映射的TAgent的TPPPA表达式如下:procTAgent=(犅犽犚狇,1,1,1,0)!(′犉狋犃犙狔|′犉狋犅犙狔,1,1,2,0)!TAgent1procTAgent1=(犉狋犃犐犳|犅犜犿犗狋,1,0.14,1,0)!TAgent2+

(犉狋犃犐犳|犉狋犅犐犳,1,0.54,2,0)!TAgent3+(犃犜犿犗狋|犉狋犅犐犳,1,0.24,1,0)!TAgent4+(犃犜犿犗狋|犅犜犿犗狋,1,0.06,0,0)!TAgent5

procTAgent2=(′犉狋犃犚狊,1,1,1,0)!TAgent6procTAgent3=(′犉狋犃犚狊,1,0.5,1,0)!TAgent6+(′犉狋犅犚狊,1,0.5,

1,0)!TAgent7procTAgent4=(′犉狋犅犚狊,1,1,1,0)!TAgent7procTAgent5=(′犅犽犚犳,1,1,1,0)!TAgentprocTAgent6=([10],10,1,0,80)!(犉狋犃犃犽,1,1,1,0)!(′犎狋犙狔,1,

1,1,0)!TAgent8procTAgent7=([9],9,1,0,81)!(犉狋犅犃犽,1,1,1,0)!(′犎狋犙狔,1,1,

1,0)!TAgent9procTAgent8=(犎狋犐犳,1,0.9,1,0)!TAgent10+(犎狋犜犿犗狋,1,0.1,

0,0)!TAgent11procTAgent9=(犎狋犐犳,1,0.9,1,0)!TAgent10+(犎狋犜犿犗狋,1,0.1,

0,0)!TAgent12procTAgent10=(′犎狋犚狊,1,1,1,0)!([5],5,1,0,35)!(HtAk,1,1,1,0)!

(′犅犽犃犽,1,1,1,0)!TAgentprocTAgent11=(′犉狋犃犆犾,1,1,1,0)!(犃犆犾犃犽,1,1,1,-80)!TAgent5procTAgent12=(′犉狋犅犆犾,1,1,1,0)!(犅犆犾犃犽,1,1,1,-81)!TAgent5

下面讨论时间概率代价状态空间的构造算法.如前所述,TPPPA进程表达式对应的时间概率代价状态空间实际上是一个时间概率代价引导图TPPDG.对TAgent中的并发动作使用并发算子“|”表示后,并发动作可看做一个动作,比如TAgent进程表达式中的(′犉狋犃犙狔|′犉狋犅犙狔,1,1,2,0).由于TAgent是单个原子服务,在把并发动作使用并发算子“|”表示成单个动作后,其程序逻辑上仅存在3种基本结构:顺序、选择、循环,不妨设其进程表达式为犈=犪狆1犈+犪狆2犈+…+犪狆狀犈,其中犪狆犻(犻=1,2,…,狀).为时间概率代价动作,犈为以递归形式定义的只含有顺序动作前缀算子和选择算子两种基本结构的进程表达式,而循环结构体现在表达式的等式结构中.进程的初始表达式对应进程的初始状态,在TPPDG中对应根节点,蕴含了进程所有可能的演化.进程执行一个功能动作或时间动作,则对应一次状态迁移,在TPPDG中对应一条边.进程从初始状态开始,在执行动作的过程中会形成不同的状态,这些状态对应进程演化过程中不同的进程表达式,在TPPDG中对应不同的状态节点.另外,TPPDG构造算法首先对进程表达式中以关键字“proc”标注的表达式代理进行注册.然后在扫描进程表达式生成

状态节点的过程中,如果首次遇到注册过的进程表达式代理,则为其创建一个状态节点,并把创建的状态节点名标记到该进程表达式代理.以后再扫描到该进程表达式代理时,则无须再为其创建状态节点,仅需为其创建一条边.算法以进程表达式中的“+”算子为分界,深度优先递归地构造TPPDG.下面给出TPPDG的生成算法.

算法1. TPPDG构造算法.GeneratePTDG(犈,&狆狋犚狅狅狋犜)输入:犈,aTPPPAexpression输出:狆狋犚狅狅狋,apointerpointingtoanode功能:create犈’狊TPPDGwhoserootnodepointedby

狆狋犚狅狅狋1.Registernamesforall犈’狊processexpressionagentsprefixedwith“proc”;

2.Createtherootnode狊犮0=(狊0,0,0,0)andtagitsnametotheoriginalprocessexpression,andlet狆狋犚狅狅狋pointto狊犮0;

3.CallGenerateNodesEdges(狊犮0,犈);GenerateNodesEdges(狊犮犽,犈)输入:狊犮犽,atemporalcostnode,

犈,aTPPPAexpression功能:CreateTPPDGstartingfromnode狊犮犽andmeeting犈1.Scan犈;2.Foreveryα犻犈,犻=1,2,…,狀,separatedbychoiceoperator‘+’do

3.{ If(犈=0)or(α犻=0)thencontinue;4.If(犈doesnotmatchanyregisteredprocess

agent)or(犈matchestotherootnode)5. Createanode狊犻for犈;6.Elseiftheregisteredprocessagentmatchedto犈

hasnotbeentaggedwithanodename7. Createanode狊犻for犈andtagname狊犻forthe

registeredprocessagent;

8.Createedge狊犽(α,狋,犳(→α),犵(α),犺(α→))狊犻;

9.If(犈matchestotherootnode)10.Createedge狊犽taggedwithrecursiveedg→e狊0;11.CallGenerateNodesEdges(狊犮犻,犈)recursively;}算法1生成的TAgent的TPPDG如图3所示.图3实际上是一个边上有多重权值的带权有向

图,边上的权值包括时间、概率、功能代价、计时代价.这些边分为两种类型:实线所示的边对应功能动作迁移,其时间为1和计时代价为0;虚线所示的边对应时间动作,其功能代价为0.另外,点虚线对应循环结构.设TPPPA表达式含有狀个动作,因为算法1需要为每个动作创建一条边,则算法的时间复杂度为犗(狀).

9295期 肖芳雄等:基于时间概率代价进程代数的Web服务组合建模和分析

图3 时间概率代价引导图

4.3.2 基于TPPDG的时间、概率、代价分析本节讨论基于TPPDG的时间、概率、代价分析

算法.由于在TPPDG中从初始节点出发到达某个用户感兴趣的状态节点可能存在多条路径,因此需要求出到达该节点的所有路径.用户感兴趣的状态是通过特定事件来检测到的,如用户通常感兴趣的服务组合成功的状态就是通过TAgent向Client发送的消息′犅犽犃犽检测到的.因此,算法通过在TPPDG中查找消息′犅犽犃犽及其引发迁移后的状态节点,就可查找到用户感兴趣的服务组合成功状态.算法开始时初始化一个堆栈犛和一个路径数组犪狉狉犘犪狋犺,

在算法深度优先遍历TPPDG的过程中把经过的状态节点压入堆栈犛中,并把只有一个出分支的状态节点和所有出分支都遍历过的状态节点标记为已遍历,当遇到特定消息犪犗犓(本例对应′犅犽犃犽)时,其引发迁移后的状态即为所求状态.此时堆栈犛中的状态节点序列即为一条从初始状态出发到达所求状态的路径,算法把此时的堆栈犛复制作为出参犪狉狉犘犪狋犺的一个元素.然后对犛中的节点出栈,对未标记已遍历的节点继续深度优先遍历,从而求出所有从初始状态出发到达所求状态的路径,并一一复制到犪狉狉犘犪狋犺.下面算法2求解到达特定状态的所有路径.算法3用于计算到达特定状态的每条路径的路径时间、路径概率、路径功能成本、路径计时成本.算法4用于筛选符合特定时间、概率和代价约束的路径.算法5用于从符合约束的路径中选择时间、概率或代价优化的路径,这样的路径将引导优化的服务组合.

算法2. 路径生成算法.PathGeneration(狆狋犚狅狅狋,犪犗犓,&犪狉狉犘犪狋犺)输入:狆狋犚狅狅狋:apointerpointingrootofTPPDG,

犪犗犓:aspecificmessageindicatingservicescompositionsuccess

输出:犪狉狉犘犪狋犺:anarrayofpathesbywhichtoreachthesuccesscompositionstate

功能:InaTPPDGwhoserootpointedby狆狋犚狅狅狋,thereisasuccesscompositionstateinwhich犪犗犓issent.Thisfunctionputsallpathesin犪狉狉犘犪狋犺犫狔whichtoreachthestate.

1.Initialize犛狋犪犮犽(犛);Initialize犃狉狉犪狔(犪狉狉犪狔犘犪狋犺);2.Mark狆狋犚狅狅狋travelled;Push(狆狋犚狅狅狋,犛);3.WhilenotEmpty(犛)do4.{ 犜犘犘犘犃狉犲狀狋=犌犲狋犜狅狆(犛);5.if(allchildrenof犜犘犘犘犃狉犲狀狋havebeen

travelled){mark犜犘犘犘犃狉犲狀狋travelled;狆狋犆犺犻犾犱==NIL}

6.else{狆狋犆犺犻犾犱=Getnontravelledchildof犜犘犘犘犃狉犲狀狋;}

7.if(狆狋犆犺犻犾犱==NIL){Pop(犛);continue;}8.else{mark狆狋犆犺犻犾犱travelled;}9.While(狆狋犆犺犻犾犱!=狆狋犚狅狅狋)10.{ Push(狆狋犆犺犻犾犱,犛);11. if(狆狋犆犺犻犾犱hasonly犮犺犻犾犱){mark狆狋犆犺犻犾犱

travelled;}12. if(犪犗犓isthemessageoftheedgebetween

犜犘犘犘犃狉犲狀狋and狆狋犆犺犻犾犱)13. {狉犘=犜犘犘犘犃狉犲狀狋.狉;copy犛asanelement

of犪狉狉犘犪狋犺;break;}

039 计  算  机  学  报 2012年

14. else{狆狋犆犺犻犾犱=Getachildof犜犘犘犘犃狉犲狀狋;continue;}

15.}16.}算法2中存在两个循环,外层循环用于标记遍

历的节点,内层循环用于遍历以匹配特定消息.设TPPDG中顶点数为犿,则算法2的时间复杂度为犗(犿2).

算法3为算法2生成的犪狉狉犘犪狋犺中的每条路径计算其路径时间、路径概率、路径功能成本和路径计时成本.

算法3. 路径时间、概率、代价计算.Path_Calculation(&犪狉狉犘犪狋犺)输入/输出:犪狉狉犘犪狋犺:anarrayofpath.功能:Calculatetime,probabilityandcostforpath.1.For(犻=1;犻<=犪狉狉犘犪狋犺.狊犻狕犲();犻++){2.{For(犼=1;犼<=犪狉狉犘犪狋犺[犻]!犈犱犵犲();犼++){3.犪狉狉犘犪狋犺[犻].犮狋+=犪狉狉犘犪狋犺[犻]!犈犱犵犲[犼].狋;4.犪狉狉犘犪狋犺[犻].犮狉+=犪狉狉犘犪狋犺[犻]!犈犱犵犲[犼].狉;5.犪狉狉犘犪狋犺[犻].犮犵+=犪狉狉犘犪狋犺[犻]!犈犱犵犲[犼].犵;6.犪狉狉犘犪狋犺[犻].犮犺+=犪狉狉犘犪狋犺[犻]!犈犱犵犲[犼].犺;7.continue;}8.continue;}设算法2生成的路径有犽条,算法3顺序对每

条路径求其时间、概率和代价.每条路径的长度最坏情况下为所有的边数狀,则时间复杂度为犗(犽狀).

算法4设置了时间约束犜犆,概率约束犚犆,功能成本约束犌犆,计时成本约束犎犆,用于检查算法2生成的所有路径犪狉狉犘犪狋犺是否满足这些约束,对不满足约束的路径进行标记.

算法4. 路径约束检查算法.CheckPath(犜犆,犚犆,犌犆,犎犆,&犪狉狉犘犪狋犺)输入:犜犆:timeconstraintforpath;

犚犆:probabilityconstraintforpath;犌犆:functionalcostconstraintforpath;犎犆:timedcostconstraintforpath;犪狉狉犘犪狋犺:anarrayofpath

输出:犪狉狉犘犪狋犺:anarrayofpathmeeting犜犆,犚犆,犌犆,犎犆功能:CheckandtagallpathofarrPaththatdonotmeet

constraintsof犜犆,犚犆,犌犆and犎犆1.For(犻=1;犻<=犪狉狉犘犪狋犺.狊犻狕犲();犻++)2.{if(犪狉狉犘犪狋犺[犻].犮狋>犜犆)tag犪狉狉犘犪狋犺[犻]notpass

timeconstraint;3.if(犪狉狉犘犪狋犺[犻].犮狉<犚犆)tag犪狉狉犘犪狋犺[犻]notpass

probabilityconstraint;4.if(犪狉狉犘犪狋犺[犻].犮犵>犌犆)tag犪狉狉犘犪狋犺[犻]notpass

functionalcostconstraint;5.if(犪狉狉犘犪狋犺[犻].犮犺>犎犆)tag犪狉狉犘犪狋犺[犻]notpass

timedcostconstraint;6.continue;}设算法2生成的路径有犽条,算法4顺序对每

条路径进行约束检查,则时间复杂度为犗(犽).算法5设置了一个标志犳犾犪犵,用于标识时间优

先,或概率优先,或功能成本优先,或计时成本优先的路径,从算法4筛选出的满足约束路径中依据犳犾犪犵选择路径.

算法5. 路径选择算法.PathSelection(犪狉狉犘犪狋犺,犳犾犪犵,&狆犪狋犺)输入:犪狉狉犘犪狋犺:anarrayofpathesmeetingallcon

straints犳犾犪犵:犜犗fortimefirst;犚犗forprobabilityfirst;犌犗forfunctionalcostfirst;犎犗fortimedcostfirst

输出:狆犪狋犺:apathwithflagfirst功能:Output狆犪狋犺with犳犾犪犵firstfrom犪狉狉犘犪狋犺1.犕犻狀=犐犖犉犐犖犐犜犢;犻狀犱犲狓=0;2.For(i=1;i<=犪狉狉犘犪狋犺.狊犻狕犲();犻++){3.If(犳犾犪犵==TO牔牔犪狉狉犘犪狋犺[犻].犮狋<犕犻狀){犕犻狀=犪狉狉犘犪狋犺[犻].犮狋;犻狀犱犲狓=犻;}

4.Elseif(犳犾犪犵==犚犗&&犪狉狉犘犪狋犺[犻].犮狉<犕犻狀){犕犻狀=犪狉狉犘犪狋犺[犻].犮狉;犻狀犱犲狓=犻;}

5.Elseif(犳犾犪犵==犌犗&&犪狉狉犘犪狋犺[犻].犮犵<犕犻狀){犕犻狀=犪狉狉犘犪狋犺[犻].犮犵;犻狀犱犲狓=犻;}

6.Elseif(犳犾犪犵==犎犗&&犪狉狉犘犪狋犺[犻].犮犺<犕犻狀){犕犻狀=犪狉狉犘犪狋犺[犻].犮犺;犻狀犱犲狓=犻;}

7.狆犪狋犺=犪狉狉犘犪狋犺[犻].4.3.3 Web服务组合QoS分析实例

从Client的角度而言,关注两个状态:服务组合成功状态和服务组合失败状态.这两个状态分别对应两个事件:事件犅犽犃犽对应服务组合成功状态狊12,事件犅犽犚犳对应服务组合失败状态狊16.把这两个事件分别运用到上述分析算法,得到如表2所示的各条路径(为阐述方便,以状态序列来表示路径)及其时间犮狋、概率犮狉、功能成本犮犵和计时成本犮犺.

表2 路径及其时间、概率和成本路径 状态序列 犮狋 犮狉 犮犵犮犺1犛0犛1犛2犛3犛4犛5犛6犛7犛8犛9犛10犛11犛12 250.126111152犛0犛1犛2犛17犛4犛5犛6犛7犛8犛9犛10犛11犛12 250.252121153犛0犛1犛2犛17犛18犛19犛20犛21犛8犛9犛10犛11犛12240.252121164犛0犛1犛2犛24犛18犛19犛20犛21犛8犛9犛10犛11犛12240.216111165犛0犛1犛2犛3犛4犛5犛6犛7犛13犛14犛15犛16 200.0141006犛0犛1犛2犛17犛4犛5犛6犛7犛13犛14犛15犛16 200.0281107犛0犛1犛2犛17犛18犛19犛20犛21犛22犛23犛15犛16 190.0281108犛0犛1犛2犛24犛18犛19犛20犛21犛22犛23犛15犛16 190.0241009犛0犛1犛2犛15犛16 40.06 4 0

其中,路径1~4都可到达服务组合成功状态,路径5~9都可到达服务组合失败状态.可利用上述路

1395期 肖芳雄等:基于时间概率代价进程代数的Web服务组合建模和分析

径信息分析服务组合的响应时间、可靠性、代价和关键路径.

(1)服务组合响应时间分析服务组合成功时的最慢响应时间为25,可由

路径1或路径2达到,这是由于TAgent选择与AirlineB和Hotel组合;服务组合成功时的最快响应时间为24,可由路径3或路径4达到,这是由于TAgent选择与AirlineA和Hotel组合.

服务组合成功时的平均响应时间为

犮狋_狊狌犮_犪狏犲=∑4

犻=1(犮狋_狆犪狋犺犻×犮狉_狆犪狋犺犻)∑

犻=1犮狉_狆犪狋犺犻=24.45;

  服务组合失败时的平均响应时间为

犮狋_犳犪犻犾_犪狏犲=∑9

犻=5(犮狋_狆犪狋犺犻×犮狉_狆犪狋犺犻)∑

犻=5犮狉_狆犪狋犺犻=13.43;

  服务组合平均响应时间为

犮狋_犪狏犲=∑9

犻=1(犮狋_狆犪狋犺犻×犮狉_狆犪狋犺犻)=22.75;

  (2)服务组合可靠性分析服务组合成功的概率为

犮狉_狊狌犮_犪狏犲=∑4

犻=1犮狉_狆犪狋犺犻=0.846;

  服务组合失败的概率为

犮狉_犳犪犻犾_犪狏犲=∑9

犻=5犮狉_狆犪狋犺犻=0.154;

  在QoS驱动的Web服务组合研究中[1012],Web服务组合的可靠性指的是Web服务组合成功的概率,因此,本例中Web服务组合的可靠性是0.846.

(3)服务组合代价分析服务组合成功和失败时都将耗费带宽,平均带

宽成本为

犮犵_犪狏犲=∑9

犻=1(犮犵_狆犪狋犺犻×犮狉_狆犪狋犺犻)=11.05.

服务组合成功时的最小计时代价为115,可由路径1或路径2达到,这是由于TAgent选择与AirlineA组合;服务组合成功时的最大计时代价为116,可由路径3或路径4达到,这是由于TAgent选择与AirlineB组合.

服务组合成功时的平均计时代价为

犮犺_狊狌犮_犪狏犲=∑4

犻=1(犮犺_狆犪狋犺犻×犮狉_狆犪狋犺犻)∑

犻=1犮狉_狆犪狋犺犻=115.55.

  服务组合失败时的计时代价为0,这是因为失败时不计入计时代价,通过补偿操作使得计时代价为0.

服务组合平均计时代价为

犮犺_犪狏犲=∑9

犻=1(犮犺_狆犪狋犺犻×犮狉_狆犪狋犺犻)=97.76.

到达服务组合成功状态路径1~4都可到达服务组合成功状态.

(4)服务组合关键路径分析此处的关键路径指的是影响服务组合某些

QoS属性的路径.运用路径约束算法或路径选择算法,可以遴选出某些感兴趣的关键路径,这些关键路径反映了用户感兴趣的QoS组合方案.例如,当时间约束设为24,或把时间作为服务选择的优先考虑因素时,可选出路径3和路径4,表明是TAgent、AirlineA、Hotel组合;当计时代价设为115,或把计时代价作为服务选择的优先考虑因素时,可选出路径1和路径2,表明是TAgent、AirlineB、Hotel组合.因此,可以在服务组合系统模型中分析功能、时间、概率、代价的相关性质和关键路径,作为服务组合实现时的指导或参考,在服务组合实现时重点保障关键路径中动作的实现.当服务组合实现后进行测试和试运行时,可以把模型中的时间、概率、代价等QoS参数与测试和运行时的得到的参数进行对比,以此来验证服务组合实现是否与需求和预期一致.如果不一致,可把关键路径与实际的服务组合消息系列进行对比来发现和定位问题.44 犝犕犞4犠犛犆工具设计

基于提出的TPPPA建模和分析方法,本节设计一个Web服务组合统一建模和验证工具UMV4WSC(UnifiedModelingandVerificationfroWebServicesComposition),以支持基于TPPPA的Web服务组合建模和分析.

由于TPPPA是在经典进程代数TCCS上的时间、概率和代价扩展,而CWBNC是TCCS的验证工具,因此UMV4WSC可在CWBNC的基础上相应地扩展时间、概率和代价等QoS建模和分析能力.CWBNC的早期版本由英国Edinburgh大学开发,最新的版本由美国StonyBrook大学维护,提供了SML和Java两种版本,支持安全检查、行为观察、互模拟验证、模型检测,并公开了源代码,UMV4WSC可在其上进行QoS的扩展.

UMV4WSC的主要架构及其各组成部分如图4虚线内所示.UMV4WSC主要由4个模块组成:图形用户接口模块、模型提取模块、功能分析验证模块、QoS分析验证模块,下面分别对这4个模块的功能进行说明:

239 计  算  机  学  报 2012年

图4 Web服务组合统一建模和验证工具架构

  (1)图形用户接口模块.该模块为用户提供图形化的操作界面.用户可以按照TPPPA的建模方法来建模WSC,并把建立的模型保存为文本文件.用户通过该模块可输入和编辑TPPPA表达式,并保存为TPPPA文件.也可把建立的TPPPA文件导入到UMV4WSC中,通过该模块,用户还可以启动功能分析验证、QoS分析验证、以及显示分析验证的结果等.

(2)模型提取模块.如果把TPPPA模型中的时间、概率和代价信息忽略,则可得到一个TCCS模型.该模块可从TPPPA模型中提取TCCS模型,用于功能分析和验证,或直接把TPPPA模型用于QoS分析和验证.

(3)功能分析验证模块.该模块用于TCCS模型的功能分析和验证.该模块接受TCCS模型作为输入,并把功能分析和验证的结果通过图形用户接口模块回显给用户.该模块主要是集成CWBNC的功能分析和验证方法和工具.

(4)QoS分析验证模块.该模块用于TPPPA的QoS分析和验证.该模块接受TPPPA模型作为输入,并把QoS分析和验证的结果通过图形用户接口模块回显给用户.基于TPPPA的QoS分析和验证支持TPPDG状态空间生成,通过遍历状态空间来进行路径检查、QoS计算、QoS约束检查、路径选择等.

目前,UMV4WSC的框架和设计已经完成,其Java版本正处于编码实现阶段.

5 相关工作QoS驱动的Web服务组合依据QoS指标从多

个符合功能需求的组合方案中选择Web服务,以构建QoS优化的Web组合方案.代表性的工作是Zeng等人[1316]提出的在服务组合的实施阶段,按执行时间、代价、可靠性、有效性和信誉等QoS指标选择Web服务进行服务组合,其中可靠性、维护性和信誉本质上是基于概率信息的QoS属性.这类工作依据流程来组合服务,并依据QoS指标来选择服务进行组合.与这类工作相比,本文的工作则主要是提出支持服务组合功能和QoS统一建模的语言TPPPA,并提出基于TPPPA的服务组合功能和QoS统一建模和分析方法.本文工作在服务组合的模型层面,通过对服务组合的建模和分析,提前对组合服务的功能和QoS属性都进行了分析和验证,并提供用户感兴趣的QoS组合方案,从而在模型层面保证组合服务设计的功能和QoS都满足需求,进而指导系统的实现以及问题的发现和定位,有助于降低Web服务实现风险,提高系统的可信性.

在系统模型层面统一建模和分析方面的相关工作主要有自动机、Petri网、进程代数等方面的工作.在自动机领域,Behrmann等人[17]提出了价格时间自动机,为位置和边联系price参数,表示所占用的系统资源的价格,主要用于实时系统中与成本相关

3395期 肖芳雄等:基于时间概率代价进程代数的Web服务组合建模和分析

的调度分析.Kwiatkowska等人[18]在概率时间自动机中为位边联系概率参数,表示动作迁移的概率,主要用于网络协议分析.然而这些扩展的自动机都没有讨论组合及与组合相关的时间、概率、代价问题,且没有在Web服务组合上应用.在Petri网领域,随机Petri网是一种经典的概率模型系统,可用于性能和可靠性的评价,但目前未能建模代价[19].Liu等人[20]提出价格时间Petri网,这些扩展的Petri网为每个变迁联系时间和价格参数,讨论了与成本相关的可达性问题,但没有讨论组合问题,且没有在Web服务组合上应用.由于Web服务组合的主要特征在于组合,因而同样具有组合特征的进程代数成为适合建立服务组合形式模型的建模语言.然而目前现有进程代数对服务组合QoS建模和分析的支持尚不充分.比如:包括TCCS在内的时间进程代数主要用于实时系统超时(Timeout)特性的建模,没有涉及到累积时间的建模和分析,且不支持路径分析,没有用于服务组合建模[2].现有随机进程代数SPA可对功能和概率统一建模,但不能求解到达状态的路径及其概率,不能建模代价问题,同样也不支持路径分析[2].Eberbach面向Agent领域在Pi演算上扩展了代价信息而提出了cost演算,但不支持时间建模,且cost演算是专为Agent定制的,语法复杂,没有用于且不适合用于Web服务组合[9].Lee等人[21]提出了资源进程代数用于实时嵌入式系统的资源建模,但资源进程代数主要关注嵌入式系统的资源约束,不能建模资源的累积消耗,未能应用到Web服务组合的建模中.本文提出的TPPPA支持功能、时间、概率、代价的统一建模和分析,扩展了基于图的生成和搜索方法,可求解到达状态的所有路径及其时间、概率和代价,建模和分析更全面完整,适合于Web服务组合的建模和分析.在软件体系结构研究领域,Mei总结了软件体系结构设计中对功能和非功能进行统一建模的相关研究[22],这些研究主要是从模型、方法、框架(framework)的角度关注功能和非功能统一建模.与这些工作不同的是,本文提出了一种支持功能和QoS统一建模的语言TPPPA,以及基于该语言的建模方法和分析方法.

6 结束语Web服务组合的QoS是影响其成功的关键因

素之一,在服务组合分析和设计阶段,建立服务组合的形式化模型并分析验证其功能正确性和QoS可

满足性,是提高组合服务可信性的重要手段.进程代数是一种适合描述服务组合的形式化建模语言,本文针对目前QoS在Web服务组合的系统建模中研究不足的现状,在现有进程代数的基础上,尝试提出了一种时间概率代价进程代数TPPPA,给出其语法和语义,证明其具有功能、时间、概率和代价的统一建模和分析能力.给出了基于TPPPA建模和分析服务组合功能和QoS的方法,实例建模和分析了Web服务组合的功能、可靠性、性能和代价,表明TPPPA可有效支持服务组合功能和QoS的形式化统一建模和分析,提高Web服务组合建模和分析的完整性和可信性.本文提出的TPPPA及其统一建模和分析方法,是对进程代数研究领域的有益补充,同时也为Web服务的研究提供了一种新的视角和途径.

目前正在进行的工作是着手实现UMV4WSC工具.另外,本文假定服务之间的通信是同步通信,而实际还存在异步通信,对异步通信的建模和分析是本文下一步考虑的工作.同时,本文假定Web服务之间交互无异常情况,而实际还存在异常处理机制、补偿机制、事件处理机制等复杂的处理,如何建模这些处理也是本文下一步考虑的工作.

致 谢 感谢作者所在教研室讨论班老师和同学的支持和建议,感谢审稿专家的建设性意见!

参考文献

[1]DustdarS,SchreinerW.Asurveyonwebservicescomposition.InternationalJournalofWebandGrid,2005,1(1):130

[2]BaetenJ.Abriefhistoryofprocessalgebra.TheoreticalComputerScience,2005,335(23):131146

[3]MilnerR.Theoriesfortheglobalubiquitouscomputer.FoundationsofSoftwareScienceandComputationStructures//WalukiewiczI.Proceedingsofthe7thInternationalConference(FOSSACS2004),HeldasPartoftheJointEuropeanConferencesonTheoryandPracticeofSoftware(ETAPS2004).Barcelona,Spain,LNCS2987.Berlin:SpringerVerlag,2004:511

[4]LüJian,MaXiaoXing,TaoXianPingetal.ResearchandprogressonInternetware.ScienceinChina(SeriesE),2006,36(10):10371080(inChinese)(吕建,马晓星,陶先平等.网构软件的研究与进展.中国科学(E辑),2006,36(10):10371080)

[5]SalaünG,BordeauxL,SchaerfM.DescribingandreasoningonWebservicesusingprocessalgebra//Proceedingsofthe

439 计  算  机  学  报 2012年

2ndIEEEInternationalConferenceonWebServices(ICWS2004).SanDiego,USA,2004:4350

[6]LucchiR,MazzaraM.ApicalculusbasedsemanticsforWSBPEL.JournalofLogicandAlgebraicProgramming,2007,70(1):96118

[7]AbouzaidF,MulinsJ.FormalspecificationofcorrelationinWSorchestrationsusingBPcalculus.ElectronicNotesinTheoreticalComputerScience,2010,260(1):324

[8]YuanM,HuangZQetal.Towardsaformalverificationapproachforbusinessprocesscoordination//Proceedingsofthe8thIEEEInternationalConferenceonWebServices(ICWS2010).Miami,USA,2010:10461053

[9]EberbachE.Calculusofboundedrationalagents:Flexibleoptimizationassearchunderboundedresourcesininteractivesystem.FundamentaInformaticae,2005,68(1):47102

[10]MollerF,ToftsC.Atemporalcalculusofcommunicatingsystems//BaetenJCM,KlopJWEds.ProceedingsoftheCONCUR’90.LNCS458,SpringerVerlag,1990:401415

[11]CleavelandR,LiT,SimsS.Theconcurrencyworkbenchofthenewcentury(Version1.2).DepartmentofComputerScience,NorthCarolinaStateUniversity,NewYork,USA,2000:110

[12]MatjazB.BusinessProcessExecutionLanguageforWebServices.2ndEdition.Birmingham,UK:PacktPublishing,2006

[13]ZengLZ,BenatallahBetal.QoSawaremiddlewareforWebservicescomposition.IEEETransactionsonSoftwareEngineering,2004,30(5):311327

[14]IvanovicD,CarroM,HermenegildoM.TowardsdataawareQoSdrivenadaptationforserviceorchestrations//Proceedingsofthe8thIEEEInternationalConferenceonWebServices(ICWS2010).Miami,USA,2010:10141021

[15]HuJianQiang,LiJuanZi,LiaoGuiPing.AmultiQoSbasedlocaloptimalmodelofserviceselection.ChineseJournal

ofComputers,2010,33(3):526534(inChinese)(胡建强,李涓子,廖桂平.一种基于多维服务质量的局部最优服务选择模型.计算机学报,2010,33(3):526534)

[16]FanXiaoQin,JiangChangJun,WangJunLi,PangShanChen.RandomQoSawarereliableWebservicecomposition.JournalofSoftware,2009,20(3):546556(inChinese)(范小芹,蒋昌俊,王俊丽,庞善臣.随机QoS感知的可靠Web服务组合.软件学报,2009,20(3):546556)

[17]BehrmannG,FehnkerA,HuneTetal.Minimumcostreachabilityforpricedtimedautomata//BenedettoMDD,SangiovanniVincentelliAEds.Proceedingsofthe4thInternationalWorkshoponHybridSystems:ComputationandControl.LNCS2034.Berlin:SpringerVerlag,2001:147161

[18]KwiatkowskaM,NormanG,SprostonJ.Symbolicmodelcheckingforprobabilistictimedautomata.InformationandComputation,2007,205(7):10271077

[19]HaasJ.StochasticPetriNets:Modelling,Stability,Simulation.Berlin:SpringerPress,2002

[20]LiuWeiDong,SongJiaXing,LinChuang.ModelingandanalysisofgridcomputingapplicationbasedpricetimedPetrinet.ActaElectronicaSinica,2005,33(8):14161420(inChinese)(刘卫东,宋佳兴,林闯.基于价格时间Petri网的网格计算应用模型及分析.电子学报,2005,33(8):14161420)

[21]LeeI,PhilippouA,SokolskyO.Resourceinprocessalgebra.JournalofLogicandAlgebraicProgramming,2007,72(1):98122

[22]MeiHong,ShenJunRong.Progressofresearchonsoftwarearchitecture.JournalofSoftware,2006,17(6):12571275(inChinese)(梅宏,申峻嵘.软件体系结构研究进展.软件学报,2006,17(6):12571275)

犡犐犃犗犉犪狀犵犡犻狅狀犵,bornin1971,Ph.D.,associateprofessor.Hisresearchinterestsincludesoftwareengineering,servicecomputing,cloudcomputingandelectronicbusiness.

犔犐犢犪狀,bornin1972,M.S.,lecturer.Herresearchinterestsincludesoftwareengineeringandsoftwareprocessimprovement.

犎犝犃犖犌犣犺犻犙犻狌,bornin1965,professor,Ph.D.su

pervisor.Hisresearchinterestsincludesoftwareengineering,databaseanddatawarehouse.

犆犃犗犣犻犖犻狀犵,bornin1972,Ph.D,professor.Hisresearchinterestsincludeformalmethodandartificialintelligence.

犆犎犈犖犣犺犲,bornin1981,Ph.D.,lecturer.Hisresearchinterestsincludesoftwareengineeringandsoftwarereliability.

犉犃犖犇犪犑狌犪狀,bornin1981,Ph.D.candidate.HerresearchinterestsincludesoftwareengineeringandWebservicesadapter.

犅犪犮犽犵狉狅狌狀犱  BothfunctionalityandQoSarekeyfactorsforWebservicecompositiontobeapplicablewidelyintheinternet.Itis

importanttomodelWebservicecompositionformallyandanalyzeifitmeetrequirementsfrombothfunctionalandQoS

5395期 肖芳雄等:基于时间概率代价进程代数的Web服务组合建模和分析

view.However,existingformalmethodsmainlysupportmodelingandverifyingWebservicecompositionfromfunctionalaspect.QoSofWebservicecompositionisnotpaidenoughattentioninthepastwhenmodelingWebservicecompositionwithformalmethods.

Currentformalmodelingmethodsmainlyfocusonfunctionalaspects,nonfunctionalaspectsareoftenignored.Inpractice,functionalaspectsandnonfunctionalaspectsareoftenmodeledbydifferentmodelingtoolsindifferentphases,whichmaycausesomevariancesbroughtupbythedifferentmodelingtools,decreasedevelopmentspeedandaugmentdevelopmentcost.Insomeworsecasesthatnonfunctionalaspectsareignoredinabstractmodelingphase,builtsoftwaredoesnotmeetnonfunctionalaspects,whichcausethatthebuiltsoftwarecannotbeusedandneedtoberebuilt.Onecausefortheseconsislackofunifiedformalmodelingtools

tosupportmodelingbothfunctionalaspectsandnonfunctionalaspectsinanunifiedmodel.Hence,howtobuildunifiedmodelingmethodsandtoolsisbecominganimportantproblem.ThispaperfocusesonresearchforunifiedformalmodelinglanguagetosupportbothfunctionalandnonfunctionalformalmodelingofWebservicescomposition.

ThisworkwaspartiallysupportedbytheNationalHighTechnologyResearchandDevelopmentProgram(863Program)ofChina(No.2009AA010307);theNationalNaturalScienceFoundationofChina(No.60873025and61100034);theJiangsuProvinceNaturalScienceFoundation,China(No.BK2008389).Oneofcommonpurposesoftheseresearchprojectsistoaddresshighreliabilitybymodelingsystemsformallyandanalyzingifsystemsneedrequirements.ThisworkwillcontributetotheseresearchprojectsbyunitedmodelingsystemsfrombothfunctionalityandQoSviews.

639 计  算  机  学  报 2012年

top related