前言
鑒於套裝核心應用軟件產品的實施復雜性,以及無法很好地滿足企業深度定制化與無法快速應對不斷變化的業務需求帶來的挑戰,越來越多的企業希望能夠利用低代碼技術來實施自主/合作開發其企業級應用。那么企業如何選擇合適的低代碼技術平台,以及如何利用低代碼平台來開發企業級應用呢?以下將分三個方面進行闡述:
企業級核心應用特點;
面向企業級應用的低代碼平台應具備的能力;
利用低代碼技術構建企業級應用的最佳實踐;
上期介紹了第一方面企業級核心應用特點,今天為大家介紹第二方面面向企業級應用的低代碼平台應具備的能力。
面向企業級應用的低代碼平台應具備的能力
面向企業級應用的低代碼平台除了具備典型低代碼平台的基本能力外,應該具備以下關鍵能力:
面向業務的軟件設計模式
有些低代碼平台采用“以人的活動為中心”的軟件設計模式,這類平台關注前端頁面展示及人機交互,對於追求用戶體驗的客戶來說具有一定的吸引力。但是對於像核心業務系統這樣的復雜應用,這種設計模式就有些力不從心了,因為這類應用除了要處理人工決策流外,還要處理大量的商流、資金流、物流、數據流等,其中會包括很多復雜的業務規則和計算。開發這類應用系統需要面向業務設計模式的低代碼技術平台,例如:模型驅動架構(ModelDriven Architecture-MDA)、領域驅動設計(Domain Driven Design-DDD)。
關於MDA:MDA是OMG(國際對象管理組織)2001年繼CORBA架構推出的全新的軟件開發框架,MDA從技術架構上徹底實現了平台無關性,通過模型的抽取與建立來實現免代碼開發,從而保護了用戶已建立的“業務邏輯大廈”的安然無恙。MDA可理解為圍繞支持模型驅動開發過程的一系列標准的框架,這些標准包括:統一建模語言UML5、元對象機制MOF6等。MDA架構思想,抽取了技術無關性的業務模型和平台有關性的平台執行引擎,繼而實現了軟件由模型化建模的零代碼開發模式,使普通IT人員也能構建出足夠復雜、專業的軟件系統。
關於DDD:領域驅動設計是一套綜合軟件系統分析和設計的面向對象建模方法(2004年首先由Eric Evans提出),強調應該從一個客觀的角度,根據用戶需求挖掘出領域內的相關事物,思考這些事物的本質關聯及其變化規律作為出發點去思考問題,強調避免以人的活動為中心的思考方法。目前越來越多的受到業界的關注,並被用於許多大型軟件系統的設計與開發中。
能夠處理復雜業務流程的流程引擎技術
與我們在OA系統中的以人工決策處理的審批流(這類流程更關注節點路由的靈活選擇)不同,業務流程相對來說要復雜的多。業務流程管理需要能夠處理復雜的業務活動形式(包括:並行活動、串行活動、子活動、重復活動等)外,還需要能夠響應來自其它系統或流程發出的各種信號;除了能夠處理人工任務外,更需要處理自動化任務;業務流程更關注的是自動完成復雜的業務規則及數據計算,而不是僅完成表單數據的傳遞。
因此,符合bpmn2.0規范的流程引擎技術應該是必備。
關於bpmn2.0:bpmn(Business Process Model and Notation,即業務流程建模語言),在2004年5月由BPMI Notation Working Group對外發布,這就是BPMN 1.0 規范。后BPMI並入到OMG組織,並在2011年推出BPMN2.0標准。目前bpmn已經成為事實上的行業標准,國際各大知名IT廠商都支持bpmn2.0。
對象管理組織(英文Object Management Group,縮寫為OMG)是一個國際協會,開始的目的是為分布式面向對象系統建立標准,現在致力於建立對程序、系統 和 業務流程建模的標准,以及基於模型的標准。
能夠定義復雜業務規則的規則引擎技術
企業級應用系統中要處理的業務規則非常多、業務規則所關聯的業務對象很多、業務規則應用的應用場景也各不相同(我們稱為3多),同時這些業務要素也經常處於變化之中,這樣印證了一句俗語“惟一不變的是變化”。我們在開發這類應用時最初的解決方案是通過硬代碼的方式來實現這些業務規則,這種解決方案的不足之處是代碼復雜、開發周期長,同時也無法很好地解決業務規則變化的問題。由於是緊耦合模式,對於一個地方的修改都可能會給其它正常功能模塊帶來無法預知的影響,正所謂“牽一發而動全身”。
為了解決變化的需求,人們首先采用了參數配置的模式來解決(我們常用的ERP系統通常都有大量的后台配置頁面,有些后台配置頁面甚至會比前端業務處理頁面還要多,例如:SAP/R3、Oracle/EBS等)。但這種解決方案不是以業務人員容易理解的語言和形式來進行規則配置,也無法滿足細顆粒度靈活配置業務規則的需求。
為了更好地解決上述問題,一種新的技術便應運而生:規則引擎技術。規則引擎技術將業務規則、業務對象等要素從主處理流程代碼剝離,通過一個獨立的管理系統對這些要素進行統一管理、可視化業務規則建模(甚至允許業務人員參與規則的定義和修改)和規則的高效執行,最終對外提供統一的服務接口。利用規則引擎技術不但能夠很好地解決規則可配置化的需求,同時還大大地降低了應用系統代碼的復雜性,使得應用系統的魯棒性得以極大地提升。
因此企業級應用的低代碼平台應該擁有一個好的規則引擎。一個合格的規則引擎應該能夠實現:對業務對象的有效管理、可視化配置業務規則、支持多種業務規則模式、高效的計算規則執行器、集成流程引擎、規則服務化等關鍵要素。
能夠定義復雜業務對象及數據模型的技術
企業級應用所要處理的業務對象模式都比較復雜,普通的頁面展示模型及基於關系數據庫的關系模型無法很好地描述這些復雜的業務對象,這也是人們認為傳統的基於前端頁面交互式的低代碼開發平台無法用於開發復雜應用的主要原因。因此,企業級應用的低代碼平台應該具備很強的定義和處理復雜業務對象模型的能力。
典型的復雜業務對象包括:
SDT( Structured DataType)對象 -- 一種結構化、集合類的復雜數據類型對象,常用於描述復雜的業務對象,例如JSON等;
Transaction對象 -- 一種基於關系模式的高級抽象與擴展層對象,作用與傳統的數據庫關系對象類似;
DataProvider對象 -- 基於SDT數據類型的實例化數據對象,常用於復雜的數據轉換及數據傳遞管道;
業務流程圖 -- 可執行的業務流程的可視化展現;
Query對象 -- 可以從數據源返回一組數據集,通過可視化模式定義復雜的數據處理邏輯;
Procedure對象 -- 能夠處理任何業務邏輯的處理單元;
API對象 -- 可以將第三方API轉換成內部使用的普通業務對象等。
能夠提供可復用業務組件的知識庫
從對企業應用的剖析可以看出,企業級應用承載了多個相互關聯的企業核心業務流程;這些流程由許多的低層級流程片段(子流程)所組成,而這些流程片段又對各種業務對象進行不同/相同的處理;每個流程片段的流程節點又由不同的處理模塊/頁面來組成。進一步分析我們發現這些不同的流程片段/功能模塊有很多具有相同的或類似的屬性。我們可以通過組件化、配置化的方法來實現這些模塊的開發,然后再通過搭積木的方法來組成不同的應用子系統。
因此企業級低代碼平台應該能夠提供可復用業務組件的知識庫,這種能夠不斷積累的知識庫將會使得企業級應用開發更敏捷,IT系統支撐企業業務拓展能力更強,企業應對市場變化更從容。
能夠方便實現與第三方系統整合的流程整合能力與數據整合能力等
我們知道企業級應用需要與許多第三方系統進行大量的交互,開發人員在開發企業級應用時便需要針對這些第三方系統開發大量的接口模塊來實現。有過開發接口程序經歷的技術人員都知道接口開發工作既繁瑣又容易出錯,這也使得接口開發工作占據了整個軟件開發工作相當大的比重。
為了降低接口開發的難度和工作量,同時又能夠保證接口開發質量,企業級低代碼平台應該能夠針對第三方系統所常用的不同技術和架構提供有效的接口整合解決方案,並能夠將接口程序的底層代碼進行封裝,讓開發人員像調用本地對象那樣調用相關接口。同時又能夠將本地業務組件方便地封裝成標准協議接口服務,以便於第三方系統的調用。
能夠支持多種部署模式,不受平台本身的限制
隨着基於Docker容器技術的虛擬化技術的成熟,越來越多的企業開始擁抱Docker技術,企業級低代碼平台應該能夠支持基於Docker技術的虛擬化部署模式;在支持“雲”部署方面,應該能夠支持公有雲、混合雲及私有雲的部署模式。考慮到應用整合需求及數據安全性,企業一般都不會選擇將其企業級應用部署到到雲端,因此,支持本地化部署將是企業級應用的首選。
根據低代碼平台的軟件生成的兩大技術(源代碼生成技術、模型解析技術)的分析,源代碼生成技術能夠使得所生成的軟件應用脫離開發運行平台進行獨立部署,這使得軟件系統部署靈活性更高、更容易與企業自身的IT基礎架構相兼容,同時也避免受低代碼雲平台技術架構能力不足的限制。
支持高度可配置化,以滿足不同環境、不同規模、不同業務場景的特定要求
企業由於其IT戰略的不同、IT建設的路線不同及IT團隊能力舒適區的不同,便造成了對於其實施的軟件運行環境要求、IT基礎架構兼容性要求、網絡運行安全級別要求等方面有很大的差別。這就要求低代碼平台所生成的軟件系統能夠通過部署配置化來適應這些不同的要求。
另外,企業要發展,軟件也要跟着發展(軟件應該是“活的”)。
MXDP
隨着IT技術的快速發展,各種各樣的智能設備層出不窮,為了提高企業全員業務協同的效率,企業希望能夠很好地利用這些智能設備來實現業務協同。這樣軟件運行環境也變得越來越復雜,人們不僅僅希望能夠快速構建各種應用軟件,更希望能夠一次開發同時在不同的設備上部署和運行,實現一次開發,多渠道部署。為了滿足這樣的需求,一種新的低代碼技術便應運而生:MXDP(Multiexperience Development Platforms),即多渠道體驗低代碼開發平台。
MXDP主要用於幫助開發者以更高的效率、更快的速度,開發出跨平台的軟件系統。現實中,MXDP不僅是前端的開發工具,為了提升開發效率,通常還會提供后端到前端(BFF)集成套件,一站式完成系統開發工作。從這個角度上看,MXDP與目前最火熱的“低代碼”在價值方面是一致的,只不過MXDP更專注於為前端提供跨平台特性,同時在前后端自由定制方面提出了更高的要求。
可以說,企業級低代碼平台應該同時具備MXDP的能力。
支持團隊開發
由於企業級應用的業務模塊多,軟件開發量大,很少能夠通過1-2個開發人員就能夠完成。一般來說企業級應用需要在統一的架構設計基礎上,通過多個開發團隊並行協同開發來完成。因此企業級低代碼平台應該能夠很好地支持團隊協同開發,並能夠提供完善的版本管理機制。
支持DevOps
隨着軟件生命周期的延長,尤其是自主軟件研發的興起,企業不再僅僅關注軟件第一次上線時的功能是否完全滿足自身的需求,企業更關注軟件的后期迭代升級以滿足企業不斷變化的需求。換句話,軟件全生命周期管理越來越受到企業的關注。作為企業級低代碼平台應該對於軟件生命周期管理的最佳實踐:DevOps提供支撐,尤其是其中的關鍵環節CI/CD(軟件持續集成與持續發布)。
自動化測試
實施DevOps離不開自動化測試手段,通過自動化測試手段可以大大降低QA人員的工作量並把軟件可能存在的缺陷消滅在軟件上線之前。企業級低代碼平台應該能夠提供針對UITest及UnitTest的自動化測試集成工具。
完善的網絡安全解決方案
隨着移動辦公的興起,越來越多的企業員工使用智能移動設備來透過互聯網來訪問企業內部應用系統,這就使得企業應用系統網絡安全保護變得日益重要。企業級低代碼平台應該提供針對網絡安全保護方面的完善的解決方案,尤其是對於網絡安全風險:OWASP TOP10 2016/2017提供有效的對策。
Future Proof保障
在IT技術飛速發展的今天,技術落后就意味着軟件系統缺乏競爭力,軟件系統的價值就會打折扣。為了使所開發的軟件系統能夠充分利用不斷出現的先進IT技術,企業級低代碼平台就必須能夠給客戶提供Future Proof(永不落后的技術)的保障,這樣才能夠給客戶最大的價值
寫在最后
能夠滿足上述需求的低代碼平台能夠讓軟件開發人員更關注於業務本身,而平台將提供其它技術保障,這樣才能夠使得開發團隊在較低的投入(包括:人力成本、資金成本、時間成本等)下開發出能夠滿足企業級應用要求的應用系統,並通過后期的運維保障機制使得軟件的生命周期更長,軟件建設投資回報率更高。
本篇文章《企業級低代碼平台應具備哪些要素?》分為三期為大家介紹:
第一期:企業級核心應用特點;
第二期:面向企業級應用的低代碼平台應具備的能力;
第三期:利用低代碼技術構建企業級應用的最佳實踐;
關注我們,閱讀不迷路。