[发明专利]状态机引擎的实现方法、装置、计算机设备及存储介质有效
申请号: | 201910702763.3 | 申请日: | 2019-07-31 |
公开(公告)号: | CN110580155B | 公开(公告)日: | 2022-11-22 |
发明(设计)人: | 陈辉;陈晓松;杨超;左啸;叶春秋 | 申请(专利权)人: | 南京苏宁加电子商务有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41;G06F9/445 |
代理公司: | 北京市万慧达律师事务所 11111 | 代理人: | 张慧娟 |
地址: | 210000 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 状态机 引擎 实现 方法 装置 计算机 设备 存储 介质 | ||
本发明公开了一种状态机引擎的实现方法、装置、计算机设备及存储介质,属于状态机技术领域。方法包括:状态机引擎接收业务系统针对目标业务发送的状态机实例创建请求;状态机引擎根据状态机实例创建请求,加载目标业务对应的规则配置文件;状态机引擎将规则配置文件解析为状态迁移表,并初始化引擎上下文,将生成的状态机实例返回给业务系统;状态机引擎利用表达式引擎结合引擎上下文对状态迁移表中的条件表达式进行预编译,并缓存编译结果。本发明实施例能够实现业务流程与状态的解耦分离,能够简化实体状态迁移的复杂性,且能够兼容于已有系统框架,具备较好的通用性。
技术领域
本发明涉及状态机技术领域,尤其涉及一种状态机引擎的实现方法、装置、计算机设备及存储介质。
背景技术
有限状态机(FSM)是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在电商场景(订单、物流、支付)、社交(IM消息投递)、分布式集群管理(分布式计算平台任务编排)等场景都有大规模的使用。
有限状态机是一个特殊的有向图,包括一些状态(节点)和连接这些状态的有向弧。每个有限状态机都有一个开始状态和终止状态,以及若干中间状态,每一条弧上带有从一个状态进入下一个状态的条件。
在业务系统的生命周期之中,某些单据状态值不可避免地会发生改变,这就需要及时对代码中涉及状态的操作进行修改,简单状态的变化通常可以使用状态硬编码的方式实现;但随着业务的发展,系统中的状态越来越多且迁移规则复杂,每次状态值的变动都需要改动业务中使用到状态的相关代码,更糟糕的是这些代码可能遍布于整个系统的各个角落,不仅增加发布的风险也同时增加了测试的回归任务。基于以上一些需求,诞生了多种多样的状态机引擎:
例如:Spring State Machine,必须依赖Spring框架,最新版本依赖Spring框架5.x,而企业的项目工程中版本若为4.x,则无法及时更新至最新版本进而升级状态机,而且学习成本也较高;
又例如:Squirrel-foundation,框架约束性很强、状态机行为模式固化,状态机本身遵循了约定大于配置的原则,例如:
定义方法transitFrom[SourceStateName]To[TargetStateName]On[EventName]在实际开发中存在诸多不便和限制。
发明人在对现有技术的研究过程中发现,虽然已有开源框架状态机引擎可以有效减少开发、维护代码量,保证状态扭转的效率,但这些引擎普遍存在学习曲线陡峭、性能优化困难、难以和已有系统完美融合的弊端。
发明内容
为了解决上述背景技术中提到的至少一个问题,本发明实施例提供了一种状态机引擎的实现方法、装置、计算机设备和存储介质,实现业务流程与状态的解耦分离,能够简化实体状态迁移的复杂性,且能够兼容于已有系统框架,具备较好的通用性。
本发明实施例提供的具体技术方案如下:
第一方面,提供了一种状态机引擎的实现方法,所述方法包括:
状态机引擎接收业务系统针对目标业务发送的状态机实例创建请求;
所述状态机引擎根据所述状态机实例创建请求,加载所述目标业务对应的规则配置文件;
所述状态机引擎将所述规则配置文件解析为状态迁移表,并初始化引擎上下文,生成状态机实例返回至所述业务系统;
所述状态机引擎利用表达式引擎结合所述引擎上下文对所述状态迁移表中的条件表达式进行预编译,并缓存编译结果。
进一步地,所述状态机引擎根据所述状态机实例创建请求,加载所述目标业务对应的规则配置文件,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京苏宁加电子商务有限公司,未经南京苏宁加电子商务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910702763.3/2.html,转载请声明来源钻瓜专利网。