一种分布式程序的业务流程协作系统及方法与流程

文档序号:11707444阅读:226来源:国知局
一种分布式程序的业务流程协作系统及方法与流程

本发明涉及业务流程处理技术领域,尤其涉及一种分布式程序的业务流程协作系统及方法。



背景技术:

现有技术中,在异步执行多进程的业务处理环境中,多个不同的业务操作进程通常由于无法相互获知操作状态以及整个业务流程当前的操作进度而呈现出无状态无序的执行状态,具体在于不同操作进程之间无法完全按照既定的操作顺序接续进行操作,从而可能导致整个异步执行的业务流程的某些环节出现问题,或者直接造成业务流程执行失败,因此降低了业务流程的执行效率,提升了执行风险。



技术实现要素:

根据现有技术中存在的问题,现提供一种分布式程序的的业务流程协作系统及方法的技术方案,旨在于异步的业务操作进程中实现多个操作进程相互有序有状态执行的目的。

上述技术方案具体包括:

一种分布式程序的业务流程协作系统,其中,包括注册服务端和多个客服端,所述注册服务端分别与多个所述客服端连接;

每个所述客服端中分别包括:

连接单元,所述客服端通过所述连接单元与所述注册服务端之间建立长连接;

流程申请单元,连接所述连接单元,在需要开启新的业务流程时,所述客服端通过所述流程申请单元向所述注册服务端发送所述业务流程的开启申请,所述注册服务端在接收到所述开启申请后生成并保存一唯一对应所述业务流程的第一标记信息;

每个所述业务流程中包括至少一个所述客服端执行的流程操作,不同的所述客服端执行的所述流程操作之间具有预设的执行顺序;

所述第一标记信息中包括所述客服端执行所述业务流程的执行状态;

更改单元,连接所述连接单元,用于在所述客服端完成所述流程操作后更改所述注册服务端中保存的所述第一标记信息中的所述执行状态;

监听单元,连接所述连接单元,用于持续监听所述注册服务端中保存的所述客服端所关联的所述业务流程对应的所述第一标记信息,并在上一个所述执行顺序的所述客服端的所述执行状态被更改时开始执行所述流程操作;

终止单元,分别连接所述连接单元、所述更改单元和所述监听单元,用于在所述更改单元更改所述执行状态后,终止所述监听单元对所述第一标记信息进行持续监听的状态。

优选的,该业务流程协作系统,其中,所述连接单元包括:

加载模块,用于加载所述客服端的配置文件,并于所述配置文件中获取所述注册服务端的服务地址;

第一申请模块,连接所述加载模块,用于根据所述服务地址向所述注册服务端发送申请建立长连接的连接请求;

连接模块,用于在所述注册服务端批准所述连接请求后与所述注册服务端之间建立长连接;

接收模块,用于在与所述注册服务端之间建立长连接后获取所述注册服务端反馈的唯一对应所述客服端的客服端标识信息。

优选的,该业务流程协作系统,其中,申请开启所述业务流程的所述客服端根据所述开启申请生成一第二标记信息,所述第二标记信息与所述第一标记信息一一对应;

所述客服端之间相互连接,于所述客服端之间相互传递所述第二标记信息;

每个所述客服端中还包括:

执行单元,连接所述流程申请单元,用于执行所述业务流程中对应于所述客服端的所述流程操作;

查询单元,分别连接所述执行单元和所述更改单元,并连接所述连接单元,用于在所述执行单元的所述流程操作执行完毕时,根据所述第二标记信息查询得到所述注册服务端中对应所述业务流程的所述第一标记信息,输出相应的查询结果;

所述更改单元根据所述查询单元输出的所述查询结果,在所述执行单元的所述流程操作执行完毕时将所述第一标记信息中的所述执行状态更改为执行结束。

优选的,该业务流程协作系统,其中,所述终止单元包括:

第二申请模块,用于向所述注册服务端提出终止所述监听单元对所述第一标记信息进行持续监听的状态的终止申请;

终止模块,用于在获取所述注册服务端针对所述终止申请的反馈后终止所述监听单元对所述第一标记信息进行持续监听的状态;

删除模块,连接所述终止模块,用于在终止所述监听单元对所述第一标记信息进行持续监听的状态后,删除对所述第一标记信息进行监听的监听事件。

