区块链上跨组织流程模型演化方法、介质及电子设备



1.本发明涉及业务流程管理技术领域,尤其涉及一种区块链上跨组织流程模型演化方法、介质及电子设备。


背景技术:



2.随着业务流程的日益复杂化,许多流程不再局限于单一组织,即出现了很多需要跨组织协作的业务流程。在这些复杂的跨组织业务流程中,预先定义的业务流程模型往往会随着时间推移及多方业务需求的改变发生变化,然而当前的业务流程管理方法因无法提供足够的灵活性支持这类改变,将引起企业管理效率低下、安全风险增加等各类问题。此外针对业务流程模型的演化,对于部分按照旧版本业务流程模型正在执行但尚未结束的流程实例较为常用的做法是终止当前流程并进行重启,但这往往意味着大量工作的损失。因此,由于预先定义的业务流程模型可能并不完善,在业务流程管理过程中需不断修改业务流程模型并支持适当的业务流程演化方法以优化流程。同时,对于这些正在执行的用户流程实例,若能采用适当的实例迁移策略,可减少流程回滚操作并降低人工成本,进而提高企业管理效率以达到企业业务流程管理的战略目标。因此,如何设计流程模型演化和流程实例动态方案,帮助相关人员应对跨组织业务流程的流程动态变更问题,是目前亟待解决的技术问题,这对业务流程管理的链上运行具有重要意义。


技术实现要素:



3.为了克服上述现有技术的不足,提出了一种区块链上跨组织流程模型演化方法,可有效解决上述问题。
4.本发明具体采用的技术方案如下:
5.第一方面,本发明提供了一种区块链上跨组织流程模型演化方法,其包括以下步骤:
6.s1、从链下业务流程轨迹数据中提取初始选定的业务流程模型,并使用编排图工具进行流程建模形成bpmn文件格式的业务流程赋时编排图;
7.s2、将初始的业务流程赋时编排图进行智能合约的编译和部署,并将该业务流程模型作为原始的参考模型;所述智能合约包括工具库合约、访问控制合约、投票合约、脚手架合约、版本控制合约和实例控制合约;
8.s3、当需要更新业务流程模型时,版本发起人将bpmn格式的新业务流程模型对应的编排图数据导入到以太坊中,并进行模型版本的投票过程,若投票通过则将参考模型更新为新业务流程模型,若投票不通过则将新业务流程模型进行弃用;
9.s4、在新版本上线后,对于新流程实例直接基于新版本的参考模型创建实例并进行实例的执行,通过调用实例控制合约和版本控制合约启动业务流程,后续通过消息的发送和确认来推动编排活动的执行,而对于按照旧版本业务流程模型正在执行但尚未结束的旧流程实例,在继续执行前需进行状态合规性的检查,符合状态合规性的旧流程实例再进
行迁移合规性检查,若旧版本业务流程模型同时符合状态合规性和迁移合规性检查,则继续迁移到新版本的参考模型上执行,若旧版本业务流程模型不符合状态合规性或不符合迁移合规性检查,则需继续基于原参考模型执行,或直接终止旧版本业务流程模型并重新在新版本的参考模型上创建新业务流程实例。
10.作为上述第一方面的优选,所述智能合约的编译和部署过程具体包括以下步骤:
11.s21、部署工具库合约cc;
12.s22、通过truffle环境链接工具库合约cc,之后部署访问控制合约acc,得到访问控制合约部署后的合约引用acc
link

13.s23、通过truffle环境链接工具库合约cc,之后通过传入acc
link
来部署投票合约vc,得到投票合约部署后的合约引用vc
link

14.s24、通过truffle环境链接工具库合约cc,之后通过传入acc
link
、vc
link
和脚手架名称name来部署脚手架合约sc,得到脚手架合约部署后的合约引用sc
link

15.s25、通过truffle环境链接工具库合约cc,之后通过传入vc
link
、sc
link
来部署版本控制合约vcc,得到版本控制合约部署后的合约引用vcc
link

16.s26、通过truffle环境链接工具库合约cc,之后通过传入acc
link
、sc
link
、vcc
link
来部署实例控制合约icc,得到实例控制合约部署后的合约引用icc
link

