本發明涉及一種可復用、可擴展的支持可定制化數據采集的軟件框架系統。
背景技術:
信息采集系統,因其目的不同,采集指標項的結構和內容差異較大,但其采集中涉及的數據采集業務基本類似。針對一套固定的指標進行設計,從數據模型層、數據訪問層甚至是業務服務層和表示層的代碼均對采集指標有強關聯關系,目前的技術方案最大的缺點就是當采集指標進行調整,會花費大量的人力和時間對系統進行變動,數據層、業務層以及表示層均需要進行大量的代碼改動。如果指標差異性明顯的時候,可能需要對系統進行重新開發。
技術實現要素:
本發明的技術解決的問題是:克服現有技術的不足,提供一種通用性好,擴展性強,支持定制化采集指標的通用數據采集框架以應用到信息采集系統中。
本發明的技術解決方案是:抽象采集指標特征,建立數據結構基本穩定的元模型,完成對采集指標項的定義,以此解決采集指標復雜性、差異性和動態性。在此基礎之上實現數據采集管理模塊、數據核查模塊、視圖轉化模塊、元數據管理模塊、服務支持模塊和數據服務模塊。
1、數據采集管理模塊:提供采集數據的增、刪、改、查等基本操作以及導入導出、數據排序等輔助操作;提供采集頁面渲染功能,生成相應的用戶交互界面;數據訪問由元數據管理模塊和服務支持模塊完成sql的構造最終由數據服務模塊完成sql語句的執行并返回結果。數據采集管理模塊通過元數據管理模塊提供相關采集指標項的顯示元素信息,由視圖轉化模塊實現對數據封裝和轉化,最終生成指定頁面并展示。
2、數據核查模塊:提供數據前端數據核查、后臺數據核查、數據核查結果管理功能。本框架系統支持在用戶保存數據的時候進行實時核查即前端數據核查;同時,也支持對所有采集數據的后臺統一核查。數據核查模塊通過元數據管理模塊提供的校驗規則和元數據配置信息實現對采集數據的核查,以及對核查結果進行保存,對問題數據進行打標。用戶可通過數據核查管理功能進行核查結果的查詢和導出。
3、視圖轉化模塊:提供對元數據的封裝、參數解析和數據轉化的功能,用于完成對用戶交互頁面的數據組裝、用戶數據可讀性的轉化操作。該模塊主要的數據源為元數據管理模塊提供的元數據信息;其支持數據采集管理、數據核查等相關上層模塊的數據展示。
4、元數據管理模塊:提供采集數據指標的描述信息和支持對元數據的信息維護、元數據查詢等功能。采集數據指標的描述信息具體包括了對采集項目的類型、指標的上下級關系、采集數據的存儲信息、采集交互頁面元素構建信息和數據核查規則信息;元數據管理模塊設計了一套元數據模型(簡稱元模型)方案,對上述的采集數據指標的具體描述信息使用元數據進行形式化描述;所述元模型中的元數據包括:實體元素、屬性元素、實體風格元素、屬性風格元素、核查規則元素、數據字典元素、領域信息元素、分類信息元素。元數據管理模塊提供頁面展示構建元素、數據核查規則信息,元數據信息首先由視圖轉化模塊對信息進行數據封裝、參數解析和數據轉化,最后分別由數據采集管理模塊、數據核查模塊完成頁面生成和渲染。本框架系統對元數據建立了緩存機制,視圖轉化模塊對元數據進行訪問操作時,元數據管理模塊首先會根據數據查詢條件在緩存中進行查詢,如果緩存中存在符合條件的元數據則直接返回結果,否則元數據管理模塊從數據庫中查詢,同時更新緩存。
5、服務支持模塊:支持采集數據的增加、刪除、修改、查詢操作,該模塊根據元數據描述信息實現采集數據執行sql的構建、參數構建、數據類型處理功能。
6、數據服務模塊:提供訪問底層數據庫的sql執行和操作接口。數據服務模塊可以被其他模塊調用,根據其他模塊傳入的sql和參數信息執行數據庫操作;數據庫中存儲著元模型數據和采集數據,元模型數據是用來存儲相關采集數據指標描述信息的元數據的數據庫表即元模型數據存儲表,采集數據是用來存儲相關采集數據的數據庫表即采集數據存儲表。元數據管理模塊可以通過數據服務模塊直接獲取元數據信息;其他模塊也可以通過服務支持模塊構建sql和參數信息,然后通過數據服務模塊執行sql操作獲取采集數據。
本發明與現有技術相比的優點在于:本發明為信息采集系統的通用采用框架系統,信息采集系統應用該框架可提高系統的復用性和擴展性,可根據采集指標內容定制元模型數據,使得整個信息采集系統有一個通用的、可擴展的、靈活的體系結構,從而實現信息采集系統的快速開發和部署,并能夠降低系統開發和運維成本。
根據以上特點,開發人員只需在信息采集系統中引入該框架,并進行相關的采集指標配置和數據核查配置,就可以實現一個具有支持定制化采集指標和數據核查的信息采集系統,從而縮短研發周期,降低開發和維護成本。
附圖說明
圖1為本發明框架的模塊圖;
圖2為本發明框架的元模型示意圖;
圖3為本發明框架的數據采集機制的原理圖;
圖4為本發明框架的數據核查機制的原理圖;
圖5為本發明框架的核查結果管理的示意圖。
具體實施方式
如圖1所示,本發明提供了一種支持可定制化數據采集的元模型框架系統,涉及信息采集領域。本發明針對傳統信息采集系統采集指標變化時,需花費大量人力和時間調整系統的設計方案和代碼實現等共性問題,設計了一種可定制的、支持采集指標變動的數據采集通用框架。應用該框架,可以降低信息采集系統開發和維護成本,并實現快速的開發和部署。
通過深入分析傳統信息采集系統的采集指標的特點和采集過程中涉及的相關業務,框架的設計從各個信息采集系統的共性和和差異性兩個方面考慮。
針對信息采集系統之間共性問題,該框架對信息采集系統中的數據采集和數據核查的通用功能有較為完善的支持,實際開發中可以直接應用此框架的數據采集和數據核查功能,以減少系統開發的成本和周期。
系統的差異性主要體現在采集指標項之間的差異,針對此問題提供以下兩種方式進行解決:
(1)對采集指標進行抽象,利用元模型方案進行采集數據指標相關信息的描述,以此方案解決采集指標的復雜性、動態性和差異性,在元數據基礎上實現可定制化采集數據的存儲和采集表單的動態生成,以支持不同采集指標項的信息采集;
(2)支持數據核查的動態配置,將不同采集指標項的數據核查規則也集成到元模型中,通過解析配置信息,實現可定制化的數據核查,解決了不同信息采集系統以及不同采集項的數據核查的差異化問題;
應用該框架的信息采集系統與現有采集系統相比,可以通過定制的方式實現不同采集任務的差異性,通過規范擴展接口提升框架的擴展性,通過共性需求的直接應用減少重復性的開發工作。所以基于該框架可以高效快捷的構建不同數據采集指標的信息采集系統。
本發明按照功能模塊劃分可以分為數據采集管理模塊、數據核查模塊、視圖轉化模塊、元數據管理模塊、服務支持模塊、數據服務模塊,具體實施方式如下文所述。
1、數據采集管理模塊:提供采集數據的增加、刪除、修改、查詢等基本操作以及導入導出、數據排序等輔助操作。數據采集管理模塊核心功能的實現依賴于視圖轉化、元數據管理、服務支持和數據服務四個模塊。為實現上述功能,數據采集管理機制的原理圖如3所示,采集表單生成是針對不同的采集項配置信息生成特定的采集頁面,采集數據操作是對采集數據的增加、刪除、修改、查詢等基本操作的底層實現。具體實現如下文所述。
1-1采集表單生成:前文提到了元模型抽象出了對用戶交互的頁面顯示樣式的描述信息——實體樣式元數據和屬性樣式元數據,具體請參考下文元數據管理模塊的具體實施方式的描述。所以采集表單生成的設計方案可以基于元模型結構之上來完成,根據元數據管理模塊提供的元模型采集項描述信息,通過視圖轉化模塊進行表單基本配置的生成,加載配置信息,生成制定的采集表單或者表格,并為其中每一個輸入框賦予相應的控件和顯示長度等。其具體步驟如下:
(1)通過元數據管理模塊加載元數據信息;
(2)視圖轉化模塊根據元數據信息生成表單描述信息;
(3)根據表單描述信息生成表單代碼和控件代碼;
(4)加載該采集項對應的采集數據;
(5)完成用戶交互的頁面渲染和數據填充。
1-2采集數據操作:本框架系統在采集數據操作的設計方面摒棄了傳統的實現方式,因為在傳統的實現方式中,每一個采集項需要一個持久化對象,并對應一個物理表結構以及一個dao數據庫訪問接口完成該采集項的數據訪問。對于數據采集指標的復雜性和動態性,傳統的解決方案顯得相對笨重并且擴展性較差,數據采集指標的變動需要調整持久化層、dao層甚至service層等多層次的代碼調整,使得傳統系統缺乏對數據采集業務的通用性。因此,采集數據操作的設計方案是基于元模型的基礎之上,元模型中實體元數據和屬性元數據描述了數據存儲的物理表結構,可以通過該描述信息完成相關的采集數據操作功能,其具體步驟如下所示:
(1)首先通過元數據管理模塊獲取元數據,根據元數據解析出該采集項的數據結構描述信息,包括該采集數據存儲的數據庫名稱、物理表名稱、該物理表的主鍵、外鍵、以及所有字段名稱及數據類型等信息;
(2)根據用戶交互傳遞的參數信息,通過視圖轉化模塊進行元數據處理和參數解析;
(3)通過服務支持模塊,結合數據訪問的操作類型(增加、刪除、修改、查詢),生成相關的數據庫操作sql語句;
(4)獲取調用方傳遞的參數信息,及采集數據操作sql語句的條件,例如:查詢條件、更新的字段、刪除記錄的主鍵等,并進行sql的參數化處理;
(5)執行sql語句并返回結果,如果執行出錯,則拋出異常信息,由框架統一的異常機制進行處理。
2、數據核查模塊:數據核查模塊主要包括兩部分,數據核查和核查結果管理。框架在設計上分別對以上兩個部分內容提供通用接口。
2-1數據核查:數據核查包含前端數據核查與后臺數據核查。前端數據核查是指在用戶錄入采集數據時進行的核查,并實時向用戶提示錄入數據的問題;后臺數據核查指的是在應用服務器端進行的數據核查操作,主要發生在用戶對采集數據基本完成錄入之后,對全部采集數據中進行的數據核查。圖4給出了數據核查機制原理圖,前端數據核查與后臺數據核查的設計思想一致,均采用簡單工廠模式來實現。根據進行數據核查的對象(采集項信息和字段信息)調用數據訪問接口,獲取目標對象的元數據信息(實體元素、屬性元素、核查規則元素),之后校驗函數生成工廠通過元數據信息獲取核查規則元素,在核查規則元素中描述了校驗函數名以及相關的參數,利用反射機制,核查函數生成工廠生成相應的校驗函數。數據核查處理模塊通過元數據信息獲取原始的采集數據,并利用之前已經生成的數據核查函數對采集數據進行數據檢驗。前端、后端數據核查的區別在于:前端數據核查操作是在用戶對采集數據保存的時候自動觸發,通過頁面前端的js腳本函數對當前正在保存的數據進行數據核查,如果核查函數有任何一個出現錯誤,則立即對用戶進行相關的錯誤提示。后臺數據核查是由用戶主動點擊數據核查操作觸發,框架為用戶提供數據核查接口。
2-2核查結果管理:數據核查結果的數據結構相對穩定,框架將為核查結果提供統一的數據訪問接口和頁面顯示組件。核查結果包括:采集項核查結果和數據記錄核查結果。采集項核查結果表示該采集項中的數據是否存在校驗出錯的情況;數據記錄核查結果會存儲該條記錄的校驗出錯原因和相關的修改意見。圖5給出了數據核查結果管理的示意圖。
3、視圖轉化模塊:提供對元數據的封裝、參數解析和數據轉化的功能,用于完成對用戶交互頁面的數據組裝、用戶數據可讀性的轉化操作。該模塊主要的數據源為元數據模塊;其支持數據采集管理、數據核查等相關上層模塊的數據展示。
4、元數據管理模塊:提供數據采集指標的描述信息,以及對元數據的信息維護;采集指標的描述信息包括采集項目的類型,指標的上下級關系,采集數據的存儲信息,采集交互頁面信息,數據核查規則;元數據管理模塊設計了一套元數據模型(簡稱元模型)方案,對上述的采集數據指標的具體描述信息使用元數據進行形式化描述。元數據管理模塊為數據采集管理模塊提供頁面展示構建元素,為數據核查模塊提供數據核查規則。同時考慮到元數據信息的動態性較小,因此對元數據建立緩存機制。上層對元數據的訪問操作,元數據管理模塊首先會根據條件在緩存中進行查詢,如果緩存中存在符合條件的數據則直接向上層返回結果,否則元數據管理模塊從數據庫中查詢,同時更新緩存。元數據管理模塊一共包含8大元素,如圖3所示。其中實體和屬性元素為核心,描述的是采集數據存儲表的物理結構;實體風格和屬性風格元素是對數據采集的用戶交互方式和字段控件的描述;校驗規則是核查規則的描述;數據字典定義了數據采集的數據源;領域批次信息是描述了不同的采集任務和采集輪次;分類元素是對采集指標級別關系的描述信息。下面分別對不同的元模型元數據元素進行詳細闡述。
(1)實體、屬性元數據,是對數據庫物理表的描述。
實體元數據存儲該表單涉及到的數據庫物理表名稱、主外鍵約束、索引等信息。另外,屬性元數據存儲表字段定義,定義表單中用到的數據項,包括字段名、字段類型、長度、默認值、是否允許為空、是否自增長字段等信息。
(2)實體顯示風格、屬性顯示風格元數據,對采集表單的描述信息。
實體顯示風格元數據描述表單整體信息,包括表單的名稱,表單的顯示類型,表單的初始化配置信息,表單的控制條件信息等;屬性顯示風格元數據描述表單中字段的顯示信息,包括:界面顯示的尺寸、界面布局、控件的類型(文本框、文本域、復選框、單選框、列表框、時間日期選擇、文件上傳框)、是否可以編輯、是否隱藏、是否可以排序等。
(3)領域和批次信息元數據,對采集任務和采集批次進行描述。
領域元數據包括:領域名稱、該領域項目開始和結束時間、領域的是否正在進行等信息;批次元數據信息包括:批次名稱、本批次的開始結束時間、是否正在進行、批次的備注信息等。
(4)校驗規則元數據,對采集表單和字段的數據核查的描述。
校驗規則元數據包括:校驗規則名稱,校驗規則方法名稱、參數個數、校驗類型等。
(5)數據字典元數據,對某一字段的數據源的描述。
數據字典元數據包括:字典本身元數據和字典條目元數據。字典本身的元數據包括字典的名稱、類型等信息;字典條目元數據包括字典中每一個選項名稱,條目順序等信息。
(6)分類信息元數據是對采集指標分級關系的描述信息。
分類信息元數據包括:采集指標所屬的指標體系的章節信息和層級關系,包括上下級指標節點的層級信息和顯示圖標等。
5、服務支持模塊:主要支持的功能是對采集數據的操作,提供通過元數據描述信息構造數據訪問的sql、訪問數據的參數構建、數據類型處理功能。服務支持模塊根據過傳入的元數據信息和參數信息動態地創建sql、構建參數以及數據類型處理。服務支持模塊可根據元數據中實體元素描述的采集數據存儲表的表名和屬性元素描述的采集數據存儲表的字段名動態地拼接查詢和更新操作sql語句;當執行的sql中需要使用到表的字段類型時,服務支持模塊可根據元數據的屬性元素所定義的字段類型進行數據類型處理,轉化成采集數據存儲表的字段類型。
6、數據服務模塊:提供訪問底層數據庫的sql執行和操作接口,本框架通過此模塊對sql語句進行調用,訪問和操作元數據和采集數據。
提供以上實施例僅僅是為了描述本發明的目的,而并非要限制本發明的范圍。本發明的范圍由所附權利要求限定。不脫離本發明的精神和原理而做出的各種等同替換和修改,均應涵蓋在本發明的范圍之內。