[发明专利]基于有向图的WS-BPEL控制环路检测方法无效
申请号: | 200810118124.4 | 申请日: | 2008-08-12 |
公开(公告)号: | CN101339501A | 公开(公告)日: | 2009-01-07 |
发明(设计)人: | 马殿富;孙斗;刘敏;刘建 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京科迪生专利代理有限责任公司 | 代理人: | 贾玉忠;卢纪 |
地址: | 100083*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 ws bpel 控制 环路 检测 方法 | ||
技术领域
本发明涉及一种基于有向图的WS-BPEL控制环路检测方法,主要应用于在计算机的 工作流的建模系统中。
背景技术
WS-BPEL(Web Services Business Process Execution Language,Web服务业务 流程可执行语言)是一种基于XML的业务流程描述语言。前身是由IBM、Microsoft共 同推出的BPEL4WS(Business Process Execution Language for Web Services),2003 年4月提交给标准化组织OASIS,经过大量修改使之得到全面提高,于2007年7月正式 将WS-BPEL2.0发布为OASIS标准。
WS-BPEL融合了IBM和Microsoft各自开发的上一代业务流程描述语言WSFL和 XLANG。WSFL和XLANG分别基于Petri网和Pi演算,因此WS-BPEL吸收和借鉴Petri网 和Pi演算的优点,是一种高级的、抽象的、可执行建模语言,它不仅实现Web服务间 的组合,也将流程自身暴露为Web服务。虽然除WS-BPEL之外还有其他业务流程规范, 但是到目前为止,WS-BPEL是最为成熟和被广泛支持的技术。
作为一种描述业务流程的语言,WS-BPEL不但提供了业务伙伴、业务相关集、业务 数据、事件处理、错误处理和补偿处理等的定义,还提供了丰富的流程控制结构描述, 如表示顺序执行的sequence活动,表示选择执行的if-else活动,表示并发执行的flow 活动,表示循环执行的while和repeatUntil活动等。
作为一种可执行的语言,通过将WS-BPEL部署到相应的运行容器中,能够把业务流 程描述迅速地转换为实际的业务流程系统,因此,在部署之前,保证WS-BPEL的正确性 成为关键性的工作之一。与其他可执行语言Java和C语言不同的地方是,WS-BPEL流程 通过网络交互的是位于不同业务伙伴中的分布式Web服务,如果采用传统运行测试的方 式检验正确性,势必会导致网络资源以及服务资源的浪费,所以检测WS-BPEL的正确性 一般采用静态分析的方法,即在语法正确的基础上,验证WS-BPEL是否满足一些事先约 定的语义属性。其中,是否存在控制环路是关键语义属性之一。
WS-BPEL中的控制环路是指流程描述中的某些活动在执行序列上存在循环依赖关 系,导致整个业务流程逻辑在实际运行过程中会产生死锁。通常检验控制环路是采用形 式化验证的方式,即将WS-BPEL转换为已有形式化模型,比如Petri网或者进程代数, 然后用时序逻辑公式表达控制环路,在整个形式化模型的状态空间中搜索是否存在时序 逻辑公式的反例状态,如果存在反例状态,则表示存在控制环路。
形式化验证方式的优点是比较通用,能够利用已有的形式化模型和相应理论,并且 存在大量优秀的验证工具。但这种方式的缺点有两方面,一方面当被描述的对象比较复 杂时,形式化模型会产生状态空间爆炸问题,在数量庞大的状态空间中搜索反例状态的 效率非常低,而控制环路往往倾向于出现在比较复杂的WS-BPEL;另一方面,形式化验 证的结果很难映射到原有对象中,也就是说,形式化验证的方式能够监测出WS-BPEL中 存在控制环路,但是不能告诉用户是由哪些活动形成了循环依赖,这样给用户查找并修 改错误带来困难。
发明内容
鉴于上述原因,本发明的主要目的是提供一种基于有向图的WS-BPEL控制环路检测 方法,该方法将WS-BPEL的控制环路检测问题转换为有向图的有向回路检测问题,能够 快速检测出复杂WS-BPEL中的控制环路,并且可以将控制环路定位到原WS-BPEL中的相 应位置。
为实现上述目的,本发明采取以下技术方案:一种基于有向图的WS-BPEL控制环路 检测方法,包括以下步骤:
第一步,将WS-BPEL转换为扩展有向图BPEL-Graph;
第二步,对BPEL-Graph中的非控制环路循环,即while和repeatUntil活动进行解 环;
第三步,去掉BPEL-Graph中入度或者出度为零的顶点,因为这些顶点肯定不在任何 有向回路上面;
第四步,重复执行第三步,直到BPEL-Graph中所有顶点入度和出度都不为零;
第五步,采用深度优先算法查找BPEL-Graph中所有有向回路;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810118124.4/2.html,转载请声明来源钻瓜专利网。