本发明专利技术公开了一种改进服务动态更新效率的方法,通过利用BPEL流程动态运行时刻的数据信息提前预知服务可能被执行的节点,从而可进一步为服务间依赖分析以及服务动态替换提供强有力的基础。
【技术实现步骤摘要】
本专利技术属于计算机应用领域,具体是基于对BPEL流程进行动态分析,从而提高服务动态更新的效率。
技术介绍
随着网络和分布式技术的不断发展,基于网络服务的业务提供手段正逐渐成为主流。服务作为软件的一种表现形式不可避免的会面临更新和升级问题。最基本的做法是中止服务,然后对服务进行更新,直到服务更新完毕再启动服务。服务的中止必然会对客户带来巨大的困扰并且对商家自身带来经济损失。同时,服务中止会导致服务数据的丢失,这同样可能对双方带来不必要的麻烦。面对这些问题,动态更新技术是一种很好的解决办法。目前,许多关于动态更新的技术都集中在构件层,这些技术都要求已经获得构件 间或服务间的依赖拓扑图,但是它们却没有提供该依赖拓扑图的解决方案。一般的做法是利用服务间静态依赖作为依赖拓扑图。很明显,这样会使得动态更新效率低下,服务中断程度加大。我们的改进方案可以在服务运行时刻实时计算将来可能被执行的节点,获得更加精确实时的依赖拓扑图,从而我们就可以提前预知某些服务或组件是否会被调用,也就可以决定他们是否可以进行动态更新。BPEL是一种流行的事务流程执行语目,是一种基于XML的编程语目。它用于自动化业务流程,是最常用的Web服务开发语言之一。我们设计的服务动态更新改进方法就是基于该语言定义的服务。
技术实现思路
本专利技术所要解决的技术问题是服务动态更新效率低下,该方法通过动态分析,动态计算服务执行时刻可能被执行的节点,提供更加精确实时的依赖拓扑图,从而提高现有动态更新技术的工作效率。本专利技术的技术方案为一种高效的BPEL服务动态更新方法,主要包括以下两个部分 (I)根据BPEL的特性对BPEL流程进行建模。建模的基本是将BPEL流程构建成有向图,对于结构化的节点(包括域、分支、循环、并发等)都设计对应的Begin和End节点。域节点中的所有信息都保存到Begin节点中。分支节点的设计理论是转化为二叉树,从而保证对于每个分支都只有ture和false两个分支。循环节点则将循环控制和循环部分分离,弓丨入Loop节点控制循环次数。并发节点保留原BPEL流程并发的含义,并且不能减少该节点本身语义。(2)在动态分析时,我们从流程执行的当前节点开始分析,因为其他未执行路径上的节点并不会被流程执行,从而优化了服务间的依赖。对于一般节点,其所有的孩子节点都可能被执行。另外,我们还利用流程运行时刻的数据,对以后可能被执行的分支和循环等节点进行预判。如果能够预判,那么就可以确定流程会执行哪条分支,从而进一步优化服务间依赖关系,提闻动态更新的效率。附图说明图I为本专利技术实施例的静态和动态计算可达集比较。图2为本专利技术实施例的分支节点建模设计图。图3为本专利技术实施例的循环节点建模设计图。图4为本专利技术实施例的并发节点建模设计图。图5为本专利技术实施例的动态分析方法简化图。具体实施方式 以下结合附图和具体实施例对本专利技术作进一步详细说明。本专利技术的改进方法指利用服务运行时刻的数据提前实时计算服务将来可能被执行的节点,提供更加精确的服务依赖关系信息。由此,动态更新算法将可以在更加精确实时的依赖拓扑图上进行,使得动态更新提前并且带来的系统暂停更短。本专利技术所述的基于BPEL的服务内动态分析方法主要包含以下几个工作 I、对BPEL流程进行建模根据BPEL的特性对BPEL流程构建高效模型,建模的主体思想是将BPEL流程构建成有向图,对于结构化的节点(包括域、分支、循环、并发等)都设计对应的Begin和End节点。域节点中的所有信息都保存到Begin节点中。分支节点的设计理论是转化为二叉树,从而保证对于每个分支都只有ture和false两个分支,如图2。循环节点则将循环控制和循环部分分离,引入Loop节点控制循环次数,如图3。并发节点保留原BPEL流程并发的含义,并且不能减少该节点本身语义,如图4。2、利用BPEL流程运行时刻的数据信息,进行动态分析,实时更新流程可能被执行节点的结合。在动态分析时,我们从流程执行的当前节点开始分析,因为不会被流程执行的路径上的节点对应的服务在将来不会被调用,从而优化了服务间的依赖。对于一般节点,其所有的孩子节点都可能被执行。另外,我们还利用流程运行时刻的数据,对以后可能被执行的分支和循环等节点进行预判。如果能够预判,那么就可以确定流程会执行哪条分支,从而进一步优化服务间依赖关系,提闻动态更新的效率。上述工作I的BPEL建模工作主要内容包括 I.O 利用有向图刻画BPEL流程; 1.2) —般节点和通用信息设计,基本节点的具体动作内容对流程分析不起左右,所以丢弃基本节点大部分动作信息,保留节点类型和数据信息; I.3) 变量信息的设计,BPEL中变量复杂多变,建模时分别设计对应的类表示variable、espression、property > partner I ink 和 element 等,同时去除与分析无关的信息; I.4) 伙伴信息的设计,以简化伙伴信息为主,只要能够标识伙伴即可; 1.5) 域节点的设计,域节点包含大量信息,包括变量、触发器等等,其在建模时包含一对Begin和End节点类,所有信息都保存在Begin节点类中; I.6) 分支节点的设计,分支是主要的控制结构之一,其在建模时包含一对Begin和End节点类,同时将分支节点整体设计为一个二叉树结构,保证每个分支只有true和false两条分支,其设计如图2; I. 7) 循环节点的设计,循环是主要的控制结构之一,该节点在建模时引入一个Loop节点类,由Loop节点类保存所有循环控制信息,它的设计如图3 ; 1.8) 并发节点的设计,并发是主要的控制结构之一,该节点在建模时包含一对Begin和End节点,其中Begin节点记录所有link的信息,它的设计如图4 ; 1.9) 触发器节点的设计,它包括了事件触发器和错误触发器,因为事件触发和错误的出现都难以预测,所以将这些触发器设计为一般节点简化分析。 上述工作2的动态分析工作包括 2.I)从流程当前执行节点开始分析,利用递归思想对一般节点和通用节点进行动态计算,因为对于一般节点,孩子节点都可能被父节点执行。同时标记已经计算过的节点,避免重复就算; 2. 2)利用递归思想对分支节点进行动态分析,对分支条件进行判定,以确定可能被执行的分支路径; 2. 3)利用递归思想对循环节点进行动态分析,对分支条件进行判定,以确定可能被执行的分支路径; 2. 4)标记涉及到写操作的变量,它们的值在预判时认定为不可确定。上述工作2. 2的分支节点动态分析工作包括以下情况 2. 2. I)在分支条件不可判定的情况下,所有分支将来都可能被执行,并且真和假的两条分支都会对分支节点之后的节点产生影响,所以需要分别对两条分支进行分析计算,并将两条分支的分析结果合并; 2.2. 2)在分支条件可判定且判定结果为真时,只需要计算分支条件为真的分支; 2.2. 3)在分支条件可判定且判定结果为假时,只需要计算分支条件为假的分支。上述工作2. 3的循环节点动态分析工作包括以下情况 2.3. I)在分支条件不可判定的情况下,所有分支都可能被执行,所以需要分析所有分支,但是必须先计算条件为真的分支,再计算条件为假的分支,并且在计本文档来自技高网...
【技术保护点】
一种高效的BPEL服务动态更新方法,其特征在于:对BPEL流程构建高效模型;利用BPEL流程运行时刻的数据信息,进行动态分析,实时更新流程可能被执行节点的集合。
【技术特征摘要】
1.一种高效的BPEL服务动态更新方法,其特征在于 对BPEL流程构建高效模型; 利用BPEL流程运行时刻的数据信息,进行动态分析,实时更新流程可能被执行节点的 口 O2.根据权利要求I所述的BPEL服务动态更新方法,其特征在于,所述对BPEL流程进行建模是指 根据BPEL的特性对BPEL流程构建高效模型,将BPEL流程构建成有向图,对于结构化的节点都设计对应的Begin和End节点,域节点中的所有信息都保存到Begin节点中,分支节点的设计则是转化为二叉树,从而保证对于每个分支都只有ture和false两个分支,循环节点则将循环控制和循环部分分离,引入Loop节点控制循环次数,并发节点保留原BPEL流程并发的含义,并且不能减少该节点本身语义。·3.根据权利要求2所述的BPEL服务动态更新方法,其特征在于,所述节点包括域、分支、循环、并发。4.根据权利要求3所述的BPEL服务动态更新方法,其特征在于,所述动态分析,从流程执行的当前节点开始分析,分析出未执行路径上的节点不会被流程执行的节点,从而优化了服务间的依赖;对于一般节点,其所有的孩子节点都可能被执行;根据流程运行时刻的数据,对以后可能被执行的分支和循环节点进行预判。5.根据权利要求I所述的BPEL服务动态更新方法,其特征在于,所述对BPEL流程构建高效模型具体包括 I.I)利用有向图刻画BPEL流程; I.2) 一般节点和通用信息设计,丢弃基本节点大部分动作信息,保留类型和数据信息; 1.3)变量信息的设计,BPEL中变量复杂多变,变量类必须要能够表示variable、espression、property、partnerlink 和 element,同时去除冗余信息; I.4)伙伴信息的设计,简化伙伴信息; I.5)域节点的设计,域节点包括变量、触发器,其在建模时包含一对Begin和End节点类,所有信息都保存在Begin节点类中; I.6)分支节点的设计,分支是控制结构之一,其在建模时包含一对Begin和End节点类,同时将分支节点整体设计为一个二叉树结构,保证每个分支只有true和false两条分支; I.7)循环节点的设计,循环是控制结构之一,该节点...
【专利技术属性】
技术研发人员:马晓星,曹春,吕建,冯仁君,
申请(专利权)人:南京大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。