首页> 中国专利> 一个高效的BPEL服务动态更新方法

一个高效的BPEL服务动态更新方法

摘要

本发明公开了一种改进服务动态更新效率的方法,通过利用BPEL流程动态运行时刻的数据信息提前预知服务可能被执行的节点,从而可进一步为服务间依赖分析以及服务动态替换提供强有力的基础。

著录项

  • 公开/公告号CN102902804A

    专利类型发明专利

  • 公开/公告日2013-01-30

    原文格式PDF

  • 申请/专利权人 南京大学;

    申请/专利号CN201210389324.X

  • 发明设计人 马晓星;曹春;吕建;冯仁君;

    申请日2012-10-15

  • 分类号G06F17/30(20060101);

  • 代理机构32207 南京知识律师事务所;

  • 代理人张苏沛

  • 地址 210093 江苏省南京市鼓楼区汉口路22号

  • 入库时间 2024-02-19 17:18:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-14

    专利权的转移 IPC(主分类):G06F17/30 登记生效日:20200624 变更前: 变更后: 申请日:20121015

    专利申请权、专利权的转移

  • 2015-03-18

    授权

    授权

  • 2013-03-13

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20121015

    实质审查的生效

  • 2013-01-30

    公开

    公开

说明书

技术领域

本发明属于计算机应用领域,具体是基于对BPEL流程进行动态分析,从而提高服务动态更新的效率。

背景技术

随着网络和分布式技术的不断发展,基于网络服务的业务提供手段正逐渐成为主流。服务作为软件的一种表现形式不可避免的会面临更新和升级问题。最基本的做法是中止服务,然后对服务进行更新,直到服务更新完毕再启动服务。服务的中止必然会对客户带来巨大的困扰并且对商家自身带来经济损失。同时,服务中止会导致服务数据的丢失,这同样可能对双方带来不必要的麻烦。面对这些问题,动态更新技术是一种很好的解决办法。

目前,许多关于动态更新的技术都集中在构件层,这些技术都要求已经获得构件间或服务间的依赖拓扑图,但是它们却没有提供该依赖拓扑图的解决方案。一般的做法是利用服务间静态依赖作为依赖拓扑图。很明显,这样会使得动态更新效率低下,服务中断程度加大。我们的改进方案可以在服务运行时刻实时计算将来可能被执行的节点,获得更加精确实时的依赖拓扑图,从而我们就可以提前预知某些服务或组件是否会被调用,也就可以决定他们是否可以进行动态更新。

BPEL是一种流行的事务流程执行语言,是一种基于XML的编程语言。它用于自动化业务流程,是最常用的Web服务开发语言之一。我们设计的服务动态更新改进方法就是基于该语言定义的服务。

发明内容

本发明所要解决的技术问题是服务动态更新效率低下,该方法通过动态分析,动态计算服务执行时刻可能被执行的节点,提供更加精确实时的依赖拓扑图,从而提高现有动态更新技术的工作效率。

本发明的技术方案为:一种高效的BPEL服务动态更新方法,主要包括以下两个部分:

(1)根据BPEL的特性对BPEL流程进行建模。建模的基本是将BPEL流程构建成有向图,对于结构化的节点(包括域、分支、循环、并发等)都设计对应的Begin和End节点。域节点中的所有信息都保存到Begin节点中。分支节点的设计理论是转化为二叉树,从而保证对于每个分支都只有ture和false两个分支。循环节点则将循环控制和循环部分分离,引入Loop节点控制循环次数。并发节点保留原BPEL流程并发的含义,并且不能减少该节点本身语义。

(2)在动态分析时,我们从流程执行的当前节点开始分析,因为其他未执行路径上的节点并不会被流程执行,从而优化了服务间的依赖。对于一般节点,其所有的孩子节点都可能被执行。另外,我们还利用流程运行时刻的数据,对以后可能被执行的分支和循环等节点进行预判。如果能够预判,那么就可以确定流程会执行哪条分支,从而进一步优化服务间依赖关系,提高动态更新的效率。

附图说明

图1为本发明实施例的静态和动态计算可达集比较。

图2为本发明实施例的分支节点建模设计图。

图3为本发明实施例的循环节点建模设计图。

图4为本发明实施例的并发节点建模设计图。

图5为本发明实施例的动态分析方法简化图。

具体实施方式

以下结合附图和具体实施例对本发明作进一步详细说明。

本发明的改进方法指利用服务运行时刻的数据提前实时计算服务将来可能被执行的节点,提供更加精确的服务依赖关系信息。由此,动态更新算法将可以在更加精确实时的依赖拓扑图上进行,使得动态更新提前并且带来的系统暂停更短。

本发明所述的基于BPEL的服务内动态分析方法主要包含以下几个工作:

