一种无状态化的工作流程实现方法与流程

文档序号:16529209发布日期:2019-01-05 10:36阅读:761来源:国知局
一种无状态化的工作流程实现方法与流程

本发明涉及企业信息化以及工作流程有关的系统、平台、服务,具体公开了一种无状态化的工作流程实现方法。



背景技术:

随着数字技术的进步,以及信息化行业的高速发展,在企业信息化的相关领域中,各开发商、服务商普遍基于开源的工作流程引擎或开放的技术规范进行开发、封装、扩展相关的工作流程序。由于技术规范和开源架构往往要对工作流程和工作节点预先进行对象实例化,即对流程的开始、过程和结果进行整体定义、编码和封装,属于有状态业务服务计算,导致在进行分布部署、分布执行、集群和简化流程定义等工作中,需要进行大量的重新编译工作,从而增加了程序的复杂度、编译的工作量以及部署的难度,提高了运维的成本。

另外由于工作流程的执行过程中,所有的状态均进行了实例化,当流程变化或调整时需要进行额外的状态维护,并且增加了重新实例化的开发和计算成本,同时整体系统稳定性也受到了一定影响。而现代企业的工作和业务流程的变化越来越频繁,时常调整工作流程成为了常态,不能适应这种变化将大大制约企业的发展。

无状态服务是指一个服务在其生命周期内不依赖其他服务生命周期内的数据,那么这个服务被称为无状态服务,反之称为有状态服务。无状态服务将所有的数据都放在服务外部统一存储,业务端就变成了无状态服务的计算节点,从而使服务可以进行平滑的横向扩展,而所有的外部数据统一存储,无论是缓存、数据库、对象存储都有自身的分布式横向扩展机制。



技术实现要素:

为了克服现有的工作流程对象实例化导致调整困难、成本偏高的问题,本发明提供一种无状态化的工作流程实现方法。

本发明采用的技术方案是:一种无状态化的工作流程实现方法,包含步骤如下:

a1.定义节点,工作流程的每一个流程节点定义为一个节点,每个节点有独属于该节点的节点唯一标识,节点的开始条件定义为唯一状态值,唯一状态值在节点所属的工作流程中全局唯一,将判断节点是否开始执行的唯一状态值定义为节点的开始状态,将确定节点执行之后状态的唯一状态值定义为节点的结束状态;将每一个节点的用于控制该节点是否可以执行的判断值定义为节点的启用状态,启用状态包括开启和关闭;

a2.建立业务实例,当工作流程执行新的业务流程时,建立对应的业务实例,每个业务实例有独属于该业务实例的业务唯一标识,业务实例包含信息包括:流程标识、流程实例标识、流程当前状态、当前节点标识、当前节点业务唯一标识、上一节点标识、上一节点业务唯一标识,业务实力的数据均保存在缓存或数据库中;

a3.根据调用传入的当前节点唯一标识和当前节点业务唯一标识,从缓存或数据库读取包含该节点的流程实例,流程实例当前状态与当前节点的开始状态一致则执行,反之不执行;

a4.将当前节点的运行中间、结果数据保存到缓存或数据库,所述的当前流程状态根据当前节点执行后的结束状体赋值,重复步骤a3至a4可执行工作流程所有节点。

作为优选的,所述业务实力执行的中间、结果数据的储存位置独立且分离,中间、结果数据存储在分布式横向扩展的缓存、数据库上,节点的部署方式是扩展式横向的部署方式。

优选的,所述的无状态化的工作流程实现方法的流程改变方法步骤如下:

c1.将需要取消的节点的启用状态设置为关闭;

c2.将需要新增的节点增加到对应的工作流程中,设置新增节点的启用状态为启用。

本发明的有益效果是:提供了一种无状态化的工作流程实现方法,极大的简化了工作流程系统的开发、部署、使用、运维的成本以及时间。工作流程的每一个节点的状态值全局唯一,使得工作流程的改变和调整极为方便快捷,系统针对各类工作流程的适应性强,实现逻辑简单、高效,系统的结构稳定性强。

附图说明

图1是本发明的工作流程执行逻辑示意图。

图2是本发明的工作流程架构示意图。

具体实施方式

参见图1,本发明是一种无状态化的工作流程实现方法,包含步骤如下:

a1.定义节点,工作流程的每一个流程节点定义为一个节点,每个节点有独属于该节点的节点唯一标识(节点id),节点的开始条件定义为唯一状态值,唯一状态值在节点所属的工作流程中全局唯一,将判断节点是否开始执行的唯一状态值定义为节点的开始状态,将确定节点执行之后状态的唯一状态值定义为节点的结束状态;将每一个节点的用于控制该节点是否可以执行的判断值定义为节点的启用状态,启用状态包括开启和关闭;

a2.建立业务实例,当工作流程执行新的业务流程时,建立对应的业务实例,每个业务实例有独属于该业务实例的业务唯一标识(单号),业务实例包含信息包括:流程标识、流程实例标识、流程当前状态、当前节点标识、当前节点业务唯一标识、上一节点标识、上一节点业务唯一标识,业务实力的数据均保存在缓存或数据库中;

a3.根据调用传入的当前节点唯一标识和当前节点业务唯一标识,从缓存或数据库读取包含该节点的流程实例,流程实例当前状态与当前节点的开始状态一致则执行,反之不执行;

a4.将当前节点的运行中间、结果数据保存到缓存或数据库,所述的当前流程状态根据当前节点执行后的结束状体赋值,重复步骤a3至a4可执行工作流程所有节点。

本发明的工作流程实现方法,在每次调用执行的业务逻辑不需要依赖其他节点数据、状态,从而实现了业务逻辑变成无状态的计算节点,极大的简化了工作流程系统的开发、部署、使用、运维的成本以及时间。

通过对工作节点预设状态的全局唯一性,使整个工作流程执行过程只需一个状态作为依据就可以控制流程执行路径,且同一时间点影响当前执行状态的节点或操作减少到最少,从而减少了工作流程执行的执行资源,提高了系统的稳定性。

参见图2,所述的业务实例执行的中间、结果数据存储独立分离。节点作为无状态服务节点任意横向部署扩展,数据存储使用的缓存、数据库自身的分布式横向扩展,从而达到简单平滑的分布部署、集群式执行。

当工作流程需要调整或者改变时,只需要执行如下步骤:

c1.将需要取消的节点的启用状态设置为关闭;

c2.将需要新增的节点增加到对应的工作流程中,设置新增节点的启用状态为启用。

通过对节点预设的开启/关闭标识,可以实现快速变更、调整工作流程,达到即调即生效,从而适应企业业务频繁调整的常态。



技术特征:

技术总结
本发明涉及企业信息化、互联网化与工作流程有关的系统、平台、服务,具体公开了一种无状态化的工作流程实现方法,包括定义节点,定义业务实例,节点的开始状态与结束状态对应的状态值在同一工作流程中全局唯一,业务实例执行时直接调用业务实例当前开始状态一致的节点进行执行,并将业务实例执行的中间以及结果数据保存至缓存或数据库中。本发明简化了工作流程系统的开发、部署、使用、运维的成本以及时间,工作流程的流程节点定义了触发状态和完成状态,状态值全局唯一,使得工作流程的改变和调整极为方便快捷,针对各类工作流程的适应性强,实现逻辑简单、高效,系统的结构稳定性强。

技术研发人员:李文威;袁志楠
受保护的技术使用者:佛山市众联成云科技有限公司
技术研发日:2018.09.10
技术公布日:2019.01.04
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1