基于动态配置化的有限状态机的实现方法以及装置与流程
- 国知局
- 2024-11-21 11:36:10
本发明涉及状态机配置,尤其涉及一种基于动态配置化的有限状态机的实现方法、装置、计算机设备及存储介质。
背景技术:
1、有限状态机(finite-state machine,fsm),又称有限状态自动机(finite-stateautomaton,fsa),表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型,常用于涉及多个状态转换的业务流程控制,如典型的电商交易场景。
2、当前,状态机的实现有很多种方式,通常使用的是springstatemachine(以下简称ssm)。ssm是springframework(一个java平台的应用框架)提供的一个框架,它允许开发人员将传统的状态机概念和spring应用程序结合使用。例如,以订单状态机为例,通过ssm实现订单状态机的步骤具体包括:引入ssm的maven依赖;创建订单状态枚举和订单状态跃迁事件枚举;创建订单状态跃迁配置,配置状态机;创建订单事件监听器,监听跃迁事件,做具体业务逻辑。
3、但是,在实现上述创建订单状态跃迁配置,配置状态机时,由于状态机的配置是硬编码在代码里面的,特别是对于需要动态变更的场景下,需要修改代码重新发布上线才能生效,不够灵活,同时也增加了维护成本。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种基于动态配置化的有限状态机的实现方法、装置、计算机设备及存储介质,以解决上述现有技术中存在的至少一个问题。
2、第一方面,本申请实施例是这样实现的,提供了一种基于动态配置化的有限状态机的实现方法,包括如下步骤:
3、定义状态机执行引擎,所述状态机执行引擎中引入spring相关的maven依赖;
4、通过所述状态机执行引擎从配置中心或者本地目录加载所述状态机配置文件,并对所述状态机配置文件进行鉴权;
5、当鉴权通过,调用所述状态机执行引擎触发业务状态跃迁动作,执行业务跃迁动作所需要的业务逻辑。
6、在一实施例中,所述调用所述状态机执行引擎触发业务状态跃迁动作,以执行业务跃迁动作所需要的业务逻辑,包括:
7、初始化所述状态机执行引擎的本地数据,所述本地数据包括流程模板;
8、从上下文模型中获取业务标识以及业务状态;
9、确定所述流程模板中是否存在与业务标识匹配的目标流程模板;
10、若是,确定是否存在与所述业务状态和所述目标流程模板匹配的目标执行节点;
11、若是,从spring容器中找到所述目标执行节点对应的执行程序,以执行业务跃迁动作所需要的业务逻辑;
12、执行完成,向上层业务调用层返回执行结果。
13、在一实施例中,所述确定所述流程模板中是否存在与业务标识匹配的目标流程模板,包括:
14、构建所述业务标识与所述流程模板之间的映射关系;
15、基于所述业务标识与所述流程模板之间的映射关系,确定是否存在与所述业务标识匹配的目标流程模板。
16、在一实施例中,所述通过所述状态机执行引擎从配置中心或者本地目录加载所述状态机配置文件之前,包括:
17、获取业务类型;
18、基于所述业务类型,确定业务状态以及业务状态跃迁事件;
19、基于所述业务状态以及所述业务状态跃迁事件,生成所述状态机配置文件。
20、在一实施例中,所述对所述状态机配置文件进行鉴权,包括:
21、对所述状态机配置文件进行解析,以得到状态机流程文件,所述状态机流程文件包括多个流程节点;
22、确定所述流程节点是否符合预设鉴权条件;
23、若是,则所述状态机配置文件鉴权成功。
24、在一实施例中,所述定义状态机执行引擎,包括:
25、引入spring相关的maven依赖;
26、定义所述状态机执行引擎的数据模型,所述数据模型包括转换模型、节点模型、模板模型以及上下文模型;
27、定义所述状态机执行引擎的多个接口,并配置所述接口中目标接口的实现功能。
28、在一实施例中,所述定义所述状态机执行引擎的多个接口,并配置所述接口中目标接口的实现功能,包括:
29、创建所述状态机执行引擎的内部接口,并实现所述内部接口的功能,所述内部接口包括引擎执行接口;
30、创建所述状态机执行引擎的对外接口,供上层业务逻辑接入时实现其功能;
31、实现所述引擎执行接口的内部逻辑。
32、第二方面,提供了一种基于动态配置化的有限状态机的实现装置,包括:
33、执行引擎定义单元,用于定义状态机执行引擎,所述状态机执行引擎中引入spring相关的maven依赖;
34、鉴权单元,用于通过所述状态机执行引擎从配置中心或者本地目录加载所述状态机配置文件,并对所述状态机配置文件进行鉴权;
35、状态机执行引擎执行单元,用于当鉴权通过,调用所述状态机执行引擎触发业务状态跃迁动作,执行业务跃迁动作所需要的业务逻辑。
36、第三方面,提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现如上述所述的基于动态配置化的有限状态机的实现的步骤。
37、第四方面,提供了一种可读存储介质,所述可读存储介质存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现如上述所述的基于动态配置化的有限状态机的实现方法的步骤。
38、上述基于动态配置化的有限状态机的实现方法、装置、计算机设备及存储介质,其方法实现,包括:定义状态机执行引擎,所述状态机执行引擎中引入spring相关的maven依赖;通过所述状态机执行引擎从配置中心或者本地目录加载所述状态机配置文件,并对所述状态机配置文件进行鉴权;当鉴权通过,调用所述状态机执行引擎触发业务状态跃迁动作,执行业务跃迁动作所需要的业务逻辑。本申请实施例中,将状态机的配置抽取出来,独立放置到配置文件中,即配置与状态机执行引擎是解耦关系,可以灵活定制状态机配置,并且在进行新增、修改状态机配置时,无需修改代码,并发布上线,可以提高配置灵活性,节省维护成本,提升系统稳定性。
技术特征:1.一种基于动态配置化的有限状态机的实现方法,其特征在于,所述方法,包括:
2.如权利要求1所述的基于动态配置化的有限状态机的实现方法,其特征在于,所述调用所述状态机执行引擎触发业务状态跃迁动作,以执行业务跃迁动作所需要的业务逻辑,包括:
3.如权利要求2所述的基于动态配置化的有限状态机的实现方法,其特征在于,所述确定所述流程模板中是否存在与业务标识匹配的目标流程模板,包括:
4.如权利要求1所述的基于动态配置化的有限状态机的实现方法,其特征在于,所述通过所述状态机执行引擎从配置中心或者本地目录加载所述状态机配置文件之前,包括:
5.如权利要求1所述的基于动态配置化的有限状态机的实现方法,其特征在于,所述对所述状态机配置文件进行鉴权,包括:
6.如权利要求1所述的基于动态配置化的有限状态机的实现方法,其特征在于,所述定义状态机执行引擎,包括:
7.如权利要求6所述的基于动态配置化的有限状态机的实现方法,其特征在于,所述定义所述状态机执行引擎的多个接口,并配置所述接口中目标接口的实现功能,包括:
8.一种基于动态配置化的有限状态机的实现装置,其特征在于,所述装置,包括:
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现如权利要求1至7任意一项所述的基于动态配置化的有限状态机的实现的步骤。
10.一种可读存储介质,所述可读存储介质存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现如权利要求1至7任意一项所述的基于动态配置化的有限状态机的实现方法的步骤。
技术总结本发明公开了一种基于动态配置化的有限状态机的实现方法、装置、计算机设备及存储介质,其方法实现,包括:定义状态机执行引擎,状态机执行引擎中引入spring相关的maven依赖;通过所述状态机执行引擎从配置中心或者本地目录加载所述状态机配置文件,并进行鉴权;当鉴权通过,调用状态机执行引擎触发业务状态跃迁动作,执行业务跃迁动作所需要的业务逻辑。本申请中,通过将状态机的配置抽取出来,独立放置到配置文件中,即配置与状态机执行引擎是解耦关系,可以灵活定制状态机配置,并且在进行新增、修改状态机配置时,无需修改代码,并发布上线,可以提高配置灵活性,节省维护成本,提升系统稳定性。技术研发人员:杨金明受保护的技术使用者:上海依时派运输有限公司技术研发日:技术公布日:2024/11/18本文地址:https://www.jishuxx.com/zhuanli/20241120/331945.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。