[易學明 繆翀鶯 謝曉軍]
近年來低代碼開發(fā)在工業(yè)界和學術界都日益受到關注,它既是企業(yè)應用市場基于企業(yè)需求產(chǎn)生的一種趨勢,也是IT技術發(fā)展的一個趨勢,尤其是移動互聯(lián)網(wǎng)、云計算和人工智能在企業(yè)數(shù)字化轉(zhuǎn)型中的快速應用更是加速了這種趨勢。企業(yè)必須對不斷變化的市場需求做出快速和有彈性的反應,希望降低企業(yè)應用開發(fā)迭代門檻,使得企業(yè)內(nèi)部IT人員、業(yè)務人員能參與開發(fā),并將需求快速轉(zhuǎn)化為系統(tǒng)功能模塊,加快應用交付[1]。而疫情和后疫情時代,企業(yè)互聯(lián)網(wǎng)化需求明顯,很多企業(yè)被迫云化辦公,存在大量快速開發(fā)應用系統(tǒng)的需求,而招聘專業(yè)的軟件工程師又越來越困難,在此背景下低代碼開發(fā)的市場需求顯著增大[2]。
隨著5G和工業(yè)互聯(lián)網(wǎng)等新型基礎設施建設成為國家推動經(jīng)濟高質(zhì)量發(fā)展的重要支撐,作為新基建尤其工業(yè)互聯(lián)網(wǎng)發(fā)展的重要力量,通信運營商正在不同類型工業(yè)和企業(yè)領域進行數(shù)字化服務的不斷探索和實踐。研發(fā)面向工業(yè)互聯(lián)網(wǎng)的低代碼開發(fā)平臺,進而更好地服務政企行業(yè)數(shù)字化轉(zhuǎn)型,成為通信運營商提供數(shù)字化服務的重要抓手:通過平臺一方面實現(xiàn)能力聚合和共享形成能力組件,即插即用,另一方面則實現(xiàn)應用聚合,豐富可復用行業(yè)組件,進而使數(shù)據(jù)縱橫相通,消除“數(shù)據(jù)孤島”。
回溯歷史,可以看到整個軟件開發(fā)的歷史其實是一個追求低代碼化的歷史。早在2014年低代碼開發(fā)概念提出前,諸多IT廠商就已經(jīng)在該領域持續(xù)耕耘多年,并不斷地推出低代碼開發(fā)工具和平臺[2]。以ORACLE為例,20多年來一直持續(xù)在開發(fā)工具和應用領域的低代碼化上發(fā)力,從C/S時代的ORACLE FORMS到后面支持WEB和移動信息化的新一代開發(fā)平臺OACLE APEX,低代碼發(fā)展的思路非常明顯,即通過簡化開發(fā)支持前端快速開發(fā)出UI,后端利用自身數(shù)據(jù)庫獨有優(yōu)勢,形成自身以數(shù)據(jù)庫系統(tǒng)為核心的開發(fā)生態(tài)。
再以微軟為例,低代碼平臺產(chǎn)品系列Power Platform[3]包含豐富的產(chǎn)品,微軟發(fā)展低代碼平臺的目的,也是要打造自己的軟件生態(tài)。它在低代碼領域研究的歷史至少可以追溯到90年代,如ACCESS,剛發(fā)布的低代碼開發(fā)語言PowerEx則是基于很早的EXCEL宏VBA發(fā)展起來的。值得關注的是,微軟將低代碼平臺Power Platform和編程輔助AI插件Copilot結(jié)合起來,希望通過AI驅(qū)動的無代碼智能方式重塑軟件開發(fā),可能會深刻改變軟件開發(fā)的模式。
國內(nèi)華為、百度、阿里、騰訊等大廠一方面象微軟一樣基于自身產(chǎn)業(yè)鏈生態(tài)的打造和完善紛紛介入低代碼,同時也希望借此來解決內(nèi)部IT系統(tǒng)龐大而分散的問題。無論是阿里還是華為,低代碼平臺的研發(fā)都優(yōu)先在企業(yè)內(nèi)部使用,以此提高開發(fā)效率,將部分重復開發(fā)工作解脫出來。
隨著新基建技術的發(fā)展,為更好服務政企行業(yè)數(shù)字化轉(zhuǎn)型需要,完善工業(yè)互聯(lián)網(wǎng)服務生態(tài),通信運營商、傳統(tǒng)IaaS(Infrastructure as a Service)服務商或通過收購與合作方式,或基于自身技術積累自研等方式陸續(xù)推出低代碼平臺,如移動云推出了面向業(yè)務開發(fā)者的多行業(yè)多場景下的低代碼業(yè)務應用搭建平臺,中國電信在面向工業(yè)互聯(lián)網(wǎng)垂直行業(yè)也進行了低代碼開發(fā)平臺的實踐探索。
本文以滿足企業(yè)生產(chǎn)管理、設備資產(chǎn)管理、業(yè)務運營優(yōu)化與創(chuàng)新等工業(yè)互聯(lián)網(wǎng)應用開發(fā)需求為場景,進行了面向工業(yè)互聯(lián)網(wǎng)的低代碼開發(fā)平臺的研發(fā)探索。在前期MES(Manufacturing Execution System)領域?qū)嵺`基礎之上,基于跨框架組件復用技術、元數(shù)據(jù)技術、可視化低代碼架構(gòu)技術、工業(yè)協(xié)議云采技術及軟硬件解耦的5G邊云協(xié)同工業(yè)控制技術,提出了ICT(information communication technology)和OT(operation technology)融合的云化低代碼開發(fā)平臺技術架構(gòu)。
面向工業(yè)互聯(lián)網(wǎng)的低代碼開發(fā)平臺以可視化的數(shù)據(jù)和信息管理、工作流管理和組件復用為核心,以云采工業(yè)物聯(lián)技術、云控工業(yè)控制技術等物聯(lián)采控基礎設施為基礎,基于模型驅(qū)動[4,5]和軟硬解耦思想,充分利用已有框架及組件的成熟能力,通過可視化IDE生成代碼構(gòu)建運行或者模型解釋執(zhí)行,以滿足便捷快速構(gòu)建工業(yè)互聯(lián)及物聯(lián)網(wǎng)應用解決方案的需求。
面向工業(yè)互聯(lián)網(wǎng)的低代碼開發(fā)平臺整體功能架構(gòu)如圖1 所示。
圖1 平臺整體功能架構(gòu)
平臺由設計器、組件、引擎、后端服務與部署、存儲及分析、物聯(lián)采控以及基于平臺開發(fā)或支持的各類應用等7個部分組成。
(1)設計器
設計器部分包括頁面設計器、表單設計器、流程設計器、大屏和報表設計器,以及針對應用、頁面、區(qū)塊的管理等。通過表單設計、報表設計等,自動生成業(yè)務數(shù)據(jù)模型,通過系統(tǒng)提供的各種部件,利用頁面設計器構(gòu)建頁面[6]。使用可視化編排和腳本語言定義前后端業(yè)務邏輯。通過流程設計器,以可視化的方式進行流程設計與配置[7]。通過大屏和報表設計器,以可視化的方式進行大屏設計和報表設計。
(2)組件
組件部分包括表單組件、布局組件、流程組件、大屏和報表組件、通用業(yè)務組件和各個垂直行業(yè)的業(yè)務組件,以及用于AI工業(yè)大數(shù)據(jù)分析的組件等?;陬I域工程,通過產(chǎn)品迭代升級優(yōu)化和項目積累,不斷擴充和完善組件部分,將復雜的外部能力封裝為標準組件(如表單組件或者流程節(jié)點)后,在應用工程中進行可視化編排。
(3)引擎
引擎部分包括表單引擎、大屏和報表引擎、規(guī)則引擎、流程引擎、跨框架引擎、移動化引擎和AI工業(yè)大數(shù)據(jù)分析引擎等,通過解釋和執(zhí)行對設計器和各類組件提供支撐。其中跨框架引擎通過基于DSL 轉(zhuǎn)換協(xié)議和跨框架組件機制實現(xiàn)將頁面或區(qū)塊 Schema 轉(zhuǎn)換成各技術棧的源代碼,以滿足適配多技術棧的需求。移動化引擎提供應用移動化和移動端原生調(diào)用能力支持,包括獲取設備信息、打開文檔、播放視頻、分享、支付、掃碼等
(4)后端及部署
通過Spring Boot和Node.js/Node-RED[8]提供后端服務,包括提供數(shù)據(jù)處理、認證及權(quán)限管理、物聯(lián)采控管理等系列 API 接口,以及系統(tǒng)所需業(yè)務邏輯的實現(xiàn)等。
基于容器編排技術、微服務架構(gòu)技術[9]和云服務技術,使得低代碼開發(fā)平臺開發(fā)的應用系統(tǒng)可以基于容器環(huán)境實現(xiàn)快速獨立的部署運行,并根據(jù)客戶不同部署要求提供包括公有云/私有云的不同云服務部署方式。
(5)存儲及分析
通過Mysql和MongoDB實現(xiàn)對低代碼開發(fā)平臺不同特點數(shù)據(jù)的存儲支持;通過對TDengine等時序數(shù)據(jù)庫的支持實現(xiàn)對海量工業(yè)數(shù)據(jù)的存儲支撐和處理。結(jié)合ETL(extract transform load)分析[10]和AI工業(yè)大數(shù)據(jù)分析引擎,實現(xiàn)基于工業(yè)機理和數(shù)據(jù)科學實現(xiàn)海量數(shù)據(jù)的深度分析,并實現(xiàn)工業(yè)知識的沉淀和復用[11]。
(6)物聯(lián)采控
物聯(lián)采控部分由云采工業(yè)物聯(lián)和云控工業(yè)控制組成,是低代碼開發(fā)平臺面向工業(yè)互聯(lián)網(wǎng)實現(xiàn)采集、控制和管理的基礎設施,而云采云控本身的部分功能也是基于低代碼技術開發(fā)的。
(7)應用
基于平臺開發(fā)或支持的各類應用,支持多租戶服務,支持企業(yè)應用私有化部署,包括ERP類的IT應用,面向IT和OT融合的SCADA(Supervisory Control And Data Acquisition)類、MES類應用等。
低代碼開發(fā)平臺的系統(tǒng)架構(gòu)就技術原理而言分為兩層:設計器(設計態(tài))和服務器(運行態(tài))。首先設計者通過可視化設計器實現(xiàn)可視化構(gòu)建頁面、業(yè)務邏輯和數(shù)據(jù)模型,并將可視化設計與配置的結(jié)果以DSL (domainspecific language)的形式保存為元數(shù)據(jù)中間文件[12],一般是JSON、YAML等格式。再通過設計器將元數(shù)據(jù)中間文件進行預處理并打包發(fā)布到服務器上,服務器解釋或編譯中間文件里的元數(shù)據(jù),形成應用,提供給最終用戶使用[13,14]。平臺主要的系統(tǒng)架構(gòu)及流程如圖2所示,可以分成可視化設計、中間層元數(shù)據(jù)描述、底層數(shù)據(jù)庫以及后端引擎4個環(huán)節(jié)。
圖2 平臺主要系統(tǒng)架構(gòu)及流程
(1)可視化設計
前端的可視化設計器支持組件的拖拉式設計和配置,包括頁面布局和界面交互設計、規(guī)則驗證和業(yè)務邏輯等設計,以及各種數(shù)據(jù)結(jié)構(gòu)的設計與綁定等信息。其本質(zhì)則是將一些常用業(yè)務邏輯提取出來加到通用UI組件之上并固化,然后通過提供可視化編輯環(huán)境和相應的配置項,讓用戶通過可視化配置的方式來復用這些固化的業(yè)務邏輯。
(2)元數(shù)據(jù)處理
由前端設計器生成的特定格式代碼稱為元數(shù)據(jù)文件,由JSON、YAML等格式的描述性語言文件組成,后臺運行器根據(jù)這些元數(shù)據(jù)文件解釋或編譯生成可執(zhí)行代碼,從而實現(xiàn)用戶所需的應用程序。
(3)底層數(shù)據(jù)庫
在傳統(tǒng)應用系統(tǒng)里,底層數(shù)據(jù)庫都是固定的實體表,即是與實體關系對應的一個個具體表。當業(yè)務需求變化需新增或改變數(shù)據(jù)結(jié)構(gòu)時,采用這種方式需要手工在數(shù)據(jù)庫進行數(shù)據(jù)結(jié)構(gòu)的新增或修改。低代碼開發(fā)平臺為了降低應用開發(fā)中配置數(shù)據(jù)模型的技術門檻,基于通用表結(jié)構(gòu)設計原理,結(jié)合窄表和基于JSON 字段類型的鍵值對技術,實現(xiàn)了業(yè)務系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的靈活構(gòu)建,在前端利用可視化表單進行設計后,后端自動生成相應的數(shù)據(jù)表結(jié)構(gòu)及數(shù)據(jù)信息,無需手動在后端數(shù)據(jù)庫進行新增或修改。
(4)后端引擎
后端利用轉(zhuǎn)換器將包含服務端動作和業(yè)務邏輯元數(shù)據(jù)文件轉(zhuǎn)換生成對應可在低代碼開發(fā)平臺運行態(tài)下執(zhí)行的目標代碼。服務端設計根據(jù)業(yè)務需求和用戶體驗等方面進行綜合考慮,以實現(xiàn)平臺的高效、易用和安全等特點。
(1)跨框架組件復用技術
在基于B/S架構(gòu)的低代碼開發(fā)平臺研發(fā)中,進行前端可視化設計遇到的一個關鍵問題是如何實現(xiàn)跨技術棧下的組件復用。當前B/S架構(gòu)的三大主流前端框架Angular、React、Vue并沒有統(tǒng)一的組件庫,例如基于 Vue 的Element UI,基于 React 的 Ant Design 等,都是特定于框架的,無法跨框架使用。而在企業(yè)應用系統(tǒng)開發(fā)中,通常存在對內(nèi)部存量系統(tǒng)改造對接的需求,也存在與外部系統(tǒng)對接、與新系統(tǒng)整合的要求,還會面臨前端系統(tǒng)整合的問題,這些系統(tǒng)可能是由不同的技術棧實現(xiàn)的,例如有的采用React框架,有的采用Vue框架,對于存量系統(tǒng)則可能是更老的框架。因而跨技術棧下的組件復用是低代碼開發(fā)平臺研發(fā)過程以及應用于實際企業(yè)應用開發(fā)時難以繞開的問題。
為使得前端組件有更好的重用性,對Web component及基于Web component對不同框架組件轉(zhuǎn)換技術進行了研發(fā)探索。Web Component支持通過創(chuàng)建自定義元素實現(xiàn)在任何框架場景或原生環(huán)境都可以使用自定義元素的標簽進行調(diào)用。作為一項W3C積極推動的技術,Vue/React/Angular等主流前端框架都在一定程度上遵循了這套規(guī)范,自定義組件使用的是 Shadow DOM,這項技術是 Web Component規(guī)范的一部分。瀏覽器支持方面,F(xiàn)ireFox、Chrome、Opera 已支持,Safari大部分支持,之前IE及Edge的支持差,目前IE已退出,Edge內(nèi)核也在更換,可見瀏覽器對Web Component的支持在越來越好。由于Web Component規(guī)范只是應用于瀏覽器底層,作為組件化的思想指導,所以具體的組件化實現(xiàn)需由各框架自行設計。目前除了使用原生的Web Component 創(chuàng)建方法,三大主流前端框架(Vue/React/Angular)已提供針對Web Component的轉(zhuǎn)換接口,將各框架技術棧的 UI 組件利用轉(zhuǎn)換接口按需包裹成 Web Component,使得原來基于特定框架的組件可以作為HTML原生組件顯示到前端畫布上,實現(xiàn)跨框架的組件復用,從而可為低代碼開發(fā)的可視化前端所調(diào)用。在實際開發(fā)中,遇到一些框架API接口不完善及兼容性的具體問題需要克服,如Web Component插槽使用,只支持原生的插槽語法,即使是通過 Vue 組件等框架組件進行轉(zhuǎn)換;再有,Web Component的插槽能力不支持類似Vue框架的作用域插槽等能力問題。因而在實際開發(fā)中,一些特殊功能需要進行額外的兼容性處理。但總體上利用這一方法可以較好地解決前端技術架構(gòu)存在的跨技術棧和組件復用問題,由此帶來的另一個好處是在開發(fā)各個業(yè)務組件時可以利用更多更豐富的各類特定框架的組件,從而降低開發(fā)基礎組件和業(yè)務組件的成本。也由于Google對Web Component的支持,使得基于Web Component的組件復用方案在多端開發(fā)領域也將有更好的影響,相信會逐漸成為組件化開發(fā)的一個趨勢。
此外,基于Web Component的一些比較成熟的開源組件庫,比如Stencil、OMI等,根據(jù)需求進行部分組件的開發(fā),也是平臺基于Web Component機制實現(xiàn)跨框架組件復用的一個重要組件來源。
通過以上方式實現(xiàn)設計態(tài)下不同框架下組件的復用后,基于可視化設計器通過拖拉拽配置設計生成滿足業(yè)務需求的描述性語言文件,再通過跨框架引擎的DSL 轉(zhuǎn)換協(xié)議機制轉(zhuǎn)換成目標技術棧的源代碼,從而可以滿足不同運行態(tài)下的運行環(huán)境需求。比如將Angular組件通過跨框架組件復用技術在可視化設計器加載后,用戶通過可視化設計器對該組件進行調(diào)用和配置,生成元數(shù)據(jù)描述文件,再通過跨框架引擎的DSL 轉(zhuǎn)換協(xié)議機制轉(zhuǎn)換成目標技術棧React框架下的源代碼??梢姡捎没赪eb Component的跨框架組件復用方案因其原生支持的特點,也避免了低代碼開發(fā)平臺普遍存在的供應商鎖定問題,并且在性能上也更有優(yōu)勢。
(2)元數(shù)據(jù)和可視化業(yè)務邏輯技術
元數(shù)據(jù)作為描述數(shù)據(jù)的數(shù)據(jù),用來描述低代碼開發(fā)中的對象、字段、關系、邏輯和規(guī)則等方面的信息,包含了用戶在可視化設計界面上所操作元素的配置和設置,比如它們的位置、樣式、交互行為等。傳統(tǒng)低代碼技術中,將前端可視化操作直接翻譯成對應的可執(zhí)行語言(如C#、Java等)以及將數(shù)據(jù)模型的可視化設計直接生成為數(shù)據(jù)庫語句的方式。面向工業(yè)互聯(lián)網(wǎng)的低代碼平臺采用中間層元數(shù)據(jù)技術,前端可視化界面的操作和配置首先生成為元數(shù)據(jù),再通過元數(shù)據(jù)解釋成數(shù)據(jù)庫語句在數(shù)據(jù)庫上執(zhí)行,對前端用戶屏蔽了對數(shù)據(jù)庫的直接操作,也更容易為前端用戶接受。對于前端可視化設計與配置階段建立的數(shù)據(jù)關聯(lián)關系,平臺也以元數(shù)據(jù)的形式描述這一關聯(lián),并在設計態(tài)和運行態(tài)中維護這一關聯(lián),比如在運行態(tài)實現(xiàn)級聯(lián)刪除等,但在后端數(shù)據(jù)庫則不再定義外鍵關聯(lián)。通過避免在數(shù)據(jù)庫內(nèi)部建立硬關聯(lián)的方式,也更方便低代碼平臺進行跨數(shù)據(jù)庫、跨數(shù)據(jù)源的操作。在面臨企業(yè)級應用需要將多廠商多版本的異構(gòu)數(shù)據(jù)庫系統(tǒng)進行集成和統(tǒng)一時,通過中間的元數(shù)據(jù)層進行數(shù)據(jù)處理和邏輯處理,可以有效“抹平”異構(gòu)數(shù)據(jù)庫系統(tǒng)在數(shù)據(jù)類型和存取方面的差異,比較好地解決了跨數(shù)據(jù)庫、跨數(shù)據(jù)源系統(tǒng)的數(shù)據(jù)集成和統(tǒng)一問題。
平臺以數(shù)據(jù)流轉(zhuǎn)的方式設計業(yè)務邏輯,用流程圖或數(shù)據(jù)流圖的形式來描畫業(yè)務邏輯,將用來承載業(yè)務邏輯的組件抽象保存為元數(shù)據(jù)定義,這種方式有利于垂直領域非專業(yè)技術人員進行理解,也方便開發(fā)時與需求方就設計結(jié)果進行溝通確認。平臺描述業(yè)務邏輯的元數(shù)據(jù)通常由若干有順序的操作構(gòu)成,每個操作包含操作類型、配置數(shù)據(jù)、輸入輸出參數(shù)等。當在設計器上對這些組件編排和配置時,設計器將這些組件的順序、配置信息等保存為JSON或YAML格式元數(shù)據(jù),在運行時再通過加載和讀取這些元數(shù)據(jù),還原出業(yè)務邏輯處理的規(guī)則和實現(xiàn)方式,形成可執(zhí)行程序,監(jiān)聽對應端口和準備響應請求。此外,平臺針對垂直業(yè)務領域業(yè)務邏輯復用度高的業(yè)務場景和需求,抽象提煉出層次高、粒度大的邏輯節(jié)點,進行業(yè)務邏輯編排,甚至業(yè)務流程編排,提升業(yè)務邏輯組件的復用效果,為MES開發(fā)提效。
通過采用元數(shù)據(jù)和可視化業(yè)務邏輯技術,平臺可以更加方便地支持新的業(yè)務場景,具有更好的擴展性。
(3)基于通用表的數(shù)據(jù)庫設計技術
平臺的數(shù)據(jù)庫設計里,需要將任何對象及其屬性的描述和記錄以及增刪改查等操作高度抽象化,使得任意租戶的任意對象的任意數(shù)據(jù)的增刪改查操作,底層都用一套代碼。
平臺采用Object、Field、Data通用表設計的基本原理來構(gòu)建底層數(shù)據(jù)結(jié)構(gòu)模型。其中,Object表用于存儲業(yè)務對象模型,包括對象屬性、對象關系等,每個業(yè)務對象將在Object表中進行定義,并分配一個唯一的Object ID;Field表用于存儲業(yè)務對象的屬性信息,包括屬性的名稱、類型、長度等,每個屬性將在Field表中進行定義,并分配一個唯一的Field ID,每個屬性都屬于某個業(yè)務對象,因此Field表中會存在Object ID字段,用來與Object表進行關聯(lián);Data表用于存儲業(yè)務對象的數(shù)據(jù),每個對象的具體實例將在Data表中進行存儲,使用Object ID和Field ID分別與Object表和Field表進行關聯(lián)。Data表的設計可以采用寬表的方式,預留足夠的字段用于自定義,一個字段對應一個屬性值;可以采用窄表的方式,每個對象的每一個屬性對應一條記錄;也可以采用JSON 字段類型,結(jié)合鍵值對的方式靈活地存儲一個或多個屬性值。本文采用了窄表方式和基于JSON 字段類型的鍵值對相結(jié)合的方式。
通過這一設計,低代碼開發(fā)平臺支持多種業(yè)務對象模型的定義,并且可以自動生成對應的表單、視圖、報表等。而對多租戶的支持則根據(jù)需要可以通過每個租戶一個單獨數(shù)據(jù)庫來實現(xiàn),或在表中增加租戶ID字段進行區(qū)分。
(4)基于應用特性的后端設計
為了滿足工業(yè)互聯(lián)網(wǎng)應用IT和OT融合的需要,后端基本功能部分采用比較主流的技術架構(gòu)Spring Boot,部分IOT相關模塊采用Node.js和Node-RED實現(xiàn)?;贜ode-RED實現(xiàn)可視化的低代碼流程編程,將物聯(lián)網(wǎng)硬件設備、API和在線服務方便快速地連接在一起,簡化工業(yè)物聯(lián)網(wǎng)設備及業(yè)務管理功能的開發(fā)。
數(shù)據(jù)存儲上,根據(jù)不同數(shù)據(jù)特性和處理要求,使用MySQL存儲關系型數(shù)據(jù),使用 MongoDB 存儲非關系型數(shù)據(jù),如前端頁面正在編輯的自定義數(shù)據(jù)適合使用MongoDB 存儲[15]。針對海量的工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)存儲的場景,根據(jù)需要使用TDengine時序數(shù)據(jù)庫系統(tǒng)來存儲,以提升工業(yè)數(shù)據(jù)存儲和處理能力。
考慮到工業(yè)互聯(lián)網(wǎng)應用的復雜性,平臺基于容器編排技術和微服務架構(gòu)設計,使得應用系統(tǒng)基于容器環(huán)境可以實現(xiàn)快速獨立的部署運行,同時大大降低了部署和維護的復雜性,實現(xiàn)敏捷部署運維。
(5)物聯(lián)采控一體技術
利用運營商在IaaS層具有的基于5G邊云協(xié)同、云網(wǎng)結(jié)合的網(wǎng)絡資源能力,通過工業(yè)協(xié)議云采技術和軟硬件解耦的云控工業(yè)控制技術,實現(xiàn)了ICT技術和OT技術在工業(yè)互聯(lián)網(wǎng)的逐步融合,使得基于平臺開發(fā)的工業(yè)企業(yè)應用向上提供工業(yè)數(shù)據(jù)采集與匯聚的能力,向下具備對工業(yè)設備遠程控制的能力,解決信息孤島難題。
云采工業(yè)物聯(lián)基于工業(yè)協(xié)議云采技術,兼容百余種工業(yè)協(xié)議規(guī)約器,實現(xiàn)各種不同協(xié)議類型設備的數(shù)據(jù)采集及數(shù)據(jù)上報[16],實現(xiàn)能耗采集、工業(yè)數(shù)采等應用場景的云采并不斷迭代完善。
云控工業(yè)控制采用5G邊云協(xié)同的分布式部署架構(gòu),通過控制器軟硬件解耦,實現(xiàn)網(wǎng)絡的標準化,接口協(xié)議的標準化,屏蔽異構(gòu)工業(yè)設備的差異性,實現(xiàn)協(xié)同設備控制,支持各種工業(yè)控制類應用的低代碼開發(fā),現(xiàn)階段主要聚焦柔性生產(chǎn)和機器換人場景,在物流、五金、包裝、電子等行業(yè)打造若干標準智能工位,實現(xiàn)包括遠程操控、智能理貨、機器打磨、機器涂膠、視覺質(zhì)檢等功能。
基于平臺開發(fā)的一個云化PLC(Programmable Logic Controller)某車間試點MES系統(tǒng)的視覺工位狀態(tài)監(jiān)控界面如圖3所示。
圖3 某車間MES系統(tǒng)的視覺工位狀態(tài)監(jiān)控界面
云化PLC目的是將5G技術融入自動化產(chǎn)線,針對中小企業(yè)已有的自動化,半自動化的產(chǎn)線,利用5G技術,提升工廠生產(chǎn)的效率和質(zhì)量。該車間試點布置了工業(yè)互聯(lián)網(wǎng)云化PLC生產(chǎn)線,滿足云化PLC柔性生產(chǎn)、協(xié)作配合、智能分揀等交叉應用場景的需求,包括智能倉儲、CNC切割、激光雕刻、機器視覺、包裝、傳送及生產(chǎn)物流等柔性智能工位。其中生產(chǎn)物流工位主要由5G遠程控制AGV(Automated Guided Vehicle)無人駕駛小車完成,由AGV小車主體和5G通信模塊組成。每個柔性智能工位上都配置對應的邊緣控制設備及對應的PLC 應用。而試點建設的柔性自動化產(chǎn)線則涵蓋智能制造的常見主流技術,包括PLC編程技術、工業(yè)機器人技術、機器視覺技術、柔性鐳射技術、AGV無人導航技術等。通過這些載體的智能通信接口連接5G定制網(wǎng),利用平臺提供的云采工業(yè)物聯(lián)和云控工業(yè)控制基礎設施,實現(xiàn)對產(chǎn)線的采集和控制,并基于平臺的低代碼開發(fā)環(huán)境針對車間產(chǎn)線的具體業(yè)務需求快速開發(fā)出更上層的工業(yè)互聯(lián)網(wǎng)應用管理服務。圖4是基于平臺開發(fā)的某車間試點MES系統(tǒng)總體架構(gòu)圖。
圖4 某車間MES系統(tǒng)總體架構(gòu)圖
圖4的看板顯示部分中,產(chǎn)線工位狀態(tài)監(jiān)控包括了智能倉儲工位、傳輸工位、CNC切削工位、激光鐳射工位、機械視覺檢測與包裝工位、生產(chǎn)物流工位等工位狀態(tài)的實時顯示;生產(chǎn)計劃實施監(jiān)控主要實現(xiàn)對各批次計劃下已完成產(chǎn)品情況及各工位上加工產(chǎn)品情況的監(jiān)控;物料狀態(tài)的監(jiān)控則實現(xiàn)對物料庫存率和消耗率等的監(jiān)控。通過在平臺進行可視化的設計與配置,并加載和調(diào)用大屏組件,實現(xiàn)各產(chǎn)線工位狀態(tài)、物料狀態(tài)、設備狀態(tài)、生產(chǎn)計劃實施狀態(tài)等信息的大屏實時顯示,而相應的產(chǎn)線工位狀態(tài)、生產(chǎn)計劃實施等信息則利用5G定制網(wǎng)絡超低延遲的特點由云采工業(yè)物聯(lián)通過5G定制網(wǎng)通道從各產(chǎn)線工位對應配置的邊緣控制設備實時獲取。車間產(chǎn)線的生產(chǎn)物流運送由聯(lián)接5G網(wǎng)絡的AGV小車完成。運用云控工業(yè)控制,平臺通過5G定制網(wǎng)絡對AGV小車進行實時遠程控制,以安全、同時地完成設定工作計劃,確保AGV小車及其運輸物料的安全性和準確性,尤其適合高溫、高壓不宜人工進入的特殊環(huán)境。
在低代碼開發(fā)平臺的研發(fā)和實踐過程中,也認識到面向工業(yè)互聯(lián)網(wǎng)的低代碼開發(fā)目前存在的一些局限和問題,下面做概要分析。
低代碼開發(fā)的核心一個是組件復用,一個是可視化。這里就組件復用和可視化談談其局限性。
(1)場景預設和可復用組件模式的局限性
基于低代碼平臺的應用開發(fā),是一種高度的場景預設的模式,所需的場景和需求,是在低代碼平臺開發(fā)時就預設好的,需要低代碼平臺開發(fā)者針對預設的目標應用系統(tǒng)預先開發(fā)好大量可復用的組件、模板、模型和接口[17,18]。
一般來說,組件層次越高、粒度越大越難以被直接復用。雖然一般的業(yè)務組件可以通過參數(shù)化來實現(xiàn)個性化配置,但參數(shù)數(shù)量畢竟有限,而不同企業(yè)的業(yè)務即使同樣是MES系統(tǒng),其需求也差異多樣,給復用帶來一定困難,而且豐富的參數(shù)選項也會使得學習成本比較高。即使是比較成熟的低代碼開發(fā)平臺,有著豐富的業(yè)務層面的組件,通過組件復用的比例,也遵循二八原則,也就是說一般會有10%~20%的業(yè)務需求無法復用。這時,就需要低代碼平臺提供特定規(guī)則的 DSL 語言甚至外部開發(fā)工具進行自定義編程或?qū)I(yè)編程[19,20]。
(2) 可視化編輯表達業(yè)務邏輯的局限性
對于一些復雜的業(yè)務邏輯,采用低代碼可視化編排的方法有時難以很好表達,低代碼平臺對于復雜業(yè)務邏輯表達的一個解決方案是采用JavaScript之類的腳本語言來實現(xiàn)[21],但這也為低代碼的開發(fā)帶來了門檻。更有一些復雜場景和復雜業(yè)務邏輯,仍需要和專業(yè)開發(fā)配合才能實現(xiàn)[22],比如制造業(yè)中常見的需根據(jù)各種排程規(guī)則設定復雜排產(chǎn)算法等場景。
(1)元數(shù)據(jù)的持續(xù)優(yōu)化和擴充問題
元數(shù)據(jù)規(guī)定數(shù)據(jù)類型、格式和范圍等信息,通過元數(shù)據(jù)定義把各種能力單元和業(yè)務單元封裝起來,使得開發(fā)者可以在低代碼開發(fā)平臺的可視化設計器中方便直觀地調(diào)用,而元數(shù)據(jù)的定義是相對固定的,這在一定程度限制了低代碼開發(fā)平臺的靈活性和能力邊界,使其難以滿足一些新的復雜業(yè)務的需求[23],需要持續(xù)優(yōu)化和擴充元數(shù)據(jù)能力,以適應新的業(yè)務需求和應用場景,提升開發(fā)效率。而低代碼平臺的競爭力也體現(xiàn)在對組件和元數(shù)據(jù)進行持續(xù)優(yōu)化、積累和擴充的能力上。
(2)OT與ICT融合的復雜性問題
要實現(xiàn)OT與ICT的高效融合,在實際實施中還面臨著很多挑戰(zhàn),例如各種總線各自有著不同的物理接口、對象字典及傳輸機制,使得即使能夠采用網(wǎng)絡標準化、接口協(xié)議標準化等技術進行融合,在互操作層仍然會出現(xiàn)一些問題。這種復雜性使得在數(shù)據(jù)分析、訂單排產(chǎn)等IT 應用層面會遇到一些障礙,增加應用開發(fā)的工作量和難度。
工業(yè)互聯(lián)網(wǎng)的目標是通過ICT技術和OT技術的深度融合,實現(xiàn)工業(yè)企業(yè)的數(shù)字化成功轉(zhuǎn)型。通過元數(shù)據(jù)及通用底層數(shù)據(jù)庫設計技術、可視化低代碼架構(gòu)技術、跨框架組件復用等低代碼開發(fā)技術,結(jié)合工業(yè)協(xié)議云采技術、軟硬件解耦的5G邊云協(xié)同云控工業(yè)控制技術和AI工業(yè)大數(shù)據(jù)分析技術等,可以有效實現(xiàn)ICT技術和OT技術在面向工業(yè)互聯(lián)網(wǎng)的低代碼開發(fā)平臺的逐步融合,從而滿足工業(yè)互聯(lián)網(wǎng)數(shù)字化應用快速開發(fā)的需要??紤]到工業(yè)企業(yè)數(shù)字化需求的復雜性,在將來,可進一步優(yōu)化平臺的技術架構(gòu),進一步優(yōu)化和擴充面向工業(yè)互聯(lián)網(wǎng)的可復用組件和元數(shù)據(jù)能力,進一步推進ICT技術和OT技術在平臺的融合,使得面向工業(yè)互聯(lián)網(wǎng)的低代碼開發(fā)平臺成為實現(xiàn)工業(yè)企業(yè)數(shù)字化轉(zhuǎn)型的更有效手段。