司存友,高祥濤,李政道,胡金龍,胡文斌
(1.江蘇省水文水資源勘測局,江蘇 南京 210029;2.河海大學(xué)計算機與信息學(xué)院,江蘇 南京 210098)
江蘇省水利信息化建設(shè)起步較早,各業(yè)務(wù)部門先后建設(shè)了很多業(yè)務(wù)系統(tǒng),有力支撐了部門的各項管理工作。但各個系統(tǒng)之間相互獨立,擁有不同的運行環(huán)境和數(shù)據(jù)庫系統(tǒng),不能很好地支撐各個部門之間業(yè)務(wù)上的關(guān)聯(lián),數(shù)據(jù)共享和業(yè)務(wù)協(xié)同困難。為提高數(shù)據(jù)資源的利用效率、數(shù)據(jù)資源利用價值,同時提升業(yè)務(wù)系統(tǒng)的應(yīng)用水平,為水利業(yè)務(wù)管理提供高效決策支持,需要在研究水利信息核心元數(shù)據(jù)基礎(chǔ)上,進行數(shù)據(jù)分類,編制數(shù)據(jù)目錄,建立元數(shù)據(jù)庫,設(shè)計并實現(xiàn)水利信息資源目錄系統(tǒng),整合分散的數(shù)據(jù)資源,為數(shù)據(jù)共享、數(shù)據(jù)交換提供一個集成平臺[1-2]。
依據(jù)元數(shù)據(jù)、Web Service、數(shù)據(jù)目錄等技術(shù)[3-5],系統(tǒng)設(shè)計的總體思路如下:
(1)基于水利核心元數(shù)據(jù)標準,采用三級元數(shù)據(jù)模型,形成“數(shù)據(jù)庫—數(shù)據(jù)表—表字段和記錄”的三級元數(shù)據(jù)體系,并對水利核心元數(shù)據(jù)語義加以擴充,加入表字段描述信息和數(shù)據(jù)來源信息,支持數(shù)據(jù)的溯源能力,保證數(shù)據(jù)的權(quán)威性和可信性;
(2)采用數(shù)據(jù)目錄與元數(shù)據(jù)結(jié)合的方式,根據(jù)統(tǒng)一的標準規(guī)則對數(shù)據(jù)資源進行分類,將數(shù)據(jù)資源整理形成有序組織,從而形成水利信息資源目錄,方便用戶對水利數(shù)據(jù)的定位、查詢、下載與共享,支持數(shù)據(jù)資源目錄的動態(tài)可配置;
(3)基于Web Service技術(shù)體系進行設(shè)計開發(fā),降低系統(tǒng)耦合性,提高內(nèi)部系統(tǒng)和外部系統(tǒng)調(diào)用的便捷度,提高系統(tǒng)擴展性;
(4)采用MVC設(shè)計模式設(shè)計系統(tǒng),將業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離組織,更好的支撐個性化定制及用戶交互。
系統(tǒng)基于Web Service技術(shù)體系、采用基于J2EE的MVC模式開發(fā),整體上由展示層、控制層和數(shù)據(jù)層等三層結(jié)構(gòu)組成。位于系統(tǒng)最頂層的展示層為用戶提供一個屏蔽系統(tǒng)差異的功能入口。該層通過應(yīng)用生成的接口訪問位于系統(tǒng)中間層的控制層??刂茖油ㄟ^提供基于元數(shù)據(jù)方面的操控,對數(shù)據(jù)進行分析、抽取和使用。數(shù)據(jù)層則為整個系統(tǒng)提供數(shù)據(jù)支持,位于整個系統(tǒng)的底層。系統(tǒng)的下載服務(wù)、元數(shù)據(jù)管理和訪問統(tǒng)計服務(wù)都是基于Web Service開發(fā)的,外部的Web Service服務(wù)可以注冊到系統(tǒng)中,并且被系統(tǒng)調(diào)用,提高了擴展性。系統(tǒng)總架構(gòu)如圖1。
根據(jù)《水利信息核心元數(shù)據(jù)》(SL 473-2010)標準,結(jié)合江蘇省水利數(shù)據(jù)資源目錄的建設(shè)需求,元數(shù)據(jù)建模采用元數(shù)據(jù)三級應(yīng)用模式。三級元數(shù)據(jù)具體包括:
(1)一級元數(shù)據(jù),是頂層元數(shù)據(jù),即在數(shù)據(jù)庫和文件集層面上進行描述的元數(shù)據(jù),表征基礎(chǔ)數(shù)據(jù)庫、監(jiān)測數(shù)據(jù)庫、業(yè)務(wù)數(shù)據(jù)庫、空間數(shù)據(jù)庫、多媒體數(shù)據(jù)庫等特征;
(2)二級元數(shù)據(jù),即在某類數(shù)據(jù)庫中圍繞某些相關(guān)對象及其業(yè)務(wù)活動的一組數(shù)據(jù)表或空間數(shù)據(jù)文件中某要素類的結(jié)構(gòu)、特性的描述;
(3)三級元數(shù)據(jù),即一般在管理、交換、發(fā)布等活動中,按照一個批次進行處理的某要素類下的一組數(shù)據(jù)表的內(nèi)容子集或空間數(shù)據(jù)文件中某要素類的一組要素的特征。
元數(shù)據(jù)三級應(yīng)用模式具體如圖2所示。
圖1 基于元數(shù)據(jù)的數(shù)據(jù)資源目錄系統(tǒng)總體框架圖
圖2 元數(shù)據(jù)三級應(yīng)用模式圖
在上述三級元數(shù)據(jù)模式下,結(jié)合水利核心元數(shù)據(jù),設(shè)計出三級元數(shù)據(jù)表。一級元數(shù)據(jù)表儲存數(shù)據(jù)庫的描述信息,其包含標識信息、內(nèi)容信息、交換分發(fā)信息、維護信息、限制信息、覆蓋范圍信息等;二級元數(shù)據(jù)表儲存數(shù)據(jù)表描述信息,其包含標識信息、維護信息、交換分發(fā)信息、限制信息表等;三級元數(shù)據(jù)表儲存數(shù)據(jù)表字段和記錄的描述信息,其包含標識信息、維護信息、交換分發(fā)信息、限制信息等。具體元數(shù)據(jù)庫對應(yīng)表如表1所示。
表1 元數(shù)據(jù)庫對應(yīng)表
系統(tǒng)基于Web Service開發(fā),屏蔽了邏輯實現(xiàn)部分,對服務(wù)使用者透明,系統(tǒng)只關(guān)注輸入?yún)?shù)和輸出結(jié)果?;赪eb Service的系統(tǒng)開發(fā)架構(gòu)如圖3所示。
系統(tǒng)由元數(shù)據(jù)錄入、數(shù)據(jù)目錄、數(shù)據(jù)查詢、數(shù)方式一適用于沒有數(shù)據(jù)庫或者數(shù)據(jù)庫保密程度很高的單位,直接進行人工填寫錄入,不必進行數(shù)據(jù)源配置這一流程,提交過后系統(tǒng)接收到用戶提交的元數(shù)據(jù)信息,會自動對元數(shù)據(jù)必填項進據(jù)下載和訪問統(tǒng)計5個功能模塊組成,建立在底層硬件、軟件、網(wǎng)絡(luò)和綜合數(shù)據(jù)庫的支撐之上。在底層和系統(tǒng)應(yīng)用層之間,由Web Service起到橋接作用,將底層的數(shù)據(jù)和上層的請求加以邏輯處理,簡化了系統(tǒng)結(jié)構(gòu)也降低了耦合性,同時向外部系統(tǒng)提供了接口,提高可擴展性。元數(shù)據(jù)錄入劃分為手工錄入和半自動錄入;數(shù)據(jù)查詢劃分為簡單查詢和符合查詢;訪問統(tǒng)計劃分為下載統(tǒng)計和訪問統(tǒng)計。
圖3 基于Web Service的系統(tǒng)開發(fā)架構(gòu)圖
系統(tǒng)共有元數(shù)據(jù)錄入、數(shù)據(jù)目錄、數(shù)據(jù)查詢、數(shù)據(jù)下載和訪問統(tǒng)計5個功能模塊組成,系統(tǒng)總體功能框架如圖4所示。系統(tǒng)實現(xiàn)界面如圖5所示。
(1)數(shù)據(jù)錄入模塊
數(shù)據(jù)錄入模塊提供2種方式:一是完全的手工錄入;二是在配置好數(shù)據(jù)源后通過內(nèi)置程序萃取元數(shù)據(jù)信息,在用戶對必要的信息進行完善后提交進行元數(shù)據(jù)注冊。行驗證。若驗證通過,則存入系統(tǒng)中等待管理員審核;若驗證未通過,則系統(tǒng)定位到第一個出錯的元數(shù)據(jù)項,并給出錯誤提示,提醒用戶修改。成功錄入后會在頁面顯示剛剛錄入的信息以便用戶核對查錯。
圖4 系統(tǒng)功能框架圖
方式二便捷度較高,只需部分人工參與。系統(tǒng)要求首先配置好需要注冊的數(shù)據(jù)庫,配置成功后,后臺自動萃取該數(shù)據(jù)庫的元數(shù)據(jù)信息并保存到臨時元數(shù)據(jù)庫中,同時將萃取到的數(shù)據(jù)信息顯示給用戶,供用戶補充并核對。對于抽取不到的數(shù)據(jù)項,需要用戶手工填寫。為便于區(qū)分,系統(tǒng)對必填項和選填項進行標注,必填項數(shù)據(jù)不完整時,用戶必須將信息補全后,才可進入后續(xù)流程。
圖5 系統(tǒng)實現(xiàn)界面圖
無論是方式一還是方式二,都將繁瑣的工作交給系統(tǒng)處理,最大化地給用戶提供便利。各用戶單位只需要提供一個數(shù)據(jù)庫只讀用戶,即可萃取到元數(shù)據(jù)信息。系統(tǒng)支持Oracle、Mysql、SQLServer等主流數(shù)據(jù)庫。
(2)數(shù)據(jù)目錄模塊
數(shù)據(jù)目錄模塊提供2種操作方式。一是使用系統(tǒng)默認生成的目錄樹結(jié)構(gòu)進行數(shù)據(jù)資源瀏覽等操作;二是用戶自己定制目錄樹分類標準,生成個性化的目錄樹結(jié)構(gòu)再加以操作。
方式一中,目錄樹結(jié)構(gòu)模塊會自動根據(jù)元數(shù)據(jù)庫內(nèi)信息按照默認分類層級生成一棵資源目錄樹。用戶可以對目錄樹進行點擊展開直到最后一個層級。在對最后一個層級對象點擊時,目錄檢索結(jié)果模塊會顯示出此對象對應(yīng)的元數(shù)據(jù)信息。用戶可以對元數(shù)據(jù)信息進行詳細查看、數(shù)據(jù)預(yù)覽、數(shù)據(jù)下載等操作。
方式二中,用戶首先對分類層級定制,最多可以定制4個層級。定制層級后點擊生成目錄樹則在目錄樹結(jié)構(gòu)模塊生成一棵個性定制的目錄樹。
(3)數(shù)據(jù)查詢模塊
數(shù)據(jù)查詢模塊提供簡單查詢、復(fù)合等查詢方式。
簡單查詢是最基本的查詢方式,只要求用戶輸入一個檢索詞,系統(tǒng)根據(jù)這個檢索詞對摘要、關(guān)鍵詞等進行全文匹配查詢。無論摘要,關(guān)鍵詞,還是標題中出現(xiàn)該檢索詞均認為該條記錄符合檢索要求,將其作為檢索結(jié)果返回。
復(fù)合查詢縮小了數(shù)據(jù)的查詢范圍,實現(xiàn)對查詢數(shù)據(jù)結(jié)果的快速準確定位,提高查詢效率,同時,也為了滿足不同用戶的查詢需要。復(fù)合查詢?yōu)橛脩籼峁└嗟臋z索條件,用以更加精確地檢索出元數(shù)據(jù)。選擇數(shù)據(jù)庫字段名稱進行檢索包括元數(shù)據(jù)名稱、關(guān)鍵詞和摘要等;每種分類可以輸入不同的檢索詞進行多重查詢。
(4)數(shù)據(jù)下載模塊
對于公開和在用戶下載權(quán)限內(nèi)的數(shù)據(jù)資源,在數(shù)據(jù)下載模塊可以使用數(shù)據(jù)下載功能在線瀏覽或下載該數(shù)據(jù)資源;而對于不公開和受用戶權(quán)限限制不能訪問或下載該數(shù)據(jù),用戶可以通過填寫數(shù)據(jù)申請表向管理員或數(shù)據(jù)所在單位申請該數(shù)據(jù)。通過數(shù)據(jù)下載申請授權(quán)后,用戶可通過管理員或數(shù)據(jù)所在單位提供的下載方式在共享服務(wù)系統(tǒng)直接下載。
(5)數(shù)據(jù)統(tǒng)計模塊
訪問統(tǒng)計服務(wù)功能實現(xiàn)信息交換過程中對系統(tǒng)操作信息和各個節(jié)點交換的業(yè)務(wù)數(shù)據(jù)信息的記錄和展現(xiàn)。如在線數(shù)據(jù)下載統(tǒng)計、共享資源服務(wù)訪問統(tǒng)計等。用戶通過限定時間范圍,選擇展現(xiàn)方式(柱狀圖、餅圖等)即可搜索出結(jié)果,并將結(jié)果按照選定方式展現(xiàn)出來。
元數(shù)據(jù)模型基于水利核心元數(shù)據(jù)標準、擴充元數(shù)據(jù)語義進行設(shè)計,實現(xiàn)了采用三級元數(shù)據(jù)結(jié)構(gòu)全面地描述數(shù)據(jù)。系統(tǒng)采用MVC架構(gòu)、Java EE技術(shù)和B/S模式設(shè)計開發(fā),滿足跨平臺要求。在技術(shù)體系中采用了AJAX、Mybatis、及Spring MVC等核心技術(shù),在保證技術(shù)先進性的同時兼顧了技術(shù)的實用性。采用數(shù)據(jù)訪問對象(Data Access Object)來實現(xiàn)對數(shù)據(jù)庫的存取,采用異步任務(wù)來處理長時間請求,采用O-R MAPPING技術(shù)保證公共數(shù)據(jù)庫的可擴展性;采用基于Web Service的方式開發(fā)接口,使得在構(gòu)建各種各樣的系統(tǒng)中的服務(wù)時可以采用一種統(tǒng)一和通用的交互方式,從而實現(xiàn)數(shù)據(jù)共享。通過實踐運行表明,水利數(shù)據(jù)資源目錄服務(wù)系統(tǒng)提高了水利數(shù)據(jù)資源的組織、共享、管理和統(tǒng)計能力,提高了水利部門的工作效率。
[ 1 ]程益聯(lián),付靜 . 水利數(shù)據(jù)整合共享研究[ J ] . 水利信息化,2014(6):13-17 .
[ 2 ]朱躍龍,許峰,馮鈞,等. 水利信息資源目錄體系構(gòu)建研究 [ J ] . 水利信息化,2010(02):4-8 .
[ 3 ]成建國,馮鈞,楊鵬,等 . 水利數(shù)據(jù)資源目錄服務(wù)關(guān)鍵技術(shù)研究 [ J ] . 水利信息化,2014(06):18-21+35 .
[ 4 ]李萍 . 基于WebService的數(shù)據(jù)共享交換平臺的設(shè)計與實現(xiàn) [ J ] . 計算機時代,2016(07):34-37+41 .
[ 5 ]陸佳民,馮鈞,唐志賢,等 . 水利大數(shù)據(jù)目錄服務(wù)與資源共享關(guān)鍵技術(shù)研究 [ J ] . 水利信息化,2017(4):17-20,27 .