1、对BPEL流程进行建模:根据BPEL的特性对BPEL流程构建高效模型,建模的主体思想是将BPEL流程构建成有向图,对于结构化的节点(包括域、分支、循环、并发等)都设计对应的Begin和End节点。域节点中的所有信息都保存到Begin节点中。分支节点的设计理论是转化为二叉树,从而保证对于每个分支都只有ture和false两个分支,如图2。循环节点则将循环控制和循环部分分离,引入Loop节点控制循环次数,如图3。并发节点保留原BPEL流程并发的含义,并且不能减少该节点本身语义,如图4。

2、利用BPEL流程运行时刻的数据信息,进行动态分析,实时更新流程可能被执行节点的结合。在动态分析时,我们从流程执行的当前节点开始分析,因为不会被流程执行的路径上的节点对应的服务在将来不会被调用,从而优化了服务间的依赖。对于一般节点,其所有的孩子节点都可能被执行。另外,我们还利用流程运行时刻的数据,对以后可能被执行的分支和循环等节点进行预判。如果能够预判,那么就可以确定流程会执行哪条分支,从而进一步优化服务间依赖关系,提高动态更新的效率。

上述工作1的BPEL建模工作主要内容包括:

1.1)    利用有向图刻画BPEL流程;

1.2)   一般节点和通用信息设计,基本节点的具体动作内容对流程分析不起左右,所以丢弃基本节点大部分动作信息,保留节点类型和数据信息;

1.3)   变量信息的设计,BPEL中变量复杂多变,建模时分别设计对应的类表示variable、espression、property、partnerlink和element等,同时去除与分析无关的信息;

1.4)   伙伴信息的设计,以简化伙伴信息为主,只要能够标识伙伴即可;

1.5)   域节点的设计,域节点包含大量信息,包括变量、触发器等等,其在建模时包含一对Begin和End节点类,所有信息都保存在Begin节点类中;

1.6)   分支节点的设计,分支是主要的控制结构之一,其在建模时包含一对Begin和End节点类,同时将分支节点整体设计为一个二叉树结构,保证每个分支只有true和false两条分支,其设计如图2;

1.7)   循环节点的设计,循环是主要的控制结构之一,该节点在建模时引入一个Loop节点类,由Loop节点类保存所有循环控制信息,它的设计如图3;

1.8)   并发节点的设计,并发是主要的控制结构之一,该节点在建模时包含一对Begin和End节点,其中Begin节点记录所有link的信息,它的设计如图4;

1.9)   触发器节点的设计,它包括了事件触发器和错误触发器,因为事件触发和错误的出现都难以预测,所以将这些触发器设计为一般节点简化分析。

上述工作2的动态分析工作包括:

2.1)从流程当前执行节点开始分析,利用递归思想对一般节点和通用节点进行动态计算,因为对于一般节点,孩子节点都可能被父节点执行。同时标记已经计算过的节点,避免重复就算;

2.2)利用递归思想对分支节点进行动态分析,对分支条件进行判定,以确定可能被执行的分支路径;

2.3)利用递归思想对循环节点进行动态分析,对分支条件进行判定,以确定可能被执行的分支路径;

2.4)标记涉及到写操作的变量,它们的值在预判时认定为不可确定。

上述工作2.2的分支节点动态分析工作包括以下情况:

2.2.1)在分支条件不可判定的情况下,所有分支将来都可能被执行,并且真和假的两条分支都会对分支节点之后的节点产生影响,所以需要分别对两条分支进行分析计算,并将两条分支的分析结果合并;

2.2.2)在分支条件可判定且判定结果为真时,只需要计算分支条件为真的分支;

2.2.3)在分支条件可判定且判定结果为假时,只需要计算分支条件为假的分支。

上述工作2.3的循环节点动态分析工作包括以下情况:

2.3.1)在分支条件不可判定的情况下,所有分支都可能被执行,所以需要分析所有分支,但是必须先计算条件为真的分支,再计算条件为假的分支,并且在计算假条件分支的时候必须继承条件为真分支的变量标记信息;

2.3.2)在分支条件可判定且判定结果为真时,所有分支都可能被执行,所以需要分析所有分支,但是必须先计算条件为真的分支,再计算条件为假的分支,并且在计算假条件分支的时候必须继承条件为真分支的变量标记信息;

2.3.3)在分支条件可判定且判定结果为假时,只需要分析分支条件为假的分支。

虽然本发明通过附图和实施例进行了描述,但实施例并非用来限定本发明。本领域技术人员可在本发明的精神的范围内,做出各种变形和改进,但同样在发明的保护范围之内。因此本发明的保护范围应当以本申请的权利要求保护范围所界定的为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号