本發明涉及應用系統開發技術領域,特別是涉及一種元數據定制的應用系統軟件構建系統、系統構建方法。
背景技術:
隨著互聯網技術的飛速發展,應用軟件系統的功能愈加復雜,其界面的展現形式和交互能力也愈加豐富,但與此同時,應用軟件開發的技術實現的難度也隨之提高。
傳統的應用軟件系統的開發方式,就系統交互式界面部分而言,一是通過基于各類前端標記和腳本語言,對HTML元素進行操作,從而形成滿足特定展示和交互要求的人機界面,例如基于原生的HTML界面組件,利用Javascript對HTML文檔結構模型進行調整,利用疊層樣式表進行渲染;二是在此基礎上,利用面向組件的界面開發模式,對Web界面進行組件化封裝,從而形成具有豐富界面組件的前端開發第三方類庫,比較有代表性的包括ExtJS、JQuery及其插件等。
但是,上述兩種開發方式,面對類似的數據建模、數據展現、界面交互等問題,都需要進行大量的編碼開發工作,難度高,工作量大,應用軟件系統的開發效率往往難以滿足用戶需求。
技術實現要素:
本發明的目的,就是要提出一套利用元數據對業務數據模型進行描述定義,并在此基礎上實現對業務數據的訪問,進而針對業務數據實現通用的界面組件,并通過業務組件實例的布局定義,快速構建應用系統軟件的技術方案。
為解決上述問題,本發明提供了一種元數據定制的應用系統軟件構建系統,包括服務器、與服務器通信連接的各個客戶端,所述服務器內設置有元數據模型庫、業務數據模型庫、界面組件庫、界面組件容器、業務數據訪問接口庫、業務數據界面組件訪問接口庫、界面組件容器訪問接口庫,客戶端設置有所述業務數據定義模塊、界面組件定義模塊、界面組件容器布局定義模塊、業務數據訪問方法定義模塊。
所述業務數據模型庫為描述業務領域數據實體及其關系的數據庫。所有數據實體及其關系采用統一的元數據模型進行描述。
所述元數據模型庫用于存儲描述業務數據的元數據模型。
所述業務數據訪問開發接口庫用于訪問業務數據,其內包括的接口包括新增業務數據實例和/或刪除業務數據實例和/或修改業務數據實例和/或查詢獲得業務數據實例和/或根據查詢條件獲得業務數據實例數量和/或根據查詢條件獲得業務數據實例和/或根據查詢條件和分頁條件獲得業務數據實例。
所述界面組件庫用于存儲界面組件源代碼。
所述界面組件訪問接口庫用于訪問界面組件,所述接口包括組件數據獲取和/或組件數據修改和/或組件展示方式修改。
所述界面組件容器用于根據預先指定的布局方案,將各個界面組件在對應客戶端進行展示。
所述界面組件容器訪問接口(API)庫用于訪問界面組件容器,所述接口包括設置容器布局方案和/或增加界面組件和/或修改界面組件布局。
所述業務數據定義模塊用于用戶根據需求及元數據模型對業務數據進行可視化的建模、擴展元數據模型中的數據類型,并維護業務數據。
界面組件定義模塊用于用戶根據需求擴展定制界面組件類型、定義界面組件實例。
界面組件容器布局定義模塊用于用戶根據需求對界面組件的布局方案進行定義。
業務數據訪問方法定義模塊用于用戶對業務數據訪問接口進行擴展定制。
進一步的,業務數據定義模塊對業務數據建模時利用元數據模型描述名稱和/或說明和/或圖標和/或屬性。
進一步的,元數據模型的數據實體包括數據方案、數據類型、數據屬性。其中數據方案用于描述對一個特定業務領域數據描述方案的基本信息。數據類型用于描述業務數據模型中的各實體的基本信息,繼承關系。數據屬性用于描述業務數據模型中各實體所具有的數據屬性類型。
進一步的,業務數據的屬性類型包括基本數據類型、枚舉數據集、引用數據類型,其中,枚舉數據集用于描述所有枚舉型數據的取值范圍定義,引用數據類型用于規定所引用的其他業務數據類型。
進一步的,服務器還設置有界面組件交互模塊,用于定義各個界面組件的消息交互關系。
上述的元數據定制的應用系統軟件構建系統的系統構建方法包括如下步驟:
步驟一:對業務數據模型進行建模,具體為:預先對業務數據模型采用元數據模型進行描述。如果元數據模型中給定數據類型未滿足業務需求,則業務數據定義模塊對元數據模型的數據類型擴展,獲得需要的業務數據類型,再采用元數據模型進行描述。
步驟二:基于業務數據訪問接口庫擴展業務數據訪問接口。
步驟三:建立界面組件實例,具體為:根據人機交互界面需求,選取界面組件庫中已有的界面組件類型,建立界面組件實例,指定該組件實例所對應的業務數據模型類型及其屬性,如已有界面組件類型不能滿足人機交互界面需求,則擴展界面組件類型后再建立界面組件實例。
步驟四:組裝人機交互界面,具體為:根據人機交互界面需求,將已定義的若干界面組件實例,根據一定的界面布局方式,組裝成為完整的人機交互界面。
步驟五:發布應用軟件。
進一步的,步驟一中對元數據模型的數據類型進行擴展的具體方法為:根據需要賦予某個已有數據類型特定的意義,同時選擇一個或者多個已有類型數據組合形成擴展的數據類型。
進一步的,步驟三具體為:根據元數據模型中給定的數據類型,根據通用業務數據前端組件擴展標準,擴展定義新的界面組件類型,定義其名稱、用途、數據類型要求等基本信息,并編寫界面組件展示及人機交互響應代碼,將上述定義信息及代碼上傳至服務器指定文件目錄。
進一步的,步驟五具體為:將形成的業務數據模型的描述文件上傳至服務器指定文件目錄,如需對外發布數據訪問接口服務,則指定對外發布的業務數據類型,啟動數據接口服務。如需提供人機交互界面,將經界面組件實例的描述文件,以及前端界面布局的描述文件上傳至服務器指定文件目錄,啟動人機交互界面服務。
進一步的,所述方法還包括定義各個界面組件的消息交互關系的步驟。
本發明的有益效果為:
利用本發明所述系統及方法,技術人員可通過對業務領域數據模型的設計和描述,以及對業務系統軟件人機交互界面的可視化定制,快速搭建應用系統,在此過程中無需大量進行編碼,進而顯著降低應用系統軟件開發的難度,提升開發效率,同時利用元數據模型的豐富靈活性以及界面組件技術實現規范的可擴展性,滿足應用系統軟件擴展性的需求。
附圖說明
圖1為元數據模型主要組成示意圖。
圖2為界面組件示例。
圖3為本發明所述系統體系結構示意圖。
具體實施方式
本發明的設計構思為:
第一:設計一套用以描述業務數據的元數據模型,元數據模型必須具有豐富全面的業務數據描述能力,并且必須具有足夠的靈活性。
第二:定義一套針對業務數據的通用且抽象的訪問方法,并在應用系統實現過程中根據系統要求加以具體實現。
第三:定義一套用以描述基于元數據的前端界面組件描述模型,以便基于業務數據模型定義界面組件,并實現組件的界面展示、人機交互、事件關聯、界面布局等功能,并根據該技術規范,為應用系統開發提供常用的前端業務組件。
第四:設計一套業務數據建模及前端定制的可視化工具,利用該工具,可基于元數據模型對業務數據進行描述、加載業務數據訪問方法的具體實現、定義應用系統所需的前端組件實例、對前端業務組件進行界面布局、對已定義的業務系統進行測試和發布。
第五:設計一套基于元數據配置的應用系統軟件架構,所有采用本專利所述方法進行設計開發的應用軟件均采用該架構,不同應用軟件間的差異主要在于業務數據模型以及對其進行描述的元數據內容不同。
下面對本發明技術方案進行說明。
本發明所述元數據定制的應用系統軟件構建系統包括服務器、與服務器通信連接的各個客戶端,所述服務器內設置有元數據模型庫、業務數據模型庫、界面組件庫、界面組件容器、業務數據訪問接口(API)庫、業務數據界面組件訪問接口(API)庫、界面組件容器訪問接口(API)庫,客戶端設置有所述業務數據定義模塊、界面組件定義模塊、界面組件容器布局定義模塊、業務數據訪問方法定義模塊。
下面分別予以介紹。
一:業務數據模型庫
所述業務數據模型庫為描述業務領域數據實體及其關系的數據庫;所有數據實體及其關系采用統一的元數據模型進行描述。
業務數據的類型包括三類:基本數據類型(string、integer、float、date等)、引用類型(對其他業務數據的引用,包括多引用、單引用)、枚舉類型(對枚舉數據集中單個或多個取值的引用)。這種數據類型的描述方式基本滿足了所有業務數據類型的描述要求。
二:元數據模型庫
所述元數據模型庫用于存儲描述業務數據的元數據模型。元數據模型主要用以描述業務數據,因此要求元數據模型具有豐富全面的業務數據描述能力。如圖1所示為元數據的主要組成。元數據模型的數據實體包括數據方案、數據類型、數據屬性。其中數據方案用于描述對一個特定業務領域數據描述方案的基本信息(如:方案名稱、創建人、創建時間、版本信息等)。數據類型用于描述業務數據模型中的各實體的基本信息,繼承關系(如所屬方案、父類模型、模型名稱、模型描述、屬性列表等);數據屬性用于描述業務數據模型中各實體所具有的數據屬性類型(如:所屬模型、屬性名稱、取值類型、取值描述、屬性描述等)。
元數據所描述的業務數據模型具有繼承體系結構,即一個業務數據實體A繼承了另一個實體B,意味著實體A中具有實體B的所有可繼承的數據屬性。這一設計有利于簡化業務數據的描述難度,并且有利于對具有一定數據特征的不同類型業務數據,采用相同的形式進行應用。
三:業務數據訪問開發接口庫
所述業務數據訪問開發接口庫用于訪問業務數據。本發明中,對不同領域的業務數據,規定了統一的通用訪問方法,以便上層應用按照該方法進行數據訪問。所述接口包括新增業務數據實例和/或刪除業務數據實例和/或修改業務數據實例和/或查詢獲得業務數據實例和/或根據查詢條件獲得業務數據實例數量和/或根據查詢條件獲得業務數據實例和/或根據查詢條件和分頁條件獲得業務數據實例。
應當理解,業務數據通用訪問方法包括但不限于以上的列舉。在具體的應用系統中,可對訪問接口庫實現方式進行具體實現,例如訪問數據庫方式的實現,Web Services服務調用方式實現,Rest服務調用實現等等,這樣就保證了數據訪問方式的可擴展性。
如果業務數據采用關系型數據庫管理系統進行管理,則可采用SQL語言實現上述業務數據訪問接口庫。
四:界面組件庫
所述界面組件庫用于存儲界面組件源代碼。
界面組件是基于由元數據描述的業務數據模型,根據應用系統需求進行定制形成的前端界面組件。業務數據界面組件包括但不限于:數據表格、數據樹視圖、數據表單、數據統計圖等。結合元數據模型設計,對這些界面組件進行定義的數據模型示例如圖2所示。
優選的,服務器還設置有界面組件交互模塊,用于定義各個界面組件的消息交互關系。設置本模塊的原因在于:各個界面組件均繼承于“組件”實體,該實體規范了各類組件交互時能發布的事件和能執行的動作,規范了組件發布和接收消息的主題、組件交互的參數類型。在應用軟件界面定制過程中,就需要指明界面組件間“事件-消息”的“發布-訂閱”關系,從而使得界面組件能夠實現必要的聯動。
五:界面組件訪問接口庫
所述界面組件訪問接口(API)庫用于訪問界面組件,包括組件數據獲取和/或組件數據修改和/或組件展示方式修改。
六:界面組件容器
所述界面組件容器用于根據預先指定的布局方案,將各個界面組件在對應客戶端進行展示。優選的,可將若干界面組件容器通過遞歸式的組合布局,形成完整的應用軟件前端界面,并進行預覽、測試及系統發布。
七:界面組件容器訪問接口庫
所述界面組件容器訪問接口(API)庫用于訪問界面組件容器,所述接口包括設置容器布局方案和/或增加界面組件和/或修改界面組件布局。
八:業務數據定義模塊
所述業務數據定義模塊用于用戶根據需求及元數據模型對業務數據進行可視化的建模、擴展元數據模型中的數據類型,并維護業務數據。
本模塊根據系統需求,對業務數據進行建模,即分別對“數據方案”、“數據類型”、“數據屬性”以及“枚舉數據集”提供可視化的建模能力,并為不同數據類型間繼承、引用、枚舉等關系提供可視化的分析展示視圖。并為不同數據類型間繼承、引用、枚舉等關系提供可視化的分析展示視圖。
九:界面組件定義模塊
界面組件定義模塊用于用戶根據需求擴展定制界面組件類型、定義界面組件實例。
十:界面組件容器布局定義模塊
界面組件容器布局定義模塊用于用戶根據需求對界面組件的布局方案進行定義。
十一:業務數據訪問方法定義模塊
業務數據訪問方法定義模塊用于用戶對業務數據訪問語言進行擴展定制。
十二:業務數據定義模塊
業務數據定義模塊對業務數據建模時利用元數據模型描述名稱和/或說明和/或圖標和/或業務數據屬性。資源屬性的數據類型需從元數據模型給定的數據類型進行選取,業務數據的屬性類型包括:(1)基本數據類型(包括但不限于整數、浮點數、日期時間、字符串、布爾值),(2)領域數據類型(如金額、電話號碼、電子郵箱地址時間段、經緯度、三維坐標值、IP地址、文件、圖片、視頻等),(3)枚舉數據類型(含單選枚舉和多選枚舉),(4)引用數據類型(含單引用和多引用)。
圖3是對上述系統體系結構的形象展示,其中的數據訪問服務主要實現對元數據、業務數據、界面組件定義數據、界面組件容器定義數據等訪問方法的服務化封裝,實現事務過程的封裝。前后端交互中間件是為客戶端/瀏覽器提供遠程調用數據訪問服務的能力。
下面對上述系統的工作方法進行詳細說明,包括如下步驟:
步驟一:對業務數據模型進行建模,具體為:預先對業務數據模型采用元數據模型進行描述;如果元數據模型中給定數據類型未滿足業務需求,則業務數據定義模塊對元數據模型的數據類型擴展,獲得需要的業務數據類型,再采用元數據模型進行描述。
對元數據模型的數據類型進行擴展的具體方法為:根據需要賦予某個已有數據類型特定的意義,同時選擇一個或者多個已有類型數據組合形成擴展的數據類型。例如:基于“字符串”類型,擴展“街道地址”類型。基于兩個“字符串”類型,擴展形成“中文姓名”類型。
步驟二:基于業務數據訪問接口庫擴展業務數據訪問接口。
步驟三:建立界面組件實例,具體為:根據人機交互界面需求,選取界面組件庫中已有的界面組件類型,建立界面組件實例,指定該組件實例所對應的業務數據模型類型及其屬性,如已有界面組件類型不能滿足人機交互界面需求,則擴展界面組件類型后再建立界面組件實例。
舉例:建立“資源數據列表”組件實例,指定該組件實例所對應的資源模型實例為“員工信息”,指定其對應的屬性包括:“員工姓名”、“性別”、“工號”、“生日”、“學歷”等。
本步驟中,還需要設置該組件實例必要的顯示參數(例如設置“資源數據列表”組件實例的最大高度為500像素,寬度為自適應)。
擴展界面組件類型的具體方式為:根據元數據模型中給定的數據類型(含擴展數據類型),根據通用業務數據前端組件擴展標準,擴展定義新的前端界面組件類型,定義其名稱、用途、數據類型要求等基本信息,并編寫前端組件展示及人機交互響應代碼,將上述定義信息及代碼上傳至平臺服務器指定文件目錄。
步驟四:組裝人機交互界面,具體為:根據人機交互界面需求,將已定義的若干界面組件實例,根據一定的界面布局方式,組裝成為完整的人機交互界面。
步驟五:發布應用軟件。
具體為:將形成的業務數據模型的描述文件上傳至服務器指定文件目錄,如需對外發布數據訪問接口服務,則指定對外發布的業務數據類型,啟動數據接口服務;如需提供人機交互界面,將經界面組件實例的描述文件,以及前端界面布局的描述文件上傳至服務器指定文件目錄,啟動人機交互界面服務。
優選的,所述方法還包括利用界面組件交互模塊定義各個界面組件的消息交互關系的步驟。