17.作为上述第一方面的优选,所述s3中更新业务流程模型的具体实现步骤如s31~s36:
18.s31、通过翻译器解析新导入的编排图的bpmn数据文件,得到包含模型元素、序列流、消息、决策、时间约束信息在内的json文件;
19.s32、通过web3调用以太坊上的访问控制合约和脚手架合约接口,将json中的数据导入到以太坊区块链上;
20.s33、通过调用访问控制合约对版本发起人进行权限验证,若权限验证不通过则终止后续版本投票流程,权限验证通过则继续进入后续版本投票阶段;
21.s34、版本发起人通过权限验证后通过调用访问控制合约提交新版本后,由版本参与者调用投票合约接口进行投票决策,该新版本默认需所有版本参与者同意方可发布,若新版本投票通过人数不足,新版本状态将变成弃用状态refuse并向版本发起人返回投票不通过的结果;若新版本投票人数满足需要的人数,新版本状态将变成可用状态pass并向版本发起人返回投票通过的结果;
22.s35、版本发起人提交的新版本投票通过后,调用脚手架合约和版本控制合约接口,以s32中新导入以太坊区块链的业务流程模型更新参考模型,并将新版本绑定到参考模型中的元素、消息、决策中。
23.作为上述第一方面的优选,所述s32中调用的智能合约接口具体包括以下步骤:
24.s321、遍历可投票的参与者账户,调用访问控制合约的账户添加方法进行导入;
25.s322、遍历json文件中的角列表,调用访问控制合约的角添加方法进行导入;
26.s323、遍历json文件中的模型元素,通过脚手架合约的模型导入方法进行导入,其中模型元素包括事件、网关和编排活动;
27.s324、遍历json文件中的消息、决策规则、时间约束列表,通过脚手架合约的数据导入方法进行导入。
28.作为上述第一方面的优选,步骤s33中,权限验证之前需调用访问控制合约对版本发起人进行角权限控制授权。
29.作为上述第一方面的优选,步骤s34中,弃用状态下的版本只能被重新提案或直接弃用。
30.作为上述第一方面的优选,步骤s4中,执行状态合规性检查步骤如s41~s43:
31.s41、针对每一个正在执行但尚未结束的旧流程实例,基于旧流程实例id并通过调用实例控制合约接口,得到区块链上存储的对应旧流程实例i,针对旧流程实例i下一个需执行的编排活动元素进行元素状态检查,当该元素处于激活状态enabled时则继续执行s42的消息状态检查流程,否则视为该元素的不满足可执行状态,需继续基于原参考模型执行,或直接终止旧版本业务流程模型并重新在新版本的参考模型上创建新业务流程实例;
32.s42、当s41中判断当前元素处于激活状态继续执行流程后,通过调用脚手架合约接口来获取旧流程实例i中当前元素的所有前序元素的消息,然后通过遍历来判断各消息的状态,若所有前序元素的消息均满足接收状态,则继续进行s43的迁移合规性检查,否则需继续基于原参考模型执行,或直接终止旧版本业务流程模型并重新在新版本的参考模型上创建新业务流程实例;
33.s43、将旧流程实例i中已执行完毕的前序轨迹与新版本参考模型中的所有轨迹进行匹配,若旧流程实例i中已执行完毕的前序轨迹是所有链下轨迹中任意一条轨迹的子集,则该将旧流程实例i迁移到新版本的参考模型中继续执行,否则需继续基于原参考模型执行,或直接终止旧版本业务流程模型并重新在新版本的参考模型上创建新业务流程实例。
34.作为上述第一方面的优选,所述编排图为赋时编排图,其对编排图的编排元素增加了时间约束限制,时间约束限制包括编排活动的单次持续时间约束、编排活动的最大持续时间约束和编排活动之间的间隔时间约束。
35.第二方面,本发明提供了一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如第一方面任一方案所述的区块链上跨组织流程模型演化方法。
36.第三方面,本发明提供了一种计算机电子设备,其特征在于,包括存储器和处理器;
37.所述存储器,用于存储计算机程序;
38.所述处理器,用于当执行所述计算机程序时,实现如第一方面任一方案所述的区块链上跨组织流程模型演化方法。
39.相比较现有的跨组织业务流程管理框架,本发明具有如下有益效果:
40.1、本发明提出了基于投票机制的模型版本控制策略,将流程模型和流程实例一对多的关系映射成模型版本和流程实例的关系,可解决流程模型演化困难的问题;
41.2、本发明考虑了演化过程中实例的执行合规性和状态合规性,可提高实例执行和迁移的安全性。
附图说明
42.图1为本发明的区块链上跨组织流程模型演化方法流程图;
43.图2为本发明的方法主体框架图;
44.图3为本发明的流程模型演化示意图;
45.图4为本发明的流程实例合规性检查示意图。
具体实施方式
46.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明进行进一步详细说明。
47.相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。
48.为了便于理解,在叙述本发明的具体实现之前,先对本发明中的部分定义进行阐述。
49.定义1、编排图:tm={e,m,d,t}表示编排图,其中e,m,d,t分别表示该编排图的元素(包括事件、网关和编排活动)、消息、决策条件,时间约束条件。其中元素e=e
startevent
,e
endevent
,g
parallel
,g
exclusive
,tot},e
startevent
是开始事件,e
endevent
是结束事件,g
parallel
是并行网关,g
exclusive
是互斥网关,tot是时间约束的编排活动。因此,此定义中的编排图是考虑了编排活动之间时间约束的编赋时排图,但本发明也适用于不考虑编排活动之间时间约束的普通编排图。
50.定义2、访问控制组织:co={u,r,ur}是包含所有业务流程参与者的组织结构。其中u表示访问控制组织的参与者,r表示访问控制组织的角,ur表示访问控制组织的参与者与角的映射关系。
51.定义3、流程模型:ml={tm,co}是实例进行创建和执行的参考模型。其中tm表示编排图,co表示访问控制组织。
52.定义4、轨迹:σ=<e1,e2,...,e
|σ|
>是一个非空有限活动序列,表示某流程实例中发生的所有编排活动顺序组成的序列,其中e
|t|
(t∈[1,|σ|])表示轨迹σ中第t个编排活动(或开始事件或结束事件或网关)。
[0053]
定义5、流程实例:i=(vid,d,list
part
,st,σ)表示在区块链业务流程引擎上基于版本号为vid的流程模型创建或执行的用户流程。其中vid表示实例所属的模型版本号;d={ie,im,ig}表示实例的结构信息,其中ie,im,ig分别表示实例元素、实例消息内容、实例全局数据;list
part
表示实例的参与者列表;st表示实例的状态集合;σ表示流程实例的执行轨迹。
[0054]
定义6、状态:st={st
inst
,st
eles
,st
mess
}表示流程实例的状态集合。其中st
inst
={running,finish}表示流程实例的两种状态即运行、结束状态;st
eles
={waiting,enabled,completed}表示流程实例中元素的状态,waiting、enabled、completed分别表示等待、激活、完成状态,对应于二进制值00、01、10;st
mess
=wait,send,receive,reject表示流程实例中消息的状态,其中wait、send、receive、reject分别表示消息的等待、发送、接收、拒绝状态,对应二进制值00、01、10、11;采用二进制存储和获取元素状态(或消息)可减少实例活动执行时间。
[0055]
定义7、模型版本:v=(vid,status,ml)表示参考模型的版本信息,是基于版本控
制的一个通用元素部件。其中vid表示该版本部件中的版本号,status表示版本的状态(init表示提出,pass表示通过)
[0056]
定义8、工具库合约:cc={evar,efun}是一个封装了以上智能合约可调用的公共枚举变量和计算函数的智能合约。其中evar表示公共枚举变量、efun表示公共计算函数。
[0057]
定义9、访问控制合约:acc={co
addressmap
,rlist,ulist,acc
link
}是一个用于对智能合约操作者进行访问授权的智能合约。其中co
addressmap
存储了访问控制组织co的链接地址,rlist={role1,...,rolem}存储元模型ml到合约翻译的过程中的所有的角,ulist={user1,...,userm}是所有执行实例的区块链用户账号集合。访问控制组织co={u,r,ur}是包含所有业务流程参与者的组织结构,u表示参与者,r表示访问控制组织的角,ur表示访问控制组织的参与者与角的映射关系。acc
link
表示访问控制合约部署后的合约引用。
[0058]
定义10、投票合约:vc={vp,acc
link
,vc
link
}是一个用于发布提案并且由参与者进行投票的智能合约,其通过acc
link
链接了第三章所述的访问控制合约acc。其中提案vp={id,sc
address
,v
id
,vote
require
,vote
now
,state},包括提案id,脚手架地址,当前版本号,提案通过需要的人数,提案当前已经通过的人数,提案状态(包括发起状态init和通过状态pass)。vc
link
表示投票合约部署后的合约引用。
[0059]
定义11、脚手架合约:sc={tm,acc
link
,vc
link
,sc
link
,name}是一个存储编排图g结构的智能合约,其通过acc
link
、vc
link
分别链接了访问控制合约acc和投票合约vc。sc
link
表示脚手架合约部署后的合约引用,name是脚手架合约部署后的名称。
[0060]
定义12、版本控制合约:vcc={v
group
,sc
link
,vc
link
,vcc
link
}是一个用于管理模型版本的智能合约,其通过sc
link
和vc
link
分别链接了脚手架合约sc和投票合约vc。其中,v
group
={(《e1,v1》,《m1,v1》,《d1,v1》,《t1,v1》),...,(《en,vn》,《mn,vn》,《dn,vn》,《tn,vn》)}是用于管理元素e、消息m、决策d的模型版本集合。vcc
link
表示版本控制合约部署后的合约引用。
[0061]
定义13、实例控制合约:icc={is,acc
link
,sc
link
,vcc
link
,icc
link
}是一个用于管理流程实例的智能合约,其通过acc
link
、sc
link
、vcc
link
分别链接了访问控制合约acc、脚手架合约sc、版本控制合约vcc。其中,is表示存储所有流程实例i的集合。icc
link
表示实例控制合约部署后的合约引用。
[0062]
基于上述定义,下面具体叙述本发明的具体实现过程。
[0063]
如图1所示,本发明的区块链上跨组织流程模型演化方法,该方法的框架如图2所示,具体实现可包括以下步骤:
[0064]
s1、跨组织流程建模:基于企业的业务流程信息,从链下跨组织业务流程轨迹数据中提取初始选定的业务流程模型,并使用编排图工具进行流程建模形成bpmn文件格式的业务流程赋时编排图。
[0065]
在该步骤中,初始选定的业务流程模型,一般需要流程管理者从跨组织企业的日志文件中梳理跨组织业务流程,为流程建模提供参考。流程管理者根据分析结果确定相应需要上链的业务流程模型后,可在chor-js建模器中编排业务流程编排图tm。chor-js建模器支持bpmn2.0规范的编排图,能够涵盖并支持上文编排图的所有常用元素,最后导出bpmn格式表示的编排图tm。但是由于业务流程会随着时间推进出现变化,因此初始选定的业务流程模型后续可能会不符合相应的实际业务需要,需要进行本发明的跨组织流程模型演化方法对链上的业务流程模型进行不断演化,实现链上模型的动态更新。
[0066]
s2、参考模型部署:将初始的业务流程赋时编排图通过truffle环境进行智能合约的编译和部署,并将该业务流程模型作为原始的参考模型;所述智能合约包括工具库合约、访问控制合约、投票合约、脚手架合约、版本控制合约和实例控制合约。
[0067]
在本发明的实施例中,流程管理者将bpmn格式表示的编排图tm,通过翻译器解析出json格式表示的模型组件,用于下一步的模型部署。而在模型部署时,流程管理者可truffle环境来进行部署。因此,上述智能合约的编译和部署过程具体包括以下步骤:
[0068]
s21、部署工具库合约cc;
[0069]
s22、通过truffle环境链接工具库合约cc,之后部署访问控制合约acc,得到访问控制合约部署后的合约引用acc
link

