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