逻辑引擎介绍
逻辑引擎是一种能够处理逻辑表达式的程序,它能够根据用户输入的表达式计算出表达式的值。在实际应用中,逻辑引擎通常被用于处理规则引擎、决策系统、业务规则配置等领域,具有广泛的应用前景。
原理与核心功能描述
基础原理
以下是JVS逻辑引擎的一般实现原理:
- 规则定义:首先,需要定义一组规则,这些规则描述了在特定条件下需要执行的操作。规则通常由条件和操作组成。条件是一个布尔表达式,用于检查输入是否满足规则。操作是一组指令,用于在规则满足时执行。
- 规则匹配:一旦规则定义好了,JVS逻辑引擎会将输入与规则进行匹配。如果输入满足规则的条件,那么该规则就会被触发。
- 规则执行:当规则被触发时,JVS逻辑引擎会执行该规则的操作。操作可以是任何有效的指令,例如输出消息、更新数据库或调用其他函数。
- 结果输出:最后,JVS逻辑引擎会输出执行结果。这可以是任何有效的输出,例如消息、日志或其他数据。
在JVS逻辑引擎中,规则是通过编程语言来定义的。以下是一个示例规则定义的代码块:
在这个示例中,定义了节点 , 和节点功能 ,为生成一个32位uid。这只是一个简单的示例,实际的规则可以更加复杂和灵活。
功能架构说明
逻辑引擎整体功能结构图如下所示:
如上图所示系统发起逻辑引擎的调用有三种方式:
1、用户从对应页面发起(相关功能提前对接逻辑引擎),然后通过业务网关触发逻辑的执行
2、对端系统通过api调用发起
3、系统支持通过定制器触发逻辑。
整体逻辑引擎核心架构分为逻辑执行器,数据处理模块以及基础管理模块三大部分:
逻辑执行模块包括:逻辑查找、图形化计息、节点处理、参数构建、路由判断、推理执行、数据引入绑定等功能
数据处理模块包括:节点设计数据加载、动态参数加载、公式数据加载、扩展节点数据加载等
基础管理模块包括:逻辑的设计数据存储管理、定时任务的管理、扩展组件的管理、执行的日志管理、执行的日志分析等功能
技术栈
JVS逻辑引擎是使用java语言,采用spring cloud 编写的一个工具,详细技术栈如下:
- 开发语言:JAVA
- 基础框架:JVS-base(spring boot)
- 前端框架:VUE
- 数据库 :MySql
业务与功能解耦
业务与功能的解耦是逻辑引擎基础的设计思想。
简单理解就是代码中各部分关联度过高的部分,将可变的业务规则与相对固定的功能分离,通过标准的调用实现。
解耦核心的是两个方面,第一个方面是将业务执行过程抽象,固定功能与可变的业务逻辑;第二个方面是设计如何触发。
举一个大家都遇见过的经典耦合场景:用户注册成功之后需要进行发送短信通知或是邮件通知,用户注册逻辑与发送短信或是邮件通知逻辑放在一块就是一种耦合现象,如果短信或是邮件功能异常,整个用户注册功能就会异常,会带来不好的用户体验,另外的缺点是维护复杂,不便于拓展。将业务逻辑与功能性逻辑进行拆分开就是属于解耦。
在解耦上,核心的表现就是如何实现关联动作事件,而且为了让逻辑引擎有更便捷、广泛的使用,是需要更多的场景来触发逻辑配置的结果的。如下图所示:
- 列表页按钮触发的设置:
- 列表页数据导入触发:
- 表单数据变动触发的设置:
API触发:
定时任务触发:
下期预告:jvs逻辑引擎的规则推理与判断(函数)
在线demo:https://frame.bctools.cn/