NodeRed节点编辑用于边缘计算和规则引擎,能做带UI界面和业务逻辑的上位机或前端应用吗?

news/2024/12/22 22:17:40/

网站:hhtp://www.uiotos.net

先说结论,可以,但是需要有页面嵌套继承类似的技术,实现页面模块化封装,否则难以实现复杂应用。


相信目光敏锐的人都在关注节点编辑在自身行业的应用!

NodeRed在边缘计算做数据协议解析、以及物联网平台中作为规则链引擎,是一个非常典型的例子:

在3D引擎中也用于代替脚本代码,制作比如游戏、动画等动作逻辑:

再比如最新的AI人工智能大模型使用中,比如comfyui,用节点编辑连线方式,代替脚本代码编程,实现用户业务逻辑编排,调用大模型的能力调整参数,精准输出用户想要的结果:

其他比如电话机器人话术工作流也用到简单的节点编辑:

总的来说,节点编辑技术,可以通过拖拽、连线方式,无代码搭建用户业务逻辑,实现特定的功能流程。

对于可视化拖拽编辑,到了4202年了,大家都不会陌生。在节点编辑流行起来之前,可视化拖拽编辑通常用于数据可视化的UI界面展示用途。

这里就有意思了,既然有WEB组态这类能可视化拖拽编辑搭建UI界面,又有节点编辑这样搭建业务逻辑,是否能够两者融合,功能兼具呢?

或者说如题,节点编辑做边缘计算的同时,希望有UI表单组件节点,也能参与节点编辑,这样连线逻辑,用来实现前端UI图形界面交互,也用来参与业务流程逻辑比如数据解析、接口调用等功能。

如果能实现,那么常规WEB组态除了能无代码拖拽搭建界面,还能实现业务逻辑;NodeRed这类节点编辑器,除了能做规则流程逻辑,也能够无代码搭建带有交互业务逻辑的前端界面了。

这样前端的逻辑功能和UI展示都能够无代码解决,岂不美哉!

想法很美好,现实很骨感!节点编辑如果只是功能节点,比如发邮件、串口,这些功能独立性比较强,逻辑性要求并不会太多。但是UI表单组件就不一样了!

一个简单的输入框组件,就有背景颜色、边框颜色、文字内容、输入时事件、回车事件等等属性(如果暂且把事件也归类为回调函数类型的属性)。

当输入框操作对话框时,试图将文本内容在输入结束后回车,能够将内容给到对话框,并且触发弹窗。

这样一个简单的逻辑,就需要对输入框和对话框两个节点进行连线编辑,一方面连线需要将输入框文字属性内容提取出来,传递给对话框;另一方面,需要连线确保输入框文字输入结束时,触发对话框弹窗。

UI界面的节点编辑,连线逻辑的灵活性要远高于纯粹的功能型节点,或者说包含了功能型的节点。

此外,还需要重点考虑的是可封装性!

不论是web组态还是节点编辑器,都没有封装性而言,简单说,一个页面或者画布,做的界面或者逻辑,跟其他页面是完全独立的。功能类似的,需要复制过去修改,类似PPT一样。即便存在类似模板的概念,本质上也只是减少手动复制的动作,没法达到像组件那样封装、可复用的效果。

在WEB编辑器中,就直接页面复制即可。但是节点编辑器中,一个页面逻辑很多,连线会变得异常复杂!可读性和可维护性随着需求的增大而减少,最后还不如写代码来的清晰!

 要知道代码开发,尤其是面向对象的开发,最大的好处就是模块化封装!将复杂的功能模块或者可重用的部分,单独打包,使用时只需要关心输入和输出即可。

NodeRed如果要实现复杂业务逻辑+UI界面和交互逻辑,必然要求考虑到如何将部分UI组件或者功能模板的连线,封装到一个独立的画布或页面中,再引入到当前页面上使用,且完全不受影响,跟直接在当前页上效果一样。

要实现这点,NodeRed在构建复杂业务逻辑,或者搭建带有UI界面和业务逻辑的上位机或前端应用,才有一定的可能性,否则反而是开倒车,最终华而不实!

关于实现这一点,有一篇文章提到的页面嵌套继承技术,可能是一个很好的突破点:

《回顾发展史,WEB组态终于可以搭建业务系统了!》

文中提到UIOTOS(www.uiotos.net)实现的页面嵌套继承技术,能够将当前页面中某一块区域的UI或功能节点组件以及连线,整体一键封装到内嵌页面中。

这个过程中,会自动创建一个新的页面,将选中的区域粘贴过去,并且在选中区域用一个容器组件填充,并且将新建页面路径填入,实现嵌套!

嵌套后,内嵌页面中组件的属性,都能选择性继承到上层容器中,再次参与节点连线编辑,实现上层逻辑和内嵌的下层逻辑之间连通!


http://www.ppmy.cn/news/1434690.html

相关文章

鸿蒙开发中:首选项(Preferences)和长连接(PersistentStorage)的区别

Preferences:可看做是配置项,为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。Preferences中的数据会被缓存在内存中,因此它可以获得更快的存取速度。 PersistentStorage&#…

【简单介绍下PostCSS】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

CTFHub(web sql注入)(二)

布尔盲注 盲注原理: 将自己的注入语句使用and与?id1并列,完成注入 手工注入: 爆库名长度 首先通过折半查找的方法,通过界面的回显结果找出数据库名字的长度,并通过相同的方法依次找到数据库名字的每个字符、列名…

收集统计信息报错ora-00600[16515]问题处理

1、基础环境 操作系统Oracle Solaris 11.3 数据版本Oracle 12.2 2、故障理像 对一个20T的大库收集一下全库的统计信息 原因是现在都2024年了,这个库的统计信息基本都是2021年, 没具体查找啥原因导致的系统自定义的收集任务失败,于是决定手…

对已知数组排序

要对已知的数组进行排序,有很多种方法可以实现,以下是两种常见的排序算法: 冒泡排序(Bubble Sort): 冒泡排序是一种比较简单但效率较低的排序算法。它的基本思想是通过不断地交换相邻元素,将最…

Linux_应用篇(04) 标准 I/O 库

本章介绍标准 I/O 库, 不仅是 Linux,很多其它的操作系统都实现了标准 I/O 库。 标准 I/O 虽然是对文件 I/O 进行了封装,但事实上并不仅仅只是如此,标准 I/O 会处理很多细节,譬如分配 stdio 缓冲区、以优化的块长度执行…

李廉洋:4.24-4.25现货黄金,WTI原油区间震荡,走势分析。

黄金消息面分析:金银近日回调。随着伊朗方面淡化以色列最新反击,中东地区局势没有进一步发酵下,风险溢价下降金银出现较大幅度调整。由于近期高于预期的通胀数据,降息预期持续降温。昨日疲软的美国PMI以及以色列在加沙攻击的加剧支…

2024-4-23 群讨论:Java堆空间OutOfMemoryError该怎么办

以下来自本人拉的一个关于 Java 技术的讨论群。关注公众号:hashcon,私信进群拉你 1. 为什么不建议打开 HeapDumpOnOutOfMemoryError? 1.1. 打开 HeapDumpOnOutOfMemoryError,哪些 OutOfMemoryError 会触发 HeapDumpOnOutOfMemory…