一种基于分布式部署的跨系统流程引擎协作系统及方法与流程

文档序号:11135002阅读:来源:国知局

技术特征:

1.一种基于分布式部署的跨系统流程引擎协作系统,其特征在于:所述协作系统中具有多个应用系统,每个应用系统中分别部署有流程引擎内核及扩展模块:在需要跨系统调用外协流程的位置部署节点扩展及流程路由模块,节点扩展及流程路由模块中配置了外协流程模板在流程注册中心模块中的注册信息,其中:

流程注册中心模块:负责管理协作系统中所有已存在流程模板的地址,供流程引擎内核及扩展模块通过流程注册查找接口进行调用,即,流程注册中心模块使得协作系统中所有的流程模板能够有序地被流程引擎内核及扩展模块以路由的形式调用;当协作系统中的服务器启动时,所有流程模板分别将各自所在服务器地址以编号的形式注册在流程注册中心模块,形成一个流程模板列表;当应用系统A中的流程引擎内核及扩展模块发起一个流程实例,并执行到节点扩展及流程路由模块的外协节点时,根据外协节点中配置的外协流程模板编号并通过流程注册查找接口调用流程注册中心模块,得到外协流程模板所在服务器地址,进而发起RESTful请求并执行跨系统调用动作,驱动应用系统B中流程引擎内核及扩展模块发起相应的外协流程实例并执行流转;外协流程实例执行完成之后,同样会根据外协流程模板所配置的应用系统A中流程模板编号通过流程注册查找接口调用流程注册中心模块,得到应用系统A中流程引擎所在服务器地址,进而发RESTful请求并执行返回动作,驱动应用系统A中流程实例继续流转;

流程引擎内核及扩展模块:负责根据外协流程的调用动作为协作系统提供流程节点的流转、待办的生成、审批意见、操作历史记录的功能;当应用系统A中的流程引擎内核及扩展模块执行流程实例到外协节点并通过流程注册中心模块调用应用系统B中的外协流程时,会将当前流程实例的处理意见及待办信息以参数的形式发送给外协流程,然后将操作记录到后台数据库中,调用动作包括启动、提交、拿回、跳转,结束;若当前调用动作为启动一个外协流程,则需要记录到数据库的内容包括:当前流程的启动动作、当前流程处理人的处理权限、外协流程实例ID、外协流程实例的全局属性、流程跟踪信息;若当前调用动作为提交、拿回、跳转,结束中的一种,则需要记录到数据库的内容包括:当前流程的提交动作、当前流程代办的已处理动作以及为外协流程中的下一步骤生成新待办动作、当前流程处理人意见以及外协流程中的下一步骤的处理人意见。应用系统B中的外协流程执行完成返回应用系统A时,会将外协流程的处理结果数据以JSON的格式发送给应用系统A中的流程引擎内核及扩展模块,以驱动原流程继续流转;

节点扩展及流程路由模块:负责为流程引擎内核及扩展模块调用流程注册中心模块;节点扩展是指扩展流程引擎的节点类型,即外协节点,外协节点中需要配置外协流程在流程注册中心模块中的注册编号及当前流程的输出参数,包括处理人、是否同步,若输出参数中的是否同步属性设置为“是”,则应用系统A中的流程引擎执行到外协节点时,会等待直到外协流程流转完成,然后继续执行后续的流程;若输出参数中的是否同步属性设置为“否”,则应用系统A中的流程引擎执行到外协节点时,提交调用动作,直接进行当前流程后续的流转;流程路由是指流程引擎的RESTful请求地址,通过在流程注册中心模块中查找外协节点中配置的外协模板编号和其所在服务器地址前缀来获得,且支持外部调用;所述RESTful请求是通过访问指定URL的形式来实现的,根据流程引擎内核及扩展模块发起的调用动作的不同,URL的组合形式分为两种,若调用动作为启动一个外协流程,则其中URL形式为:服务器地址前缀+所述的调用动作+流程模板ID,且外协流程启动后会将外协流程实例ID发送给原流程引擎;若调用动作为提交、拿回、跳转、结束一个外协流程,则URL形式为服务器地址前缀+所述的调用动作+流程模板ID+流程实例ID;当流程引擎内核及扩展模块执行流程实例到节点扩展及流程路由模块的外协节点时,会根据外协节点的配置信息获取外协流程模板的路由,进而发起RESTful请求并调用外协流程;同理,外协流程流转结束之后也通过自身的外协节点返回到原流程实例的外协节点处,驱动原流程实例继续流转。

2.根据权利要求1所述的一种基于分布式部署的跨系统流程引擎协作系统,其特征在于:所述流程注册中心模块可以基于zookeeper技术实现,协作系统中的所有流程模板将其所在服务器地址以编号的形式注册在zookeeper集群的流程注册中心,使得协作系统中所有的流程能够被外部流程引擎以路由的形式有序的调用。

