開放式空間數(shù)據(jù)庫訪問接口的開發(fā)應(yīng)用

李紹俊,鐘耳順,周芹,謝炯,王少華

(1. 中國科學院地理科學與資源研究所 資源與環(huán)境信息系統(tǒng)國家重點實驗室,北京 100101;2. 中國科學院大學,北京 100039;3. 北京超圖軟件股份有限公司,北京 100015)

論文來源:《地球信息科學學報》 2013年4月 第15卷 第2期

摘要:GIS應(yīng)用的快速發(fā)展對異構(gòu)空間數(shù)據(jù)庫互聯(lián)互訪提出了更高的要求。本文對現(xiàn)有的多種異構(gòu)空間數(shù)據(jù)庫互操作模式進行了對比分析,指出了各種模式的特點及其不足,在此基礎(chǔ)上,提出了一種開放式空間數(shù)據(jù)庫互聯(lián)互訪(OGDC,Opening Geospatial Database Connectivity)的策略與規(guī)范,以及由各家GIS平臺軟件廠商共同制定標準接口,再由數(shù)據(jù)庫開發(fā)廠商或數(shù)據(jù)提供廠商按照標準接口進行開發(fā)實現(xiàn)的新模式。

關(guān)鍵詞: 空間數(shù)據(jù)庫,地理信息系統(tǒng),開放式空間數(shù)據(jù)庫訪問接口,OGDC

Study on Opening Geospatial Database Connectivity

LI Shaojun, ZHONG Ershun, ZHOU Qin, XIE Jiong, and WANG Shaohua

(1.State Key Laboratory of Resources and Environment Information System, Institute of Geographic Sciences and Natural Resources Research, CAS, Beijing 100101, China; 2. University of Chinese Academy of Sciences, Beijing 100039, China; 3. SuperMap Software Co., Ltd., Beijing 100015, China)

Abstract:With the fast development of GIS technology and improvement of the GIS application technology, higher requirements have been put forward to the spatial database connectivity and accessibility. This study first proposes a comparative analysis on cross-sectoral large-scale shared connection to spatial database, thus to point out the hard-to-achieve synchronization updating during different data types conversion. Direct data access model cannot be fully compliance with the data type updating. The spatial extension model of the relational database is dissatisfactory in performances as well as professional spatial analysis. The support of Web Service model is insufficient for non-standard spatial data types; the protocols provided by software providers are of great specificity and difficulty to be extended by third parties. Then in this article, the interfaces of heterogeneous databases connectivity are analyzed deeply. Currently there are two categories of interfaces which are the relational database access interfaces and spatial database standard interfaces. Based on the analysis, the article proposes the ‘Opening Geospatial Database Connectivity (OGDC)’interfaces mechanism and specifications to provide a completely new model that a series of standard interfaces provided by several GIS platform software providers is jointly realized by database providers or data providers based on these standard interfaces. Detailed introductions are presented for the OGDC designs, technical features, implementation techniques, and applications. Finally, the feasibility and advantages of these proposed standards and specifications are demonstrated by a prototype using the OGDC from the domestic-developed distributed spatial database software‘BeyonDB’. And the prototype shows that OGDC could perfectly take account of the functionality, the efficiency and the usability of the spatial database connectivity, thus to provide a new application model for the standardized sharing and continual utilizing of the heterogeneous spatial database.

Key words:spatial database; GIS; OGC; OGDC