优选的,该业务流程协作系统,其中,还包括一监控端,连接所述注册服务端,用于监控与所述注册服务端建立长连接的所述客服端的工作状态,以及正在执行的所述业务流程的执行状态。

一种业务流程协作方法,其中,包括注册服务端和多个客服端,所述注册服务端分别与多个所述客服端连接,还包括:

步骤s1,所述客服端与所述注册服务端建立长连接;

步骤s2,在需要开启新的业务流程时,所述客服端向所述注册服务端发送所述业务流程的开启申请,所述注册服务端在接收到所述开启申请后生成并保存一唯一对应所述业务流程的第一标记信息;

每个所述业务流程中包括至少一个所述客服端执行的流程操作,不同的所述客服端执行的所述流程操作之间具有预设的执行顺序;

所述第一标记信息中包括所述客服端执行所述业务流程的执行状态;

步骤s3,在所述客服端完成所述流程操作后,所述客服端更改所述注册服务端中保存的所述第一标记信息中的所述执行状态;

所述客服端持续监听所述注册服务端中保存的所述客服端所关联的所述业务流程对应的所述第一标记信息,并在上一个所述执行顺序的所述客服端的所述执行状态被更改时开始执行所述流程操作;以及

在所述更改单元更改所述执行状态后,所述客服端终止所述监听单元对所述第一标记信息进行持续监听的状态。

优选的,该业务流程协作方法,其中,所述步骤s1具体包括:

步骤s11,所述客服端加载配置文件,并于所述配置文件中获取所述注册服务端的服务地址;

步骤s12,所述客服端根据所述服务地址向所述注册服务端发送申请建立长连接的连接请求;

步骤s13,在所述注册服务端批准所述连接请求后,所述客服端与所述注册服务端之间建立长连接;

步骤s14,在与所述注册服务端之间建立长连接后,所述客服端获取所述注册服务端反馈的唯一对应所述客服端的客服端标识信息,随后转向所述步骤s2。

优选的,该业务流程协作方法,其中,所述步骤s3具体包括:

步骤s31,所述客服端执行所述业务流程中对应的所述流程操作,并在完成所述流程操作后转向步骤s32;

步骤s32,所述客服端查询得到所述注册服务端中对应所述业务流程的所述第一标记信息,输出相应的查询结果;

步骤s33,所述客服端根据所述查询结果将所述第一标记信息中的所述执行状态更改为执行结束,随后转向所述步骤s4。

优选的,该业务流程协作方法,其中,所述客服端终止所述监听单元对所述第一标记信息进行持续监听的状态的步骤具体包括:

步骤a1,所述客服端向所述注册服务端提出终止对所述第一标记信息进行持续监听的状态的终止申请;

步骤a2,所述注册服务端在获取所述注册服务端针对所述终止申请的反馈后终止所述监听单元对所述第一标记信息进行持续监听的状态;

步骤a3,在终止所述监听单元对所述第一标记信息进行持续监听的状态后,所述客服端删除对所述第一标记信息进行监听的监听事件。

优选的,该业务流程协作方法,其中,于所述客服端和所述注册服务端之间建立长连接并执行所述流程操作的同时,设置一连接所述注册服务端的监控端,并采用所述监控端监控与所述注册服务端建立长连接的所述客服端的工作状态,以及正在执行的所述业务流程的执行状态。

上述技术方案的有益效果是:

1)提供一种业务流程协作系统,能够于异步的业务操作进程中实现多个操作进程相互之间的有序有状态执行,提升执行效率,降低执行风险;

2)提供一种业务流程协作方法,能够支持上述系统正常运行。

附图说明

图1是本发明的较佳的实施例中,一种业务流程协作系统的总体结构示意图;

图2是本发明的较佳的实施例中,于图1的基础上,连接单元的具体结构示意图;

图3是本发明的较佳的实施例中,于图1的基础上,终止单元的具体结构示意图;

图4是本发明的较佳的实施例中,一种业务流程协作方法的总体流程示意图;

图5-7是本发明的较佳的实施例中,于图4的基础上,业务流程协作方法的分步骤流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。

基于现有技术中存在的上述问题,现提供一种分布式程序的的业务流程协作系统,该系统适用于多进程执行异步的业务流程的过程中,上文中所述的“分布式程序”可以理解为一个业务流程由多个不同的程序(或者进程)异步执行。

