逻辑引擎介绍
逻辑引擎是一种可能解决逻辑表达式的程序,它可能依据用户输出的表达式计算出表达式的值。在理论利用中,逻辑引擎通常被用于解决规定引擎、决策零碎、业务规定配置等畛域,具备宽泛的利用前景。
原理与外围性能形容
根底原理
以下是 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/