1 引言

  隨著 GIS 空間數(shù)據(jù)采集與應(yīng)用的快速發(fā)展,GIS 空間數(shù)據(jù)庫通常需要管理 GB 乃至 TB 級的空間數(shù)據(jù)。然而,空間數(shù)據(jù)本身的多樣性(異構(gòu)性)在很大程度上限制了GIS應(yīng)用中對多源空間數(shù)據(jù),以及不同歷史時期、不同格式、不同存在形式的空間數(shù)據(jù)的無縫操作與展示。目前,我國已建成大量的GIS 與地理數(shù)據(jù)庫,這些軟硬件與數(shù)據(jù)資源分散在各個部門和行業(yè)中。由于不同的行業(yè)部門采用不同的GIS軟件,各部門在使用同一商業(yè)GIS軟件時,又做了不同程度的二次開發(fā),于是形成了許多獨立、封閉的系統(tǒng)。由于缺乏互操作的標準和規(guī)范,數(shù)據(jù)與處理資源難以共享與利用,導致重復投資和信息資源浪費[1]。

  如何讓空間數(shù)據(jù)庫更好地支撐GIS應(yīng)用服務(wù),實現(xiàn)多源、異構(gòu)、分布式空間數(shù)據(jù)的共享和 GIS 應(yīng)用系統(tǒng)的無縫集成,一直是GIS研究的熱點問題之一。為解決這一問題,Oracle 公司推出了 Oracle Spatial 擴展模塊并提供一系列存儲過程和函數(shù)來實現(xiàn)空間數(shù)據(jù)在 Oracle 數(shù)據(jù)庫中的存儲和應(yīng)用[2],Autodesk 公司推出了 FDO(Feature Data Object,特征要素數(shù)據(jù)對象)訪問接口來簡化異構(gòu)空間數(shù)據(jù)的無縫訪問,國際標準化組織地理信息技術(shù)委員會(ISO/TC 211)、開放地理信息系統(tǒng)協(xié)會(The Open Geospatial Consortium,OGC)、萬維網(wǎng)聯(lián)盟(W3C)

  和Web服務(wù)互操作組織(Web Services Interoperabil ity Organization,WS-I)等正在研究與制定系列化的數(shù)據(jù)組織標準與訪問、應(yīng)用的標準、規(guī)范。

  本文首先研究和總結(jié)了現(xiàn)有的異構(gòu)空間數(shù)據(jù)庫互操作的幾種模式,并分析其優(yōu)勢及局限性;然后借鑒了關(guān)系數(shù)據(jù)庫的標準化訪問,以及多源數(shù)據(jù)無縫集成框架的技術(shù)思路;最后,重點探討開放式空間數(shù)據(jù)庫互聯(lián)互訪(OGDC,Opening Geospatial Database Connectivity)的設(shè)計思路、相關(guān)技術(shù)、接口規(guī)范,通過實現(xiàn)符合OGDC規(guī)范的應(yīng)用層的原型系統(tǒng),驗證了OGDC規(guī)范的可行性和在海量空間數(shù)據(jù)異構(gòu)互訪方面的優(yōu)越性。