则该系统具体如图1所示,包括:

注册服务端1和多个客服端2,注册服务端1分别与多个客服端2连接;

具体地,每个客服端1中分别包括:

连接单元11,客服端1通过连接单元11与注册服务端2之间建立长连接;

流程申请单元12,连接连接单元11,在需要开启新的业务流程时,客服端1通过流程申请单元12向注册服务端2发送业务流程的开启申请,注册服务端2在接收到开启申请后生成并保存一唯一对应业务流程的第一标记信息;

每个业务流程中包括至少一个客服端1执行的流程操作,不同的客服端1执行的流程操作之间具有预设的执行顺序;

第一标记信息中包括客服端1执行业务流程的执行状态;

更改单元13,连接连接单元11,用于在客服端1完成流程操作后更改注册服务端2中保存的第一标记信息中的执行状态;

监听单元14,连接连接单元11,用于持续监听注册服务端中保存的客服端1所关联的业务流程对应的第一标记信息,并在上一个执行顺序的客服端1的执行状态被更改时开始执行流程操作;

终止单元15,分别连接连接单元11、更改单元13和监听单元14,用于在更改单元13更改执行状态后,终止监听单元14对第一标记信息进行持续监听的状态。

具体地,本实施例中,上述每个客服端1分别用于执行异步的业务流程中的一个流程操作,换言之,每个客服端1可以为上文中所述的多个分布式程序或进程中的一个。

例如,pos机将刷卡收单请求发送至后台的交易前置系统,该交易前置系统会根据业务规则向各个客服端1检查该笔收单交易是否满足预设的交易条件,则业务流程协作系统会产生每笔收单交易所关联的第一标记信息,等各个客服端1完成交易校验后产生对应的第一标记信息的值并进行一一对应。在完成所有业务规则的校验之后,通知到上述交易前置系统中处理结果。

又例如,业务流程协作系统在调用短信服务时,在某些特殊场景下需要保证短信已经到达,以及了解短信发送到接收之间的间隔时间。上述信息可以通过循环查询短信服务商在本地搭建的短信数据库,或者接收短信服务商返回的成功收到短信的结果消息获知。业务流程协作系统在发送短信以及发送短信线程同步等待短信已接收结果后,再执行业务流程协作系统中的后续流程。

本实施例中,上述注册服务端2为使用netty(一种java开源框架)技术开发的非阻塞的tcp(transmissioncontrolprotocol,传输控制协议)服务器。

则本实施例中,在客服端1执行业务流程中的流程操作之前,客服端1首先应当与注册服务端2之间建立长连接,该长连接的建立由连接单元11实现。

本实施例中,在建立长连接之后,若客服端1想要开启一个新的业务流程,则该客服端1会通过流程申请单元12向注册服务端2递交开启申请。若客服端1只负责执行业务流程中的某个流程操作,则该客服端1只需要持续监听注册服务端2即可(在下文中会详述)。

本实施例中,注册服务端2在接收到上述客服端1递交的开启申请后,会针对该新开启的业务流程生成一个唯一的第一标记信息并保存。本发明的一个实施例中,上述第一标记信息可以为一个具有唯一标识的token(令牌)。所谓token,是一种在令牌环网中能够控制站点占有媒体的特殊帧,则上述关联于一个业务流程的token中可以包括该业务流程中各个流程操作当前的操作状态。

本实施例中,上述注册服务端2在保存第一标记信息后,客服端1会将该第一标记信息的相关信息(在下文中会详述)在不同的客服端1之间进行传递,因此多个上述业务流程相关的客服端1都能够通过其监听单元14监听到第一标记信息的状态变化。

本实施例中,上述正在执行流程操作的客服端1在该流程操作执行完毕后,会主动查询得到上述第一标记信息并进行更改,具体为更改该第一标记信息中关联于该客服端1进行的流程操作的执行状态,例如将其改成执行完毕。则上述多个监听该第一标记信息的客服端1就能够获知此时业务流程的执行进度。

本实施例中,基于上文中所述的预设的执行顺序,监听第一标记信息的客服端1在监听到上一个执行顺序对应的客服端1的执行状态发生了变化(例如执行结束),则该客服端1开启自身的流程操作,从而在异步的业务流程中实现有序有状态的业务执行过程。