[0070]
s23、通过truffle环境链接工具库合约cc,之后通过传入acc
link
来部署投票合约vc,得到投票合约部署后的合约引用vc
link

[0071]
s24、通过truffle环境链接工具库合约cc,之后通过传入acc
link
、vc
link
和脚手架名称name来部署脚手架合约sc,得到脚手架合约部署后的合约引用sc
link

[0072]
s25、通过truffle环境链接工具库合约cc,之后通过传入vc
link
、sc
link
来部署版本控制合约vcc,得到版本控制合约部署后的合约引用vcc
link

[0073]
s26、通过truffle环境链接工具库合约cc,之后通过传入acc
link
、sc
link
、vcc
link
来部署实例控制合约icc,得到实例控制合约部署后的合约引用icc
link

[0074]
当完成上述原始的参考模型部署后,业务流程模型上链运行,开始根据用户指令来创建相应的流程实例i。但在复杂的跨组织业务流程中,预先定义的业务流程模型往往会随着时间推移及多方业务需求的改变发生变化,或者预先定义的业务流程模型可能并不完善,因此在业务流程管理过程中需不断修改业务流程模型并支持适当的业务流程演化方法以优化流程。但此时原有的模型上运行有大量依然在执行的流程实例,对于这些正在执行的用户流程实例,若能采用适当的实例迁移策略,可减少流程回滚操作并降低流程演化带来的时间成本和人力成本。下面介绍本发明如何进行业务流程模型版本更新以及用户流程实例迁移。
[0075]
s3、当需要更新业务流程模型时,版本发起人将bpmn格式的新业务流程模型对应的编排图数据导入到以太坊中,并进行模型版本的投票过程,若投票通过则将参考模型更新为新业务流程模型,若投票不通过则将新业务流程模型进行弃用。
[0076]
在本发明的实施例中,上述更新业务流程模型的具体实现步骤如s31~s36:
[0077]
s31、通过翻译器解析新导入的编排图的bpmn数据文件,得到包含模型元素、序列流、消息、决策、时间约束信息在内的json文件。
[0078]
需要注意的是,新业务流程模型对应的bpmn格式编排图,也可以与原始参考模型的编排图一样,通过chor-js建模器进行编排创建,对此不再展开描述。
[0079]
s32、通过web3调用以太坊上的访问控制合约和脚手架合约接口,将json中的数据导入到以太坊区块链上。
[0080]
在本发明的实施例中,调用的智能合约接口具体包括以下步骤:
[0081]
s321、遍历可投票的参与者账户,调用访问控制合约的账户添加方法进行导入;
[0082]
s322、遍历json文件中的角列表,调用访问控制合约的角添加方法进行导入;
[0083]
s323、遍历json文件中的模型元素,通过脚手架合约的模型导入方法进行导入,其
中模型元素包括事件、网关和编排活动;
[0084]
s324、遍历json文件中的消息、决策规则、时间约束列表,通过脚手架合约的数据导入方法进行导入。
[0085]
s33、通过调用访问控制合约对版本发起人进行权限验证,若权限验证不通过则终止后续版本投票流程,权限验证通过则继续进入后续版本投票阶段。
[0086]
在本发明的实施例中,权限验证之前需调用访问控制合约可对版本发起人进行角权限控制授权。
[0087]
s34、版本发起人通过权限验证后通过调用访问控制合约提交新版本后,由版本参与者调用投票合约接口进行投票决策,该新版本默认需所有版本参与者同意方可发布,若新版本投票通过人数不足,新版本状态将变成弃用状态refuse并向版本发起人返回投票不通过的结果;若新版本投票人数满足需要的人数,新版本状态将变成可用状态pass并向版本发起人返回投票通过的结果。
[0088]
需注意的屙屎,弃用状态下的版本只能被重新提案或直接弃用,若重新提案则需要重新进行s34的投票决策。
[0089]
s35、版本发起人提交的新版本投票通过后,调用脚手架合约和版本控制合约接口,以s32中新导入以太坊区块链的业务流程模型更新参考模型,并将新版本绑定到参考模型中的元素、消息、决策以及时间约束中。
[0090]
如图3所示,为本发明的流程模型演化示意图。本发明可通过部署新流程模型和调用合约接口的方式链接新旧流程模型,从而以新旧模型共存的方式来达到流程模型演化的目的,其中模型版本和流程模型将一一对应,后续的流程实例和模型版本多对一,可达到实例版本控制的效果。
[0091]
s4、实例执行合规性检查:在新版本上线后,对于新流程实例直接基于新版本的参考模型创建实例并进行实例的执行,通过调用实例控制合约和版本控制合约启动业务流程,后续通过消息的发送和确认来推动编排活动的执行,而对于按照旧版本业务流程模型正在执行但尚未结束的旧流程实例,在继续执行前需进行状态合规性的检查,符合状态合规性的旧流程实例再进行迁移合规性检查,若旧版本业务流程模型同时符合状态合规性和迁移合规性检查,则继续迁移到新版本的参考模型上执行,若旧版本业务流程模型不符合状态合规性或不符合迁移合规性检查,则需继续基于原参考模型执行,或直接终止旧版本业务流程模型并重新在新版本的参考模型上创建新业务流程实例。
[0092]
在本发明的实施例中,执行状态合规性检查分为两部分检查内容,第一部分检查内容为状态合规性检查,其包含元素状态检查和消息状态检查,主要用于确定旧流程实例的历史执行情况是否满足能够继续执行的前提,第二部分检查内容为迁移合规性检查,主要用于检查旧流程实例是否能够迁移到新版本的参考模型上继续执行。具体的合规性检查步骤如s41~s43:
[0093]
s41、针对每一个正在执行但尚未结束的旧流程实例,基于旧流程实例id并通过调用实例控制合约接口,得到区块链上存储的对应旧流程实例i,针对旧流程实例i下一个需执行的编排活动元素进行元素状态检查,当该元素处于激活状态enabled时则继续执行s42的消息状态检查流程,否则视为该元素的不满足可执行状态,需继续基于原参考模型执行,或直接终止旧版本业务流程模型并重新在新版本的参考模型上创建新业务流程实例;
[0094]
s42、当s41中判断当前元素处于激活状态继续执行流程后,通过调用脚手架合约接口来获取旧流程实例i中当前元素的所有前序元素的消息,然后通过遍历来判断各消息的状态,若所有前序元素的消息均满足接收状态,则继续进行s43的迁移合规性检查,否则需继续基于原参考模型执行,或直接终止旧版本业务流程模型并重新在新版本的参考模型上创建新业务流程实例;
[0095]
s43、将旧流程实例i中已执行完毕的前序轨迹与新版本参考模型中的所有轨迹进行匹配,若旧流程实例i中已执行完毕的前序轨迹是所有链下轨迹中任意一条轨迹的子集,则该将旧流程实例i迁移到新版本的参考模型中继续执行,否则需继续基于原参考模型执行,或直接终止旧版本业务流程模型并重新在新版本的参考模型上创建新业务流程实例。
[0096]
如图4所示,为本发明流程实例状态合规性检查和迁移合规性检查的示意图。用户流程实例在执行编排活动(或事件或网关或消息)过程中,往往需要符合相应的条件,方可继续执行流程。因此新版本的参考模型上链后,处于激活状态的编排元素(包括编排活动、事件、网关)需要检查执行合规性的检查,图4显示了实例i1的元素c、i2的元素f正在进行执行状态合规性run-rule的检查。流程实例的状态合规性run-rule意味着后续流程实例迁移不会导致流程运行时错误、流程异常终止等非确定性行为。状态合规性run-rule包含元素可执行状态判断和消息可执行状态判断两种,其中元素可执行状态判断是用于判断当前元素的激活情况和其前序元素的所有激活情况是否符合状态合规性run-rule,消息可执行状态判断是用于判断当前编排活动中消息的激活情况和其前序所有编排活动中消息的激活情况是否符合状态合规性run-rule。
[0097]
另外,用户流程往往是动态变更的,这些变更常常是由于bpms的内部环境因素如实际流程变更引、流程异常等引起的,也有可能是一些bpms的外部环素如社会法律条规的变更、bpm人员的变更等引起的。在用户实例在执行编排元素过程中,除了需要符合状态合规性run-rule以外,还需满足迁移合规性方可安全进行动态迁移。因此本发明中的迁移合规性migrate-rule用于检查正在运行的用户流程实例迁移到新版本参考模型时是否可以继续执行,新版本参考模型中需要存在前缀轨迹与旧流程实例的前缀轨迹相匹配的轨迹时,旧流程实例才能够在新版本参考模型中继续运行,后续流程实例迁移就不会导致流程执行出现错误。其中,该合规性的触发对象是受模型演化影响的所有用户流程实例。迁移合规性migrate-rule触发的迁移类别可分为迁移和不迁移两种。图4中显示了由于流程模型s的演化,得到了演化后的流程模型s