2 異構(gòu)、多源空間數(shù)據(jù)庫的互操作技術(shù)分析

  海量空間數(shù)據(jù)的共享與無縫集成應(yīng)用是 GIS研究的熱點之一,空間數(shù)據(jù)庫也逐步成為了GIS應(yīng)用系統(tǒng)構(gòu)建的關(guān)鍵性支撐平臺[3]。然而與關(guān)系數(shù)據(jù)庫技術(shù)相比,由于缺乏相對統(tǒng)一的數(shù)據(jù)模型和標準化的數(shù)據(jù)訪問技術(shù),在多源、異構(gòu)、分布式空間數(shù)據(jù)的共享、集成與互操作方面遠遠落后于關(guān)系數(shù)據(jù)庫技術(shù),制約了地理信息技術(shù)及其應(yīng)用的進一步拓展。目前,空間信息領(lǐng)域常用的空間數(shù)據(jù)格式已超過100種,而綜合信息系統(tǒng)應(yīng)用中的各部門由于需求差異和歷史等原因,往往會采用不同廠商的不同格式數(shù)據(jù),部門之間的通信(互聯(lián)互訪)成為一個棘手的問題。面對諸多不同格式的數(shù)據(jù),如何使已有的數(shù)據(jù)得到更充分的利用,成為當前GIS發(fā)展中亟待解決的問題。

  異構(gòu)、多源空間數(shù)據(jù)共享與互操作技術(shù)方案,主要有數(shù)據(jù)格式轉(zhuǎn)換模式、直接數(shù)據(jù)訪問模式、關(guān)系數(shù)據(jù)庫空間擴展模式,以及Web Service的數(shù)據(jù)集成技術(shù)。這些方法在一定程度上解決了空間數(shù)據(jù)共享與互操作的問題,但也存在一定的局限性[4-6]。

  數(shù)據(jù)格式轉(zhuǎn)換模式可以美國國家空間數(shù)據(jù)協(xié)會(NSDI)制定的統(tǒng)一空間數(shù)據(jù)格式規(guī)范 SDTS(Spatial Data Transformation Standard)[7]來實現(xiàn),在一定程度上提供了不同數(shù)據(jù)格式之間統(tǒng)一空間對象描述方案,但難以為數(shù)據(jù)的集中和分布式處理提供解決方案,也難以實現(xiàn)自動同步更新。

  直接數(shù)據(jù)訪問模式可以在一個 GIS 系統(tǒng)中直接訪問不同格式的空間數(shù)據(jù),避免了繁瑣的數(shù)據(jù)轉(zhuǎn)換步驟,也避免了數(shù)據(jù)存儲兩份而導致的數(shù)據(jù)不一致的問題。但這種模式依賴于 GIS 平臺對不同格式空間數(shù)據(jù)的解析與支持能力,同時,由于一些數(shù)據(jù)格式?jīng)]有公開格式文檔,格式升級變化難以保障[8]。

  關(guān)系數(shù)據(jù)庫空間擴展模式以包含空間位置的矢量柵格數(shù)據(jù)查詢檢索定義和結(jié)構(gòu)化查詢語言SQL 的拓展規(guī)范 SQL Multimedia (SQL/MM),提供了面向空間數(shù)據(jù)及多媒體數(shù)據(jù)的查詢描述,支持數(shù)據(jù)庫后端定義的空間函數(shù)算子調(diào)用,以及在查詢操作中實現(xiàn)空間分析功能[9]。這種模式為不同GIS軟件的互訪與互操作提供了統(tǒng)一的數(shù)據(jù)存儲與訪問機制,但由于其是以面向?qū)ο蟮乃悸吩陉P(guān)系數(shù)據(jù)庫中實現(xiàn),在性能上有比較大的損失[10]。

  基于WebService的數(shù)據(jù)共享與互操作模式,以美國開放地理信息系統(tǒng)協(xié)會(Open GIS Consortium,OGC)制定的數(shù)據(jù)共享規(guī)范,用統(tǒng)一協(xié)議的方式使數(shù)據(jù)客戶能夠讀取任意數(shù)據(jù)服務(wù)器提供的空間數(shù)據(jù)。目前,統(tǒng)一協(xié)議對空間數(shù)據(jù)的支持尚不全面,還存在大量非標準空間數(shù)據(jù)難以用統(tǒng)一協(xié)議高效表達。

  鑒于此,GIS軟件廠商提出了多源空間數(shù)據(jù)無縫集成框架(Seamless Integration of Multi-source Spatial Data, SIMS)和虛擬空間數(shù)據(jù)引擎[8]、通用空間數(shù)據(jù)引擎(Universal Spatial Data Engine, USDE)、異構(gòu)空間數(shù)據(jù)庫集成技術(shù)(Open Grid Services Archi tecture-data Access and Integration, OGSA-DAI)[11],以及數(shù)據(jù)中間件模式[12]等特定協(xié)議的方案。這些模式的基本思路也都是趨向于由一家廠商來實現(xiàn)對其他數(shù)據(jù)的訪問,或者也試圖定義一些標準,但接口標準與平臺相關(guān)性比較大,缺乏比較明確可擴展的架構(gòu),成為比較專用的接口標準,無法從根本上解決問題。