本实施例中,对于已经完成流程操作的客服端1而言,其可以通过终止单元15终止其对第一标记信息进行监听的状态,从而释放相关资源。

本发明的较佳的实施例中,如图2所示,上述连接单元11包括:

加载模块111,用于加载客服端的配置文件,并于配置文件中获取注册服务端2的服务地址;

第一申请模块112,连接加载模块111,用于根据服务地址向注册服务端2发送申请建立长连接的连接请求;

连接模块113,用于在注册服务端2批准连接请求后与注册服务端2之间建立长连接;

接收模块114,用于在与注册服务端2之间建立长连接后获取注册服务端反馈的唯一对应客服端1的客服端标识信息。

具体地,本实施例中,上述客服端1与注册服务端2之间建立长连接之前,客服端1首先通过上述加载模块11加载配置文件,该配置文件中包括注册服务端2的服务地址,则上述客服端1在加载配置文件的时候获取上述服务地址。

本实施例中,上述客服端1随后根据获取的服务地址向注册服务端2发送一申请建立长连接的连接请求。注册服务端2接收到连接请求后,与客服端1之间建立长连接,随后注册服务端2会根据每个建立长连接的客服端1生成一个唯一标识该客服端1的客服端标识信息。注册服务端2向客服端1下发客服端标识信息。客服端1通过接收模块114获取该客服端标识信息并保存。

本发明的较佳的实施例中,上述申请开启业务流程的客服端1会根据开启申请生成一第二标记信息,该第二标记信息与第一标记信息一一对应;

上述多个客服端1之间相互连接,并于多个关联于已经开启的业务流程的客服端1之间相互传递第二标记信息;

则仍然如图1所示,上述每个客服端1中还包括:

执行单元16,连接流程申请单元12,用于执行业务流程中对应于客服端1的流程操作;

查询单元17,分别连接执行单元16和更改单元13,并连接上述连接单元11,用于在执行单元的流程操作执行完毕时,根据第二标记信息查询得到注册服务端2中对应业务流程的第一标记信息,输出相应的查询结果;

则上述更改单元13根据查询单元17输出的查询结果,在执行单元16的流程操作执行完毕时将第一标记信息中的执行状态更改为执行结束。

具体地,本发明的较佳的实施例中,当申请开启业务流程的客服端1向注册服务端2发送开启申请时,该客服端1同时会根据该开启申请生成一个第二标记信息,该第二标记信息与上述开启申请对应的第一标记信息一一对应。换言之,客服端1可以通过该第二标记信息查询得到注册服务端2生成的第一标记信息。

随后,该客服端1将上述第二标记信息在其他关联于上述业务流程的客服端1之间传递,即所有关联于上述业务流程(即在上述业务流程中负责某个流程操作)的客服端1均能够获得上述第二标记信息。

在某个客服端1执行完其流程操作后,该客服端1通过其获得的第二标记信息查询注册服务端2中保存的相应的第一标记信息,随后将该第一标记信息中对应该客服端1的流程操作的执行状态修改为执行完毕。

则其他监听该第一标记信息的客服端1根据上述第一标记信息的变化确定是否需要进行自身的流程操作。

本发明的较佳的实施例中,如图3所示,上述终止单元15具体包括:

第二申请模块151,用于向注册服务端2提出终止监听单元14对第一标记信息进行持续监听的状态的终止申请;

终止模块152,用于在获取注册服务端2针对终止申请的反馈后终止监听单元14对第一标记信息进行持续监听的状态;

删除模块153,连接终止模块152,用于在终止监听单元14对第一标记信息进行持续监听的状态后,删除对第一标记信息进行监听的监听事件。

具体地,本发明的较佳的实施例中,上述终止单元15通过向注册服务端2发送终止申请的方式请求终止对注册服务端2中的第一标记信息进行监听的状态,并在监听结束后删除对上述第一标记信息进行监听的相关的监听事件。

本发明的较佳的实施例中,当该业务流程中所有的客服端1均完成流程操作后,注册服务端2会删除该业务流程对应的第一标记信息。

本发明的较佳的实施例中,仍然如图1中所示,上述业务流程协作系统中还包括一监控端3,该监控端3连接注册服务端2,用于监控与注册服务端2建立长连接的客服端1的工作状态,以及正在执行的业务流程的执行状态。

