陈 莉 萍
(渭南师范学院 网络安全与信息化学院,陕西 渭南 714099)
【现代应用技术研究】
Web服务组合中事务驱动的服务选择有限自动机
陈 莉 萍
(渭南师范学院 网络安全与信息化学院,陕西 渭南 714099)
对于Web服务组合来说,组件服务的可靠性和一致性是非常重要的要求,然而传统面向QoS的组合方法中并没有考虑到组件服务的事务约束。文章提出了一种利用Web服务事务属性进行服务选择的方法。在该方法中定义了Web服务的事务属性和反映用户事务需求的冒险度,建立了事务驱动的服务选择有限自动机,并用实验证明该选择机制是有效的。
Web服务;事务驱动;工作流模式;有限自动机
Web服务是实现SOA的最佳方法之一,它的目标就是通过SOAP[1]、WSDL[2]、UDDI[3]等协议和规范建立一个松耦合的集成模型,从而实现跨组织的组合服务。目前很多研究主要集中在对组件服务求解QoS上,实现了QoS全局或局部最优的Web服务选择[4-6]。然而它们无法保证组合服务执行时的一致性和可靠性。为了实现Web服务运行结果的可靠性和一致性,必须在服务选择时引入事务处理机制[7]。传统的事务模型的ACID特性并不能完全应用在Web服务的事务处理中[8]。在此本文提出了一种利用Web服务事务属性进行服务选择的方法,利用该方法使得选择出的服务组合运行时是一致的、可靠的。它也可以和QoS服务选择相结合,在保证一致性、可靠性运行前提下,实现QoS最优选择。首先利用Web服务事务属性进行服务选择的方法定义了服务的事务属性。由于组件服务不仅可以由基本服务充当,也可以是组合服务,所以分别对两者的事务属性进行定义。其次,提出了冒险度定义,通过它表示用户事务需求。最后,根据这些推出了事务驱动的服务选择自动机,根据该自动机指导组件服务的选择,通过这些被选择组件服务形成的组合服务能可靠地、成功地被执行。
1.1基本Web服务(简称WS)事务属性
Web服务行为属性是指一个服务和其他服务交互时功能性的实现方式。在一个组合服务的几个组件交互时,某个组件服务执行时出现了一些意外行为,这不仅会导致本服务运行失败,还会对其他组件运行产生副作用。组合的Web服务是一个交叉型跨组织的系统,所以必须确保它的一致性和可靠性。
定义1不可重入的(pivot,简称p): 一个Web服务是不可重入的是指如果该服务被成功执行,则它的效果和影响是不能被语义地撤销,否则它不会产生任何影响和作用。一个被执行的pivot服务是不能被回滚的。
定义2可补偿的(compensatable,简称c):一个Web服务是可补偿的是指存在另一个服务WS1它可以语义地撤销该服务的执行。
一个基本Web服务可以具有多种属性,所有基本Web服务可能具有的行为属性集合为{p,c,pr,cr}。
1.2组合Web服务(简称CWS)事务属性
一个组合服务是对现有的Web服务的聚合,它通过这些现有服务的相互协调、相互作用,提供一个新的增值服务,实现一个统一目标。
(1)组合服务的工作流模式。YAWL是一种过程建模语言,在此利用它描述一个组合服务的组合逻辑。组合服务使用YAWL中的工作流来表示,一个工作流由许多活动构成,每个活动由一个组件服务执行实现。组件服务业务流程的定义是通过指定它们之间的依赖关系实现的。而组件服务之间的依赖关系是通过工作流模式和事务属性来定义的。工作流模式一般指定了组件服务如何被装配到工作流中,以及某组件服务行为是如何影响其他组件服务的。事务属性则指定了在失效情况下,服务行为是否为可补偿的。
服务之间的依赖关系是通过如下几种工作流模式实现的:顺序(sequence)、AND-split(parallel split)、XOR-split (exclusive choice)、 AND-join (synchronization)和 XOR-join (simple merge)。在此组合服务既可以由基本服务组合而成,也可以由组合服务组合而成。
(2)组合Web服务的行为属性。把组合服务作为整体,定义其行为属性。
定义5可补偿的组合服务(简称c):一个组合Web服务是可补偿的,如果所有组件服务为可补偿的。
定义6可重试的组合服务(简称r):一个组合Web服务是可重试的,如果所有组件服务为可重试的。
定义7事务的组合服务(简称TCWS):它是一个组合服务,其事务属性在集合{a,ar,c,cr}中。
通过基本服务行为属性{p,c,pr,cr}和组合服务行为属性{a,ar,c,cr}的定义,根据输入初始状态和用户提出事务需求,将决定为工作流装配每个组件服务的事务属性。同时为服务提供失效处理和补偿机制的依据。
2.1冒险度的定义
工作流装配每个组件服务的事务属性是由输入初始状态和用户提出事务需求两者决定的,但是用户事务需求不同于QoS需求,而一个服务被成功执行的概率(通过事务属性反映的)将直接决定这个服务是否被用户选择和接受。在此给出了一个反映服务被完成和恢复的确定性标准,即risk(冒险度)。通过risk(冒险度)不同等级反映服务被完成和恢复的确定性。
定义8risk 0,如果一个执行服务被完成,它的结果是可以被补偿的,即用户可以执行一个服务语义撤销的前一个服务。
risk 1,如果一个执行服务被完成,它的结果不能保证是被补偿的或语义上被撤销的。
2.2事务驱动的服务选择自动机
从初始状态开始,组件服务在不同工作流模式中使用不同的装配过程。每装配一个服务就可以获得一个组合服务的事务属性,直到n个服务被装配完成则可以获得最终组合服务事务属性。在顺序结构中服务将被从左到右装配到活动中。根据已经装配好的服务事务属性和用户定义的risk等级,选择合适的组件服务装配到下一个活动中。装配好的组合服务应该是事务的。在分支结构中(主要指AND模式)服务将被从顶到底地装配到活动中。在AND-split结构中组合服务获得事务属性时从里向外、从基本服务装配开始。在获得组合服务事务属性时,每装配给工作流中的活动一个服务,就获得一个新的组合服务,当前组合服务事务属性通过以前被装配的服务(可能是一个组合服务也可能是基本服务)事务属性和新组装的服务事务属性获得。当最后一个活动的服务被组装完,最终的组合服务事务属性就会被获得。以前被装配的服务和新组装的服务的类型可能出现的组合形式为:WS(表示基本服务)和WS、WS和CWS(表示组合服务)、CWS和WS及CWS和CWS,它们在不同工作流模式中形成组合服务属性。
在该规则中,p、pr、c、cr、a、ar表示服务的事务属性,SEQ表示以顺序模式组装,PAR表示以并行模式组装。工作流的初始状态为{c,p,a,cr,pr,ar}6种,以初始状态为p或a为例,说明利用该自动机进行服务选择过程。当初始状态为p或a时,如果工作流模式为顺序结构,则必须选择事务属性为{pr,cr,ar}的组件服务组装到下一个活动中,即该服务必须是可重试的。如果工作流模式为分支结构,则必须选择事务属性为cr的组件服务组装到分支活动中。另外,当初始状态为p或a时,无论是哪种工作流模式,组装多少个服务,最终得到的组合服务的事务属性为a。
2.3事务驱动的服务选择算法
根据输入的工作流,以用户提出的冒险度为依据,从初始状态出发自左向右、自顶向上,通过服务选择自动机指导每个组件服务选择,从而达到确保组合服务能被可靠、成功执行的目的。服务选择算法如下:
Algorithm Select
Input:冒险度等级(risk 0或risk 1)和由n个活动构成的工作流(a1,a2,…,an)
Output:n个被选择的组件服务
Begin
If risk 0=true then
For a1to ando
ai=getuebservice(c∪cr)
End for
End if
If risk 1=true then
Fora1toando
If sequential path (ai-1;ai)=true then/*在顺序模式中*/
Ifai-1∈{p,pr,a,ar} then
ai=getwebservice(pr∪cr∪ar)/*该活动只能被装配事务属性为{pr,cr,ar}的服务*/
End if
Ifai-1∈{c,cr} then
ai=getwebservice(pr∪cr∪ar∪p∪c∪a)
End if
End if
If concurrent path (split-pattern…ai…ajjoin-pattern)=true then/*在并发模式中*/
Ifai-1∈{p,a} then
ai=getwebservice(cr)
End if
Ifai-1∈{pr,ar} then
ai=getwebservice(pr,ar,cr)
End if
Ifai-1∈{c,cr} then
ai=getwebservice(c,cr)
End if
End if
End for
End if
End
为了有效地验证上面提出的事务驱动的服务选择机制,选用了配置Core II 1.07 GHz 、内存为1.014 MB、WindowsVista、 Java 2 Enterprise Edition V1.5.0的实验环境,实现了上面描述的基于自动机的服务选择算法。
图1 输入工作流
图2 执行价格权重和score的关系
实验中输入工作流如图1所示。图1中每个活动产生15个候选服务,每个候选服务的事务属性在{p,pr,c,cr,a,ar}中, QoS向量取值按照其对应的事务属性在其区间中选取。图2给出了随着执行价格所占权重增加,不同冒险度等级的组合服务score变化曲线。在图2中可以看到,如果价格标准对于用户来说很重要,即价格所占比重较大的场合,应该按照冒险度等级为risk 1,通过有限自动机选择相应事务属性服务。由于冒险度等级为risk 0服务需要生成事务的补偿机制,它花费的代价肯定比没有补偿机制要大。而价格权重越大,risk 0的组合服务的score会越低。所以根据事务驱动的有限自动机选择的服务,能真实地反映出组合服务的特征,并为服务优选提供依据。
由于冒险度图2执行价格权重和score的关系等级为risk 1服务没有补偿机制,不能被语义地撤销,使得请求被响应时间延长。图3给出了随着执行时间所占权重增加,不同冒险度等级的组合服务score变化曲线。在图3中可以看到,如果时间标准对于用户来说很重要,即时间所占比重较大的场合,应该选择冒险度等级为risk 0。通过有限自动机选择事务属性为{c,cr}的服务。
组合的Web服务是一个交叉型跨组织的系统,在一个组合服务的几个组件交互时,某个组件服务执行时出现了一些意外行为,这不仅会导致本服务运行失败,还会对其他组件运行产生副作用。在组件服务选择时,如果注重QoS最优,没有考虑其事务属性,则可能导致组合服务运行失败,或产生副作用。为了保证组合服务的一致性、可靠性,本文讨论了在组件服务选择时,先从事务属性出发,根据事务驱动服务选择有限自动机,选择组件服务形成组合服务也是事务的,保证了其执行时的一致性和可靠性。
[1] Simeonov S. SOAP[J].XML Journal,2000,(4):12-16.
[2] Tröger P. Encyclopedia of Social Network Analysis and Mining[M].New York:Springer,2014.2420-2423.
[3] TamilarasiK,RamakrishnanM. Design and Development of an Enhanced UDDI for Efficient Discovery of Web Services[M]//Advances in Communication,Network,and Computing.Berlin Heidelberg:Springer,2012.109-114.
[4] Chen T,Bahsoon R,Theodoropoulos G,et al. Dynamic QoS Optimization Architecture for Cloud-based DDDAS[J].Procedia Computer Science,2013,18:1881-1890.
[5] Yau S S,Ye N,Sarjoughian H,et al.Enterprise Resource Planning:Concepts,Methodologies,Tools,and Applications[M].Pennsylvanaia:Information Resources Management Association,2013.1213-1231.
[6] Cardellini V,Casalicchio E,Grassi V,et al. Qos-driven runtime adaptation of service oriented architectures[M]//Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering. New York:ACM,2009.131-140.
[7] WangH G,Hsu CH,Liang Z J,et al. Multi-user web service selection based on multi-QoS prediction[J].Information Systems Frontiers,2014,16(1):143-152.
[8] Yu Q,RegeMt,BouguettayaA,et al. A two-phase framework for quality-aware Web service selection[J].Service Oriented Computing and Applications,2010,(2):63-79.
【责任编辑牛怀岗】
Transaction-driven Finite Automata of Service Selection for Web Service Composition
CHEN Li-ping
(School of Network Safety and Informationization,Weinan Normal University,Weinan 714099,China)
Reliability and consistency are most important requirements for Web service composition. However,the conventional QoS-aware composition approaches don’t consider the transactional constraints during the composition process. This paper addresses the issue of selecting Web services according to their transactional properties. Transactional attributes and risk are defined for Web service,and a transaction-driven finite automaton of service selection is proposed. Experimental results show that the selection mechanism is effective.
Web service; transactional driver; workflow patterns; finite automata
TP393
A
1009-5128(2016)12-0041-05
2016-04-05
陕西省教育厅科研计划项目:泛在网络的U-China战略中服务的优化和可靠的组合技术研究(15JK1237)
陈莉萍(1976—),女,甘肃天水人,渭南师范学院网络安全与信息化学院副教授,工学硕士,主要从事Web服务计算研究。