摘" 要:傳統(tǒng)軟件的開發(fā)方法成本過于昂貴,開發(fā)方式過于僵化,開發(fā)周期長且定制化能力弱,難以為企業(yè)提供高效、便捷的軟件產(chǎn)品交付,難以應(yīng)對不斷變化的市場并滿足客戶期望。該文通過調(diào)研國內(nèi)和國外低代碼開發(fā)技術(shù)現(xiàn)狀及發(fā)展趨勢,開展低代碼開發(fā)適用性分析,研究提出低代碼開發(fā)平臺設(shè)計與實現(xiàn)的初步方案,為面向敏捷應(yīng)用的低代碼開發(fā)平臺建設(shè)提供技術(shù)支撐。
關(guān)鍵詞:敏捷應(yīng)用;低代碼;開發(fā)技術(shù);云協(xié)同;開發(fā)平臺
中圖分類號:TP311.52 文獻(xiàn)標(biāo)志碼:A" " " " 文章編號:2095-2945(2023)14-0026-05
Abstract: The traditional software development method is too expensive, the development method is too rigid, the development cycle is long and the customization ability is weak, so it is difficult to provide enterprises with efficient and convenient software product delivery, and it is difficult to cope with the changing market and meet customer expectations. Based on the investigation of the current situation and development trend of low code development technology at home and abroad, this paper analyzes the applicability of low code development, and puts forward a preliminary scheme for the design and implementation of low code development platform, thereby provides technical support for the construction of low code development platform for agile applications.
Keywords: agile application; low code; development technology; cloud collaboration; development platform
傳統(tǒng)軟件開發(fā)交付鏈中,需求經(jīng)過3次傳遞,用戶→業(yè)務(wù)→架構(gòu)師→開發(fā),每一層傳遞都可能使需求失真,導(dǎo)致最終交付的功能返工。業(yè)務(wù)的變化促使軟件開發(fā)過程不斷更新、迭代和演進(jìn),而低代碼開發(fā)即是軟件開發(fā)衍生的其中一條分支。低代碼是傳統(tǒng)軟件的進(jìn)一步演變,以其高效、靈活和穩(wěn)定的特點應(yīng)用到企業(yè)的業(yè)務(wù)場景[1]。低代碼開發(fā)降低了應(yīng)用搭建門檻,減輕對專業(yè)工程師的依賴,使得業(yè)務(wù)人員用拖拽的方式即可自行搭建應(yīng)用平臺,滿足業(yè)務(wù)部門的個性化需求,降低人力成本,縮短項目整體開發(fā)周期。在后期運維上,低代碼平臺的迭代速度快,靈活性更高[2]。低代碼開發(fā)的核心價值是敏捷響應(yīng)用戶需求,增加應(yīng)對復(fù)雜應(yīng)用場景的能力。
1" 國內(nèi)外低代碼開發(fā)研究現(xiàn)狀
IBM在1980年首次提出低代碼開發(fā),在隨后的近30年內(nèi)發(fā)展緩慢,隨著技術(shù)的沉淀和應(yīng)用軟件的深度應(yīng)用,低代碼迅速發(fā)展,主要經(jīng)歷4個階段[3]。
1)萌芽階段:1980—2000年,IBM的快速應(yīng)用程序開發(fā)工具(RAD)被命名為低代碼。美國公司和實驗室開始研究可視化編程,推出第四代編程語言(4GL),后來衍生為可視化編程語言(VPL,Visual Programming Language)。
2)緩慢發(fā)展階段:2000—2015年,企業(yè)逐漸涉足低代碼開發(fā)領(lǐng)域,如1999年成立的Salesforce,2001年成立的OutSystem。
3)升溫階段:2015—2018年,AWS、Google、Microsoft和Oracle等軟件行業(yè)巨頭的加入,使低代碼領(lǐng)域的發(fā)展逐步升溫。
4)快速發(fā)展階段:2018—2021年,低代碼領(lǐng)域進(jìn)入快速發(fā)展階段,根據(jù)Gartner研究報告,國外共有18家供應(yīng)商進(jìn)入低代碼應(yīng)用平臺領(lǐng)域。2018年,西門子以6億歐元收購低代碼應(yīng)用開發(fā)領(lǐng)域的領(lǐng)導(dǎo)者M(jìn)endix,快速應(yīng)用開發(fā)的低代碼平臺OutSystems獲得3.6億美元的投資。
國外對低代碼平臺的重視程度和研究投入在2018年以來顯著增加,美國仍是技術(shù)的先驅(qū)者和領(lǐng)導(dǎo)者,隨著云計算技術(shù)的發(fā)展,傳統(tǒng)平臺向PaaS平臺轉(zhuǎn)移。多數(shù)廠商的產(chǎn)品能夠支持私有云和本地部署,個別產(chǎn)品如Lightning Platform、PowerApps僅支持自身的云平臺。這種捆綁銷售模式雖然在一定程度上有利于自身云平臺的推廣,但由于云平臺和低代碼平臺的競品都較多,對低代碼平臺的推廣非常不利。
國內(nèi)涉足低代碼領(lǐng)域比國外晚近20年,自2000年之后才開始研究探索低代碼技術(shù),主要經(jīng)歷了2個階段。
1)早期探索階段:2000—2015年,少數(shù)公司開始嘗試對低代碼進(jìn)行研究,如較早的炎黃盈動。
2)快速發(fā)展階段:2015—2021年,國內(nèi)低代碼開發(fā)平臺進(jìn)入爆發(fā)期,各廠商紛紛推出商用產(chǎn)品。2019年開始,互聯(lián)網(wǎng)大廠阿里、騰訊和字節(jié)的加入,使低代碼進(jìn)入快速發(fā)展階段。傳統(tǒng)軟件廠商也基于自身產(chǎn)品構(gòu)建低代碼開發(fā)平臺,如ERP廠商金蝶、用友、明源云和黑帕云,OA廠商致遠(yuǎn)、藍(lán)凌、泛微,CRM廠商銷售易、紛享銷客,財稅廠商先勝業(yè)財,音頻廠商聲網(wǎng)、容聯(lián)云、即構(gòu)科技和融云等。
國內(nèi)低代碼平臺起步晚于國外,成熟度與國外主流供應(yīng)商存在較大差距,但自2018年以來人力和資金投入加大,創(chuàng)業(yè)型公司、互聯(lián)網(wǎng)生態(tài)型公司、傳統(tǒng)企業(yè)管理軟件公司開始轉(zhuǎn)型和孵化自己的產(chǎn)品,出現(xiàn)百家爭鳴的局面,與國外平臺的差距也在逐步縮小。根據(jù)海比研究院、中國軟件行業(yè)協(xié)會聯(lián)合發(fā)布的《2021年中國低代碼/無代碼市場研究報告》顯示,我國低代碼廠商約有120家,整體市場規(guī)模已達(dá)19億元,未來五年復(fù)合增長率將達(dá)到49.5%,第三方使用人員規(guī)模達(dá)到42.6萬人。
擁有足夠競爭力的低代碼開發(fā)平臺通常具備3個核心能力。
1)aPaaS。應(yīng)用程序平臺即服務(wù),用來快速構(gòu)建后端邏輯。
2)MADP。支持移動應(yīng)用的開發(fā)平臺,用來快速構(gòu)建各種場景化應(yīng)用。
3)BPM。Business Process Management,業(yè)務(wù)流程管理,以圖形方式設(shè)計業(yè)務(wù)邏輯,然后由事務(wù)流程引擎執(zhí)行模型。
國內(nèi)大部分低代碼產(chǎn)品主要提供BPM功能,還需要繼續(xù)向aPaaS和MADP拓展。
2" 低代碼開發(fā)適用性分析
2.1" 低代碼適用系統(tǒng)
低代碼工具的推廣廣告對于具有高交付壓力的企業(yè)非常具有誘惑性“只需拖拽鼠標(biāo),非編碼人員也可以很快完成一個簡單的應(yīng)用程序”[4]。凡事都有兩面性,對于投入過熱的領(lǐng)域,我們應(yīng)當(dāng)更多的理性判斷,看清利與弊,而不是盲目跟從。低代碼開發(fā)能在一定程度上為企業(yè)降本增效、減負(fù)增產(chǎn),但也存在其局限性。
1)多數(shù)低代碼應(yīng)用平臺僅提供公有云部署,應(yīng)用和數(shù)據(jù)運行在供應(yīng)商的PaaS服務(wù)器,數(shù)據(jù)安全和隱私難以得到保障,尤其是商機(jī)商業(yè)秘密的數(shù)據(jù)。
2)數(shù)據(jù)模型、元數(shù)據(jù)等底層都是平臺專有,應(yīng)用程序和數(shù)據(jù)的缺乏移植性,對低代碼平臺廠商形成依賴。
3)可靠性和安全性存在風(fēng)險。如果低代碼開發(fā)平臺的組件存在質(zhì)量問題或安全漏洞,開發(fā)出的應(yīng)用程序的穩(wěn)定性和安全性也會受到影響,而且難以控制。
4)標(biāo)準(zhǔn)化的UI設(shè)計限制了個性化的前端交互需求。
5)固化的指令式執(zhí)行模式難以處理復(fù)雜、特殊的業(yè)務(wù)場景,業(yè)務(wù)流程只能適應(yīng)平臺提供的組件,組件的功能和類型限制了應(yīng)用程序的開發(fā)。即使技術(shù)足夠成熟,能夠處理特殊規(guī)則和流程,也需要將規(guī)則轉(zhuǎn)換為計算機(jī)能夠識別的邏輯。不能一個工具沒有或使僅有少量編碼經(jīng)驗的人員變成高級開發(fā)人員。
6)平臺的易用性和業(yè)務(wù)的靈活性難以調(diào)和,過于簡單的設(shè)計雖然方便使用但難以應(yīng)對復(fù)雜的業(yè)務(wù)場景。過于靈活的設(shè)計看似功能強大,但又難免會讓業(yè)務(wù)專家難以上手。
7)低代碼平臺上的功能代碼由工具自動生成,數(shù)據(jù)結(jié)構(gòu)和算法不透明,組件封裝,當(dāng)出現(xiàn)缺陷和故障時,排查處理會異常困難。大量的使用問題、各種平臺的報錯都堆積到低代碼平臺的運維團(tuán)隊,運維團(tuán)隊會很快成為整個系統(tǒng)的效率瓶頸。
選擇低代碼應(yīng)用平臺應(yīng)當(dāng)揚長避短,符合以下特征的應(yīng)用可以考慮使用低代碼平臺構(gòu)建:
1)業(yè)務(wù)變化快,且規(guī)則相對簡單;
2)開發(fā)重復(fù)性高;
3)管理模式標(biāo)準(zhǔn)化程度高;
4)需求不成熟,快速搭建原型;
5)對數(shù)據(jù)的安全性和隱私性安全要求不高;
6)對UI個性化要求不高。
2.2" 低代碼適用群體
從市場需求角度,低代碼平臺可以劃分為4大類型。
1)場景應(yīng)用型,以滿足業(yè)務(wù)場景應(yīng)用開發(fā)為主,開發(fā)的應(yīng)用主要用于企業(yè)自用。目前用戶量占比最高的低代碼平臺類型,約為45.7%。
2)產(chǎn)品研發(fā)型,以滿足復(fù)雜的軟件產(chǎn)品或解決方案開發(fā)為主,主要為其他企業(yè)提供應(yīng)用開發(fā)。
3)平臺生態(tài)型,提供開發(fā)標(biāo)準(zhǔn)和交易平臺,以打造開發(fā)生態(tài)為主,為客戶提供一站式的應(yīng)用開發(fā)或產(chǎn)品服務(wù)。平臺廠商通常開發(fā)標(biāo)準(zhǔn)和交易規(guī)則,為平臺上的SaaS企業(yè)、專業(yè)開發(fā)者、軟件開發(fā)商和ISV等眾多合作伙伴提供技術(shù)、渠道等支持。
4)技術(shù)賦能型,以提供人工智能算法、區(qū)塊鏈等先進(jìn)技術(shù)插件為主,降低先進(jìn)技術(shù)的應(yīng)用門檻,目前使用者占比最少,僅1.7%。
從使用者角度,低代碼平臺可以分為5類。
1)軟件產(chǎn)品提供商。將低代碼開發(fā)平臺作為一種工具提供給獨立軟件開發(fā)商ISV、系統(tǒng)集成商SI、SaaS企業(yè)、渠道代理商和咨詢公司等,以實現(xiàn)其各自的目的。如軟件企業(yè)通過購買低代碼開發(fā)工具拓展自身的底層開發(fā)能力,以占領(lǐng)更多的市場;渠道商和咨詢公司把低代碼開發(fā)作為項目實施的工具,用于提高自身的系統(tǒng)部署效率;系統(tǒng)集成商把低代碼開發(fā)視為一種新功能,招標(biāo)時為潛在客戶提供更完整的解決方案。
2)軟件開發(fā)承包商。通過低代碼開發(fā)對外提供開發(fā)服務(wù),承接各類企業(yè)的原有信息系統(tǒng)改造或創(chuàng)新應(yīng)用開發(fā)等項目。通過低代碼開發(fā)平臺,可以有效提高開發(fā)效率,降低人員投入成本,能夠在更短的時間內(nèi)開發(fā)出一個完整的應(yīng)用系統(tǒng)。
3)一站式應(yīng)用開發(fā)平臺服務(wù)商。將低代碼開發(fā)打造成一個平臺,任何人或企業(yè)都可以到平臺上開發(fā)應(yīng)用,并且可以進(jìn)行二次開發(fā)個性化定制服務(wù),而平臺則負(fù)責(zé)提供技術(shù)支持。
4)企業(yè)自用。企業(yè)內(nèi)部具備設(shè)計開發(fā)能力,使用低代碼平臺構(gòu)建自身需要的應(yīng)用系統(tǒng)。
5)個人研究學(xué)習(xí)。個人或教育機(jī)構(gòu)研究和學(xué)習(xí)低代碼平臺及技術(shù)。
按用戶專業(yè)程度,技術(shù)人員一般可分為3類。
1)特定技術(shù)人員,指前端、后端和DBA等專業(yè)技術(shù)人員。
2)一般技術(shù)人員,指有一定邏輯編碼能力的開發(fā)人員,能夠快速理解并運用表達(dá)式、事件等概念。
3)非技術(shù)人員,指沒有開發(fā)經(jīng)驗的產(chǎn)品、運營、商務(wù)和行政人員。
低代碼平臺最終的受眾群體是企業(yè),只有企業(yè)深度應(yīng)用后才能產(chǎn)生更大的規(guī)模經(jīng)濟(jì)效益,無論是其他軟件廠商集成自家產(chǎn)品后捆綁銷售,還是低代碼平臺提供商自行銷售,最終面向的都是企業(yè)用戶。
3" 低代碼開發(fā)平臺設(shè)計與實現(xiàn)
3.1" 系統(tǒng)架構(gòu)總體設(shè)計
本項目部署的目標(biāo)平臺為混合云,系統(tǒng)將以微服務(wù)、SaaS為基礎(chǔ)平臺展開設(shè)計,整合Kubernetes、Serverless和NoSQL等技術(shù)架構(gòu),構(gòu)建支持云原生低代碼技術(shù)平臺[5]。低代碼開發(fā)平臺系統(tǒng)架構(gòu)如圖1所示。
第一層支持IaaS(Infrastructure as a Service,基礎(chǔ)設(shè)施即服務(wù)),云服務(wù)提供商租賃模式的基礎(chǔ)設(shè)施,本項目使用混合云。
第二層支持CaaS(Container as a Service,容器即服務(wù)),使用云廠商提供的托管的容器編排引擎部署和運行容器,管理集群,自動擴(kuò)展和故障管理,并維護(hù)共同的基礎(chǔ)設(shè)施層,包括治理和安全,本項目使用的為青云,其內(nèi)置了Kubernetes。
第三層支持PaaS(Platform as a Service,平臺即服務(wù)),使用云服務(wù)提供商云服務(wù)中的軟件,如數(shù)據(jù)庫、對象存儲和緩存等,本項目使用對象存儲OBS。
第四層支持SaaS(Software as a Service,軟件即服務(wù)),將低代碼開發(fā)模塊封裝為單獨的應(yīng)用,提供給各個租戶。
3.2" 表單引擎設(shè)計
表單引擎是快速實現(xiàn)表單開發(fā)的輕量級設(shè)計工具。目前,有2種思路可實現(xiàn)表單引擎設(shè)計,具體如下。
1)基于文件:創(chuàng)建表單時,先創(chuàng)建一個網(wǎng)頁文件,在該文件上按需拖放Web控件,表單運行時,給網(wǎng)頁隨機(jī)生成一個地址,并將地址配置到菜單。
2)基于關(guān)系數(shù)據(jù)庫:由表單設(shè)計器、表單解析執(zhí)行器、表單模板3部分組成。表單設(shè)計器將表單元素存儲到關(guān)系數(shù)據(jù)庫,并為每個表單生成一個ID;表單模板將從表單設(shè)計器上設(shè)計的組件關(guān)系存儲到數(shù)據(jù)庫,由各個組件表組成的數(shù)據(jù)關(guān)系,組合成表單模板;表單解析執(zhí)行器解析表單模板數(shù)據(jù),并在網(wǎng)頁上展示。
3.3" 流程引擎設(shè)計
流程引擎用于為表單的審批提供支持,本項目流程引擎使用開源的Camunda,可自定義流程模板和節(jié)點驅(qū)動。
3.3.1" 數(shù)據(jù)庫設(shè)計
自定義的數(shù)據(jù)庫表主要對Camunda原生的數(shù)據(jù)庫表做進(jìn)一步擴(kuò)展,以支持子任務(wù)、任務(wù)與審批對象之間的關(guān)聯(lián)、多人會簽投票、審批歷史等與業(yè)務(wù)強相關(guān)的場景。流程引擎數(shù)據(jù)庫表設(shè)計如圖2所示。
3.3.2" 功能實現(xiàn)
各租戶可根據(jù)自身業(yè)務(wù)流程需要自定義流程模板,并可保存后再次編輯。Camunda工作流引擎的流程元素節(jié)點主要包括開始事件、中間/邊界事件、結(jié)束事件、網(wǎng)關(guān)、任務(wù)、子流程、數(shù)據(jù)對象引用、數(shù)據(jù)倉庫引用、參與者和組。其中,最常用的任務(wù)節(jié)點包括常規(guī)任務(wù)、發(fā)送任務(wù)、接收任務(wù)、業(yè)務(wù)規(guī)則任務(wù)、服務(wù)任務(wù)、腳本任務(wù)、調(diào)用活動、折疊的子流程和展開的子流程。
4" 結(jié)束語
低代碼和零代碼平臺近年在國內(nèi)外倍受重視,技術(shù)、人力和資金投入逐步加大,預(yù)計在今后的3~5年內(nèi),隨著云計算、AI和編程語言等技術(shù)的進(jìn)一步發(fā)展,低代碼平臺會更加成熟,對構(gòu)建復(fù)雜業(yè)務(wù)系統(tǒng)的支持會更加友好。企業(yè)用戶的增加必將促使低代碼平臺更快的完善和成熟,引領(lǐng)軟件開發(fā)的趨勢和方向。
參考文獻(xiàn):
[1] 2022中國“低代碼”領(lǐng)域十大趨勢[EB/OL].https://www.grapecity.com.cn/news/grapecity/gc-top-10-trends-in-lowcode-in-china-2022.
[2] 低代碼應(yīng)用平臺(LCAP)研究[EB/OL].https://blog.51cto.com/u_15127572/2715585.
[3] 化繁為簡:低代碼行業(yè)研究報告[C]//上海艾瑞市場咨詢有限公司.艾瑞咨詢系列研究報告,2021:187-237.
[4] The Enterprise Architect[EB/OL].http://www.theenterprisearchitect.eu/blog/mdd-model-driven-development/.
[5] 兩種低代碼模型驅(qū)動開發(fā)技術(shù)對比[EB/OL].https://blog.csdn.net/ahulovey/article/details/115489551.