CN102902804A - 一个高效的bpel服务动态更新方法 - Google Patents
一个高效的bpel服务动态更新方法 Download PDFInfo
- Publication number
- CN102902804A CN102902804A CN201210389324XA CN201210389324A CN102902804A CN 102902804 A CN102902804 A CN 102902804A CN 201210389324X A CN201210389324X A CN 201210389324XA CN 201210389324 A CN201210389324 A CN 201210389324A CN 102902804 A CN102902804 A CN 102902804A
- Authority
- CN
- China
- Prior art keywords
- node
- branch
- bpel
- design
- condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明公开了一种改进服务动态更新效率的方法,通过利用BPEL流程动态运行时刻的数据信息提前预知服务可能被执行的节点,从而可进一步为服务间依赖分析以及服务动态替换提供强有力的基础。
Description
技术领域
本发明属于计算机应用领域,具体是基于对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)在分支条件可判定且判定结果为假时,只需要分析分支条件为假的分支。
虽然本发明通过附图和实施例进行了描述,但实施例并非用来限定本发明。本领域技术人员可在本发明的精神的范围内,做出各种变形和改进,但同样在发明的保护范围之内。因此本发明的保护范围应当以本申请的权利要求保护范围所界定的为准。
Claims (8)
1.一种高效的BPEL服务动态更新方法,其特征在于:
对BPEL流程构建高效模型;
利用BPEL流程运行时刻的数据信息,进行动态分析,实时更新流程可能被执行节点的集合。
2.根据权利要求1所述的BPEL服务动态更新方法,其特征在于,所述对BPEL流程进行建模是指:
根据BPEL的特性对BPEL流程构建高效模型,将BPEL流程构建成有向图,对于结构化的节点都设计对应的Begin和End节点,域节点中的所有信息都保存到Begin节点中,分支节点的设计则是转化为二叉树,从而保证对于每个分支都只有ture和false两个分支,循环节点则将循环控制和循环部分分离,引入Loop节点控制循环次数,并发节点保留原BPEL流程并发的含义,并且不能减少该节点本身语义。
3.根据权利要求2所述的BPEL服务动态更新方法,其特征在于,所述节点包括域、分支、循环、并发。
4.根据权利要求3所述的BPEL服务动态更新方法,其特征在于,所述动态分析,从流程执行的当前节点开始分析,分析出未执行路径上的节点不会被流程执行的节点,从而优化了服务间的依赖;对于一般节点,其所有的孩子节点都可能被执行;根据流程运行时刻的数据,对以后可能被执行的分支和循环节点进行预判。
5.根据权利要求1所述的BPEL服务动态更新方法,其特征在于,所述对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两条分支;
1.7)循环节点的设计,循环是控制结构之一,该节点在建模时引入一个Loop节点类,由Loop节点类保存所有循环控制信息;
1.8)并发节点的设计,并发是控制结构之一,该节点在建模时包含一对Begin和End节点,其中Begin节点记录所有link的信息;
1.9)触发器节点的设计,它包括事件触发器和错误触发器,将这些触发器设计为一般节点简化分析。
6.根据权利要求1所述的BPEL服务动态更新方法,其特征在于,所述动态分析具体包括:
2.1)从流程当前执行节点开始分析,利用递归思想对一般节点和通用节点进行动态计算,因为对于一般节点,孩子节点都可能被父节点执行;同时,标记已经计算过的节点,避免重复就算;
2.2)利用递归思想对分支节点进行动态分析,对分支条件进行判定,以确定可能被执行的分支路径;
2.3)利用递归思想对循环节点进行动态分析,对分支条件进行判定,以确定可能被执行的分支路径;
2.4)标记涉及到写操作的变量,它们的值在预判时认定为不可确定。
7.根据权利要求6所述的BPEL服务动态更新方法,其特征在于,所述分支节点进行动态分析具体包括:
2.2.1)在分支条件不可判定的情况下,所有分支将来都可能被执行,并且真和假的两条分支都会对分支节点之后的节点产生影响,所以需要分别对两条分支进行分析计算,并将两条分支的分析结果合并;
2.2.2)在分支条件可判定且判定结果为真时,只需要计算分支条件为真的分支;
2.2.3)在分支条件可判定且判定结果为假时,只需要计算分支条件为假的分支。
8.根据权利要求6所述的BPEL服务动态更新方法,其特征在于,所述循环节点进行动态分析具体包括:
2.3.1)在分支条件不可判定的情况下,所有分支都可能被执行,所以需要分析所有分支,但是必须先计算条件为真的分支,再计算条件为假的分支,并且在计算假条件分支的时候必须继承条件为真分支的变量标记信息;
2.3.2)在分支条件可判定且判定结果为真时,所有分支都可能被执行,所以需要分析所有分支,但是必须先计算条件为真的分支,再计算条件为假的分支,并且在计算假条件分支的时候必须继承条件为真分支的变量标记信息;
2.3.3)在分支条件可判定且判定结果为假时,只需要分析分支条件为假的分支。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210389324.XA CN102902804B (zh) | 2012-10-15 | 2012-10-15 | 一个高效的bpel服务动态更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210389324.XA CN102902804B (zh) | 2012-10-15 | 2012-10-15 | 一个高效的bpel服务动态更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102902804A true CN102902804A (zh) | 2013-01-30 |
CN102902804B CN102902804B (zh) | 2015-03-18 |
Family
ID=47575036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210389324.XA Active CN102902804B (zh) | 2012-10-15 | 2012-10-15 | 一个高效的bpel服务动态更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102902804B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150485A (zh) * | 2013-04-01 | 2013-06-12 | 山东鲁能软件技术有限公司 | 一种节点之间的依赖关系系统及其运行方法 |
CN104516719A (zh) * | 2014-12-16 | 2015-04-15 | 南京大学 | 一种基于令牌的支持并发侧面编程的bpel扩展实现方法 |
CN105094850A (zh) * | 2015-08-28 | 2015-11-25 | 安庆师范学院 | 一种基于节点层关联映射的简易业务流程模型的建立方法及应用 |
CN110807587A (zh) * | 2019-10-31 | 2020-02-18 | 神州数码融信软件有限公司 | 流程模型安全性验证方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101872302A (zh) * | 2010-05-14 | 2010-10-27 | 东南大学 | 一种基于bpel的控制信息流图的建模方法 |
CN102013055A (zh) * | 2010-12-07 | 2011-04-13 | 山东中创软件工程股份有限公司 | 一种服务编排流程的验证方法及系统 |
WO2011080082A2 (en) * | 2009-12-30 | 2011-07-07 | International Business Machines Corporation | Business process enablement for identity management |
-
2012
- 2012-10-15 CN CN201210389324.XA patent/CN102902804B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011080082A2 (en) * | 2009-12-30 | 2011-07-07 | International Business Machines Corporation | Business process enablement for identity management |
CN101872302A (zh) * | 2010-05-14 | 2010-10-27 | 东南大学 | 一种基于bpel的控制信息流图的建模方法 |
CN102013055A (zh) * | 2010-12-07 | 2011-04-13 | 山东中创软件工程股份有限公司 | 一种服务编排流程的验证方法及系统 |
Non-Patent Citations (1)
Title |
---|
刘贤: "基于工作流的WEB服务组合建模研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 3, 15 March 2011 (2011-03-15) * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150485A (zh) * | 2013-04-01 | 2013-06-12 | 山东鲁能软件技术有限公司 | 一种节点之间的依赖关系系统及其运行方法 |
CN103150485B (zh) * | 2013-04-01 | 2016-08-03 | 山东鲁能软件技术有限公司 | 一种节点之间的依赖关系系统及其运行方法 |
CN104516719A (zh) * | 2014-12-16 | 2015-04-15 | 南京大学 | 一种基于令牌的支持并发侧面编程的bpel扩展实现方法 |
CN104516719B (zh) * | 2014-12-16 | 2017-03-22 | 南京大学 | 一种基于令牌的支持并发侧面编程的bpel扩展实现方法 |
CN105094850A (zh) * | 2015-08-28 | 2015-11-25 | 安庆师范学院 | 一种基于节点层关联映射的简易业务流程模型的建立方法及应用 |
CN110807587A (zh) * | 2019-10-31 | 2020-02-18 | 神州数码融信软件有限公司 | 流程模型安全性验证方法及装置 |
CN110807587B (zh) * | 2019-10-31 | 2023-08-15 | 神州数码融信软件有限公司 | 流程模型安全性验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102902804B (zh) | 2015-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115169570B (zh) | 量子网络协议仿真方法、装置及电子设备 | |
Ciccozzi et al. | Round-trip support for extra-functional property management in model-driven engineering of embedded systems | |
CN102902804B (zh) | 一个高效的bpel服务动态更新方法 | |
US8495593B2 (en) | Method and system for state machine translation | |
CN106920162B (zh) | 一种基于并行环路检测的虚开增值税专用发票检测方法 | |
CN113535399B (zh) | 一种nfv资源调度方法、装置以及系统 | |
CN106339163B (zh) | 一种App内置浏览器与内嵌网页回退交互的方法 | |
CN101727391A (zh) | 一种软件漏洞特征操作序列的提取方法 | |
Búr et al. | Distributed graph queries over models@ run. time for runtime monitoring of cyber-physical systems | |
CN102880493A (zh) | 一种构件间动态依赖关系的自动分析方法 | |
Carbone | Scalable and Reliable Data Stream Processing | |
CN115268879A (zh) | 代码处理方法、装置、电子设备及存储介质 | |
Tsigkanos et al. | Scalable multiple-view analysis of reactive systems via bidirectional model transformations | |
CN105320525B (zh) | 一种面向移动应用软件的修改影响分析方法 | |
US11755458B2 (en) | Automatic software behavior identification using execution record | |
CN101751332B (zh) | 工作流中间件的流程仿真方法、装置及系统 | |
CN112256482A (zh) | 数据处理方法、装置和服务器 | |
US20130031537A1 (en) | Specialized Function Implementation Using Code Frequency Profiling | |
Ghezzi et al. | An architectural blueprint for a pluggable version control system for software (evolution) analysis | |
WO2002001342A1 (en) | Modeling method for discrete event system using event flow chart | |
Karami et al. | Maintaining accurate web usage models using updates from activity diagrams | |
CN102968173B (zh) | 一种基于带宽自适应代码迁移的移动设备节能方法 | |
CN114756211A (zh) | 模型训练方法、装置、电子设备和存储介质 | |
Dragomir et al. | Run-time monitoring and real-time visualization of software architectures | |
Bartels et al. | Verification of distributed embedded real-time systems and their low-level implementations using timed CSP |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200624 Address after: No. 41-1, Qianfo Shandong Road, Lixia District, Jinan City, Shandong Province Patentee after: SHANDONG CIVIC SE COMMERCIAL MIDDLEWARE Co.,Ltd. Address before: 210093 Nanjing, Gulou District, Jiangsu, No. 22 Hankou Road Patentee before: NANJING University |
|
TR01 | Transfer of patent right |