关键词:区块链;元流程;跨域流程协作;链下链上协同
0 引言
工作流技术是复杂业务过程的计算机技术实现,有效地提高了业务过程的智能化和规范性。随着经济全球化以及业务过程管理等技术发展,越来越多的业务过程跨越了组织边界。跨组织业务流程需要多方协作,不同利益方的参与使得业务流程运行的可信性面临挑战。
基于区块链实现可信业务流程管理的一种典型设计方案如下,将一个业务流程模型通过技术方法转换为智能合约,然后完全在区块链平台上执行[1]。这种方案虽然安全性高,但实现代价大,成熟度低,且区块链技术本身仍存在诸多性能问题。
针对上述问题,有一种基于事件驱动的完全分散式的业务流程协作方法,组织内部业务活动可使用传统业务流程引擎,如jBPM、Flowable等,在组织内部自治执行,组织间通过事件驱动机制实现业务协作,组织间的协作数据持久化到区块链中,以备审计使用。作为一种轻量级的区块链实现业务流程协作的方案,只将协作业务数据保存到区块链上,使得区块链能够扬长避短,并且充分利用已有业务流程引擎的工作,重构代价小。但这种方法在具体实施时仍然存在业务流程缺乏合规性验证、未考虑工作流实例数据的可扩展性存储以及溯源、审计时的查询性能问题。
借鉴上述轻量级区块链架构的思路,设计了基于区块链的工作流实例数据管理方案,综合使用了加密、数字摘要等安全技术及数据链下链上协同存储等优化技术,保证了数据安全可信,克服了区块链存储扩展能力不足的问题。
1 相关工作
区块链具有去中心化、去中介化、信息透明、无法篡改和安全等特点。区块链系统可分为公有链、私有链和联盟链。联盟链系统,如Hyperledger fabric[2],在数据管理上常采用基于通道方式的数据隔离机制对数据进行保护。
在区块链技术与BPM集成方面,一种典型架构为,将整个业务流程逻辑封装到智能合约中,使得业务流程执行与区块链紧密集成。为了降低实现难度,方法实现了转换器组件,为每个流程实例生成一组相应的智能合约。Sturm[3]通过拥有一个处理选择和并行结构的契约,开发了一种区块链内控制流管理的通用方法。区块链的其他性能优化工作还有可用性[4]等。
业务流程合规性检验分为基于模型的静态验证和运行时动态检验两种方法。基于事件的合规性验证方面,张[5]遵循EPC规范构建业务流程模型,基于模型即可进行合规性验证,但验证规则集无法覆盖所有的业务流程合规要求,且对有效性验证不足。龚[6]则探讨了运行时的合规性验证机制,将合规性规则转化为监控模型,实现对业务过程执行合规性状态的实时监控。
在区块链性能优化方面,Xu[7]着眼于区块链质量和性能属性,分类阐述了基于区块链的系统的架构设计模式。也有一些研究数据存储于链上的扩展性,如基于分片的分布式存储方案。区块链数据查询优化方面,索引和物化视图[8]是提升区块链查询性能的两种常用方法。
2 整体方案
与事件驱动的工作流协作执行方法相比,通过符合BPMN建模规范的建模元素实现规范化的业务流程建模及流程实例运行,可解决流程规范化问题,同时流程执行过程应该是分布式的,即实现工作流在自治域内自主执行,在自治域间协作运行。
规模较大的数据可采用链下存储机制。链下存储是一种将区块体中数据内容从原区块体转移到链下存储系统,如具有扩展能力的云储存基础设施,区块体中仅存储指向这些数据的“指针”和其他非数据信息,以解决区块链存储可扩展性问题的方法。
基于上述思路,结合相关工作的分析,采用了基于联盟链的轻量级业务流程协作架构,设计了基于元流程与区块链的跨域工作流分布式执行方法。
2.1 元流程驱动的跨域业务流程分布式执行
元流程驱动的跨域业务流程分布式执行的主要过程,包括基于主流程的元流程构造、基于元流程的流程片段调度与部署以及流程片段的分布式协调执行等。
为了实现上述过程,设计并实现了如图1所示的流程分布式执行模块,由两个核心部分组成:解析构造模块和流程服务。前者直接交互于符合BPMN标准的业务流程模型,用于实现流程的解析,分割和组合,最终构造出元流程及相应的调度信息。解析构造模块包括流程解析器、流程片段构造器、流程调度器三个部分。基于元流程实现工作流分布式调度的详细过程可参考文献[9]。
2.2 链下链上协同的工作流实例数据存储
已有研究表明,链下链上协同存储可以一定程度上解决区块链存储的扩展性问题,但链下数据一般存储在非可信的平台,需要相应的安全机制来保障链下数据的安全性。
图2是工作流实例数据链下链上协同进行工作流实例数据管理的总体架构。
1)区块链网络由CA 证书中心、Endorser 背书节点、Leader记账节点、Committer提交节点和Order排序节点等分布式节点构成,网络上部署有工作流实例数据存取链码。
2)联盟盟主的流程服务包括元流程的执行引擎以及流程监控与审计模块,实现流程调度和审计。提供了监控数据中心承载链下工作流实例数据的持久化存储。
3)联盟成员的流程服务负责执行本组织内部业务流程,并将流程实例数据共享或保存到区块链与监控数据中心中。
3 案例验证和分析
基于规范的流程建模可以解决事件驱动的跨域协作的规范性问题,元流程实现协作的方法正是基于此设计的,但元流程驱动的业务流程分布式执行结果是否正确是该方法得以实际应用的前提条件,为此设计了仿真实验,以验证其正确性。在区块链数据管理方面,使用了实际应用中的业务流程协作案例,验证了链下链上存储方案在流程审计中的有效性。
3.1 元流程驱动方法的正确性验证
实验首先仿真了一些分属于不同自治域的基础任务单元,并进行适当组合,再依据自治域边界进行流程分割,得到1000个工作流模型作为样例集。将这些模型应用元流程执行引擎进行控制执行,并验证其正确性。其中某实例如图3所示,该实例包括23个基础任务单元。
为验证元流程驱动方法的正确性,本实验所有仿真实例流程都是实现一个累加器功能,实现对输入数据N 的累加,所有预设的任务单元功能都是进行N++。最终结果显示所有分布式执行的仿真实例输出的结果都与集中式执行的输出结果无异,验证了元流程驱动方法的正确性。
3.2 区块链数据管理与应用案例
以某笔记本电脑制造企业A 的生产制造流程为例。
3.2.1 案例描述
案例中,制造企业A、配件经销商、配件提供商以及物流企业形成了企业联盟,其中企业A处于主导地位,既是联盟成员,承担了主要生产制造流程,又是联盟盟主,提供元流程执行环境、监控审计等功能。
如果企业、配件代理商和配件提供商由于配件提供的型号、数量或完成时间发生了纠纷,则可借助于基于链下链上协同存储的工作流实例数据,实现工作流审计及流程溯源,明确具体责任方。假设企业A发起了如下采购请求:
假设企业A最终收到提供商B提供的芯片数量为95,芯片数量小于采购请求要求,发生业务纠纷,需要进行流程审计。笔记本电脑制造流程实例如图4所示。
1)企业A和提供商B提供其工作流实例编号,流程监控中心确认本次工作流运行实例编号;
2)通过确认的工作流实例编号,监控中心从监控数据中心查询获得本次业务流程协作的完整的工作流实例数据日志;
3)对上述敏感的协作业务数据,由相关联盟成员使用自己的私钥对业务数据进行解密;
4)对解密后的数据进行数字摘要,将摘要结果与区块链保存的相应工作流实例数据中的数字摘要进行比对。
5)将企业A、B、C解密的三份协作业务数据进行比对,以确认是哪个环节出现数据不一致,最终界定每个企业的具体责任。
3.2.2 案例分析
在上述业务流程审计案例中,链下链上协作存储方案保证了数据安全可信,同时克服了区块链存储扩展能力不足的问题。具体分析如下:
1)安全性分析
某联盟成员的工作流协作数据保存到云中心时采用非对称加密存储,其他联盟成员和联盟盟主,只有需要流程审计时,持有私钥进行解密才能得到原始数据。
2)支持可信
联盟成员在获取到协作业务数据时,可通过与区块链的摘要数据比对,确认收到的数据是真实的。
3)协作存储的可扩展性
由于采用全副本机制,大量数据会导致区块链网络带宽滥用,影响业务处理性能。本例采用的SHA-256摘要算法输出的摘要结果为定长256位,与一般业务数据相比,数据尺寸小,从而可以支持更多数据存储到区块链网络中。
4 结束语
不同利益方的参与使得跨域业务流程协作的可信性面临挑战,将区块链技术与BPM集成成为解决该问题的可能技术途径。借鉴轻量级区块链的设计思路,设计了基于元流程与区块链的跨域业务流程协作方案,克服了已有工作在合规性验证及工作流实例数据管理方面的不足。与基于事件的分散式流程协作相比,元流程通过符合BPMN规范的流程建模保障了规范性,设计了相应的功能模块实现跨域业务流程的分布式执行,流程实例数据通过区块链链上链下协同机制实现数据的安全、可信和可扩展存储。实验验证了元流程驱动流程分布式执行方法的正确性以及基于区块链溯源业务流程协作数据的有效性。