3 空間數(shù)據(jù)共享與開放空間數(shù)據(jù)存取接口

  3.1 關(guān)系數(shù)據(jù)庫的標準訪問接口

  在關(guān)系數(shù)據(jù)庫領(lǐng)域,主流的數(shù)據(jù)庫廠商都提供專有的數(shù)據(jù)訪問接口和 ODBC 標準接口,大部分DBMS 都提供 ADO 接口,還有部分廠商提供了ADO.NET接口。ODBC以標準數(shù)據(jù)查詢語言SQL實現(xiàn)了對多種關(guān)系數(shù)據(jù)庫的統(tǒng)一訪問和互操作,使單一客戶端可以訪問多種數(shù)據(jù)庫,打開了關(guān)系數(shù)據(jù)庫應(yīng)用的新局面,各種基于關(guān)系數(shù)據(jù)庫的應(yīng)用軟件得到快速發(fā)展。

  而在空間數(shù)據(jù)庫領(lǐng)域,空間數(shù)據(jù)庫技術(shù)主要隨著關(guān)系數(shù)據(jù)庫(R-DBMS)技術(shù)的發(fā)展而發(fā)展,因此,幾乎所有的空間數(shù)據(jù)庫技術(shù),都需要使用DBMS 廠商提供的基礎(chǔ)接口進行開發(fā)。由于地理空間數(shù)據(jù)具有數(shù)據(jù)量大、訪問頻繁等特點,傳統(tǒng)的關(guān)系數(shù)據(jù)庫服務(wù)系統(tǒng)難以達到相應(yīng)的要求,需要采取一些特殊的技術(shù),如空間索引、緩存等才能滿足應(yīng)用的需求[13]。相應(yīng)地發(fā)展起來了3種主要的空間數(shù)據(jù)庫技術(shù):(1)服務(wù)器的模式,通過修改和擴充服務(wù)器方支持庫實現(xiàn),結(jié)構(gòu)性好但開發(fā)難度大、兼容性差;(2)中間件的模式,通過外掛的橋接服務(wù)器實現(xiàn),訪問效率低、配置管理復雜;(3)客戶端的模式,兼容性和效率較好但開發(fā)工作量大。這3種方式各有優(yōu)勢和局限,架構(gòu)模式不同,格式和數(shù)據(jù)結(jié)構(gòu)存在較大的差異,接口不統(tǒng)一,支持的數(shù)據(jù)類型和能力程度也各有千秋。為了解決這個問題,以統(tǒng)一接口的空間數(shù)據(jù)存取接口規(guī)范應(yīng)運而生。

  3.2 空間數(shù)據(jù)庫的規(guī)范接口

  標準數(shù)據(jù)查詢語言SQL通過對結(jié)構(gòu)化數(shù)據(jù)訪問的擴展,可支持空間數(shù)據(jù)的部分操作,但并沒有提出類似于 ODBC 的空間數(shù)據(jù)訪問接口規(guī)范。為了實現(xiàn)空間信息的統(tǒng)一管理和共享訪問,GIS和圖形軟件廠商制定了相應(yīng)的規(guī)范化接口,目前,主要有FDO和OGDC。

  FDO(Feature Data Object,特征要素數(shù)據(jù)對象)訪問接口是AutoDesk為了實現(xiàn)在CAD軟件中集成地理空間數(shù)據(jù)而開發(fā)的一個接口,早期自行開發(fā),目前,已經(jīng)捐獻給開源社區(qū)以開源軟件方式發(fā)展。

  ESRI也公布了其SDE(空間數(shù)據(jù)引擎,是一個外掛式的空間數(shù)據(jù)服務(wù)器系統(tǒng))的 API 接口,但SDE不是一個開放的公共接口,只能與其私有軟件聯(lián)合使用。

  OGDC是國內(nèi)多家GIS軟件開發(fā)商(目前包括SuperMap、GeoStar、GeoBean 等)及數(shù)據(jù)庫開發(fā)商(目前包括博陽世通(BeyonDB) 、金倉(Kingbase))共同制定的地理空間數(shù)據(jù)庫訪問接口規(guī)范,已得到國內(nèi)GIS產(chǎn)業(yè)界和數(shù)據(jù)庫產(chǎn)業(yè)界的廣泛支持。

