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

news2025/7/4 21:02:07

逻辑引擎介绍

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

原理与核心功能描述

基础原理

以下是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/

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JUC并发编程之CompletableFuture

Future future是java5新加的一个接口,他提供了一种异步并行计算的功能 接口定义了操作异步任务执行的一些方法,如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务是否执行完毕 目的:异步多线程执行且有返回结果&#…

干货分享 | 一文了解交互式应用程序安全测试(IAST)技术

软件开发过程中,安全检测极为重要。带有漏洞的软件一旦被恶意利用,将造成数据泄露、业务瘫痪,为企业带来不可估量的损失。这就要求企业在系统开发初期发现系统安全问题,快速定位应用漏洞并修复,从源头减少开发过程中的…

黑马点评Redis实战(短信登录;商户查询缓存)

黑马点评 通过一个类似于大众点评的项目了解学习redis在实战项目中的使用,下面是项目中会涉及到的模块: 一、导入黑马点评项目 导入springboot项目,导入sql脚本到数据库,开启nginx,更改项目配置文件中的redis和mys…

头部证券公司安全体系搭建实战讲解—开源网安S-SDLC平台助力金融科技安全发展

数字化时代背景下,新兴技术广泛应用导致软件安全隐患不断扩大。而金融行业由于项目周期长、业务规模大、应用数量多、合规监管严、内外合作多等特性,进一步加重了安全风险。 与此同时,《等保2.0》、《网络安全法》等国家政策的发布&#xff0…

【排序】直接插入排序与希尔排序(图示详解哦)

全文目录 引言直接插入排序思路实现 希尔排序思路实现 总结 引言 在上一篇文章中,我们实现了选择排序与堆排序,在本篇文章中将继续介绍直接插入排序与希尔排序: 直接插入排序与希尔排序都属于插入排序的一种: 这两种排序的思想都…

Ae:摄像机设置

Ae菜单:图层/摄像机设置 Camera Settings 快捷键:Ctrl Shift Y 新建摄像机图层时,首先会弹出摄像机设置 Camera Settings对话框。 经典 3D 渲染器时的摄像机设置 Cinema 4D 渲染器时的摄像机设置 类型 Type 有两种类型的摄像机供选择。 提…

空间矢量数据保存为GeoJSON、PDF等文件格式

专注系列化、高质量的R语言教程 推文索引 | 联系小编 | 付费合集 我们使用的空间矢量数据一般是Shapefile格式的,它在ArcGIS、R语言中都能加载,但是这种数据格式在使用时也有不便:它是由多个文件构成的,一般有.shp、.shx、.dbf、.…

Session和Cookie区别介绍+面试题

Session 会话: 对应的英文单词:session用户打开浏览器,进行一系列操作,然后关闭浏览器。整个过程叫做一次会话一个会话包含多次请求 session机制属于B/S结构的一部分,主要的作用就是为了保存会话状态。(用户登录成功后…

Spring使用注解存储和读取对象

文章目录 一、存储Bean对象配置扫描添加注解存储Bean对象注解使用范围Bean的命名五大类注解的关系为什么需要五大类注解? 二、方法注解BeanBean重命名 三、对象注入属性注入Setter注入构造方法注入Autowired 和 Resource 的区别 一、存储Bean对象 之前我们存储Bean时&#xff…

【MATLAB基础绘图第2棒】绘制柱状/饼图填充图

MATLAB绘制柱状填充图 方法1:hatchfill2工具1.1 案例1:柱状图填充1.2 案例2:饼图填充 方法2:applyhatch函数2.1 案例1:柱状图填充2.2 案例2:饼图填充 方法3: applyhatch_plusC函数3.1 案例1&…

分析软件及其隐藏后门实验笔记

软件后门和软件加壳是什么 软件后门可以理解为在软件中植入病毒等具有后门功能的代码,通过运行软件来对用户的系统造成破坏、窃取机密等。 软件加壳一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把…

Cisco SD-WAN (Viptela) version 20.11.1 ED - 软件定义广域网

请访问原文链接:https://sysin.org/blog/cisco-sd-wan-20/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 支持 SASE 的架构,其集成了面向多云、安全、统一通信和应用优化的各种功能,可用于轻…

ChatGPT干掉程序员?想多了...

GPT-4才诞生没几天,感觉朋友圈已经被这个人工智能刷屏了,大家一边在感叹人工智能行业蓬勃发展的同时,一边又有不少人患上了AI焦虑症。 这其中,以程序员首当其冲。原因无他,只因为GPT-4的惊人的能力和不少大佬的发言。 …

4.17~4.18学习总结

网络编程 概述 1.什么是网络编程 在网络通信协议下,不同计算机上运行的程序,进行的数据传输,计算机跟计算机之间可以通过网络进行数据传输。 2.常见的软件架构: B/S,C/S 3.通信的软件架构CS BS各有什么区别和优点…

阿里云免费使用stable diffusion三个月【ai生成图片】详细教程【保姆级】

起因 这两天关注了ai生成图片,尝试了mijiourney服务【比较贵没入手】,结果免费的没有了,没用上,换了国内的一些小程序体验了下 综合体验式是太慢了,而他们是基于国外开源的stable diffiusion模型开发的【可以比肩mij…

【FAQ】关于华为推送服务因营销消息频次管控导致服务通讯类消息下发失败的解决方案

一. 问题描述 使用华为推送服务下发IM消息时,下发消息请求成功且code码为80000000,但是手机总是收不到消息; 在华为推送自助分析(Beta)平台查看发现,消息发送触发了频控。 二. 问题…

java 快排算法详解,java 快排代码

快排是一种高效的数据结构,它使用一个关键字(Key)来表示数据元素的一个集合。也就是说,快排是一个有序数组,而这个有序数组由两个元素组成。 快排的基本思想是:如果数组元素的值比它前面的两个元素都大&…

记录一 :对象锁和类锁

目录 简介 通过8个案例来解释说明 案例及总结 简介 阿里规约【强制】高并发时,同步调用应该去考量锁的性能损耗。能用无锁数据结构,就不要用锁;能 锁区块,就不要锁整个方法体;能用对象锁,就不要用类锁。…

提高工作效率的宝藏网站和宝藏工具

一、好用的网站 面包多 面包多 创作者在面包多,通过出售课程,文章,绘画,创意作品,软件,电子书,音乐, 游戏,咨询服务,每月获得 数百万元 收入。 写作素材模板…

二阶段算法:R-CNN类网络

博主简介 博主是一名大二学生,主攻人工智能研究。感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c,Python,爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主,博主会继续更新的&#xff0c…