楊 辰 ,劉 展,魏合龍,李 曼,郭加樹,孫記紅,李益文
(1.中國地質(zhì)科學(xué)院巖溶地質(zhì)研究所/國土資源部、廣西壯族自治區(qū)巖溶動力學(xué)重點實驗室,廣西 桂林 541004;2.中國石油大學(xué)(華東),山東 青島 266580;3.青島海洋地質(zhì)研究所,山東 青島 266071)
在全球陸地資源日益緊張和環(huán)境不斷惡化的今天,海洋成為沿海國家經(jīng)濟發(fā)展的重要支柱[1],因此對海洋地質(zhì)調(diào)查數(shù)據(jù)產(chǎn)生大量的應(yīng)用需求。由于工作分區(qū)部署,海洋地質(zhì)調(diào)查數(shù)據(jù)由各個調(diào)查單位獨自管理,數(shù)據(jù)存儲在傳統(tǒng)的關(guān)系數(shù)據(jù)庫中,這就導(dǎo)致了海洋地質(zhì)調(diào)查數(shù)據(jù)存在數(shù)據(jù)結(jié)構(gòu)不一致、數(shù)據(jù)關(guān)聯(lián)性小、信息孤島、數(shù)據(jù)難以共享、利用率低等問題[2],如何對獲取的數(shù)據(jù)進行有效的組織并提供高效的數(shù)據(jù)服務(wù),是信息化建設(shè)需要解決的關(guān)鍵問題。目前,國外面向?qū)ο蟮臄?shù)據(jù)模型應(yīng)用已趨于成熟,最典型的是 POSC(Petrotechnical Open Standards Consortium)組織的 Epicentre數(shù)據(jù)模型,國內(nèi)宋瑋等人[3]進行了面向?qū)ο髸r空數(shù)據(jù)模型的研究;徐翠玲等人[4]設(shè)計了面向?qū)ο蟮臄?shù)字地質(zhì)圖數(shù)據(jù)模型。海洋地質(zhì)調(diào)查領(lǐng)域戴勤奮等[5]提出了區(qū)域海洋地質(zhì)調(diào)查數(shù)據(jù)庫結(jié)構(gòu)模型,馮斌等人[6]設(shè)計的海洋地質(zhì)調(diào)查數(shù)據(jù)庫管理系統(tǒng),孫記紅等人[7]設(shè)計了海洋油氣勘探鉆錄測數(shù)據(jù)庫平臺,并構(gòu)建了海洋油氣勘探鉆錄測數(shù)據(jù)庫,但這些都是基于關(guān)系數(shù)據(jù)模型的,數(shù)據(jù)的管理應(yīng)用僅局限于單個數(shù)據(jù)庫,數(shù)據(jù)的關(guān)聯(lián)性低、共享差,還沒有統(tǒng)一的數(shù)據(jù)集成服務(wù)系統(tǒng)。
本文通過研究 Epicentre數(shù)據(jù)模型,采用面向?qū)ο蟮姆椒ㄔO(shè)計統(tǒng)一數(shù)據(jù)模型,建立海洋地質(zhì)調(diào)查數(shù)據(jù)服務(wù)平臺,集成各海洋地質(zhì)調(diào)查數(shù)據(jù)庫數(shù)據(jù),實現(xiàn)海洋地質(zhì)調(diào)查數(shù)據(jù)的共享服務(wù)。
海洋地質(zhì)調(diào)查數(shù)據(jù)分布存儲在各調(diào)查單位的關(guān)系數(shù)據(jù)庫中,由各單位獨立管理使用,設(shè)計面向?qū)ο蟮慕y(tǒng)一邏輯實現(xiàn)海洋地質(zhì)調(diào)查數(shù)據(jù)的集成。為方便專業(yè)人員獲取數(shù)據(jù),設(shè)計業(yè)務(wù)模型,為用戶提供以業(yè)務(wù)活動為單元的數(shù)據(jù),并提供相應(yīng)的應(yīng)用方法?;谝陨戏治?如圖1所示,本文提出了“三層”體系結(jié)構(gòu)的海洋地質(zhì)調(diào)查數(shù)據(jù)服務(wù)平臺的設(shè)計框架。
圖1 海洋地質(zhì)調(diào)查數(shù)據(jù)服務(wù)平臺體系架構(gòu)Fig.1 The system architecture of marine geological survey data services platform
基礎(chǔ)數(shù)據(jù)服務(wù)層以單個海洋地質(zhì)調(diào)查數(shù)據(jù)庫為基本單位,建立海洋地質(zhì)調(diào)查數(shù)據(jù)訪問接口,以服務(wù)的方式對外發(fā)布,在集成管理層統(tǒng)一管理。
基礎(chǔ)數(shù)據(jù)為存儲在各調(diào)查單位的海洋地質(zhì)調(diào)查數(shù)據(jù)庫數(shù)據(jù)。海洋地質(zhì)調(diào)查是海洋沉積、海洋地貌和海底構(gòu)造調(diào)查的統(tǒng)稱。海洋地質(zhì)調(diào)查內(nèi)容主要包括地球物理調(diào)查、地質(zhì)取樣、原位測試觀測、樣品測試分析、研究等[8],包括地球物理調(diào)查數(shù)據(jù)、海底地形調(diào)查數(shù)據(jù)、樣品分析數(shù)據(jù)、海洋鉆井?dāng)?shù)據(jù)、海岸帶環(huán)境地質(zhì)調(diào)查數(shù)據(jù)及衛(wèi)星遙感數(shù)據(jù)等[5-6]。
集成管理層以統(tǒng)一的邏輯模型實現(xiàn)多源異構(gòu)數(shù)據(jù)庫的集成訪問,主要包括管理單庫數(shù)據(jù)訪問服務(wù)、面向?qū)ο蟮慕y(tǒng)一邏輯模型管理、數(shù)據(jù)統(tǒng)一訪問接口等功能。
(1)面向?qū)ο蟮慕y(tǒng)一邏輯模型設(shè)計
采用面向?qū)ο蟮姆椒?以對象-活動-關(guān)系為核心體系,建立涵蓋所有海洋地質(zhì)調(diào)查對象的統(tǒng)一的海洋地質(zhì)調(diào)查數(shù)據(jù)邏輯模型。
(2)數(shù)據(jù)源信息管理
主要包括數(shù)據(jù)源的數(shù)據(jù)庫名稱、簡介、對象關(guān)系映射信息、單庫數(shù)據(jù)訪問服務(wù)接口等。
(3)統(tǒng)一數(shù)據(jù)訪問接口設(shè)計
根據(jù)用戶發(fā)出的查詢指令,對各單庫數(shù)據(jù)訪問服務(wù)進行查詢訪問,并將各數(shù)據(jù)訪問服務(wù)返回的查詢結(jié)果進行整合,提交給用戶。
平臺應(yīng)用層主要是根據(jù)集成管理層提供的統(tǒng)一數(shù)據(jù)訪問接口,進行基于對象和業(yè)務(wù)模型的數(shù)據(jù)可視化查詢展示、打包下載等服務(wù)。
實現(xiàn)多源異構(gòu)海洋地質(zhì)調(diào)查數(shù)據(jù)庫的集成服務(wù),為用戶提供基于業(yè)務(wù)模型和對象的數(shù)據(jù)查詢,主要有以下關(guān)鍵技術(shù)。
借鑒 POSC業(yè)務(wù)模型[9]和王海平等人提出的油田業(yè)務(wù)分析與建模方法[10],本文以海洋地質(zhì)調(diào)查生命周期為主線,結(jié)合專業(yè)技術(shù)和業(yè)務(wù)管理的劃分方法,合理劃分業(yè)務(wù)域及業(yè)務(wù)活動,保證全面覆蓋海洋地質(zhì)調(diào)查業(yè)務(wù),并避免不同業(yè)務(wù)域間的業(yè)務(wù)活動冗余,采用“業(yè)務(wù)領(lǐng)域-業(yè)務(wù)-業(yè)務(wù)流程-業(yè)務(wù)活動”的方式對海洋地質(zhì)調(diào)查進行業(yè)務(wù)及活動劃分,具體流程如圖 2所示。業(yè)務(wù)模型的建立方便了用戶基于業(yè)務(wù)的數(shù)據(jù)查詢服務(wù),用戶不需要自己建立數(shù)據(jù)之間的關(guān)系,避免了用戶對數(shù)據(jù)庫不了解帶來的麻煩。
圖2 業(yè)務(wù)模型建模流程Fig.2 Modeling process of business model
采用面向?qū)ο蟮姆椒ㄔO(shè)計,參考EPICENTRE數(shù)據(jù)模型,針對現(xiàn)有海洋地質(zhì)調(diào)查數(shù)據(jù),設(shè)計覆蓋所有海洋地質(zhì)調(diào)查數(shù)據(jù)的統(tǒng)一邏輯模型。
(1)EPICENTRE數(shù)據(jù)模型
EPICENTRE數(shù)據(jù)模型是由類、實體、屬性、約束等構(gòu)成的具有層次結(jié)構(gòu)的面向?qū)ο蟮臄?shù)據(jù)模型,對象-活動-屬性-關(guān)系構(gòu)成了Epicentre數(shù)據(jù)模型的核心數(shù)據(jù)體系,如圖3所示[11]。EPICENTRE數(shù)據(jù)模型主要由活動、特性、關(guān)心對象、關(guān)系、地質(zhì)過程、參考數(shù)據(jù)等超類構(gòu)成。
圖3 Epicentre數(shù)據(jù)模型核心體系Fig.3 The core system of Epicentre data model
(2)邏輯模型設(shè)計原則
設(shè)計海洋地質(zhì)調(diào)查邏輯模型時,應(yīng)體現(xiàn)面向?qū)ο蟮奶攸c和科學(xué)的數(shù)據(jù)管理體系,同時模型具有高度的集成性,模型必須覆蓋海洋地質(zhì)調(diào)查所有領(lǐng)域的對象,這些對象不按專業(yè)進行分割,而是按客觀世界中對象間的聯(lián)系組織,使各專業(yè)的應(yīng)用軟件都可以對該模型進行操作,并且其數(shù)據(jù)是相互一致的,實現(xiàn)不同應(yīng)用軟件在數(shù)據(jù)一級上的集成。
為實現(xiàn)關(guān)系數(shù)據(jù)庫向面向?qū)ο髷?shù)據(jù)模型的轉(zhuǎn)換,需采用ORM(Object/Relation Mapping)技術(shù)。ORM對象關(guān)系映射,將關(guān)系數(shù)據(jù)庫中表的數(shù)據(jù)映射成為對象,以對象的形式展現(xiàn),這樣開發(fā)人員就可以把對數(shù)據(jù)庫的操作轉(zhuǎn)化為對這些對象的操作,不需要再使用復(fù)雜的 SQL語句[12]。ORM 是隨著面向?qū)ο蟮能浖_發(fā)方法發(fā)展而產(chǎn)生的。面向?qū)ο蟮拈_發(fā)方法是當(dāng)今企業(yè)級應(yīng)用開發(fā)環(huán)境中的主流開發(fā)方法,關(guān)系數(shù)據(jù)庫是企業(yè)級應(yīng)用環(huán)境中永久存放數(shù)據(jù)的主流數(shù)據(jù)存儲系統(tǒng)。對象和關(guān)系數(shù)據(jù)是業(yè)務(wù)實體的兩種表現(xiàn)形式,業(yè)務(wù)實體在內(nèi)存中表現(xiàn)為對象,在數(shù)據(jù)庫中表現(xiàn)為關(guān)系數(shù)據(jù)。內(nèi)存中的對象之間存在關(guān)聯(lián)和繼承關(guān)系,而在數(shù)據(jù)庫中,關(guān)系數(shù)據(jù)無法直接表達多對多關(guān)聯(lián)和繼承關(guān)系。因此,對象-關(guān)系映射(ORM)系統(tǒng)一般以中間件的形式存在,主要實現(xiàn)程序?qū)ο蟮疥P(guān)系數(shù)據(jù)庫數(shù)據(jù)的映射,映射機制如圖 4所示[13]。
圖4 ORM映射機制Fig.4 ORM mapping mechanism
由于海洋地質(zhì)調(diào)查數(shù)據(jù)存儲在分布式異構(gòu)數(shù)據(jù)庫中,需采用分布式技術(shù)實現(xiàn)對各數(shù)據(jù)庫數(shù)據(jù)的集成共享,本文所采用的分布式技術(shù)為WCF技術(shù)。
WCF的全稱為Windows Communication Foundation,是 Microsoft 基于面向服務(wù)的體系結(jié)構(gòu)(SOA)構(gòu)建的分布式通信編程框架,是.NET框架的重要組成部分,體系結(jié)構(gòu)如圖5所示[14]。使用WCF技術(shù),程序員可以快速構(gòu)建具有跨平臺性、高可用性、安全、支持事務(wù)處理的企業(yè)級解決方案[15]。
圖5 WCF體系結(jié)構(gòu)Fig.5 WCF system structure
WCF實際上是構(gòu)建了一個框架,這個框架實現(xiàn)了在互聯(lián)系統(tǒng)中各個應(yīng)用程序之間如何通信。使得開發(fā)和設(shè)計人員在構(gòu)建分布式系統(tǒng)中,無需再考慮如何去實現(xiàn)通信相關(guān)的問題,更加關(guān)注與系統(tǒng)的業(yè)務(wù)邏輯本身。在WCF框架中,各個應(yīng)用程序之間的通信是由終結(jié)點(Endpoint)來實現(xiàn)的,如圖 6所示。每個終結(jié)點由地址(Address)、綁定(Binding)、協(xié)定(Contract)和行為(Behavior),其中 Address,Binding,Contract稱為終結(jié)點(Endpoint)的ABC,當(dāng)WCF發(fā)送消息時,address描述了消息發(fā)送的網(wǎng)絡(luò)地址,binding描述了消息的發(fā)送方式,contract則是消息的組織操作方式和消息內(nèi)容[16]。
圖6 WCF程序通信Fig.6 WCF program communication
單庫數(shù)據(jù)服務(wù)主要實現(xiàn)底層數(shù)據(jù)庫與統(tǒng)一數(shù)據(jù)模型的關(guān)聯(lián)和基于統(tǒng)一數(shù)據(jù)模型的對象數(shù)據(jù)訪問接口,具體實現(xiàn)步驟如下:
(1)數(shù)據(jù)庫配置,配置數(shù)據(jù)庫連接時所需要的信息,如數(shù)據(jù)庫類型、數(shù)據(jù)庫名、用戶名、密碼以及連接字符串等,數(shù)據(jù)庫配置文件采用 XML文件定義。所需信息均采用
(2)對象關(guān)系映射,建立統(tǒng)一對象模型與關(guān)系數(shù)據(jù)庫之間的關(guān)聯(lián)關(guān)系,如對象類和數(shù)據(jù)庫表的對應(yīng)關(guān)系、表字段和類屬性名稱的對應(yīng)關(guān)系等,具體采用XML文件定義。對象與數(shù)據(jù)庫表之間的定義格式為
(3)數(shù)據(jù)訪問服務(wù)設(shè)計,建立面向?qū)ο蟮慕y(tǒng)一數(shù)據(jù)模型與底層關(guān)系數(shù)據(jù)庫的關(guān)聯(lián)之后,設(shè)計實現(xiàn)對對象的訪問接口,具體通過 string GetEntityList(string pEntityName,string strHql)和byte[]GetEntityByteValue(string strHql)函數(shù)實現(xiàn)數(shù)據(jù)查詢返回結(jié)果,并采用WCF技術(shù)實現(xiàn)數(shù)據(jù)訪問接口的服務(wù)模式發(fā)布。
數(shù)據(jù)服務(wù)平臺的實現(xiàn)分布式數(shù)據(jù)訪問的關(guān)鍵是對數(shù)據(jù)服務(wù)的管理,主要是實現(xiàn)對數(shù)據(jù)服務(wù)的注冊、查找、更新的功能,本次研究中服務(wù)基于統(tǒng)一的訪問接口,所以對數(shù)據(jù)服務(wù)的管理主要是服務(wù)位置的管理,及服務(wù)URL地址的管理。本次研究通過緩存一個數(shù)據(jù)服務(wù)列表,實現(xiàn)對數(shù)據(jù)服務(wù)的管理,數(shù)據(jù)服務(wù)列表可以通過序列化保存到數(shù)據(jù)服務(wù)源配置文件dataProvider.config中,也可以從 dataProvider.config中反序列化為服務(wù)列表。
實現(xiàn)數(shù)據(jù)的統(tǒng)一訪問主要是對已注冊的分布式數(shù)據(jù)訪問接口進行訪問,具體訪問流程如圖7所示。通過反序列化 dataProvider.config文件,得到服務(wù)列表通過 foreach (string strRemoteAddress in dataP-rovider)逐一訪問,對返回的查詢結(jié)構(gòu)進行整理合并得到最終的查詢結(jié)果。
圖7 統(tǒng)一數(shù)據(jù)查詢訪問流程Fig.7 Unified data query access processes
為了方便專業(yè)人員的使用,本平臺設(shè)計了海洋地質(zhì)調(diào)查業(yè)務(wù)模型。海洋地質(zhì)調(diào)查業(yè)務(wù)模型是根據(jù)海洋地質(zhì)調(diào)查規(guī)范和現(xiàn)有海洋地質(zhì)調(diào)查數(shù)據(jù)庫,對海洋地質(zhì)調(diào)查所涉及的業(yè)務(wù)進行規(guī)劃化、統(tǒng)一化、結(jié)構(gòu)化、標(biāo)準(zhǔn)化整理得到的,涵蓋所有海洋地質(zhì)調(diào)查業(yè)務(wù),為海洋地質(zhì)調(diào)查業(yè)務(wù)人員提供數(shù)據(jù)服務(wù)的應(yīng)用模型。根據(jù)業(yè)務(wù)劃分流程,分析海洋地質(zhì)調(diào)查業(yè)務(wù),得到海洋地質(zhì)調(diào)查業(yè)務(wù)模型,以海洋地質(zhì)調(diào)查中取樣及樣品分析業(yè)務(wù)域為例,其業(yè)務(wù)結(jié)構(gòu)如圖8所示。
用戶可以按自己需求選擇業(yè)務(wù),如果需要精確查詢,可以有條件地查詢業(yè)務(wù)數(shù)據(jù),如圖9是調(diào)用統(tǒng)一數(shù)據(jù)服務(wù)接口開發(fā)的業(yè)務(wù)的條件查詢窗口,可以設(shè)置多種查詢條件篩選所需業(yè)務(wù)數(shù)據(jù)。
本平臺采用的面向?qū)ο髷?shù)據(jù)模型作為統(tǒng)一的數(shù)據(jù)模型,與傳統(tǒng)的關(guān)系數(shù)據(jù)模型相比,具有繼承性、易用性和可維護性好等優(yōu)點。平臺用戶不需知道數(shù)據(jù)的來源,不需要了解具體的數(shù)據(jù)庫結(jié)構(gòu),直接根據(jù)所熟悉的業(yè)務(wù)或?qū)ο筇崛?shù)據(jù),提高了數(shù)據(jù)的共享性、易用性。另外本平臺具有良好的可擴展性和穩(wěn)定性,方便基于網(wǎng)絡(luò)環(huán)境的使用,底層數(shù)據(jù)庫中如果有新的數(shù)據(jù)單元加入,無需改變平臺程序架構(gòu),只需對統(tǒng)一模型進行擴充,對上層應(yīng)用沒有影響。
圖8 海洋地質(zhì)調(diào)查取樣及樣品分析業(yè)務(wù)模型結(jié)構(gòu)Fig.8 Structure of Marine Geological Survey sampling and sample analysis business model
圖9 業(yè)務(wù)條件查詢窗口Fig.9 Query Business Data by conditions
圖10 業(yè)務(wù)查詢結(jié)果展示Fig.10 Results of business query
文中所設(shè)計的海洋地質(zhì)調(diào)查數(shù)據(jù)服務(wù)平臺所有功能模塊均采用服務(wù)的方式構(gòu)建,用戶根據(jù)實際應(yīng)用需求既可以訪問單庫數(shù)據(jù)查詢服務(wù)接口,也可以使用統(tǒng)一的數(shù)據(jù)訪問接口,為以后應(yīng)用程序的開發(fā)使用提供了便利。目前平臺還有一些不足,有待進一步完善。如統(tǒng)一數(shù)據(jù)模型建設(shè)尚不完善,目前只完成了部分建模,需要全面分析各相關(guān)單位的數(shù)據(jù)庫擴充完善;平臺的查詢效率可以繼續(xù)優(yōu)化提高,查詢方式更加多元化,使用戶的使用更加方便。
[1]李新放,劉海行,周林,等.基于 OpenSceneGraph的海洋環(huán)境三維可視化系統(tǒng)研究[J].海洋科學(xué),2012,36(1): 54-58.
[2]劉展,楊辰,魏合龍,等.基于 EPICENTRE的海洋鉆探數(shù)據(jù)庫構(gòu)建方法研究[J].計算機技術(shù)與發(fā)展,2012,22(6): 49-52.
[3]宋瑋,王家耀,郭金華.面向?qū)ο髸r空數(shù)據(jù)模型的研究[J].測繪科學(xué)技術(shù)學(xué)報,2006,28(4): 235-238.
[4]徐翠玲,錢壯志,馬遠新.淺談面向?qū)ο蟮臄?shù)字地質(zhì)圖數(shù)據(jù)模型[J].測繪科學(xué),2007,32(3): 31-35.
[5]戴勤奮,魏合龍,蘇國輝,等.區(qū)域海洋地質(zhì)調(diào)查數(shù)據(jù)庫結(jié)構(gòu)模型[J].計算機應(yīng)用研究,2004,21(3): 65-67.
[6]馮斌,譚建軍,李紹榮,等.海洋地質(zhì)調(diào)查數(shù)據(jù)庫管理系統(tǒng)設(shè)計與實現(xiàn)[J].計算機工程,2009,35(3):29-31.
[7]孫記紅,劉展,為賀龍,等.油氣勘探鉆錄測數(shù)據(jù)庫平臺設(shè)計[J].計算機工程,2010,36(5): 287-289.
[8]李紹榮,張錫林,陳道華,等.海洋地質(zhì)調(diào)查基礎(chǔ)數(shù)據(jù)庫模式構(gòu)建方法[J].海洋技術(shù),2009,28(4): 94-97.
[9]POSC.Energistics E&P business process reference model[R].America:POSC,2009.
[10]王海平,葛珺,王娟.基于 POSC的油田業(yè)務(wù)分析與建模方法[J].計算機系統(tǒng)應(yīng)用,2010,19(3): 100-102.
[11]袁滿.POSC數(shù)據(jù)模型與我國石油工業(yè)標(biāo)準(zhǔn)化[EB/OL].[2012-05-25].http://wenku.baidu.com/view/55014b27a 5e9856a5612603b.html.
[12]李杰.基于ORM的輕量級數(shù)據(jù)持久化技術(shù)研究及應(yīng)用[J].計算機科學(xué),2010,37(9): 190-193.
[13]李斌勇,李慶.基于NHibernate 的ORM映射機制研究[J].計算機技術(shù)與發(fā)展,2009,19(7): 32-34,37.
[14]李文濤.基于WCF 架構(gòu)的應(yīng)用開發(fā)研究[J].計算機時代,2011,2: 19-21.
[15]Scott K.Professional WCF Programming[M].America:Wiley Publishing,Inc,2007.
[16]趙慶霞,孫建伶.基于 WCF的服務(wù)緩存設(shè)計與研究[J].計算機工程與設(shè)計,2010,31(14): 3151-3153.