編者按:近兩年來,低代碼逐步出現在人們的視野中,特別是伴隨著我國政府、企業的數字化轉型,一些專注于數字化轉型的廠商在集聚了相當的勢能之后,大力推動了低代碼的發展和行業普及。據市場調查顯示,2020年,國內低代碼平臺市場規模已達到18.5億左右,正處于高速增長期。
在疫情期間,對無紙化辦公、信息采集的需求更加迫切,也催生了大量低代碼應用的場景,如居民健康信息采集、出行上報等。隨著國內廠商的大力投入、低代碼技術的日趨成熟,以及行業經驗的積累,越來越多的應用場景將會被挖掘,未來的低代碼市場將會維持較高的增長。
本文中,百分點科技大數據技術團隊介紹了低代碼相關的內容,包括低代碼的概念、核心能力技術路線及應用場景等,以及百分點低代碼平臺的建設實踐與特點。
一、低代碼平臺概述
低代碼開發平臺(low-code development platform,簡稱LCDP),是指通過提供可視化編程組件以及軟件全生命周期管理能力,大大降低開發者開發代碼量、開發難度和維護成本的開發者生產力工具。
需要注意的是,這里開發者的定義不同于傳統的軟件開發者,低代碼由于其出色的可視化能力,大大地降低了開發一款應用的門檻,一個沒有任何編程基礎的公司職員也可以作為低代碼平臺的開發者。
從低代碼的概念中,我們可以總結出低代碼平臺需要具備的三大核心能力:
全棧可視化編程
全棧可視化編程的重點有兩方面,第一是可視化,可視化不僅包括編程過程中,通過托拉拽組件和配置完成應用編寫的操作,也包括了平臺提供的所見即所得的能力;第二是全棧,傳統的IDE也有部分是支持可視化開發能力的,但是低代碼平臺更強調的是全棧,是整個軟件開發中的界面、數據、邏輯,以及系統運維全部可視化。
全生命周期管理
作為一個一站式應用管理平臺,低代碼支持應用的完整生命周期管理,從應用的設計階段開始,經歷開發、構建、測試、部署,以及上線后的運維。
低代碼擴展能力
低代碼開發平臺在部分場景下仍然離不開代碼,因此平臺必須支持在必要的情況下通過少量代碼來應對應用需求的靈活擴展,例如添加自定義的組件、允許用戶定制CSS樣式、專用加密規則和非標準需求等。
二、技術路線及應用場景
根據低代碼的技術設計和適用場景,可以將低代碼路線分為零代碼平臺和低代碼平臺:
三、百分點低代碼平臺實踐
百分點低代碼平臺,產品名:Clever Builder,選取的是BPM流程表單型路線。我們選擇BPM型低代碼平臺,主要出于以下幾點考慮:
BPM的產品成熟度較高,在OA、CRM等領域有非常豐富的應用場景,且場景通用性、可復制性較強。公司服務的客戶主要集中在政府應急、公共安全等領域,這些領域所需的快速、可靠、多變十分契合BPM型低代碼平臺。
1. 百分點低代碼平臺技術架構
百分點低代碼平臺的技術架構如下:
整個低代碼平臺主要有三大能力。
(1)可視化表單、流程構建能力
Clever Builder采用了自研的表單可視化和流程圖繪制可視化引擎。在表單方面,組件可分為:
常用組件:文本、數字、日期、單多選、圖片、文件等相關組件。高級組件:關聯表單數據、組織架構、成員等高級組件。
平臺會在接下來的版本中,根據客戶的需求,增加更多類型的組件支持。流程引擎方面,Clever Builder共含有三類業務節點,一類分支節點。三類節點分別為:審批節點、抄送節點、填寫節點。一類分支節點,是指互斥分支節點,在分支節點的條件分支中,平臺支持設置復雜的過濾條件,從而實現靈活的業務條件配置。通過對可視化表單和流程構建引擎的使用,用戶可以通過平臺構建出貼合實際業務的流程表單,實現所“建”即所得。
(2)流程流轉和版本管理能力
作為一個BPM低代碼平臺,流程的正確流轉是非常關鍵的基礎能力,百分點低代碼平臺通過自定義的數據格式轉換引擎,將用戶可視化定義的流程,轉化為完全符合BPMN2.0標準的可執行格式進行流程的執行,保證了流程的準確流轉。同時,流程引擎也會將流程的每一步執行記錄下來,為用戶提供清晰的流程執行記錄。
(3)對接第三方系統能力
低代碼平臺服務的客戶大部分都擁有自己的OA系統和相關數據庫,因此,若想要真正發揮平臺的價值,必定需要靈活對接第三方系統的能力。百分點低代碼平臺提供了三部分對接第三方系統的能力,它們分別是組織架構對接、數據對接和通知消息對接。
組織架構對接
Clever Builder支持對接第三方系統的組織架構和用戶,可同時支持自身組織架構用戶體系和第三方系統用戶體系,基于其高兼容性的組織架構和用戶數據結構設計,在有需要的情況下,還可快速定制化開發針對某一第三方系統的組織架構對接。
數據對接能力
由于用戶設計表單的數據結構的不確定性,BPM型低代碼平臺大部分會將表單數據存放于類似于MongoDB的NoSQL數據庫,以方便數據的存儲和系統查詢等操作。
Clever Builder出于以上兩點考慮,用戶提交的表單數據也保存在MongoDB中。但是這會帶來一些問題:
首先,表單數據是非結構化的,這將為后續數據的可視化統計帶來不便。
其次,有大量企業用戶本身是擁有自身的業務數據表的,他們更希望將收集到的數據保存到其指定的業務表中,若低代碼平臺只支持自身數據表的數據寫入,將會導致數據孤島。
這里著重介紹一下平臺的數據對接能力和步驟。
第一步:組織管理員可在系統管理中配置需要的數據源,其他用戶可在表單中可視化設置表單字段與指定數據庫表字段的映射關系,主外鍵字段關系。
第二步:設置完成后,當用戶提交表單或表單通過流程后,表單數據會根據配置的映射關系,自動同步到用戶設置的自身業務表中,若需要修改已提交的表單數據,也只需在平臺的數據管理模塊修改,數據表會自動同步到相應的業務表中。
通過第三方數據同步功能,百分點低代碼平臺能更好地融入客戶已有的信息化體系。
通知消息對接
BPM型低代碼平臺涉及流程的提交、審核、填寫、回退、抄送和催辦等一系列動作,每一個動作都需要提醒相關責任人,因此,百分點低代碼平臺還設置了自身的消息提醒模塊。
但在實際使用過程中,可能需要將通知提醒通過原有的統一通知系統送達用戶手中,做到通知消息的集中管理,方便用戶的信息獲取。因此,Clever Builder消息通知模塊采用了可插拔設計,可通過配置、快速修改系統的通知送達方式,后續將對接釘釘和微信的相關消息通知能力,若客戶有需要,也可在短時間內實現對接客戶的通知中心。
2. 流程引擎介紹
Clever Builder進行流程結構的轉換,以及流程的流轉,都離不開平臺中最核心的引擎之一——流程引擎。
流程引擎承擔了將用戶可視化設置的流程轉化為可執行的數據結構,并進行流轉的職責。現今市面上已存在多種開源的流程引擎,為了保證流程引擎的規范性和可移植性,業界對流程引擎的結構定義了一些通用的規則:BPMN2.0。
那么,什么是BPMN2.0,它又定義了哪些內容呢?
業務流程模型注解(Business Process Modeling Notation -BPMN)是業務流程模型的一種標準圖形注解。這個標準是由對象管理組(Object ManagementGroup-OMG)維護的。
BPMN規范的2.0版本,當前已處于最終階段了,計劃不久就會完成,允許在BPMN的圖形和元素中添加精確的技術細節,同時制定BPMN元素的執行語法。通過使用XML語言來指定業務流程的可執行語法,BPMN規范已演變為業務流程的語言,可以執行在任何兼容BPMN2的流程引擎中,同時依然可以使用強大的圖形注解。
它的優點在于:
標準全面,可以涵蓋流程中所有的內容。通用,只要是符合BPMN2.0語法的流程引擎,就可以執行生成的標準XML業務流程。
下面我們對BPMN2.0標準的XML標簽進行簡單的說明。
以上圖的簡單流程為例,來看一下對應的BPMN標準的XML格式。
Clever Builder的流程引擎,完全符合BPMN2.0標準,因此具有很好的擴展性和兼容性。
下面詳細介紹Clever Builder流程的構建和流轉過程。
(1)流程發布
在介紹發布的流程之前,我們需要先介紹幾個概念:
模板
模板是指用戶通過可視化定義形成的業務流程描述,它定義了流程的起始、結束、節點、連接線和其他內容。
流程定義
模板在用戶進行發布操作后,會生成相應的流程定義,流程定義完全繼承了模板對于業務流程的描述,每一次的發布操作都會為指定模板生成一個流程定義。若模板若作出了修改,新發布的流程定義也會隨之變化。
流程實例
用戶實際發起一個流程時,會生成對應流程定義的流程實例,它除了包含對應流程定義的內容外,還含有用戶提交的數據、流程節點責任人和流程流轉信息等內容。
弄明白了上面的內容,我們可以更好地理解流程的發布過程。
首先,用戶通過可視化方式構建的流程在數據庫中以FlowNode、FlowEdge分為點和線的格式保存,該結構的優點在于前端構建展示流程圖較為方便。
當用戶點擊發布按鈕時,流程將通過調用格式轉換工具,將流程中的節點、線、條件等信息封裝為一個對象,并進行相應的可執行測試。若測試通過,則會用對象生成一個完全符合BPMN2.0標準的XML格式文件。
(2)流程流轉
流程引擎的流轉簡化流程如下:
我們可以將其簡化為三大部分:
流程對象解析器
上圖中藍色的部分為流程對象解析器,它在接收到流程實例的啟動命令時,負責將XML格式的流程模板轉化為可執行的Process內存對象,方便后續執行操作。
流轉推進器
圖中綠色的部分為流程推進器。流程推進器維護了一個操作棧,操作棧中壓入了所有待執行操作,這些操作可能是需要執行一段腳本,可能是需要解析一個表達式,它會將棧頂的操作取出,判斷具體如何執行,并在該操作執行完成后,判斷是否有待執行的下一步操作,若有下一步操作,將會有一條操作被壓入棧中。
命令執行器
圖中橙色部分為命令執行器。命令執行器主要負責執行流程推進器中取出的操作,它包含了多個攔截器,包括引擎的執行攔截器和用戶自定義的攔截器等,它們將會在操作執行時進行操作的處理和執行。
通過三大部分的配合,流程即可完成流轉。
3. 百分點低代碼平臺的優勢
市面上的低代碼平臺越來越多,那么百分點低代碼平臺相較于其他產品有什么優勢,又有什么特點呢?
相較于某些頭部BPM型低代碼平臺,百分點低代碼平臺具有更好的開放能力。
除了能夠集成第三方系統的用戶、組織架構,以及消息通知等能力,還支持和客戶數據庫進行對接,將表單數據對接到客戶的業務數據庫,從而能更好地融入客戶的信息化系統中去,讓客戶能更好地“用起來”。
目前,百分點低代碼平臺已在為某國家級信息服務平臺提供服務,為該平臺快速搭建了數十個分類信息錄入應用,有效地支撐了該平臺的日常運轉。
結語
隨著國內產業數字化轉型和國家新基建的推進,會有越來越多的企業業務進行數字化升級,按需打造應用軟件成為主流趨勢。
而低代碼平臺剝離了專業業務知識,轉而通過平臺提供一種讓企業自己積累和分享專業知識及業務經驗的標準和能力,對軟件廠商來說降低了實施的成本,對企業來說提升自己的掌控力和業務響應能力,這是一個巨大的進步。大量國內外軟件廠商和創業公司進入這一領域并開始服務越來越多的客戶也充分證明了這種趨勢。
在后續的產品迭代中,百分點低代碼平臺將結合自身特點,深入與釘釘和企業微信的集成,借助更大的平臺,探索市場。同時,將持續加強自身的平臺能力和業務系統對接能力,更好地為客戶創造價值。
百分點科技產品團隊抓住行業發展的機遇,結合自身產品優勢,不斷完善低代碼平臺能力,積極踐行公司”用數據智能推動社會進步“的使命。