4 OGDC的總體設(shè)計思路與技術(shù)特點

  4.1 OGDC總體設(shè)計思路

  開放式關(guān)系數(shù)據(jù)庫標準訪問接口規(guī)范(ODBC)[14]的建立,有效地解決了關(guān)系數(shù)據(jù)庫的互聯(lián)互訪問題,軟件開發(fā)商不再需要針對每個DBMS來編寫不同的訪問接口和程序。OGDC 技術(shù)沿用關(guān)系數(shù)據(jù)庫ODBC應(yīng)用模式,從數(shù)據(jù)服務(wù)層解決多源異構(gòu)分布海量空間數(shù)據(jù)的訪問、共享與無縫集成問題,統(tǒng)一的OGDC SDK可供用戶開發(fā)各種GIS應(yīng)用軟件產(chǎn)品,為空間數(shù)據(jù)提供者與消費者提供統(tǒng)一便捷的互聯(lián)互訪通道;OGDC在空間數(shù)據(jù)庫領(lǐng)域提供了類似ODBC的實現(xiàn),將標準化的關(guān)系數(shù)據(jù)庫數(shù)據(jù)訪問模式應(yīng)用于多源異構(gòu)分布式空間數(shù)據(jù)的訪問。

  多源空間數(shù)據(jù)無縫集成技術(shù)(SIMS)具有多格式數(shù)據(jù)直接訪問、格式無關(guān)數(shù)據(jù)集成、位置無關(guān)數(shù)據(jù)集成、金源數(shù)據(jù)復合分析等特點,通過虛擬空間數(shù)據(jù)引擎框架在 GIS 平臺軟件內(nèi)部實現(xiàn)了多源異構(gòu)空間數(shù)據(jù)的一體化訪問,有效解決了不同格式數(shù)據(jù)資源的綜合利用問題[8]。但SIMS的多源異構(gòu)架構(gòu)只能在單一GIS平臺軟件內(nèi)部來實現(xiàn),不能解決不同的GIS平臺軟件之間,以及GIS平臺軟件和關(guān)系數(shù)據(jù)庫之間的空間數(shù)據(jù)共享互操作問題。OGDC基于SIMS的空間對象模型,并將SIMS的虛擬空間數(shù)據(jù)引擎的框架拓展到GIS平臺軟件之上,通過規(guī)范統(tǒng)一的空間數(shù)據(jù)對象描述及訪問接口,為分布式異構(gòu)GIS平臺軟件之間,以及GIS平臺軟件與關(guān)系數(shù)據(jù)庫之間的空間數(shù)據(jù)互聯(lián)互訪提供了解決方案。

  4.2 OGDC主要技術(shù)特點

  在技術(shù)上,OGDC采用標準C++實現(xiàn)開放式多平臺空間數(shù)據(jù)訪問框架和常用的數(shù)據(jù)訪問驅(qū)動程序軟件類庫,可在不同平臺上編譯和執(zhí)行,并可以基 于.Net 和 JavaEE 平 臺 封 裝 為.Net 組 件 和 Java Bean 組件,形成 OGDC SDK。且 OGDC SDK 是開

  放的,空間數(shù)據(jù)驅(qū)動提供者和消費者均可免費使用。

  空間數(shù)據(jù)的消費者可以通過通用空間數(shù)據(jù)訪問框架,以空間數(shù)據(jù)驅(qū)動程序,調(diào)用統(tǒng)一的接口,直接訪問空間數(shù)據(jù)庫,避免為不同的空間數(shù)據(jù)庫編寫多套應(yīng)用代碼,實現(xiàn)一次編碼,多次應(yīng)用;面向?qū)ο蟮拈_發(fā)接口,降低了應(yīng)用端開發(fā)難度,減少了應(yīng)用端開發(fā)工作量與維護工作量。

  同時,空間數(shù)據(jù)提供者即空間數(shù)據(jù)庫廠商,提供空間數(shù)據(jù)庫驅(qū)動,很好地避免了格式升級后數(shù)據(jù)消費者需重新開發(fā)的問題;空間數(shù)據(jù)庫廠商可針對各自數(shù)據(jù)存儲的特點在接口實現(xiàn)優(yōu)化,以及空間數(shù)據(jù)驅(qū)動程序;所有的GIS廠商可以在開放式空間數(shù)據(jù)庫互聯(lián)互訪框架開發(fā)驅(qū)動程序,方便數(shù)據(jù)消費者方便高效地在不同的空間數(shù)據(jù)庫之間交換數(shù)據(jù)。

  開放式空間數(shù)據(jù)庫互聯(lián)互訪技術(shù),提供了更高效的空間數(shù)據(jù)互操作方式,便于提高數(shù)據(jù)利用程度,減少數(shù)據(jù)孤島;高效的通用空間數(shù)據(jù)模型可以實現(xiàn)不同數(shù)據(jù)庫的統(tǒng)一對象訪問接口,又可以避免數(shù)據(jù)格式轉(zhuǎn)換模式的效率損失問題,真正實現(xiàn)了空間數(shù)據(jù)無縫集成。開放式空間數(shù)據(jù)庫互聯(lián)互訪框架模型具備自我更新完善機制,可以更好地應(yīng)對空間數(shù)據(jù)庫技術(shù)的發(fā)展。

