數(shù)字經(jīng)濟(jì)時(shí)代,隨著信息化管理水平的提高,企業(yè)對(duì)軟件應(yīng)用的需求也不斷增長(zhǎng)。但在系統(tǒng)建設(shè)過程中,企業(yè)往往面臨著部分軟件無(wú)法滿足需求、應(yīng)用開發(fā)效率低下、設(shè)備適配等挑戰(zhàn)。品高軟件基于元數(shù)據(jù)的低代碼應(yīng)用快速構(gòu)建框架推出了聆客應(yīng)用工廠工具,能有效幫助企業(yè)快速構(gòu)建及交付企業(yè)內(nèi)各種常見管理型系統(tǒng),本文將對(duì)其原理進(jìn)行解析。聯(lián)系客服小表妹(VX:pingaoyunzzm)了解更多。
? 本期大咖 傅梁生
品高云系統(tǒng)架構(gòu)師,擁有十余年豐富的企業(yè)信息化技術(shù)架構(gòu)經(jīng)驗(yàn),參與過眾多政府、移動(dòng)等大型企事業(yè)單位信息化系統(tǒng)的建設(shè);目前主負(fù)責(zé)品高云應(yīng)用支撐平臺(tái)(BingoFuse)的設(shè)計(jì)和研發(fā)工作,包括:企業(yè)應(yīng)用微服務(wù)化研究、基于元數(shù)據(jù)模式的低代碼開發(fā)框架研發(fā)、BingoFuse平臺(tái)基礎(chǔ)服務(wù)(如:統(tǒng)一認(rèn)證服務(wù)、統(tǒng)一用戶服務(wù)等)的研發(fā)。
一、前言
最近幾年來,伴隨移動(dòng)互聯(lián)網(wǎng)的迅猛發(fā)展,數(shù)字經(jīng)濟(jì)的貢獻(xiàn)率不斷提升,移動(dòng)互聯(lián)網(wǎng)成為了經(jīng)濟(jì)發(fā)展重要引擎。越來越多的企業(yè)意識(shí)到提高企業(yè)管理信息化水平的重要性,引發(fā)了對(duì)企業(yè)管理軟件的巨大需求。但不論大到跨國(guó)公司,還是小到三五人的工作室,在系統(tǒng)建設(shè)過程中或多或少都會(huì)遇到這樣的情況:
• 現(xiàn)有的系統(tǒng)可以滿足大部分的需求,但總會(huì)遇到小部分無(wú)法通過現(xiàn)有的軟件解決需求;
• 各種突發(fā)的需求,使IT團(tuán)隊(duì)的工作常常堆積如山,企業(yè)經(jīng)常無(wú)法快速地推出應(yīng)用程序以應(yīng)對(duì)快速變化的需求;
• 現(xiàn)在的客戶和員工都希望通過各種不同的設(shè)備來使用應(yīng)用程序,這給企業(yè)IT團(tuán)隊(duì)帶來了更大的壓力。
如何解決這樣的困境?一個(gè)可行的選擇是通過低代碼開發(fā)平臺(tái)(Low-Code Platform)來構(gòu)建企業(yè)的應(yīng)用。“低代碼應(yīng)用程序開發(fā)”這個(gè)詞語(yǔ)近幾年才出現(xiàn),但這并不是一個(gè)新概念。它允許開發(fā)人員充分利用現(xiàn)有的模板和組件,以可視化的工具,將各種預(yù)構(gòu)建的元素、表單和對(duì)象拖動(dòng)到一起,伴以少量的代碼,快速的生成應(yīng)用程序。這種方法一方面可以降低企業(yè)的應(yīng)用開發(fā)成本,另一方面可以將原本數(shù)月甚至數(shù)年的開發(fā)時(shí)間成倍縮短,從而幫助企業(yè)實(shí)現(xiàn)降本增效的價(jià)值。
二、應(yīng)用工廠
品高軟件借鑒之前建設(shè)各種企業(yè)信息系統(tǒng)的經(jīng)驗(yàn),提取管理型信息系統(tǒng)建設(shè)過程中普遍遇到的問題,推出了以元數(shù)據(jù)為基礎(chǔ)的低代碼應(yīng)用快速構(gòu)建框架,并基于此框架推出了聆客應(yīng)用工廠工具。通過該工具可以快速地構(gòu)建及交付企業(yè)內(nèi)各種常見管理型系統(tǒng),如:資產(chǎn)管理類、流程審批類、團(tuán)隊(duì)協(xié)作類等系統(tǒng)(更多應(yīng)用場(chǎng)景可參閱《快速搭建企業(yè)定制化業(yè)務(wù)系統(tǒng):聆客應(yīng)用工廠的最佳實(shí)踐》一文),其架構(gòu)如下:
應(yīng)用工廠架構(gòu)示意圖
應(yīng)用工廠在設(shè)計(jì)之初,就充分考慮了各企業(yè)間應(yīng)用的獨(dú)立性和數(shù)據(jù)的隔離性,采用設(shè)計(jì)與運(yùn)行分離的模式進(jìn)行應(yīng)用的構(gòu)建。首先,由企業(yè)的IT管理員,在應(yīng)用設(shè)計(jì)器上進(jìn)行應(yīng)用的設(shè)計(jì)和開發(fā);應(yīng)用開發(fā)完成后,通過發(fā)布的方式,將應(yīng)用發(fā)布到企業(yè)獨(dú)立的元數(shù)據(jù)運(yùn)行引擎上;然后由引擎根據(jù)發(fā)布的數(shù)據(jù)生成獨(dú)立的數(shù)據(jù)庫(kù)及其它運(yùn)行數(shù)據(jù);同時(shí),也會(huì)自動(dòng)在應(yīng)用市場(chǎng)上生成相應(yīng)的應(yīng)用。之后,企業(yè)的客戶和員工就可以通過市場(chǎng)找到并使用該應(yīng)用了。
三、應(yīng)用設(shè)計(jì)器
應(yīng)用設(shè)計(jì)器的主要作用就是通過各種設(shè)計(jì)工具,生成系統(tǒng)的元數(shù)據(jù)信息,以元數(shù)據(jù)的方式來定義整個(gè)應(yīng)用。目前應(yīng)用工廠的元數(shù)據(jù)分為這幾種:模型元數(shù)據(jù)、頁(yè)面元數(shù)據(jù)、審批流元數(shù)據(jù)以及業(yè)務(wù)邏輯元數(shù)據(jù)。
應(yīng)用工廠的設(shè)計(jì)器采用了基于瀏覽器的開發(fā)方法,提供了應(yīng)用程序的可視化工具 ,通過拖放式的所見即所得技術(shù)來加快用戶界面的生成。設(shè)計(jì)器包含以下幾個(gè)主要的部分:
01 | 模型設(shè)計(jì)器
用于業(yè)務(wù)數(shù)據(jù)建模,使用了表單自動(dòng)生成模型的方式,讓普通用戶更方便、直觀的進(jìn)行業(yè)務(wù)數(shù)據(jù)建模。在表單設(shè)計(jì)器中,用戶通過直觀的拖拽想要的輸入控件到表單頁(yè)面上,系統(tǒng)根據(jù)控件類型,自動(dòng)幫用戶生成合適的字段類型,讓普通的用戶跨過傳統(tǒng)建模過程中需要設(shè)置復(fù)雜的數(shù)據(jù)配置項(xiàng)這一環(huán)節(jié),在完成表單的同時(shí),也能很容易的完成數(shù)據(jù)模型的設(shè)計(jì)。同時(shí),系統(tǒng)也預(yù)留了數(shù)據(jù)綁定的機(jī)制,讓更高級(jí)的開發(fā)人員,在另外的界面通過導(dǎo)入、或按傳統(tǒng)方式建模后,再將字段與表單控件進(jìn)行綁定。
02 | 頁(yè)面構(gòu)建器
應(yīng)用工廠采用以組件構(gòu)建頁(yè)面的思路,可重用的組件分為幾種。
第一類:由平臺(tái)提供的通用組件,如:表單、列表 、圖表、流程審批單等通用組件;
第二類:也是由平臺(tái)提供的特定業(yè)務(wù)組件,如:聊天、工作動(dòng)態(tài)、日程、任務(wù)等,該類組件依賴平臺(tái)相關(guān)服務(wù),用戶只需使用該類組件,即可完成特定的業(yè)務(wù)功能;
第三類:由用戶根據(jù)平臺(tái)組件開發(fā)規(guī)范,自行開發(fā)并發(fā)布到平臺(tái)的組件。
03 | 邏輯定義
系統(tǒng)內(nèi)的邏輯分為前端邏輯和服務(wù)端邏輯,不論是前端還是服務(wù)端邏輯,均可以通過JavaScript語(yǔ)言實(shí)現(xiàn),開發(fā)人員使用同樣的語(yǔ)言進(jìn)行兩端邏輯的定義。
前端邏輯:實(shí)現(xiàn)前端業(yè)務(wù)處理,一般由組件或頁(yè)面通過事件方式,執(zhí)行用戶定義的邏輯;
服務(wù)端邏輯:服務(wù)端的業(yè)務(wù)處理,開放人員既可為前端創(chuàng)建新的數(shù)據(jù)接口,也可通過事件方式,在已有的數(shù)據(jù)處理中,添加自定義的業(yè)務(wù)處理。
04 | 流程設(shè)計(jì)
引入了Activiti作為平臺(tái)的核心流程引擎, 提供在線流程設(shè)計(jì)工具與平臺(tái)的數(shù)據(jù)模型、權(quán)限控制、業(yè)務(wù)邏輯進(jìn)行深入的整合,用戶在一個(gè)界面就可以完成所有的工作。
四、元數(shù)據(jù)引擎
元數(shù)據(jù)引擎作為應(yīng)用工廠的核心組成部分,是由公司自主研發(fā)的服務(wù)端運(yùn)行引擎,它負(fù)責(zé)對(duì)上面設(shè)計(jì)的元數(shù)據(jù)進(jìn)行解析,并自動(dòng)生成各種處理邏輯。它是應(yīng)用在服務(wù)端的執(zhí)行器,它主要包含以下功能:
• 模型同步:根據(jù)應(yīng)用設(shè)計(jì)器定義的業(yè)務(wù)數(shù)據(jù)模型,自動(dòng)生成對(duì)應(yīng)的物理數(shù)據(jù)庫(kù),當(dāng)模型發(fā)生變化時(shí),同步對(duì)物理數(shù)據(jù)庫(kù)進(jìn)行變更。
• 數(shù)據(jù)接口:根據(jù)數(shù)據(jù)模型,自動(dòng)生成增、刪、查、修改等操作的標(biāo)準(zhǔn)Restful接口,供前端模塊和其它應(yīng)用調(diào)用。
• 腳本引擎:內(nèi)置JavaScript腳本執(zhí)行引擎,提供腳本動(dòng)態(tài)加載及執(zhí)行功能,負(fù)責(zé)將應(yīng)用設(shè)計(jì)器定義的業(yè)務(wù)邏輯轉(zhuǎn)成可執(zhí)行的代碼,并在指定的時(shí)機(jī)執(zhí)行。
• 安全控制:引擎提供了兩層的權(quán)限控制,首先,按標(biāo)準(zhǔn)OAuth2協(xié)議提供了接口調(diào)用的安全控制;其次,根據(jù)設(shè)計(jì)配置,對(duì)每個(gè)實(shí)體提供了到記錄級(jí)的數(shù)據(jù)權(quán)限控制方案。
五、渲染引擎
平臺(tái)采用前后端完全分離的模式,前端根據(jù)應(yīng)用設(shè)計(jì)器定義的各種界面元數(shù)據(jù),通過前端組件化技術(shù),能夠自動(dòng)生成各種界面。
同時(shí),由于通過應(yīng)用設(shè)計(jì)器定義的界面元數(shù)據(jù)是與平臺(tái)無(wú)關(guān)的,Web端、移動(dòng)端、PC端都可以根據(jù)這些信息渲染出符合當(dāng)前平臺(tái)的用戶界面,實(shí)現(xiàn)共享同一份配置。并且能根據(jù)用戶不同的設(shè)備和屏幕分辨率自動(dòng)調(diào)整界面,滿足客戶和員工通過不同設(shè)備來使用應(yīng)用程序的要求。
六、平臺(tái)服務(wù)支撐
作為一款面向企業(yè)內(nèi)管理型信息的應(yīng)用構(gòu)建工具,應(yīng)用工廠無(wú)縫接入了品高云旗下企業(yè)協(xié)同產(chǎn)品——聆客(BingoLink)。應(yīng)用工廠構(gòu)建的應(yīng)用,通過平臺(tái)組件可以輕松的使用聆客中的各種功能。如:流程發(fā)起后,推送待辦到業(yè)務(wù)大廳,發(fā)送消息給審批人,調(diào)用聆客中的協(xié)作化套件,輕松創(chuàng)建任務(wù)、日程等。
七、容器自動(dòng)化交付
為了減少企業(yè)間應(yīng)用的相互影響,根據(jù)隔離級(jí)別,平臺(tái)為每個(gè)企業(yè)(或應(yīng)用)生成獨(dú)立的運(yùn)行引擎,對(duì)于某些負(fù)載較高的應(yīng)用,也可以生成多個(gè)運(yùn)行結(jié)點(diǎn)。
為適應(yīng)這種不斷增長(zhǎng)的引擎的部署、管理、及監(jiān)控,平臺(tái)使用了容器技術(shù),接入了品高的容器產(chǎn)品,開發(fā)人員只需要在應(yīng)用設(shè)計(jì)器上點(diǎn)擊發(fā)布,應(yīng)用就會(huì)自動(dòng)進(jìn)行部署和更新,極大減少了開發(fā)人員部署和維護(hù)的成本。
八、總結(jié)
目前,應(yīng)用工廠已在聆客中上線。基于BingoFuse中低代碼應(yīng)用快速構(gòu)建框架的賦能,應(yīng)用工廠可幫助企業(yè)用戶快速部署適用于包括人事、行政、項(xiàng)目協(xié)作、OA審批、銷售、采購(gòu)、生產(chǎn)、庫(kù)存、財(cái)務(wù)等場(chǎng)景的個(gè)性化業(yè)務(wù)系統(tǒng),讓IT伴隨著企業(yè)的發(fā)展同步升級(jí)迭代,為企業(yè)的全面信息化提供彈性支撐。
? 關(guān)于 BingoFuse
品高云應(yīng)用支撐平臺(tái)(BingoFuse)是結(jié)合了云計(jì)算和移動(dòng)互聯(lián)等技術(shù)的企業(yè)級(jí)應(yīng)用全生命周期構(gòu)建和交付平臺(tái),為企業(yè)應(yīng)用的移動(dòng)化、微服務(wù)化和容器化提供全方位的基礎(chǔ)服務(wù)、開發(fā)運(yùn)維工具和集成管理。
基于 BingoFuse,企業(yè)能夠從傳統(tǒng)相互孤立、周期過長(zhǎng)的應(yīng)用交付形態(tài)升級(jí)為快速適應(yīng)業(yè)務(wù)變化、開放共享的新一代交付模式,有效地縮短實(shí)施周期、降低實(shí)施成本和改進(jìn)用戶體驗(yàn)等,從而為企業(yè)應(yīng)用整體上云提供有力支撐。