本申请涉及业务管理,具体涉及一种业务流程控制的流程引擎、方法、设备及程序产品。
背景技术:
1、随着业务流程的复杂化,会有多种数据状态、处理动作等,例如订单取消业务中:订单状态处于待退款状态,需要进行订单资金原路退回、记录订单日志等动作。在相关技术中,为了提高对业务运维过程的可读性、维护性、以及扩展性,常采用模型-视图-控制器,或状态机软件系统来实现业务流程控制。
2、为了能够在应用场景下执行特定的业务动作,模型-视图-控制器架构将业务动作和流程控制进行耦合,但是,如果想要修改流程控制,则可能需要对业务动作也进行调整,以适应新的流程控制,例如,对于站在地面上跳跃的场景,业务动作为升高1米(最高为1米),若场景修改为在距离地面0.5米的斜坡上跳跃,则业务动作需要修改为升高0.5米,以适应新的流程控制,这种方式增加了系统开发和维护难度;而状态机代码模块化能力弱,导致代码复用性低,容易出现重复或者冗余逻辑。
3、因此,如何降低系统开发和维护难度,并提高业务逻辑代码的复用性是亟待解决的。
技术实现思路
1、本申请实施例提供了一种业务流程控制的流程引擎、方法、设备及程序产品,能够降低系统开发和维护难度,以及提高业务流程控制过程中,业务逻辑代码的复用性。
2、一方面,本申请实施例提供了一种业务流程控制的流程引擎,所述流程引擎包括:能力层、事件层和动作层;
3、所述能力层,用于响应目标业务的执行指令,基于所述目标业务的业务标识确定所述目标业务对应的业务信息,并将所述业务信息发送至所述事件层,所述业务信息中包括所述目标业务对应的至少一个待执行的事件;
4、所述事件层,用于接收所述能力层发送的业务信息,并基于所述业务信息中包含的事件实现针对所述目标业务的流程控制;其中,在执行每一个事件的过程中,确定满足目标动作的执行条件,则生成调用信息,发送至所述动作层,其中,所述调用信息携带所述事件的事件标识和目标动作的动作标识,所述目标动作为完成所述事件需要执行的动作;
5、所述动作层,用于接收所述事件层发送的调用信息,并执行所述调用信息中事件标识和动作标识对应的目标动作;将所述目标动作的执行结果反馈至所述事件层,以使所述事件层继续执行所述事件对应的流程。
6、一方面,本申请实施例提供了一种业务流程控制的方法,应用于流程引擎,所述流程引擎包括:能力层、事件层和动作层;所述方法包括:
7、通过所述能力层响应目标业务的执行指令,基于所述目标业务的业务标识确定所述目标业务对应的业务信息,并将所述业务信息发送至事件层,所述业务信息中包括所述目标业务对应的至少一个待执行的事件;
8、通过所述事件层接收所述能力层发送的业务信息,并基于所述业务信息中包含的事件实现针对所述目标业务的流程控制;其中,在执行每一个事件的过程中,确定满足目标动作的执行条件,则生成调用信息,发送至所述动作层,其中,所述调用信息携带所述事件的事件标识和目标动作的动作标识,所述目标动作为完成所述事件需要执行的动作;
9、通过所述动作层接收所述事件层发送的调用信息,并执行所述调用信息中事件标识和动作标识对应的目标动作;将所述目标动作的执行结果反馈至所述事件层,以使所述事件层继续执行所述事件对应的流程。
10、可选的,通过所述能力层响应目标业务的执行指令,包括:
11、响应基于显示界面触发的,针对所述目标业务的执行指令;
12、响应执行时间到达时触发的,针对所述目标业务的执行指令。
13、可选的,在通过所述事件层执行所述业务信息中包含的事件之后,还包括:
14、通过所述事件层确定所述目标业务对应的所有事件执行完成后,生成表示业务完成的目标业务状态;
15、通过所述事件层将所述目标业务状态与所述业务标识进行关联后,发送至所述能力层,以使所述能力层确定所述目标业务处于完成状态。
16、可选的,通过所述能力层基于所述目标业务的业务标识确定所述目标业务对应的业务信息之前,还包括:
17、通过所述能力层,基于所述目标业务的业务标识查询表示业务完成的目标业务状态,且确定没有查询到所述目标业务状态。
18、可选的,在通过所述能力层响应目标业务的执行指令之后,还包括:
19、若在预设时间段内响应至少一个其他执行指令,则通过所述能力层对所述目标业务对应的目标对象进行加锁处理,以串行执行所述目标对象相关的多个执行指令对应业务的业务流程;其中,所述其他指令为目标业务的其他执行指令,或与所述目标对象相关的其他业务的执行指令。
20、可选的,所述确定满足目标动作的执行条件,包括:
21、若通过所述事件层确定所述目标业务对应的目标对象处于目标状态,则确定满足所述目标动作的执行条件;或若通过所述事件层确定到达执行所述目标动作的顺序,则确定满足所述目标动作的执行条件。
22、可选的,所述执行所述业务信息中包含的事件,包括:
23、若所述业务信息中包含多个事件,则通过所述事件层,基于所述业务信息中包含的事件执行顺序,依次执行所述多个事件。
24、一方面,本申请实施例提供了一种业务流程控制的设备,所述设备包括:
25、处理器和存储器;其中,所述存储器与所述处理器连接,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,所述处理器用于执行如上述业务流程控制的方法。
26、一方面,本申请实施例提供了一种计算机程序产品,包括计算机程序,当所述计算机程序被处理器执行时实现如上述业务流程控制的方法。
27、可选的,计算机可读存储介质可以作为计算机程序产品的一种实现,即本申请实施例还提供一种计算机可读存储介质,其包括计算机程序,当所述计算机程序被处理器执行时实现如上述任意一种业务流程控制的方法。
28、本申请的有益效果如下:
29、本申请实施例提供的流程引擎包括能力层,以便于与用户进行交互,将事件层和动作层进行区分,以便于将流程控制(事件)与业务逻辑(动作)解耦,当流程控制的代码修改时,可以无需修改业务逻辑代码适应修改后的流程控制的代码,只需要从动作层调用合适的动作即可,本申请实施例降低了系统维护的难度,也提高了代码的复用性;而且,本申请实施例提供的流程引擎仅包括能力层、事件层和动作层,比工作流引擎的架构(包括流程定义器、流程执行器、业务调度器、事件监听器和数据存储器)简单,因此在实现业务流程控制时运行效率更高。
30、本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
1.一种业务流程控制的流程引擎,其特征在于,所述流程引擎包括:能力层、事件层和动作层;
2.如权利要求1所述的流程引擎,其特征在于,所述能力层具体用于:
3.如权利要求1所述的流程引擎,其特征在于,在执行所述业务信息中包含的事件之后,所述事件层还用于:
4.如权利要求1所述的流程引擎,其特征在于,在基于所述目标业务的业务标识确定所述目标业务对应的业务信息之前,所述能力层还用于:
5.如权利要求1所述的流程引擎,其特征在于,在响应目标业务的执行指令之后,所述能力层还用于:
6.如权利要求1所述的流程引擎,其特征在于,所述事件层具体用于执行如下至少一种操作:
7.如权利要求1~6任一项所述的流程引擎,其特征在于,所述事件层具体用于:
8.一种业务流程控制的方法,其特征在于,应用于流程引擎,所述流程引擎包括:能力层、事件层和动作层;所述方法包括:
9.一种业务流程控制的设备,其特征在于,所述设备包括:
10.一种计算机程序产品,包括计算机程序,其特征在于,当所述计算机程序被处理器执行时实现如权利要求8中所述的方法。