,影响了基于其创建并执行的流程实例i1、i2。具体而言,图4中对于正在运行中的流程实例i1,该流程模型演化并没有影响到i1,其中流程实例i1已执行编排元素a、or
g1
、b且已激活下一个将要被执行的是编排元素c,这与流程模型s

中的编排元素顺序一致,因此i1可直接基于流程模型s

来执行,即该模型演化对于i1的影响是完全迁移。此外,对于正在运行中的流程实例i2,其下一个激活的且即将执行的编排元素是f,但f的前序编排元素e和or
g2
中间插入了新编排元素x,由于流程实例i2的编排元素e已经被执行,迁移合规性migrate-rule规则将其视为不触发迁移,即该模型演化对于i2的影响是不迁移,i2需要在新模型上重新创建新实例流程才可以继续进行。
[0098]
此外,上述步骤流程可以以存储器中的逻辑指令形式来以软件功能单元的形式实现。这些软件作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方
案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
[0099]
同样的,基于同一发明构思,本发明的另一较佳实施例中还提供了与上述实施例提供的区块链上跨组织流程模型演化方法对应的一种计算机可读存储介质,该存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如前述方案所述的区块链上跨组织流程模型演化方法。
[0100]
同样的,基于同一发明构思,本发明的另一较佳实施例中还提供了与上述实施例提供的区块链上跨组织流程模型演化方法对应的一种计算机电子设备,其包括存储器和处理器;
[0101]
所述存储器,用于存储计算机程序;
[0102]
所述处理器,用于当执行所述计算机程序时,实现如前述方案所述的区块链上跨组织流程模型演化方法。
[0103]
可以理解的是,上述存储介质、存储器可以采用随机存取存储器(random access memory,ram),也可以采用非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。同时存储介质还可以是u盘、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0104]
可以理解的是,上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signalprocessing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0105]
另外需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本技术所提供的各实施例中,所述的装置和方法中对于步骤或者模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或步骤可以结合或者可以集成到一起,一个模块或者步骤亦可进行拆分。
[0106]
以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