3.根据权利要求1或2所述的一种基于分布式部署的跨系统流程引擎协作系统,其特征在于:所述流程注册中心模块中,流程注册方式为:第一层为根节点,然后按应用系统标识和访问地址前缀创建第二层节点,并将每一个应用系统内所有流程模板ID和编号添加在各自节点下,形成第三层节点;当某一应用系统出现故障或者断开时,位于第二层节点中相应的应用系统节点及其子节点也会消失;基于流程注册中心模块自身的特性,第二层节点中所有其他节点将能够自动发现当前节点下的流程模板列表。

4.根据权利要求1所述的一种基于分布式部署的跨系统流程引擎协作系统,其特征在于:流程引擎内核及扩展模块中的启动:根据外协流程模板编号,启动一个新的流程;提交:根据外协流程模板编号、实例ID和节点参数,驱动流程流转;拿回:根据外协流程模板编号、实例ID和节点参数,取消上一次的送审;跳转:根据外协流程模板编号、实例ID和节点参数,直接跳转至流程中的某一个节点;结束:根据外协流程模板编号、实例ID直接结束一个流程。

5.一种基于分布式部署的跨系统流程引擎协作方法,其特征在于实现步骤如下:

(1)协作系统内的服务器启动时,会将所有应用系统中的流程模板以编号的形式注册在流程注册中心模块,形成一个模板列表;注册方式为:在根节点下,按应用系统标识和访问地址前缀创建第二层节点,并将每一个应用系统内所有流程模板ID和编号添加在各自节点下。当某一应用系统出现故障或者断开时,位于第二层节点中相应的应用系统节点及其子节点也会消失;基于流程注册中心模块自身的特性,第二层节点中所有其他节点将能够自动发现当前节点下的流程模板列表;

(2)当前应用系统中流程引擎内核及扩展模块发起一个流程实例,执行到节点扩展及流程路由模块配置的外协节点时,首先需要解析调用动作,包括如下:

a)启动:根据外协流程模板编号,启动一个新的外协流程;

b)提交:根据外协流程模板编号、实例ID和节点参数,驱动流程流转;

c)拿回:根据外协流程模板编号、实例ID和节点参数,取消上一次的送审;

d)跳转:根据外协流程模板编号、实例ID和节点参数,直接跳转至流程中的某一个节点;

e)结束:根据外协流程模板编号、实例ID直接结束一个流程;

若调用动作为启动一个外协流程,则根据外协节点所配置的外协模板编号,在流程注册中心模块中检索流程模板列表,找到外协流程模板所在服务器地址前缀和外协流程模板ID,若调用动作为提交、拿回、跳转、结束中的一种,则还需要查找外协流程实例ID;

(3)根据步骤(2)中查找得到的调用动作、外协流程模板所在服务器地址前缀和流程模板ID及流程实例ID,当前应用系统的流程引擎及扩展模块发起RESTful请求来调用外协流程并驱动其流转;所述RESTful请求是通过访问指定URL的形式来实现的,若调用动作为启动一个外协流程,则其中URL形式为:服务器地址前缀+所述的调用动作+流程模板ID,且外协流程启动后会将外协流程实例ID发送给原流程引擎;若调用动作为提交、拿回、跳转、结束一个外协流程,则URL形式为服务器地址前缀+所述的调用动作+流程模板ID+流程实例ID;

(4)当前应用系统的流程引擎及扩展模块在执行调用外协流程的同时,将操作记录记录到后台数据库中,若当前调用动作为启动一个外协流程,则需要记录到数据库的内容包括:当前流程的启动动作、当前流程处理人的处理权限、外协流程实例ID、外协流程实例的全局属性、流程跟踪信息;若当前调用动作为提交、拿回、跳转,结束中的一种,则需要记录到数据库的内容包括:当前流程的提交动作、当前流程代办的已处理动作以及为外协流程中的下一步骤生成新待办动作、当前流程处理人意见以及外协流程中的下一步骤的处理人意见;

(5)当前应用系统的流程引擎及扩展模块在执行调用外协流程的时还会查询节点扩展及流程路由模块中配置的是否同步属性,若属性值为“是”,则当前应用系统的流程实例会在外协节点等待外协流程的执行,外协流程执行完成之后,同样会根据外协流程模板所配置的原应用系统中流程模板编号通过流程注册查找接口调用流程注册中心模块,得到原应用系统中流程引擎所在服务器地址,进而发RESTful请求并执行返回动作,同时会将外协流程的处理结果数据以JSON的格式发送给原应用系统,驱动原应用系统中流程实例继续流转;若属性值为“否”,则当前应用系统中的流程引擎提交完调用动作,直接进行当前流程后续的流转。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1