張山山,吳寶佑,隋寧寧,秦 瑞
(1. 中南大學(xué) 有色金屬成礦預(yù)測教育部重點實驗室,長沙 410083;2. 中南大學(xué) 地球科學(xué)與信息物理學(xué)院,長沙 410083)
應(yīng)用REST技術(shù)的GML數(shù)據(jù)管理
張山山1,2,吳寶佑1,2,隋寧寧1,2,秦 瑞1,2
(1. 中南大學(xué) 有色金屬成礦預(yù)測教育部重點實驗室,長沙 410083;2. 中南大學(xué) 地球科學(xué)與信息物理學(xué)院,長沙 410083)
地理標(biāo)記語言(GML)作為使用 XML信息編碼來表達(dá)地理數(shù)據(jù)的標(biāo)準(zhǔn),其主要目的是實現(xiàn)數(shù)據(jù)共享與互操作。隨著GML廣泛應(yīng)用,GML數(shù)據(jù)存儲管理成為研究熱點。面向服務(wù)架構(gòu)(SOA)已經(jīng)廣泛應(yīng)用于地理信息服務(wù),表述性狀態(tài)轉(zhuǎn)移(REST)作為一種專門為分布式調(diào)用而設(shè)計的輕量級架構(gòu)技術(shù),在構(gòu)建SOA方面有著明顯的優(yōu)勢。論文采用對象數(shù)據(jù)庫對GML進(jìn)行存儲管理,探討如何利用REST架構(gòu)技術(shù)實現(xiàn)GML空間數(shù)據(jù)的管理與共享。分析了REST架構(gòu)的關(guān)鍵技術(shù),設(shè)計了GML數(shù)據(jù)管理服務(wù)框架。詳細(xì)論述了基于微軟WCF框架的REST API的實現(xiàn)過程,最后實現(xiàn)了一個調(diào)用GML數(shù)據(jù)管理服務(wù)的數(shù)據(jù)管理系統(tǒng)。通過客戶端實例驗證表明REST適合于GML地理數(shù)據(jù)的管理與共享。
面向服務(wù)架構(gòu);表述性狀態(tài)轉(zhuǎn)移;地理標(biāo)記語言;數(shù)據(jù)管理
地理標(biāo)記語言(Geography markup language,GML)是開放式地理空間信息聯(lián)盟(Open geospatial consortium, OGC)推薦的用以描述地理數(shù)據(jù)的標(biāo)準(zhǔn)格式,在實際中有著廣泛的應(yīng)用。隨著越來越多的空間數(shù)據(jù)使用 GML來表達(dá),以及各種地理信息服務(wù)的不斷涌現(xiàn),如何有效地管理這些數(shù)據(jù),并提供這些數(shù)據(jù)的服務(wù),是當(dāng)前在GML領(lǐng)域亟待解決的問題之一[1]。在 GML的數(shù)據(jù)存儲方面,目前并沒有一個真正意義上的空間數(shù)據(jù)庫或者空間數(shù)據(jù)庫引擎能夠提供對GML空間數(shù)據(jù)進(jìn)行有效的存儲與管理。由于GML數(shù)據(jù)存在著不同層次上的嵌套關(guān)系,其特殊的樹形結(jié)構(gòu)同對象數(shù)據(jù)庫的嵌套對象模型非常吻合,所以將GML空間數(shù)據(jù)對象化存儲是管理 GML文檔不錯的選擇。在日益復(fù)雜的分布式網(wǎng)絡(luò)環(huán)境下,面向服務(wù)架構(gòu)(Service oriented architecture,SOA)[2]作為一個新型的企業(yè)級分布式軟件架構(gòu)思想,完全可以為地理信息服務(wù)的構(gòu)建提供幫助,并且給用戶提供簡單易懂的地理信息服務(wù)接口。目前實現(xiàn) SOA架構(gòu)的方法有CORBA、EJB、Web Service和REST等,其中REST技術(shù)是為通過HTTP協(xié)議來進(jìn)行分布式調(diào)用量身定制的架構(gòu)。隨著GIS技術(shù)和REST架構(gòu)方法的不斷成熟,國內(nèi)外學(xué)者結(jié)合二者作了不少研究。DZENANA等[3]在分析了空間數(shù)據(jù)及其服務(wù)的基礎(chǔ)上,利用REST技術(shù)實現(xiàn)了可以利用標(biāo)準(zhǔn)的HTTP協(xié)議訪問空間數(shù)據(jù)的簡單服務(wù)。MAZZETTI等[4]從REST架構(gòu)的角度分析了現(xiàn)有的地理信息服務(wù),并探討了可能的REST的實現(xiàn)。毛峰等[5]結(jié)合REST與OGC規(guī)范,設(shè)計了一種面向資源的地理信息服務(wù),從而實現(xiàn)信息共享與功能的互操作。張利利等[6]提出一種基于 REST架構(gòu)模式的遙感影像服務(wù)方案,并結(jié)合 WCF框架實現(xiàn)了該遙感影像服務(wù)。如上所述,國內(nèi)外的研究現(xiàn)狀主要集中在對REST技術(shù)應(yīng)用于地理信息服務(wù)的探討和研究,且應(yīng)用的 GIS數(shù)據(jù)格式為不同的 GIS數(shù)據(jù)生產(chǎn)廠商提供。實際上,REST特別適合于處理GML這種XML編碼格式的數(shù)據(jù),本文作者在此基礎(chǔ)上提出一種基于REST架構(gòu)模式的GML土地利用數(shù)據(jù)管理服務(wù)方案,并詳細(xì)介紹REST API的設(shè)計與實現(xiàn)過程。
本研究采用開源的純面向?qū)ο髷?shù)據(jù)庫引擎 db4o(database for objects)[7]來實現(xiàn)GML空間數(shù)據(jù)存儲,該數(shù)據(jù)庫引擎為存儲任何復(fù)雜的對象提供了持久性的解決方案。
1.1 存儲粒度
在基于db4o的GML空間數(shù)據(jù)庫中,存儲粒度表示記錄與結(jié)點的對應(yīng)關(guān)系,記錄的粒度主要有3種,分別為:節(jié)點級、子樹級和文檔級[8]。顧名思義,節(jié)點級表示每一個結(jié)點對應(yīng)一個記錄(對象),子樹級表示一個子樹對應(yīng)一個記錄(對象),文檔級則表示將整個文檔作為一個記錄(對象)。
由于 GML文檔由一個或者多個要素集組成,要素集由一個或多個要素組成,要素由其屬性(包括非空間屬性、空間屬性和拓?fù)鋵傩缘?組成。要素是描述一個具體的地物對象的最小單位,任何 GML空間數(shù)據(jù)都是由要素組成的一個集合對象。因此本研究選擇的存儲粒度為子樹級存儲粒度,該子樹大小為一個要素。
1.2 映射方式
德克薩斯大學(xué)的LEONIDAS[9]提出了兩種基于對象數(shù)據(jù)庫的 XML映射技術(shù)。第一種是針對無模式的XML文檔,采用固定的對象數(shù)據(jù)管理組(Object data management group,ODMG)對象定義語言(Object define language,ODL)模式實例化XML對象。第二種是針對有模式的XML文檔,該方法對每一種XML元素類型映射為一個對象類型,對象之間的關(guān)系使用ODMG提供的類之間的聯(lián)系來實現(xiàn)。
由于 GML文件提供了模式,適合采用第二種對象映射方法,但根據(jù)GML的特點作者在此映射方法上作了改進(jìn)。具體映射過程是將作為存儲粒度的要素映射為對象,要素的屬性結(jié)點則映射為對象的屬性,而不是也映射為對象,這樣做的目的是防止大量對象的產(chǎn)生,從而影響系統(tǒng)的性能。
GML模式具體的映射規(guī)則如下:
1) 將類型為 complexType作為存儲粒度的要素(GML中的元素)映射為對象;
2) 將類型為 simpleType的要素子節(jié)點元素映射為對象的屬性;
3) 內(nèi)置的元素簡單數(shù)據(jù)類型(如 int,string等)映射為數(shù)據(jù)庫中相應(yīng)的簡單數(shù)據(jù)類型;
4) 幾何類型(如 pointPropertyType,curver-PropertyType,surfacePropertyType等)統(tǒng)一映射為IList<PointF>類型,并設(shè)置要素對象的featureType屬性為具體的幾何類型(點,線,面等)。
根據(jù)GML空間數(shù)據(jù)的特點,由于要素的屬性(空間、非空間屬性)不包含子節(jié)點元素,所以要素的子節(jié)點元素被轉(zhuǎn)換為對象的屬性。
1.3 存儲順序
由于本研究采用子樹級存儲粒度,故這里還涉及到記錄的組織順序問題。記錄的存儲順序包括按深度優(yōu)先存儲、按廣度優(yōu)先存儲和按同類記錄聚集存儲 3種方案。
為了使得存儲GML順序同GML文檔的原始順序保持一致,同時也是為了實現(xiàn)起來更加方便,本研究采用深度優(yōu)先的存儲方案。
表述性狀態(tài)轉(zhuǎn)移(Representational state transfer,REST)并不是一種標(biāo)準(zhǔn),而是一種面向資源的軟件架構(gòu)風(fēng)格,它使用包括 HTTP、URI、XML、MIME等一系列標(biāo)準(zhǔn)來實現(xiàn)[10]。REST將網(wǎng)絡(luò)看成是資源的集合,網(wǎng)絡(luò)中的每一個資源都是通過一個唯一的URI來標(biāo)識,如一個GML圖層文檔(行政區(qū)圖層)可以標(biāo)識為http://gisland/REST/GMLServices.svc/gmlDoc/xzq,這種將網(wǎng)絡(luò)看成資源集合的觀點非常貼切于我們對GML空間數(shù)據(jù)的認(rèn)識,用于標(biāo)識資源的URI也更容易理解和記憶。REST中所有的資源都是通過表述和HTTP標(biāo)準(zhǔn)方法(包括GET、POST、PUT和DELETE等)對其進(jìn)行操作,如對一個GML圖層文檔(行政區(qū)圖層)進(jìn)行XQuery查詢,可以構(gòu)造一個XQuery語句,并將該XQuery語句以POST方式發(fā)送給http://gisland/REST/GMLServices.svc/gmlDoc/xzq/xquery,最后得到返回的結(jié)果,這種操作網(wǎng)絡(luò)資源的方式可以使得組件間的耦合度減小,并且在客戶端的實現(xiàn)難度大大降低。
在REST中,分布式是通過對資源的操作來實現(xiàn)的,并且資源被映射到相應(yīng)的一套URI規(guī)則上,也就是說資源只和URI相關(guān),與具體實現(xiàn)并無關(guān)聯(lián),因此REST具有很好的解耦性。GML作為一種OGC推薦的空間數(shù)據(jù)的標(biāo)準(zhǔn)數(shù)據(jù),同時其基于的數(shù)據(jù)格式XML也是網(wǎng)絡(luò)數(shù)據(jù)交換的標(biāo)準(zhǔn)格式,將 GML運(yùn)用 REST技術(shù)構(gòu)建空間數(shù)據(jù)網(wǎng)絡(luò)服務(wù)是一個不錯的選擇。
3.1 設(shè)計總線
由于 REST是一種對抽象為資源的對象進(jìn)行標(biāo)識、操作的網(wǎng)絡(luò)架構(gòu)風(fēng)格,結(jié)合 GML數(shù)據(jù)文檔包含有XML Schema模式文檔和GML實例文檔的特點[11],可以將該REST設(shè)計為如圖1所示的框架。
對于GML的XML Schema模式文檔,可以針對不同的模式文檔設(shè)定不同的資源服務(wù)標(biāo)識,以便用戶方便快速地查看 GML文檔對應(yīng)的模式文件。同時由于GML模式文檔是對GML實例文檔的格式定義,其包含了GML實例文檔中的要素包含的一些屬性字段,故在模式文檔REST服務(wù)中還提供了查詢該模式文檔對應(yīng)的GML實例文檔要素中所含有的屬性字段服務(wù)。
圖1 GML數(shù)據(jù)管理服務(wù)框架Fig. 1 Framework of GML data management service
對于GML實例文檔,REST API提供了資源標(biāo)識服務(wù)、地圖渲染服務(wù)、簡單的地圖查詢(包括圖查屬性和屬性查圖)服務(wù)和資源操作服務(wù)等。其中資源操作服務(wù)主要是對GML實例文檔進(jìn)行XQuery查詢、更新等,這也是REST服務(wù)對GML數(shù)據(jù)操縱的關(guān)鍵。
3.2 XML Schema模式服務(wù)
GML模式服務(wù)采用資源標(biāo)識的方式實現(xiàn),每個模式都對應(yīng)一個全局唯一的URI地址。由于URI是客戶端連接REST服務(wù)的接口,故URI的命名規(guī)則要做到顧名思義,并且具有一定的符合邏輯的層次感。
為了使得設(shè)計的REST資源標(biāo)識服務(wù)遵循一致的規(guī)則,本文為模式服務(wù)設(shè)計的URI模板見表1。
其中資源標(biāo)識服務(wù)的URI模板中第一個網(wǎng)絡(luò)層次(xmlSchema)代表的是該目錄為 XML Schema模式服務(wù),第二個網(wǎng)絡(luò)層次({tdlyType})代表的是具體的土地利用類型(行政區(qū)、宗地、地類圖斑等)。由此可以根據(jù)不同的土地利用類型來查詢其對應(yīng)的GML模式文檔,如 xmlSchema/xzq表示的是行政區(qū)的模式文檔URI,xmlSchema/zd表示的是宗地的模式文檔URI,GML要素屬性字段名查詢服務(wù)可以依此類推。
REST服務(wù)向客戶端輸出的資源內(nèi)容的格式可以有很多種,可以是標(biāo)準(zhǔn)的XML和JSON等格式,也可以是自定義格式。由于XML Schema資源標(biāo)識服務(wù)向客戶端輸出的資源內(nèi)容需要為原始的XML Schema文檔,故其輸出的資源內(nèi)容格式設(shè)置為 XML格式;GML要素屬性字段名查詢服務(wù)輸出的資源內(nèi)容格式為JSON格式。
3.3 GML實例文檔服務(wù)
GML實例文檔包含的服務(wù)較多,具體的資源標(biāo)識、地圖渲染、地圖查詢和資源操作等REST服務(wù)對應(yīng)的URI模板如表2。
所有服務(wù)類型的服務(wù)URI模板都是以/gmlDoc為根目錄,表示這些服務(wù)都是 GML實例文檔提供的REST服務(wù),{tdlyType}的含義同XML Schema資源標(biāo)識服務(wù),表示的是土地利用類型。
GML資源標(biāo)識服務(wù)是為不同的土地利用類型返回對應(yīng)GML實例文檔的REST服務(wù),該資源標(biāo)識服務(wù)向客戶端返回的數(shù)據(jù)類型為XML格式。
GML地圖渲染服務(wù)是對某一土地利用類型的GML實例文檔進(jìn)行地圖渲染的服務(wù)。本研究實現(xiàn)一個簡易的網(wǎng)絡(luò)地圖服務(wù)(Web Map Service,WMS),采用的地圖渲染方式是根據(jù)用戶輸入的地圖圖片寬度(w)、高度(h)以及地圖范圍(minx,miny,maxx,maxy)在服務(wù)器端解析 GML數(shù)據(jù)動態(tài)生成地圖。由于該服務(wù)向客戶端返回的數(shù)據(jù)為對應(yīng)動態(tài)渲染地圖的臨時URL地址,故其返回類型為字符串格式。
圖查屬性服務(wù)是根據(jù)在地圖上查詢選擇到的圖形要素(集)的屬性,其中{queryType}是指查詢的類型(包括點選、線選、矩形選擇和多邊形選擇),{coors}表示的是GML地圖坐標(biāo)(對),該服務(wù)向客戶端返回的數(shù)據(jù)類型為JSON格式。
屬性查圖服務(wù)是REST API中提供的一種比較簡單的通過單一字段值查詢地圖的服務(wù),其中{field}、{operator}和{value}分別代表的是待查詢的字段名、比較運(yùn)算符和字段值,該服務(wù)向客戶端返回的數(shù)據(jù)類型是表示所有查詢到的要素(集)坐標(biāo)對及其所有非空間屬性的JSON格式數(shù)據(jù)。
GML資源操作服務(wù)是REST API中提供的較為全面的對 GML實例文檔進(jìn)行各種操作的服務(wù),主要包括XQuery查詢和更新操作,其中{xqueryExp}表示的是 XQuery查詢、更新語句,該服務(wù)向客戶端返回的數(shù)據(jù)類型統(tǒng)一設(shè)置為XML格式。
表1 XML Schema模式服務(wù)對應(yīng)的URI模板Table 1 URI templet of XML Schema service
表2 GML實例文檔服務(wù)對應(yīng)的URI模板Table 2 URI templet of GML instance document service
4.1 REST服務(wù)實現(xiàn)
隨著REST設(shè)計應(yīng)用越來越廣泛,REST開發(fā)框架也是層出不窮,目前比較主流的開發(fā)框架有:微軟在.NET Framework3.5中引入的WCF,采用Java語言的 Axis2、CXF、Restlet、Gomba,采用 Python語言的Rails、Django,采用PHP語言的cakephp等。本研究設(shè)計的REST API為在WCF框架上采用C#語言進(jìn)行的開發(fā)。
4.1.1 資源標(biāo)識服務(wù)
資源標(biāo)識服務(wù)包括有XML Schema資源標(biāo)識服務(wù)和 GML資源標(biāo)識服務(wù),按照上一節(jié)對這兩個服務(wù)的設(shè)計原則,并且設(shè)置操作響應(yīng)的 HTTP協(xié)議統(tǒng)一為GET 方式,分別對這兩個服務(wù)進(jìn)行實現(xiàn)。
以XML Schema資源標(biāo)識服務(wù)為例,該服務(wù)接口設(shè)置如下:
[OperationContract]
[WebGet(UriTemplate="/xmlSchema/{tdlyType}")]
System.Xml.XmlElement GetSchema(String tdly-Type);
4.1.2 GML要素屬性字段名查詢服務(wù)
要在服務(wù)器端查詢出 GML實例文檔中的要素含有的屬性字段名,需要對該實例文檔對應(yīng)的 XML Schema文檔進(jìn)行解析。對比不同的XML解析方法,本研究采用開源、非提取的 XML文檔解析API——VTD-XML[12]2.10 C#版本對XML Schema文檔進(jìn)行解析,得出GML要素屬性名。
按照該服務(wù)的設(shè)計原則,設(shè)置服務(wù)器響應(yīng)協(xié)議為GET,并調(diào)用VTD-XML API對該服務(wù)進(jìn)行實現(xiàn)。
4.1.3 XQuery服務(wù)
XQuery服務(wù)主要是對GML實例文檔進(jìn)行一些查詢和更新操作,以查詢?yōu)槔?,對普通?XML文檔進(jìn)行 XQuery查詢實現(xiàn),可以使用微軟針對 XQuery1.0規(guī)范發(fā)布的一個 Microsoft.Xml.XQuery.dll動態(tài)鏈接庫[13]或者Altova公司提供的免費組件AltovaXML[14]。考慮到 GML具有空間數(shù)據(jù)的特殊性,對其進(jìn)行XQuery查詢不僅包括屬性查詢還包括空間查詢,上面兩個API對實現(xiàn)XQuery空間查詢就顯得無能為力了。本研究借助第三方開源軟件包Saxon 9.2[15],利用該軟件包提供的擴(kuò)展函數(shù)庫,在 XQuery查詢語句中調(diào)用.NET方法作為外部函數(shù)對GML文檔進(jìn)行XQuery空間查詢。下面為Saxon調(diào)用的XQuery空間查詢語句的一個示例。
declare namespace ext = "clitype:Spatail.Spatial Relations?from=" + dllPath + "Spatial.dll";
for $b in doc("xzq.gml")/yf:TDLY/yf:XZQ
where ext:Contains($b//gml:posList,rectangle)
order by $b/yf:BSM
return $b;
按照該服務(wù)的設(shè)計原則,設(shè)置服務(wù)器響應(yīng)協(xié)議為POST,并調(diào)用Saxon API對該服務(wù)進(jìn)行實現(xiàn)。
4.1.4 GML地圖渲染服務(wù)
由于WMS采用在服務(wù)器端動態(tài)生成GML地圖的技術(shù),當(dāng)用戶輸入?yún)?shù)向服務(wù)器請求圖片時,服務(wù)器端在此過程中執(zhí)行的操作包括:從db4o數(shù)據(jù)庫中查詢解析GML數(shù)據(jù)、渲染GML數(shù)據(jù)、將動態(tài)生成的臨時地圖圖片URL地址發(fā)送給客戶端。這個過程如圖2所示。
在 WEB服務(wù)器端生成臨時地圖時,首先使用VTD-XML解析GML實例文檔,然后利用.NET提供的GDI+繪圖接口對解析出來的地理信息繪制成地圖。
按照該服務(wù)的設(shè)計原則,設(shè)置服務(wù)器響應(yīng)協(xié)議為GET,并調(diào)用VTD-XML API對該服務(wù)進(jìn)行實現(xiàn)。
4.1.5 圖文互查服務(wù)
圖文互查服務(wù)包括圖查屬性服務(wù)和屬性查圖服務(wù)。
1) 圖查屬性服務(wù)
該服務(wù)是通過與地圖交互得到地圖信息的服務(wù),在服務(wù)器端,通過 GML地圖坐標(biāo)(對)構(gòu)造標(biāo)準(zhǔn)的XQuery空間查詢語句,然后通過此 XQuery語句對GML文檔進(jìn)行查詢,最后將屬性值返回。在瀏覽器客戶端,用戶與地圖交互的屏幕坐標(biāo)(對)需要轉(zhuǎn)換為GML地圖坐標(biāo)(對)方能調(diào)用此服務(wù)。由于該服務(wù)最后返回的屬性值是以JSON的形式表達(dá)的,這樣使得用戶可以很方便地在瀏覽器客戶端通過 JavaScript腳本語言將其以某種方式顯示出來。
按照該服務(wù)的設(shè)計原則,設(shè)置服務(wù)器響應(yīng)協(xié)議為POST,并調(diào)用Saxon API對該服務(wù)進(jìn)行實現(xiàn)。
2) 屬性查圖服務(wù)
該服務(wù)是對單個字段進(jìn)行屬性查詢的服務(wù),本研究根據(jù)用戶輸入的{field}、{operator}和{value} 3個參數(shù)構(gòu)造一標(biāo)準(zhǔn)的 XQuery非空間查詢語句,然后通過此XQuery語句對GML文檔進(jìn)行查詢,最后將查詢到的要素(集)坐標(biāo)對和所有非空間屬性以JSON形式返回。在得到坐標(biāo)(對)以后,在客戶端可以通過客戶端代碼(如JavaScript)以傳統(tǒng)的矢量式地圖(VML和SVG等)的方式將其繪制到瀏覽器上。按照該服務(wù)的設(shè)計原則,設(shè)置服務(wù)器響應(yīng)協(xié)議為GET,并調(diào)用Saxon API對該服務(wù)進(jìn)行實現(xiàn)。
圖2 客戶端調(diào)用地圖渲染服務(wù)的過程Fig. 2 Process of client call WMS
4.2 GML數(shù)據(jù)管理系統(tǒng)
本研究在根據(jù)已經(jīng)發(fā)布的 REST服務(wù),利用JavaScript/Ajax技術(shù)在客戶端調(diào)用 GML地理數(shù)據(jù)服務(wù),實現(xiàn)了一個簡易的 GML數(shù)據(jù)管理系統(tǒng)。該系統(tǒng)提供了GML地理數(shù)據(jù)查看、GML地圖數(shù)據(jù)瀏覽、圖文互查、XQuery查詢與更新等基本功能。圖3所示為進(jìn)行圖查屬性以及執(zhí)行了 XQuery空間查詢后的系統(tǒng)界面圖。
通過此客戶端GML地圖管理系統(tǒng)的實例驗證,本研究設(shè)計實現(xiàn)的REST服務(wù)能夠很方便地對GML文檔數(shù)據(jù)進(jìn)行查看與管理,系統(tǒng)的具有較快的響應(yīng)速度。
圖3 GML數(shù)據(jù)管理系統(tǒng)界面Fig. 3 Interface of GML data management system
1) 首先分析 REST架構(gòu)的關(guān)鍵技術(shù),然后根據(jù)GML文檔的特點結(jié)合REST風(fēng)格設(shè)計了GML數(shù)據(jù)管理服務(wù)REST API,接著實現(xiàn)了GML數(shù)據(jù)文檔的Web服務(wù),并詳細(xì)介紹了REST API的實現(xiàn)過程中的關(guān)鍵處理技術(shù),最后搭建了一簡易的基于 REST的 GML數(shù)據(jù)管理系統(tǒng)。
2) 通過對該系統(tǒng)可靠性和響應(yīng)速度的驗證,表明REST這種面向資源的架構(gòu)風(fēng)格非常適合于對基于XML編碼的GML地理數(shù)據(jù)的管理。
REFERENCES
[1] 陳建華. 原生模式GML空間數(shù)據(jù)管理機(jī)制研究[D]. 成都: 成都理工大學(xué), 2008: 1-5.CHEN Jian-hua. Research on native mode GML spatial data management mechanism[D]. Chengdu: Chengdu University of Technology, 2008: 1-5.
[2] 譚永明, 蘇 斌. 面向服務(wù)架構(gòu)體系的研究[J]. 計算機(jī)技術(shù)與發(fā)展, 2007, 17(3): 132-134.TAN Yong-ming, SU Bin. Research of service-oriented architecture [J]. Computer Technology and Development, 2007,17(3): 132-134.
[3] DZENANA M, HARIS K. Geospatial SOA using RESTful web services [C]// LUZAR-STIER V, JAREC I, BEKIC Z.Proceedings of the ITI 2009 31st Int Conf on Information Technology Interfaces. Zagreb, Croatia: University of Zagreb,2009: 199-204.
[4] MAZZETTI P, NATIVI S, CARON J. RESTful implementation of geospatial services for earth and space science applications [J].International Journal of Digital Earth, 2009, 2(1): 40-61.
[5] 毛 峰, 劉 婷, 劉仁義, 劉 南, 張 豐. 基于 REST 面向資源的地理信息服務(wù)設(shè)計[J]. 計算機(jī)工程, 2011, 37(8):238-240.MAO Feng, LIU Ting, LIU Ren-yi, LIU Nan, ZHANG Feng.Design of resource-oriented geospatial information service based on REST [J]. Computer Engineering, 2011, 37(8): 238-240.
[6] 張利利, 劉峻明, 張 旭, 于新文. 基于 REST架構(gòu)模式的遙感影像數(shù)據(jù)服務(wù)設(shè)計[J]. 計算機(jī)應(yīng)用, 2010, 30(S1): 57-59.ZHANG Li-li, LIU Jun-ming, ZHANG Xu, YU Xin-wen.Design of remote sensing image service based on REST [J].Journal of Computer Applications, 2010, 30(S1): 57-59.
[7] Db4objects, Inc. db4objects [EB/OL]. [2011-02-22]. http://www.db4o.com.
[8] 萬常選, 劉喜平. XML數(shù)據(jù)庫技術(shù)(第2版)[M]. 北京: 清華大學(xué)出版社, 2008: 72-77.WAN Chang-xuan, LIU Xi-ping. XML database technology (2nd edition) [M]. Beijing: Tsinghua University Press, 2008: 72-77.
[9] LEONIDAS F, RAMEZ E. Query engines for web-accessible XML data [C]// PETER M G, ATZENI A P, CERI S,PARABOSCHI S, RAMAMOHANARAO K, SNODGRASS R T. Proceeding of the 27th VLDB Conference. Roma, Italy:Morgan Kaufmann, 2001: 251-260.
[10] FIELDNIG R T. Architectural styles and the design of network-based software architectural doctoral dissertation [D].California: University of California Irvine, 2000: 76-106.
[11] Open Geospatial Consortium, Inc. OpenGIS geography markup language (GML) encoding Standard 3.2.1 [EB/OL]. [2011-06].http://www.opengeospatial.org/standards/gml.
[12] ZHANG J M. vtd-xml [EB/OL]. [2011-06]. http://vtd-xml.sourceforge. net.
[13] 胡立輝, 周春華. 基于.NET的 XQuery處理器的實現(xiàn)及性能分析[J]. 長沙理工大學(xué)學(xué)報: 自然科學(xué)版, 2005, 2(2): 57-62.HU Li-hui, ZHOU Chun-hua. Implementation and performance analysis of an XQuery processor based on .NET [J]. Journal of Changsha University of Science and Technology: Natural Science, 2005, 2(2): 57-62.
[14] AltovaXML. AltovaXML-XSLT 1.0/2.0 Engine, XQuery Engine,XML Validator [EB/OL]. [2011-06]. http://www.altova.com/altovaxml.html.
[15] KAY M H. The SAXON XSLT and XQuery processor [EB/OL].[2011-06]. http://saxon.sourceforge.net.
GML data management using REST
ZHANG Shan-shan1,2, WU Bao-you1,2, SUI Ning-ning1,2, QIN Rui1,2
(1. Key Laboratory of Metallogenic Prediction of Nonferrous Metals, Ministry of Education,Central South University, Changsha 410083, China;2. School of Geosciences and Info-Physics, Central South University, Changsha 410083, China)
It is necessary that geography markup language (GML) which uses XML as the encoding information to express the geographic data provides data sharing and interoperability. As the application of GML is more extensive,GML data storage and management is one of the hot spots. With the development of the network technology and GIS technology, service oriented architecture (SOA) was widely used in geographic information services. Representational state transfer (REST) is a lightweight architecture technology for distributed call, which has a distinct advantage in building SOA. The object database is used in GML data storage, and how to use REST architecture technology to realize the management and sharing of GML spatial data is mainly discussed. First, the key REST architecture technology and the design guidelines of GML data management service were introduced. Then the process of realizing the API based on the WCF framework was introduced. Finally, a data management system that is called GML data management service is achieved. This system shows that REST is ideal for GML geographic data management.
service oriented architecture (SOA); representational state transfer (REST); geography markup language(GML); data management
P208
A
1004-0609(2012)03-0954-07
湖南省自然科學(xué)基金資助項目(07JJ6076)
2011-12-01;
2012-01-04
張山山,副教授,博士;電話:13974991331;E-mail: z33@sohu.com
(編輯 何學(xué)鋒)