具体地,本发明的较佳的实施例中,上述监控端3可以通过监控注册服务端2内生成的客服端标识信息来获取与注册服务端2建立长连接的客服端1的数量,并且可以通过查询注册服务端2内的第一标记信息来获取当前正在进行的业务流程中各流程操作的执行状态。上述信息可以显示在监控端3的显示屏上以供使用者查看。

本发明的一个较佳的实施例中,详细描述一个业务流程从启动到顺序运行的过程:

客服端1启动时,首先加载配置文件并且获取注册服务端2的服务地址。获取到服务地址后,客服端1会尝试申请并成功与注册服务端2之间建立长连接。若连接中断,则客服端1会尝试再次建立连接。建立长连接后,客服端1会获得注册服务端2反馈的唯一标注客户端1的客服端标识信息。

标注好客服端1后,客服端1会发起业务流程请求,该请求发送到注册服务端后会生成关联于该业务流程的第一标记信息(token),同时在客服端1根据发起业务流程请求的参数生成第二标记信息(token唯一标识)。这时客服端1会启动其他进程的异步代码并且在客服端1之间传递第二标记信息。

当其他进程的异步代码逻辑结束后(客服端1的流程操作执行完毕),客服端1会用第二标记信息查询注册服务端2的第一标记信息,并且改变第一标记信息中相应的执行状态的状态值,最后结束代码块。

随后该客服端1会触发状态改变事件,供回调后续业务逻辑,等后续业务逻辑完成后注销对于第一标记信息的监听事件,注册服务端2会删除被注销监听事件的第一标记信息的相关数据。

本发明的较佳的实施例中,基于上文中所述的业务流程协作系统,现提供一种分布式程序的业务流程协作方法,该方法中包括注册服务端和多个客服端,注册服务端分别与多个客服端连接,还包括如图4中所示的下述步骤:

步骤s1,客服端与注册服务端建立长连接;

步骤s2,在需要开启新的业务流程时,客服端向注册服务端发送业务流程的开启申请,注册服务端在接收到开启申请后生成并保存一唯一对应业务流程的第一标记信息;

每个业务流程中包括至少一个客服端执行的流程操作,不同的客服端执行的流程操作之间具有预设的执行顺序;

第一标记信息中包括客服端执行业务流程的执行状态;

步骤s3,在客服端完成流程操作后,客服端更改注册服务端中保存的第一标记信息中的执行状态;

客服端持续监听注册服务端中保存的客服端所关联的业务流程对应的第一标记信息,并在上一个执行顺序的客服端的执行状态被更改时开始执行流程操作;以及

在更改单元更改执行状态后,客服端终止监听单元对第一标记信息进行持续监听的状态。

本发明的较佳的实施例中,如图5中所示,上述步骤s1具体包括:

步骤s11,客服端加载配置文件,并于配置文件中获取注册服务端的服务地址;

步骤s12,客服端根据服务地址向注册服务端发送申请建立长连接的连接请求;

步骤s13,在注册服务端批准连接请求后,客服端与注册服务端之间建立长连接;

步骤s14,在与注册服务端之间建立长连接后,客服端获取注册服务端反馈的唯一对应客服端的客服端标识信息,随后转向步骤s2。

本发明的较佳的实施例中,如图6中所示,上述步骤s3具体包括:

步骤s31,客服端执行业务流程中对应的流程操作,并在完成流程操作后转向步骤s32;

步骤s32,客服端查询得到注册服务端中对应业务流程的第一标记信息,输出相应的查询结果;

步骤s33,客服端根据查询结果将第一标记信息中的执行状态更改为执行结束,随后转向步骤s4。

本发明的较佳的实施例中,上述客服端终止监听单元对第一标记信息进行持续监听的状态的步骤具体如图7中所示,包括:

步骤a1,客服端向注册服务端提出终止对第一标记信息进行持续监听的状态的终止申请;

步骤a2,注册服务端在获取注册服务端针对终止申请的反馈后终止监听单元对第一标记信息进行持续监听的状态;

步骤a3,在终止监听单元对第一标记信息进行持续监听的状态后,客服端删除对第一标记信息进行监听的监听事件。

本发明的较佳的实施例中,于客服端和注册服务端之间建立长连接并执行流程操作的同时,设置一连接注册服务端的监控端,并采用监控端监控与注册服务端建立长连接的客服端的工作状态,以及正在执行的业务流程的执行状态。

以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

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