低代码开发重要工具:jvs-logic(逻辑引擎)基础原理与功能架构

逻辑引擎介绍

逻辑引擎是一种能够处理逻辑表达式的程序,它能够根据用户输入的表达式计算出表达式的值。在实际应用中,逻辑引擎通常被用于处理规则引擎、决策系统、业务规则配置等领域,具有广泛的应用前景。

原理与核心功能描述

基础原理

以下是JVS逻辑引擎的一般实现原理:

  1. 规则定义:首先,需要定义一组规则,这些规则描述了在特定条件下需要执行的操作。规则通常由条件和操作组成。条件是一个布尔表达式,用于检查输入是否满足规则。操作是一组指令,用于在规则满足时执行。
  2. 规则匹配:一旦规则定义好了,JVS逻辑引擎会将输入与规则进行匹配。如果输入满足规则的条件,那么该规则就会被触发。
  3. 规则执行:当规则被触发时,JVS逻辑引擎会执行该规则的操作。操作可以是任何有效的指令,例如输出消息、更新数据库或调用其他函数。
  4. 结果输出:最后,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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/15092.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

走进社区客户端测试 | 得物技术

0.引言 社区 C 端质量体系建设思考? 询问一下 ChatGPT 1、关于社区客户端 1.1 社区端上功能 得物首页 搜索、发布、关注流、推荐流、沉浸式单列流、活动 tab、其他二级频道 tab 动态详情页 图文、视频、专栏、点评 私域 个人/他人主页、通讯录好友、微博好友…

如何实现电脑通过手机上网?1分钟搞定!

案例:电脑没网时,如何通过手机上网? 【想用电脑看电影,但是附近没有Wi-Fi。朋友说可以说电脑可以通过手机上网,但我们都不知道具体如何操作,有没有小伙伴可以教教我们。】 在没有Wi-Fi或有线网络接入时&a…

服务(第十二篇)LVS-DR模式

数据包流向分析: (1)客户端发送请求到 Director Server(负载均衡器),请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP)到达内核空间。 (2)Director Server 和 Re…

无良公司把我从上家挖过来,白嫖了六个月,临近试用期结束才说不合适,催我赶紧找下家!...

职场套路多,一不小心就会掉坑,一位网友讲述了自己的遭遇: 今天被领导催促离职了,当时就是这个领导把他从别的公司挖过来。这家公司催得太急,为了投奔这里,他和上家的HR都闹翻了,上家总监挽留他&…

时隔两个多月,一起来看ChatGPT现况如何?

ChatGPT这股风吹了两个多月,时至今日,各平台上与ChatGPT相关的文章,到现在依旧拥有着不小的流量。三月中旬上线了ChatGPT-4,与我们的文心一言前后脚发布,而后阿里的“通义千问”也展现了不俗的实力,那到现在…

图形界面GUI相关概念GLX/Wayland/X11/DRM/DRI

1. GUI图形界面是什么 GUI是graphical user interface的缩写,图形用户接口,实现了基本的WIMP(windows,icons,menus,pointer)。一个GUI的基本组成:display server实现windowing syst…

03_线程间通信