5 OGDC技術(shù)規(guī)范設(shè)計與實現(xiàn)

  5.1 OGDC總體技術(shù)框架

  OGDC應(yīng)用系統(tǒng)中包含4個層次:數(shù)據(jù)庫層、數(shù)據(jù)提供者層、OGDC接口層和應(yīng)用程序?qū)?。?shù)據(jù)庫層包含提供OGDC使用數(shù)據(jù)的數(shù)據(jù)庫或數(shù)據(jù)文件,OGDC支持的數(shù)據(jù)庫類型由OGDC Provider決定;數(shù)據(jù)提供者層包含所有的已注冊的數(shù)據(jù)提供者(Provider);OGDC 接口層提供了 OGDC 的訪問接口,用戶可以O(shè)GDC的訪問接口來開發(fā)上層應(yīng)用程序,在開發(fā)應(yīng)用程序時不必關(guān)系下層用的是哪一個Provider,以及要訪問的是哪一類數(shù)據(jù)庫,只需按接口定義完成應(yīng)用程序即可訪問Provider支持的空間數(shù)據(jù)庫。已完成的應(yīng)用程序只需修改一下連接參數(shù)即可訪問其他 Provider 支持的空間數(shù)據(jù)庫;OGDC支持各種各樣的上層應(yīng)用程序,既支持傳統(tǒng)的桌面應(yīng)用和組件二次開發(fā)應(yīng)用,也支持從服務(wù)程序訪問OGDC Provider支持的數(shù)據(jù)庫。

  5.2 OGDC空間數(shù)據(jù)對象與訪問模型

  空間對象模型是OGDC規(guī)范的重要內(nèi)容,不僅要兼顧目前主流GIS軟件的數(shù)據(jù)模型,還要結(jié)合國內(nèi)外相關(guān)標準。目前,OGDC 兼容 OGC 的簡單對象模型(OGC Simple Feature Model),包括點、線、面、文本、復合對象等類型,且支持場模型。

  OGDC 規(guī)范中的空間數(shù)據(jù)訪問對象如圖 2 所示,具體含義如下:

  (1)DataSource,數(shù)據(jù)源。是由各種類型的數(shù)據(jù)集(如點、線、面類型數(shù)據(jù),Image、Grid)組成的數(shù)據(jù)集集合。一個數(shù)據(jù)源可包含一個或多個不同類型的數(shù)據(jù)集。

  (2)Dataset,數(shù)據(jù)集。由同種類型的幾何對象組成的數(shù)據(jù)集合,分矢量數(shù)據(jù)集和柵格數(shù)據(jù)集兩大類,數(shù)據(jù)集可以有自己的投影信息。數(shù)據(jù)集類型包括點數(shù)據(jù)集,線數(shù)據(jù)集,面數(shù)據(jù)集,文本數(shù)據(jù)集,LineM 數(shù)據(jù)集,GRID 數(shù)據(jù)集,Image 數(shù)據(jù)集,Network數(shù)據(jù)集,屬性表數(shù)據(jù)集。VectorDataset為矢量數(shù)據(jù)集,RasterDataset為柵格數(shù)據(jù)集。

  (3)Recordset,記錄集。記錄集僅針對矢量數(shù)據(jù),記錄集可以是矢量數(shù)據(jù)集的查詢子集,通過對矢量數(shù)據(jù)集按一定規(guī)則條件進行查詢得到。

  (4)Feature,空間要素。每一個空間實體對象為一個空間要素,可以為點、線、面、標注等類型的地理要素??臻g要素中包含空間數(shù)據(jù)(Geometry)和屬性數(shù)據(jù)(Attribute)。

  (5)Block,規(guī)則柵格塊。一般為 n×n 的規(guī)則像元矩陣,由 n 條掃描線(Scanline)構(gòu)成,每條掃描線是由n個像元(Pixel)構(gòu)成的像元數(shù)組。

  (6)Spatial-Reference-System 空間參考系。OGDC中設(shè)置投影的基本單元是數(shù)據(jù)集,同一數(shù)據(jù)源下不同數(shù)據(jù)集可以有不同的坐標系,同一數(shù)據(jù)集中所有的空間對象(矢量數(shù)據(jù)集)或原子空間(柵格數(shù)據(jù)集)具有相同的坐標系。

  (7)Metadata,元數(shù)據(jù)。空間元數(shù)據(jù)是對空間數(shù)據(jù)的描述信息。在數(shù)據(jù)共享過程中元數(shù)據(jù)具有數(shù)據(jù)發(fā)現(xiàn)、數(shù)據(jù)獲取、數(shù)據(jù)管理與交換等功能[15]。

  OGDC 的空間數(shù)據(jù)模型定義了空間數(shù)據(jù)對象抽象類的屬性、功能及接口定義,具有可擴展性,用戶可以在此基礎(chǔ)上派生實現(xiàn)自定義類型空間數(shù)據(jù)對象的實體類。以 Oracle Spatial 的 Provider 為例,從空間數(shù)據(jù)對象基類派生出COspDataSource、COspDatasetVector、COspRecordset 等實體類,實體類中必須實現(xiàn)抽象基類中的所有純虛函數(shù),可部分重載實現(xiàn)基類中的虛函數(shù),并可定義實現(xiàn)實體類中特有的擴展函數(shù)。

  空間數(shù)據(jù)庫廠商需要遵循OGDC規(guī)范,實現(xiàn)相關(guān)接口就能夠為空間數(shù)據(jù)提供高效便捷的外界訪問通道,空間數(shù)據(jù)消費者通過調(diào)用OGDC的標準接口即可實現(xiàn)對不同空間數(shù)據(jù)庫的訪問。

  5.3 OGDC技術(shù)架構(gòu)的設(shè)計開發(fā)

  實現(xiàn) OGDC 的支持,需要 Manager、Provider 和Consumer 3 種軟件模塊,通過標準接口進行訪問。其中,Manager為基礎(chǔ)支撐模塊,在支持包中統(tǒng)一提供,不需要進行定制與修改,Provider、Consumer 為參考實現(xiàn),在支持包中提供相應(yīng)的開發(fā)例程。OGDC所有模塊采用STL的C++實現(xiàn),可以支持多種操作系統(tǒng)平臺,并同時支持服務(wù)器和客戶端的訪問。

  OGDC 的重點是 Provider 模塊的實現(xiàn),Consumer依據(jù)業(yè)務(wù)應(yīng)用方向的各種各樣的實現(xiàn)形態(tài)依賴于 Provider 提供的統(tǒng)一接口。Provider 由 GIS 廠商或數(shù)據(jù)庫廠商進行開發(fā),并以標準動態(tài)庫的形式提供,一般以.odx 為擴展名。Provider 中必須提供DataSource、Dataset、Recordset、Spatial-ReferenceSystem和Metadata的對象類及其接口的實現(xiàn)。

  OGDC 接口層的數(shù)據(jù)提供者管理器(OgdcProviderManager)是OGDC應(yīng)用的總的入口,它通過加載數(shù)據(jù)提供者(Provider)動態(tài)庫的接口掃描指定路徑,以自動加載數(shù)據(jù)提供者動態(tài)庫,構(gòu)成數(shù)據(jù)提供者集合(m_providers),集合中的每一個 Provider 均提供 CreateOgdcDataSource()接口,通過調(diào)用 CreateOgdcDataSource()接口,可以創(chuàng)建出不同的數(shù)據(jù)源實例對象。

  Consumer層可以是各種形態(tài)的應(yīng)用程序(目前支持 C、C++、.NET、Java),通過枚舉數(shù)據(jù)提供者管理器中的數(shù)據(jù)提供者集合,加載 Provider 并調(diào)用CreateOgdcDataSource()接口創(chuàng)建出 DataSource 實例對象,即可通過Dataset和Recordset對象,進行空間數(shù)據(jù)的讀寫操作。

  5.4 實踐與應(yīng)用

  OGDC SDK 目前已發(fā)布 1.0 版本,開放了 OGDC 標準、接口和 SDK,并提供開源的 Provider 和Consumer例程程序,為GIS軟件廠商及數(shù)據(jù)庫廠商實現(xiàn)空間數(shù)據(jù)提供程序(Provider),以及應(yīng)用廠商使用OGDC開發(fā)GIS相關(guān)應(yīng)用提供參考。以O(shè)GDC標準接口,GIS應(yīng)用開發(fā)商可以用同樣的編程接口來訪問不同的空間數(shù)據(jù)庫,屏蔽具體數(shù)據(jù)存儲結(jié)構(gòu)的差異,實現(xiàn)異構(gòu)和分布式空間數(shù)據(jù)庫的互聯(lián)互訪。

  國產(chǎn) GIS 平臺軟件 SuperMap 的組件、桌面和GIS服務(wù)器軟件均對OGDC提供支持,通過空間數(shù)據(jù)庫引擎技術(shù)(SuperMap SDX+),SuperMap平臺軟件將OGDC作為數(shù)據(jù)來源的一類進行支持,可以直接打開 OGDC 的數(shù)據(jù)進行瀏覽、查詢、編輯等操作。SuperMap平臺軟件中調(diào)用OGDC的層次架構(gòu)圖如圖3所示。

  本文以 SuperMap 提供的通用 GIS 桌面產(chǎn)品(SuperMap Deskpro .NET)為例進行說明,SuperMap Deskpro .NET中實現(xiàn)了OGDC Consumer層,可以加載并支持第三方提供的 OGDC Provider。以BeyonDB(中科院地理所自主研發(fā)的分布式空間數(shù)據(jù)庫軟件[22])為例,BeyonDB 提供了 OGDCProvider動態(tài)庫,將該動態(tài)庫拷貝到指定路徑后啟動 SuperMap Deskpro .NET 即可通過 OGDC 接口訪問存儲在BeyonDB中的空間數(shù)據(jù),實現(xiàn)空間數(shù)據(jù)的瀏覽、疊加、查詢、分析等功能,實現(xiàn)效果如圖4所示。

