楊 辰,周立新,畢奔騰
(1.中國地質(zhì)科學(xué)院 巖溶地質(zhì)研究所,廣西 桂林 541004;2.國土資源部/廣西巖溶動(dòng)力學(xué)重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004)
中國是世界上巖溶發(fā)育最強(qiáng)烈的國家之一,巖溶面積約占國土面積的三分之一,是全球巖溶面積最大的國家之一[1],幾乎所有的省份都有巖溶的分布。巖溶區(qū)地貌具有多樣性,石林、天坑、巖溶洞穴、地下河、峰叢峰林等為國內(nèi)旅游事業(yè)帶來了無線生機(jī),巖溶區(qū)存在大量地下河和巖溶泉,提供了豐富的水資源,但同時(shí)巖溶地區(qū)作為典型的生態(tài)脆弱區(qū)存在石漠化、塌陷、干旱缺水、地下河污染、水土流失等環(huán)境地質(zhì)問題[2-10]。如何更好地開發(fā)巖溶區(qū)旅游、地下水資源,解決巖溶環(huán)境地質(zhì)災(zāi)害,保護(hù)巖溶區(qū)生態(tài)環(huán)境,已成為政府、科研人員、社會(huì)公眾比較關(guān)心的問題[11-14]。
隨著地質(zhì)調(diào)查工作的深入,我國已積累了大量巖溶區(qū)的地質(zhì)資料,資料來源豐富、形式多樣、種類繁多,如何將這些成果數(shù)據(jù)面向社會(huì)提供服務(wù),發(fā)揮其潛在的經(jīng)濟(jì)價(jià)值,是文中研究的主要內(nèi)容。
針對(duì)巖溶地質(zhì)數(shù)據(jù)多源異構(gòu)的特點(diǎn),基于SOA設(shè)計(jì)巖溶地質(zhì)數(shù)據(jù)服務(wù)系統(tǒng),以組件服務(wù)的形式設(shè)計(jì)系統(tǒng)中不同功能模塊,根據(jù)不用需求對(duì)服務(wù)進(jìn)行調(diào)用,有效簡化了開發(fā)人員的重復(fù)開發(fā)設(shè)計(jì)工作,增加了系統(tǒng)的靈活性和可擴(kuò)展性。文中主要從巖溶地質(zhì)數(shù)據(jù)建庫、系統(tǒng)架構(gòu)、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)幾個(gè)方面進(jìn)行介紹。
面向服務(wù)架構(gòu)(SOA)是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來[15]。接口是采用中立的方式定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種各樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。
SOA本身就是一種面向企業(yè)級(jí)服務(wù)的系統(tǒng)架構(gòu),在基于SOA架構(gòu)的系統(tǒng)中,具體應(yīng)用程序的功能是由一些松耦合并且具有統(tǒng)一結(jié)構(gòu)定義方式的組件(service)組合構(gòu)建起來的,與其他企業(yè)架構(gòu)相比,具有對(duì)于業(yè)務(wù)變更可以更快和更有效的響應(yīng)的優(yōu)點(diǎn)。SOA既不是一種語言,也不是一種具體的技術(shù),而是一種新的軟件系統(tǒng)架構(gòu)模型。SOA架構(gòu)具有一些典型特性,主要包括松耦合性、位置透明性以及協(xié)議無關(guān)性。松耦合性要求SOA架構(gòu)中的不同服務(wù)之間應(yīng)該保持一種松耦合的關(guān)系,也就是應(yīng)該保持一種相對(duì)獨(dú)立的關(guān)系;位置透明性要求SOA系統(tǒng)中的所有服務(wù)對(duì)于它們的調(diào)用者來說都是位置透明的,也就是說每個(gè)服務(wù)的調(diào)用者只需要知道他們調(diào)用的是哪一個(gè)服務(wù),但并不需要知道所調(diào)用服務(wù)的物理位置在哪里;而協(xié)議無關(guān)性要求每一個(gè)服務(wù)都可以通過不同的協(xié)議來調(diào)用[16]。
組件模型是系統(tǒng)架構(gòu)的一種形式,從廣義上來講,組件就是實(shí)現(xiàn)一類業(yè)務(wù)功能的可重用、可獨(dú)立部署和設(shè)計(jì)的程序集合,這些程序有明確和完善的接口定義,通過接口完成功能請(qǐng)求,而具體實(shí)現(xiàn)則通過封裝機(jī)制加以屏蔽。采用組件模型可以通過將業(yè)務(wù)功能封裝在不同的組件中,實(shí)現(xiàn)功能分解,降低系統(tǒng)的耦合程度,保證系統(tǒng)中各個(gè)組件能夠獨(dú)立進(jìn)行修改和擴(kuò)展。在系統(tǒng)設(shè)計(jì)過程中,通過分析業(yè)務(wù)功能需要和系統(tǒng)需求,分類業(yè)務(wù)處理流程,把系統(tǒng)劃分為若干通用組件。
巖溶地質(zhì)數(shù)據(jù)主要包括巖溶水文地質(zhì)、巖溶碳匯、巖溶塌陷、巖溶石漠化等方面的數(shù)據(jù),來源廣泛,數(shù)據(jù)結(jié)構(gòu)復(fù)雜,數(shù)據(jù)集成共享比較困難。
根據(jù)數(shù)據(jù)結(jié)構(gòu)將巖溶數(shù)據(jù)分為結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)兩大類,結(jié)構(gòu)化數(shù)據(jù)包括基礎(chǔ)地質(zhì)調(diào)查、水資源調(diào)查、環(huán)境地質(zhì)調(diào)查、鉆孔、測(cè)試分析、長觀數(shù)據(jù)、碳匯監(jiān)測(cè)、石漠化、巖溶塌陷等調(diào)查類點(diǎn)數(shù)據(jù);非結(jié)構(gòu)化數(shù)據(jù)包括資料檔案、巖溶柵格圖件、巖溶矢量圖件、成果報(bào)告等數(shù)據(jù)。
(1)結(jié)構(gòu)化數(shù)據(jù)。
結(jié)構(gòu)化數(shù)據(jù)基于oracle建立關(guān)系型數(shù)據(jù)庫,這類數(shù)據(jù)具有統(tǒng)一編號(hào)、地理位置、經(jīng)緯度、項(xiàng)目信息等相同基本信息,通過關(guān)鍵字段建立相互的表間關(guān)系。
(2)非結(jié)構(gòu)化數(shù)據(jù)。
對(duì)非結(jié)構(gòu)化數(shù)據(jù)建立元數(shù)據(jù),元數(shù)據(jù)存儲(chǔ)于oracle的關(guān)系數(shù)據(jù)庫中,具體數(shù)據(jù)以外部掛接的文件方式存儲(chǔ)在服務(wù)器上,矢量圖件數(shù)據(jù)存儲(chǔ)在mapgis k9數(shù)據(jù)庫中。非結(jié)構(gòu)化數(shù)據(jù)通過元數(shù)據(jù)與結(jié)構(gòu)化數(shù)據(jù)建立關(guān)聯(lián),數(shù)據(jù)庫的整體結(jié)構(gòu)如圖1所示
圖1 數(shù)據(jù)庫結(jié)構(gòu)
基于巖溶地質(zhì)數(shù)據(jù)現(xiàn)狀,建立規(guī)范化、可擴(kuò)展性強(qiáng)、靈活度高的巖溶地質(zhì)數(shù)據(jù)共享服務(wù)數(shù)據(jù)庫,實(shí)現(xiàn)各類數(shù)據(jù)的統(tǒng)一管理與服務(wù);采用SOA架構(gòu)設(shè)計(jì)實(shí)現(xiàn)巖溶地質(zhì)數(shù)據(jù)服務(wù)系統(tǒng),針對(duì)不同服務(wù)內(nèi)容開發(fā)功能模塊,進(jìn)行松散耦合,統(tǒng)一為用戶提供服務(wù)。設(shè)計(jì)的系統(tǒng)架構(gòu)如圖2所示。
數(shù)據(jù)層主要為巖溶地質(zhì)共享服務(wù)數(shù)據(jù)庫,包含的數(shù)據(jù)有:
(1)巖溶檔案資料,主要包括巖溶相關(guān)的項(xiàng)目資料、成果文檔、技術(shù)資料等。
(2)巖溶圖件,主要包括巖溶地下水資源圖、環(huán)境地質(zhì)圖、綜合類圖件、水文地質(zhì)圖等柵格矢量圖件。
(3)巖溶技術(shù)標(biāo)準(zhǔn),主要包括與巖溶相關(guān)的國標(biāo)、行業(yè)標(biāo)準(zhǔn)等。
(4)巖溶現(xiàn)象,主要包括常見巖溶地貌的介紹,如巖溶泉、天窗、地下河、天生橋等,用于巖溶科普服務(wù)。
(5)巖溶地質(zhì)元數(shù)據(jù),主要包括檔案資料、巖溶圖件、巖溶相關(guān)技術(shù)標(biāo)準(zhǔn)、巖溶空間數(shù)據(jù)庫、巖溶現(xiàn)象等非結(jié)構(gòu)化數(shù)據(jù)的元數(shù)據(jù)。
(6)巖溶調(diào)查數(shù)據(jù),主要包括巖溶洞穴、水資源、塌陷、干旱、洪澇、石漠化等調(diào)查數(shù)據(jù)。
圖2 系統(tǒng)架構(gòu)
集成服務(wù)層是整個(gè)系統(tǒng)的核心,通過多個(gè)SOA服務(wù)模塊實(shí)現(xiàn)多源異構(gòu)數(shù)據(jù)的集成訪問,包括服務(wù)中間件及應(yīng)用服務(wù)庫。可以根據(jù)用戶通過的需求定制不同的規(guī)則,滿足用戶各種數(shù)據(jù)需求。
根據(jù)巖溶地質(zhì)數(shù)據(jù)服務(wù)系統(tǒng)的應(yīng)用需求,應(yīng)用層設(shè)計(jì)為門戶頁面、元數(shù)據(jù)服務(wù)系統(tǒng)、調(diào)查數(shù)據(jù)服務(wù)系統(tǒng)和管理系統(tǒng),面向最終用戶提供可視化查詢展示、提供數(shù)據(jù)的打包下載等功能。門戶頁面提供服務(wù)信息的綜合展示和導(dǎo)航索引,方便用戶快速獲取服務(wù)內(nèi)容;元數(shù)據(jù)服務(wù)系統(tǒng)為用戶提供基于元數(shù)據(jù)的綜合查詢服務(wù),包括元數(shù)據(jù)查詢服務(wù)、矢量圖件查詢服務(wù)、柵格圖件查詢服務(wù)、數(shù)據(jù)下載等,統(tǒng)一入口為服務(wù)產(chǎn)品目錄;調(diào)查數(shù)據(jù)查詢?yōu)橛脩籼峁└黝悗r溶地質(zhì)調(diào)查點(diǎn)的基本信息,統(tǒng)一入口為巖溶一張圖;管理系統(tǒng)面向管理人員,用于系統(tǒng)的維護(hù)管理。
集成服務(wù)層是整個(gè)系統(tǒng)的核心,將系統(tǒng)整體業(yè)務(wù)流程中可獨(dú)立的,可重復(fù)調(diào)用的業(yè)務(wù)功能,采用SOA系統(tǒng)架構(gòu)、Web Service服務(wù)技術(shù)[17],以服務(wù)的形式提供服務(wù)。整個(gè)集成服務(wù)層包括服務(wù)中間件[18]和應(yīng)用服務(wù)庫兩部分。其中服務(wù)中間件具有服務(wù)注冊(cè)、服務(wù)流程編排、服務(wù)解析、調(diào)用等功能,保證應(yīng)用層能夠查找到所需的服務(wù),滿足應(yīng)用需求。服務(wù)庫包括安全認(rèn)證、數(shù)據(jù)配置、數(shù)據(jù)獲取、系統(tǒng)管理等服務(wù)模塊,如圖3所示。
圖3 集成服務(wù)層架構(gòu)
對(duì)用戶發(fā)送的數(shù)據(jù)請(qǐng)求進(jìn)行解析和認(rèn)證,通過服務(wù)中間件調(diào)用相應(yīng)的服務(wù)接口,從多源數(shù)據(jù)庫中獲取數(shù)據(jù)重新組織,生成用戶所需的數(shù)據(jù),從而形成完成的服務(wù)流程。巖溶地質(zhì)數(shù)據(jù)服務(wù)系統(tǒng)的核心流程如圖4所示。
該系統(tǒng)以oracle 11g+IGServer為數(shù)據(jù)庫,Tomcat為Web服務(wù)器進(jìn)行部署,實(shí)現(xiàn)了巖溶地質(zhì)元數(shù)據(jù)、柵格、矢量、文件、調(diào)查數(shù)據(jù)等多種數(shù)據(jù)的查詢、瀏覽、下載等功能。
圖4 系統(tǒng)服務(wù)流程
系統(tǒng)主頁主要包含圖片新聞、消息速遞信息、地調(diào)成果信息、調(diào)查數(shù)據(jù)信息、檢索模塊、數(shù)據(jù)統(tǒng)計(jì)信息、服務(wù)指南以及服務(wù)產(chǎn)品目錄、巖溶地質(zhì)一張圖、巖溶圖件等功能,為用戶全面了解使用系統(tǒng)提供幫助和索引。
以元數(shù)據(jù)為核心為用戶提供數(shù)據(jù)綜合查詢服務(wù),包括檔案資料、巖溶圖件、技術(shù)標(biāo)準(zhǔn)、儀器設(shè)備、巖溶數(shù)據(jù)、巖溶現(xiàn)象等內(nèi)容的模糊檢索及高級(jí)檢索等,實(shí)現(xiàn)元數(shù)據(jù)、文檔、圖件等信息的一體化查詢,查詢結(jié)構(gòu)如圖5所示。
圖5 服務(wù)產(chǎn)品目錄
以天地圖為底圖,將巖溶地質(zhì)調(diào)查數(shù)據(jù)標(biāo)注到地圖上,實(shí)現(xiàn)空間上的數(shù)據(jù)綜合查詢。提供巖溶地區(qū)水文地質(zhì)環(huán)境地質(zhì)調(diào)查數(shù)據(jù)在空間上的詳細(xì)信息的查詢功能,包括調(diào)查點(diǎn)基本信息、項(xiàng)目信息、單位信息及相關(guān)圖片等內(nèi)容(見圖6);提供圖幅定位以及坐標(biāo)定位的功能;同時(shí)提供基礎(chǔ)的地圖功能,如地圖類型的切換、行政區(qū)劃的切換、測(cè)線、測(cè)面、流量統(tǒng)計(jì)等功能。
圖6 天然水點(diǎn)(巖溶泉)信息查詢
系統(tǒng)基于SOA實(shí)現(xiàn)了巖溶調(diào)查點(diǎn)、元數(shù)據(jù)、柵格圖件、矢量圖件、文本等多源異構(gòu)數(shù)據(jù)的綜合組織管理與查詢服務(wù),設(shè)計(jì)了數(shù)據(jù)層、集成服務(wù)層和應(yīng)用層的三層系統(tǒng)結(jié)構(gòu),利用oracle、IGServer、天地圖、SOA、Web Service等技術(shù)實(shí)現(xiàn)了Web端的綜合查詢展示,使科研人員、社會(huì)公眾可以快速查閱感興趣的多源異構(gòu)巖溶信息及獲取方式,對(duì)巖溶地質(zhì)成果的社會(huì)化服務(wù)具有重要意義。目前系統(tǒng)還存在一些不足,有待進(jìn)一步完善,如數(shù)據(jù)內(nèi)容較少,需繼續(xù)擴(kuò)充;系統(tǒng)查詢效率可以繼續(xù)優(yōu)化提高,查詢方式更加多元化,功能更加豐富。