面试题:两个线程打印 两个线程,一个线程打印1-52,另一个打印字母A-Z打印顺序为12A34B...5152Z,要求用线程间通信 public class Demo01 {public static void main(String[] args) {ShareData05 shareData05 new ShareData05();new…

分布式事务处理方案及分布式锁相关

​ 本文偏理论 一、事务处理 1、事务处理的四个特性ACID Atomicity 原子性: 对于数据库的修改,全部执行or全部不执行 Consistency 一致性: Isolation 隔离性 : 亦称为串行化,防止事务间操作混淆,需要串行化或者序列化请求,使…

隐私权限是什么

导读: 隐私权在现代社会对于人们而言是重要的人格权,而随着互联网技术的发展,实践中侵犯隐私权的行为很常见。那么隐私权限是什么?侵犯隐私权的行为有哪些?侵犯他人隐私权要负什么法律责任?接下来将由找法…

使用docker搭建RocketMQ(非集群搭建官方镜像)

之前在使用 RocketMQ 官方的包在搭建的时候,发现好多问题,什么修改内存大小,然后启动 broker 报错,类似 service not available now, maybe disk full 等等… 最后决定还是重新用 docker 搭建下,感觉这样子玩坏了&…

微信仿真平台的设计和实现(设计+源码)_kaic

摘要 现如今,科技的发展带动着环保方式的更新,Internet是一个不断的开展和不停的扩充数据潮流,有了它,我们可以快速、容易地在世界的任何角落进行沟通,获取更多的信息与资料。Internet可以提供大量信息资源和文案数据库…

全国各省份影像下载地址(11级别)

安徽省https://pan.baidu.com/s/1fMuWhVZFvSH1UlCGU1bPpA?pwdeasy澳门特别行政区https://pan.baidu.com/s/1aU2D4o2bfeHTJTb6AkUtVA?pwdeasy北京市https://pan.baidu.com/s/1eaNzAWm1pUx_rjhD_wHHhA?pwdeasy福建省百度网盘 请输入提取码甘肃省https://pan.baidu.com/s/1mAqf…

时序预测相关技术分享

时序预测相关技术分享 时序预测是指对时间序列数据进行预测,以预测未来的趋势或行为。在实际生产和应用中,时序预测广泛应用于金融、电力、交通等领域。时序预测可以帮助人们更好地理解和掌握未来的趋势和规律,从而做出更明智的决策。 时序…

南大通用数据库-Gbase-8a-学习-34-gcdump(导出数据库对象定义)

目录 一、测试环境 二、介绍 三、命令帮助 四、参数介绍 1、--print-defaults (1)含义 (2)例子 2、--connect_timeout (1)含义 (2)例子 3、-A, --all-databases &#xf…

10款比较好用的网页设计工具

网页设计软件的轻量化和在线协作已成为当前网页制作软件的发展趋势。网页设计并不容易,易于使用的网页UI设计软件更难找到。随着网络的快速发展,网站迅速崛起,网页设计也很受欢迎。网页设计软件即时设计是一种在线协作设计工具,深…

密歇根大学Python系列之一:零基础 Python 入门

密歇根大学计算机专业注重将计算机科学理论与实践相结合,旨在帮助学生全面掌握计算机科学的基础理论和实践技能: 1.计算机程序设计:编程技能和常见编程语言,如C和Java和Python等; 2.数据结构和算法:数据结…

不同局域网下使用Python自带HTTP服务进行文件共享「端口映射」

文章目录 1. 前言2. 视频教程3. 本地文件服务器搭建3.1 python的安装和设置3.2 cpolar的安装和注册 4. 本地文件服务器的发布4.1 Cpolar云端设置4.2 Cpolar本地设置 5. 公网访问测试6. 结语 转载自内网穿透工具的文章:Python一行代码实现文件共享【内网穿透公网访问…

SpringBoot的配置和日志

1.配置文件的作用和意义 配置文件中配置整个项目中所有重要的数据,比如: 1.数据库的连接信息(包含用户名和密码的设置); 2.项目的启动端口; 3.第三方系统的调用秘钥等信息; 4.用于发现和定位问…

如何利用 GPT 开发智能应用?微软提出这九大原则

毫无疑问,GPT 的出现以日新月异的速度改写了软件开发的工作方式。 兴奋,也许也有点焦虑。作为开发人员,如何在 GPT 时代与人工智能协作?在「万物皆有副驾驶」的年代,如何划定分工边界,让 GPT 成为开发人员…

如何使用命令行添加配置码云仓库SSH秘钥-git仓库也一样

使用命令行添加配置码云仓库SSH秘钥 为什么要如何使用命令行添加配置码云仓库SSH秘钥?生成密钥你可以按如下命令来生成 sshkey:可以参考下图执行指令 添加密钥登录你的码云,鼠标移入头像,设置。点击 SSH公钥,打开配置页面&#x…