技术特征:


1.一种区块链上跨组织流程模型演化方法,其特征在于,包括以下步骤:s1、从链下跨组织业务流程轨迹数据中提取初始选定的业务流程模型,并使用编排图工具进行流程建模形成bpmn文件格式的业务流程赋时编排图;s2、将初始的业务流程赋时编排图进行智能合约的编译和部署,并将该业务流程模型作为原始的参考模型;所述智能合约包括工具库合约、访问控制合约、投票合约、脚手架合约、版本控制合约和实例控制合约;s3、当需要更新业务流程模型时,版本发起人将bpmn格式的新业务流程模型对应的编排图数据导入到以太坊中,并进行模型版本的投票过程,若投票通过则将参考模型更新为新业务流程模型,若投票不通过则将新业务流程模型进行弃用;s4、在新版本上线后,对于新流程实例直接基于新版本的参考模型创建实例并进行实例的执行,通过调用实例控制合约和版本控制合约启动业务流程,后续通过消息的发送和确认来推动编排活动的执行,而对于按照旧版本业务流程模型正在执行但尚未结束的旧流程实例,在继续执行前需进行状态合规性的检查,符合状态合规性的旧流程实例再进行迁移合规性检查,若旧版本业务流程模型同时符合状态合规性和迁移合规性检查,则继续迁移到新版本的参考模型上执行,若旧版本业务流程模型不符合状态合规性或不符合迁移合规性检查,则需继续基于原参考模型执行,或直接终止旧版本业务流程模型并重新在新版本的参考模型上创建新业务流程实例。2.根据权利要求1所述的区块链上跨组织流程模型演化方法,其特征在于,所述智能合约的编译和部署过程具体包括以下步骤:s21、部署工具库合约cc;s22、通过truffle环境链接工具库合约cc,之后部署访问控制合约acc,得到访问控制合约部署后的合约引用acc
link
;s23、通过truffle环境链接工具库合约cc,之后通过传入acc
link
来部署投票合约vc,得到投票合约部署后的合约引用vc
link
;s24、通过truffle环境链接工具库合约cc,之后通过传入acc
link
、vc
link
和脚手架名称name来部署脚手架合约sc,得到脚手架合约部署后的合约引用sc
link
;s25、通过truffle环境链接工具库合约cc,之后通过传入vc
link
、sc
link
来部署版本控制合约vcc,得到版本控制合约部署后的合约引用vcc
link
;s26、通过truffle环境链接工具库合约cc,之后通过传入acc
link
、sc
link
、vcc
link
来部署实例控制合约icc,得到实例控制合约部署后的合约引用icc
link
。3.根据权利要求1所述的区块链上跨组织流程模型演化方法,其特征在于,所述s3中更新业务流程模型的具体实现步骤如s31~s36:s31、通过翻译器解析新导入的编排图的bpmn数据文件,得到包含模型元素、序列流、消息、决策、时间约束信息在内的json文件;s32、通过web3调用以太坊上的访问控制合约和脚手架合约接口,将json中的数据导入到以太坊区块链上;s33、通过调用访问控制合约对版本发起人进行权限验证,若权限验证不通过则终止后续版本投票流程,权限验证通过则继续进入后续版本投票阶段;s34、版本发起人通过权限验证后通过调用访问控制合约提交新版本后,由版本参与者
调用投票合约接口进行投票决策,该新版本默认需所有版本参与者同意方可发布,若新版本投票通过人数不足,新版本状态将变成弃用状态refuse并向版本发起人返回投票不通过的结果;若新版本投票人数满足需要的人数,新版本状态将变成可用状态pass并向版本发起人返回投票通过的结果;s35、版本发起人提交的新版本投票通过后,调用脚手架合约和版本控制合约接口,以s32中新导入以太坊区块链的业务流程模型更新参考模型,并将新版本绑定到参考模型中的元素、消息、决策以及时间约束中。4.根据权利要求3所述的区块链上跨组织流程模型演化方法,其特征在于,所述s32中调用的智能合约接口具体包括以下步骤:s321、遍历可投票的参与者账户,调用访问控制合约的账户添加方法进行导入;s322、遍历json文件中的角列表,调用访问控制合约的角添加方法进行导入;s323、遍历json文件中的模型元素,通过脚手架合约的模型导入方法进行导入,其中模型元素包括事件、网关和编排活动;s324、遍历json文件中的消息、决策规则、时间约束列表,通过脚手架合约的数据导入方法进行导入。5.根据权利要求3所述的区块链上跨组织流程模型演化方法,其特征在于,步骤s33中,权限验证之前需调用访问控制合约对版本发起人进行角权限控制授权。6.根据权利要求1所述的区块链上跨组织流程模型演化方法,其特征在于,步骤s34中,弃用状态下的版本只能被重新提案或直接弃用。7.根据权利要求1所述的区块链上跨组织流程模型演化方法,其特征在于,步骤s4中,执行状态合规性检查步骤如s41~s43:s41、针对每一个正在执行但尚未结束的旧流程实例,基于旧流程实例id并通过调用实例控制合约接口,得到区块链上存储的对应旧流程实例i,针对旧流程实例i下一个需执行的编排活动元素进行元素状态检查,当该元素处于激活状态enabled时则继续执行s42的消息状态检查流程,否则视为该元素的不满足可执行状态,需继续基于原参考模型执行,或直接终止旧版本业务流程模型并重新在新版本的参考模型上创建新业务流程实例;s42、当s41中判断当前元素处于激活状态继续执行流程后,通过调用脚手架合约接口来获取旧流程实例i中当前元素的所有前序元素的消息,然后通过遍历来判断各消息的状态,若所有前序元素的消息均满足接收状态,则继续进行s43的迁移合规性检查,否则需继续基于原参考模型执行,或直接终止旧版本业务流程模型并重新在新版本的参考模型上创建新业务流程实例;s43、将旧流程实例i中已执行完毕的前序轨迹与新版本参考模型中的所有轨迹进行匹配,若旧流程实例i中已执行完毕的前序轨迹是所有链下轨迹中任意一条轨迹的子集,则该将旧流程实例i迁移到新版本的参考模型中继续执行,否则需继续基于原参考模型执行,或直接终止旧版本业务流程模型并重新在新版本的参考模型上创建新业务流程实例。8.根据权利要求1所述的区块链上跨组织流程模型演化方法,其特征在于,所述编排图为赋时编排图,其对编排图的编排元素增加了时间约束限制,时间约束限制包括编排活动的单次持续时间约束、编排活动的最大持续时间约束和编排活动之间的间隔时间约束。9.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述
计算机程序被处理器执行时,实现如权利要求1~8任一所述的区块链上跨组织流程模型演化方法。10.一种计算机电子设备,其特征在于,包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现如权利要求1~8任一所述的区块链上跨组织流程模型演化方法。

技术总结


本发明公开了一种区块链上跨组织流程模型演化方法、介质及电子设备。该方法基于赋时编排图来对频繁的流程动态变更进行建模,并采用基于投票机制的模型版本控制策略以实现流程模型演化。该方法引入了实例的执行合规性和迁移合规性,实现了演化过程中实例的状态合规性检查。通过本发明提出的方法,可有效应对实际跨组织业务流程模型演化困难、实例迁移低效的问题。的问题。的问题。


技术研发人员:

何宏 孙笑笑 沈沪军 俞东进

受保护的技术使用者:

杭州电子科技大学

技术研发日:

2022.11.28

技术公布日:

2023/2/23

本文发布于:2024-09-21 22:43:18,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/57414.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:合约   模型   流程   实例
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议