6 結(jié)語

  隨著地理信息軟件技術(shù)的不斷發(fā)展,空間數(shù)據(jù)庫存取出現(xiàn)過多種方式,如:廠商獨立API、外掛式系統(tǒng)、FDO、OGDC、SuperMap SDX +和 SuperMap Objects空間對象等。OGDC是解決現(xiàn)階段的多源、異構(gòu)、分布式海量空間數(shù)據(jù)無縫集成問題的有效手段,該規(guī)范已得到國內(nèi)多個GIS廠商和數(shù)據(jù)庫廠商的支持,接口的規(guī)范化和標準化將對GIS的發(fā)展起到重要的推動作用。本研究結(jié)合實際應(yīng)用設(shè)計了OGDC的技術(shù)架構(gòu),并實現(xiàn)了OGDC的對象模型及接口,后續(xù)研究工作中,還需要針對3D對象和多媒體對象進行對象模型的擴展,并完善空間數(shù)據(jù)的操作算子及處理算法。

參考文獻:

  [1] 李新通,何建邦.GIS 互操作與 OGC 規(guī)范[J].地理信息世界,2003(5):23-28.

  [2] 張明波,申排偉,陸鋒,等.空間數(shù)據(jù)引擎關(guān)鍵技術(shù)與應(yīng)用分析[J].地球信息科學,2004,6(4):80-84.

  [3] 崔鐵軍.地理空間數(shù)據(jù)庫原理[M].北京:科學出版社,2007.

  [4] 廖湖聲,王晉強,鄭玉明,等.多數(shù)據(jù)源空間數(shù)據(jù)庫引擎的研究與實現(xiàn)[J].計算機應(yīng)用研究,2004(2):138-140.

  [5] 馬照亭,潘懋,林晨,等.多源空間數(shù)據(jù)的共享與集成模式研究[J].計算機工程與應(yīng)用,2002(24):31-34.

  [6] 崔希民,劉清旺,謝傳節(jié),等.基于GML的多源異構(gòu)空間數(shù)據(jù)集成和互操作[J].礦山測量,2003(3):47-49.

  [7] Arctur D, Hair D, Timson G, et al. Issues and prospects for the next generation of the spatial data transfer standard (SDTS)[J]. International Journal of Geographical Information Science, 1998,12(4):403-425.

  [8] 宋關(guān)福,鐘耳順,劉紀遠,等.多源空間數(shù)據(jù)無縫集成研究[J].地理科學進展,2000,19(2):110-115.

  [9] 高昂,陳榮國,趙彥慶,等.空間數(shù)據(jù)訪問集成與分布式空間數(shù)據(jù)源對象查詢[J]. 地球信息科學學報,2010,12(4): 532-540.

  [10] 周芹,李紹俊,宋關(guān)福,等.基于Oracle Spatial的空間數(shù)據(jù)庫緩存的關(guān)鍵技術(shù)[J].地球信息科學,2007,9(3):40-44.

  [11] 金寶軒.網(wǎng)格環(huán)境下的異構(gòu)空間數(shù)據(jù)庫集成技術(shù)[J].計算機工程,2008(5):74-76.

  [12] 陳楠.多源空間數(shù)據(jù)集成的技術(shù)難點分析和解決策略[J].計算機應(yīng)用研究,2005(10):206-208.

  [13] 龔健雅.空間數(shù)據(jù)庫管理系統(tǒng)的概念與發(fā)展趨勢[J].測繪科學,2001,26(3):4-9.

  [14] Microsoft. Microsoft ODBC 3.0 Programmer’s Reference and SDK Guide 程序員參考及開發(fā)人員指南[M],1999.

  [15] 諸云強,孫九林,廖順寶,等.地球系統(tǒng)科學數(shù)據(jù)共享研究與實踐[J].地球信息科學學報,2010,12(1):1-8.

作者簡介:李紹俊(1978-),男,山東即墨人,博士生,研究方向為GIS軟件技術(shù)研究。