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

本文主要是介绍NodeRed节点编辑用于边缘计算和规则引擎,能做带UI界面和业务逻辑的上位机或前端应用吗?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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


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

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或功能节点组件以及连线,整体一键封装到内嵌页面中。

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

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

这篇关于NodeRed节点编辑用于边缘计算和规则引擎,能做带UI界面和业务逻辑的上位机或前端应用吗?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/925390

相关文章

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

Python利用PySpark和Kafka实现流处理引擎构建指南

《Python利用PySpark和Kafka实现流处理引擎构建指南》本文将深入解剖基于Python的实时处理黄金组合:Kafka(分布式消息队列)与PySpark(分布式计算引擎)的化学反应,并构建一... 目录引言:数据洪流时代的生存法则第一章 Kafka:数据世界的中央神经系统消息引擎核心设计哲学高吞吐