IOT-Tree 1.7.0实现了一个类似Node-Red的流程功能

本人一直研究这个软件,1.7.0版本最近刚刚发布,里面有个大变化,增加了消息流的功能,这个功能和IBM的Node-Red很相似。

Node-Red那个图形化流程很多年前就给了我很深刻的印象,我个人理解是,通过这样的图形化编程机制把软件开发直接分成了两个层次。

  1. 一个是应用层面,给用户、项目实施技术人员或维护人员能够在不需要掌握深入技术的前提下,还可以快速实现业务需要,并且极大的降低后续业务微调成本。毕竟灵活的图形化流程能够在线修改和调整。

  2. 二是在节点开发上,则需要一定技术能力的程序员来完成,但开发方式上就好比制造有一定技术规范的零件,零件功能通过流程节点的封装,屏蔽了复杂的底层知识。

这两个层次在软件工程角度,面对各种纷繁复杂应用的业务场合,基本上是个最优解了。IOT-Tree中的文档介绍里面说,节点应该是偏向有一定封装的中粒度功能,而不是使用细致到每个if else都用这样的图型流程实现------这样的话估计流程会庞大到还不如若干行代码了。

下面,我就简单介绍一下IOT-Tree的这个消息流了。先给一张里面的演示控制流程图:

1 这是后端用Java实现,前端js的消息流实现

Node-Red基于Node.js实现,估计在国内相关程序员比较低很多,搞Java可以研究看看了,毕竟这是一种比较新的系统实现模式。

本质上,虽然IOT-Tree里面的消息流是系统的一部分,但我感觉这个可以完全独立出来。当然,这个软件也是通过提供特定的一些节点来和底层设备、通信和监控数据进行交互的。虽然可以通过这些节点反过来实现控制逻辑,但本质上之前的这些功能也可以看成是这个消息流的节点插件。

2 这个消息流充分利用了java特点

这个消息流一些节点带了旋转标识,表面是个异步运行节点------本质就是有自己的内部运行线程,这样你可以通过这样的节点调整控制流程的时间效率,如果对线程运行机制不了解那么这个理解起来会稍微难一些。不过,这个对于Javaer来说,那就比较亲切了,可以让你设计流程的时候有更好的掌控能力。

3 在线调试功能比较强

IOT-Tree的消息流每个节点都可以打开弹出节点运行状态信息板,这个比Node-Red方便多了。并且Debug节点更强大,直接在自己的状态信息板显示接收到的信息列表。

直接看里面自带的那个演示项目,就可以看出这个使用效果,可以说是比较有创新的。

下面说说美中不足

1 目前文档还缺一些,里面说了可以使用标准java webapp开发提供节点插件,但虽有例子但还缺点文档,估计是刚推出的缘故。

2 节点实现和Node-Red相比,需要实现Java类和对应的参数配置界面,复杂不少。

不过这个我认为其实问题不大,事实上实现节点需要的接口再多也即是那些函数,实现节点真正的复杂还是在节点自身功能上。

最后,如果感兴趣给大家推荐一个链接

iot-tree/web/doc/cn/doc/msgnet/mf_for_ctrl.md at main · bambooww/iot-tree · GitHub

如果上面的链接图片没法看,看下面这个链接

web/doc/cn/doc/msgnet/mf_for_ctrl.md · Jason Zhu/iot-tree - Gitee.com

相关推荐
tianyuanwo5 分钟前
Jenkins节点编码环境深度解析:从配置到Java Web连接原理
java·jenkins·语言编码
Fanxt_Ja6 分钟前
多线程之ES同步数据
java·大数据·elasticsearch·搜索引擎
没有bug.的程序员7 分钟前
Docker 与 K8s 生产级实战:从镜像极致优化到集群自动化部署全流程
spring cloud·docker·kubernetes·自动化·k8s·镜像·集群自动化
CodeToGym10 分钟前
【全栈进阶】Spring Boot 整合 WebSocket 实战:从实时告警到金融行情推送
java·后端·spring
张3蜂11 分钟前
java springboot2.0 api ;.netcore8 api ;python GunicornAPI ,哪种更强?请从多个维度,对比分析
java·python·.netcore
会写代码的饭桶16 分钟前
【DevOps实战】使用 GitHub Actions 自动构建镜像并双推至 Docker Hub 和 GHCR
docker·自动化·github·devops
市场部需要一个软件开发岗位19 分钟前
一个无人机平台+算法监督平台的离线部署指南
java·python·算法·bash·无人机·持续部署
凤山老林20 分钟前
SpringBoot + MyBatis-Plus 如何高效实现数据变更记录
java·spring boot·mybatis
Vivienne_ChenW24 分钟前
Spring 事件驱动用法总结
java·开发语言·spring boot·spring
赛博云推-Twitter热门霸屏工具30 分钟前
Twitter 自动化与热门霸屏实战:以赛博云推为例的技术解析
运维·自动化·twitter