設(shè)計網(wǎng)站怎樣做色卡百度快照排名
本人一直研究這個軟件,1.7.0版本最近剛剛發(fā)布,里面有個大變化,增加了消息流的功能,這個功能和IBM的Node-Red很相似。
Node-Red那個圖形化流程很多年前就給了我很深刻的印象,我個人理解是,通過這樣的圖形化編程機制把軟件開發(fā)直接分成了兩個層次。
1. 一個是應(yīng)用層面,給用戶、項目實施技術(shù)人員或維護人員能夠在不需要掌握深入技術(shù)的前提下,還可以快速實現(xiàn)業(yè)務(wù)需要,并且極大的降低后續(xù)業(yè)務(wù)微調(diào)成本。畢竟靈活的圖形化流程能夠在線修改和調(diào)整。
2. 二是在節(jié)點開發(fā)上,則需要一定技術(shù)能力的程序員來完成,但開發(fā)方式上就好比制造有一定技術(shù)規(guī)范的零件,零件功能通過流程節(jié)點的封裝,屏蔽了復(fù)雜的底層知識。
這兩個層次在軟件工程角度,面對各種紛繁復(fù)雜應(yīng)用的業(yè)務(wù)場合,基本上是個最優(yōu)解了。IOT-Tree中的文檔介紹里面說,節(jié)點應(yīng)該是偏向有一定封裝的中粒度功能,而不是使用細致到每個if else都用這樣的圖型流程實現(xiàn)——這樣的話估計流程會龐大到還不如若干行代碼了。
下面,我就簡單介紹一下IOT-Tree的這個消息流了。先給一張里面的演示控制流程圖:
1 這是后端用Java實現(xiàn),前端js的消息流實現(xiàn)
Node-Red基于Node.js實現(xiàn),估計在國內(nèi)相關(guān)程序員比較低很多,搞Java可以研究看看了,畢竟這是一種比較新的系統(tǒng)實現(xiàn)模式。
本質(zhì)上,雖然IOT-Tree里面的消息流是系統(tǒng)的一部分,但我感覺這個可以完全獨立出來。當然,這個軟件也是通過提供特定的一些節(jié)點來和底層設(shè)備、通信和監(jiān)控數(shù)據(jù)進行交互的。雖然可以通過這些節(jié)點反過來實現(xiàn)控制邏輯,但本質(zhì)上之前的這些功能也可以看成是這個消息流的節(jié)點插件。
2 這個消息流充分利用了java特點
這個消息流一些節(jié)點帶了旋轉(zhuǎn)標識,表面是個異步運行節(jié)點——本質(zhì)就是有自己的內(nèi)部運行線程,這樣你可以通過這樣的節(jié)點調(diào)整控制流程的時間效率,如果對線程運行機制不了解那么這個理解起來會稍微難一些。不過,這個對于Javaer來說,那就比較親切了,可以讓你設(shè)計流程的時候有更好的掌控能力。
3 在線調(diào)試功能比較強
IOT-Tree的消息流每個節(jié)點都可以打開彈出節(jié)點運行狀態(tài)信息板,這個比Node-Red方便多了。并且Debug節(jié)點更強大,直接在自己的狀態(tài)信息板顯示接收到的信息列表。
直接看里面自帶的那個演示項目,就可以看出這個使用效果,可以說是比較有創(chuàng)新的。
下面說說美中不足
1 目前文檔還缺一些,里面說了可以使用標準java webapp開發(fā)提供節(jié)點插件,但雖有例子但還缺點文檔,估計是剛推出的緣故。
2 節(jié)點實現(xiàn)和Node-Red相比,需要實現(xiàn)Java類和對應(yīng)的參數(shù)配置界面,復(fù)雜不少。
不過這個我認為其實問題不大,事實上實現(xiàn)節(jié)點需要的接口再多也即是那些函數(shù),實現(xiàn)節(jié)點真正的復(fù)雜還是在節(jié)點自身功能上。
最后,如果感興趣給大家推薦一個鏈接
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