《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 分布式空間數據庫集成訪問技術
分布式空間數據庫集成訪問技術
來源:微型機與應用2010年第24期
蒙智敏, 熊 偉, 陳宏盛, 程 果, 趙 亮
(國防科學技術大學 電子科學與工程學院,湖南 長沙410073)
摘要: 提出了采用網格中間件技術解決面向分布式空間數據庫的查詢問題,設計并實現了一個網格中間件系統OGSA-SDQP。給出了該系統的設計思想,重點研究了其中的空間數據類型轉換、空間數據集成、空間操作函數擴展、空間數據查詢流程等關鍵技術,給出了系統實現及查詢性能測試。實驗結果表明,OGSA-SDQP能夠高效處理網格環境下的分布式空間數據查詢。
Abstract:
Key words :

摘   要: 提出了采用網格中間件技術解決面向分布式空間數據庫的查詢問題,設計并實現了一個網格中間件系統OGSA-SDQP。給出了該系統的設計思想,重點研究了其中的空間數據類型轉換、空間數據集成、空間操作函數擴展、空間數據查詢流程等關鍵技術,給出了系統實現及查詢性能測試。實驗結果表明,OGSA-SDQP能夠高效處理網格環境下的分布式空間數據查詢。
關鍵詞: 網格;分布式;空間數據查詢;OGSA-SDQP

    空間數據庫用于存儲空間和屬性數據,其數據模型和查詢語言能支持空間數據類型和空間索引,并且提供空間查詢和其他空間分析的方法。現實環境中,由于GIS隸屬單位地域差異及異構GIS數據庫的存在,空間數據庫系統不僅地域分散,而且數據具有異構性[1],因而空間數據共享一直是GIS研究領域的一個很有挑戰性的問題。
    實現不同空間數據庫的信息共享和集成,必須解決不同的通信協議、不同的系統結構、不同的操作系統、不同的數據庫和其他應用服務帶來的異構性[2]。網格是在網絡之上運行的以實現資源共享和協作為目標的軟件基礎設施,提供了一種集成的資源和服務環境。網格技術具有高性能計算、資源共享、互操作性、服務管理、高可靠性、安全性等特性[3],它的迅猛發展為實現分布式空間信息的訪問和操作提供了新的思路。開放網格服務框架OGSA(Open Grid Service Architecture)是以服務為中心的框架結構,在網格體系結構中有廣泛的影響力。開放網格服務框架下的分布式查詢處理器OGSA-DQP(Open Grid Service Architecture-Distributed Query Processor)符合OGSA框架,解決了一般數據的分布式異構的問題,但是它不能有效地集成空間數據,因為空間數據種類繁多,數據格式各異,獲取時段各不相同,存在多種比例尺、多種空間參考系和多種投影類型[4]。為此,針對網格環境下的分布式空間數據集成問題,以OGSA-DQP為基礎研究并開發了一個中間件系統,開放網格服務框架下的分布式空間查詢處理器OGSA-SDQP(Spatial DQP),能夠高效地處理分布式空間數據查詢。
1 OGSA-SDQP設計思想
    空間數據具有分布式異構的特點,OGSA-SDQP首先屏蔽了其異構性,然后在此基礎上集成了不同的空間數據源。OGSA-SDQP支持并擴展了空間操作函數。
    數據庫之間具有異構性,為了有效集成來自不同數據庫的數據,需要有統一的數據類型。OGSA-SDQP用Java語言實現,需要將SQL數據類型轉換成統一的Java數據類型[5]。對于常規的數據類型,不同數據庫產品之間的語義差別不大,例如:SQL數據類型中的VARCHAR、CHAR、LONGVARCHAR對應Java數據類型中的java.lang.String和char[];SQL數據類型中的INTEGER對應Java數據類型中的int。但是空間數據具有存儲格式多樣性的特點,各個數據庫的空間數據類型不相同,Java中也沒有表示空間數據的類型。在OGSA-SDQP中,空間數據被轉換成一致的數據類型,實現了數據類型的統一。
    在面向分布式空間數據源的SDQP查詢中,組合查詢被解析為針對不同數據源的子查詢,子查詢通過數據服務獲取查詢結果,在SDQP中將不同數據源返回的結果轉換成一致的數據類型后進行組裝,并返回給請求用戶。
    OGSA-SDQP支持空間操作函數。單數據源查詢過程中,提交到數據服務的查詢串被完整地推送到后端數據庫執行查詢,后端數據庫支持的查詢函數都可以嵌入在查詢語句中提交給數據服務并獲得查詢結果。對于數據表中包含的空間信息,查詢語句可以根據嵌入的查詢函數經后端數據庫處理后返回計算結果。而對于多源數據的分布式查詢,需要在查詢語句推送前對應不同數據源拆分為相應的查詢子句。在查詢子句返回數據結果之后,根據嵌入在OGSA-SDQP內部的基于標量函數拓展的空間分析函數,對結果進行處理、合并,返回給服務請求客戶端。
2 OGSA-SDQP關鍵技術
2.1空間數據類型轉換

    系統使用的兩個空間數據庫PostGIS和Beyondb都支持空間數據。Beyondb是項目組其他成員在開源項目Ingres的基礎上進行空間擴展生成的支持空間數據的數據庫系統。目前,OGSA-SDQP僅支持矢量空間數據。
    首先,將空間數據庫的基本信息提交給OGSA-SDQP,這些信息主要包括數據庫的URI、數據庫的驅動程序JDBC等。由于每個空間數據庫的空間數據類型各不相同,PostGIS的空間數據類型是PG_Geometry,Beyondb的空間數據類型是ST_Geometry,OGSA-SDQP根據每個空間數據庫的JDBC,將Geometry類型解析為通用文本WKT(Well-Known Text)類型。WKT格式是對幾何體編碼的一個結構化文本格式,可以像操作字符串一樣對WKT進行操作。通過將不同的空間數據類型轉換為WKT的方式,屏蔽了不同空間數據類型的異構性。
    空間數據的類型轉換如圖1所示,當用戶提交查詢操作時,OGSA-SDQP主要利用兩個行為Activity將數據轉換成結果集ResultSet的形式,SQLQuery和TupleToWebRowSetCharArrays。它們處在一個工作流中,SQLQuery的輸出是TupleToWebRowSetCharArrays的輸入。ResultSet是Java對象,不適合網絡傳輸,在傳輸前將其轉換成WebRowSet格式[6],OGSA-SDQP接收到數據后將其轉換回ResultSet格式。ResultSet中的空間數據類型是空間數據庫自己定義的類型,OGSA-SDQP將空間數據轉換成WKT格式,空間數據類型轉換是空間數據集成的前提。

2.2 空間數據集成
    空間數據集成是將分布式數據庫構成一個大的虛擬的數據庫,屏蔽數據庫之間的異構性,為用戶提供統一、透明的訪問接口。通過下面的語句可以從兩個空間數據庫中一次查詢出鐵路信息和公路信息并返回一個結果集:select rail. geom from beyondb_railway_pln rail union all select road.geom from postgis_road_pln road。
  為了向用戶提供統一的數據視圖,屏蔽底層數據庫的位置信息和平臺差異,實現異構數據庫的無縫連接。虛擬表與數據源的映射關系如圖2所示,OGSA-SDQP首先建立了一張虛擬表,虛擬表中定義了虛擬表名、虛擬字段名等屬性。然后,又建立了一張虛擬關系表來維持虛擬表名與實際表名、虛擬字段名與實際屬性之間的映射關系,虛擬表中的一個屬性可以對應0個或多個數據源對象的屬性[7]。OGSA-SDQP循環每個數據源結果集的行,再循環每行的字段,根據映射關系查找該字段在虛擬表中的位置,然后根據位置信息,將數據插入虛擬表。

2.3空間操作函數擴展
  在數據訪問與集成處理過程中,行為(Activity)是基本工作模塊,每類行為負責完成一項特定的數據查詢、轉換、傳輸等處理任務[8]。OGSA-SDQP提供了行為的擴展接口,用戶通過該接口可以定義自己的行為。
    OGSA-SDQP提供服務行為拓展機制,可供拓展的函數類型為標量函數與聚合函數兩類。聚合函數從選擇列數據中提取出代表一種趨勢的值或者匯總值,并聚合列得到結果集,返回的數據類型對應于該列或者傳遞到函數中的值,如COUNT、MAX、SUM等。標量函數指的是基于輸入值定義類型返回單個數據值。聚合函數針對通用數據類型進行操作,而空間分析過程需要針對空間數據表中每條記錄包含的幾何字段進行計算,因此拓展空間分析函數主要基于標量函數的形式拓展。
    JTS Topology Suite是一系列Java API,它完成了Java對幾何對象、空間拓撲的核心操作算法[9]。為了豐富用戶的個性化操作,利用OGSA-SDQP的擴展功能和JTS Topology Suite,添加了一些支持矢量數據的空間操作,包括緩沖區計算、凸外包框計算和空間相交計算等。
2.4空間數據查詢流程
    OGSA-SDQP是一個基于服務的分布式查詢處理器,它可以一次對多個數據服務進行并行查詢。OGSAS-DQP分布式查詢的實現需要兩個重要服務的支持:空間網格分布式查詢服務SGDQS(Spatial Grid Distributed Query Service)和空間網格查詢評估服務SGQES(Spatial Grid Query Evaluator Service)[10]。
    SGDQS負責創建SDQP服務,生成數據資源實體的表結構schema,對查詢計劃進行編譯、優化、分解、制定查詢計劃,并將分解后的查詢發送給SGQES。另外SGDQS還負責與用戶的交互,接受用戶提交的請求,返回查詢結果給用戶。
    SGQES是查詢計劃的分支,是查詢的執行節點,它在SGDQS制定好查詢計劃后動態生成,每個查詢計劃分支對應一個SGQES服務,SGQES直接與數據資源和其他SGQES交互,并將執行結果返回給SGDQS。SGQES使用經SGDQS分解的SQL語句進行查詢訪問。圖3說明了一次查詢進行的數據流程,其中數據服務資源SDSR(Spatial Data Service Resource) 標識和承載其數據庫的URI地址,充分屏蔽了異構性,實現了透明訪問[11]。

3 系統實現及實驗
3.1系統環境

    部署了PostGIS和Beyondb兩個數據庫服務器。在WindowsXP操作系統上的Beyondb數據庫中存放了長沙市的鐵路數據,在虛擬機Ubuntu操作系統上的PostGIS中部署了長沙市的公路數據。系統的服務器部分OGSA-SDQP部署在Ubuntu下。客戶端分別部署在WindowsXP和Ubuntu下。
3.2 系統實現方式
    該系統分為服務器和客戶端兩個部分。服務器是空間擴展后的OGSA-SDQP,支持空間數據類型和空間操作;客戶端包括注冊、查詢、空間渲染、導出四個模塊,這四個模塊為用戶提供了接口,用戶可以根據需要選擇其中幾個模塊建立自己的圖形化系統。其中空間渲染模塊和導出模塊的實現上使用了開源項目Geotools。Geotools是Java語言編寫的開源GIS工具包,提供各種GIS算法、各種數據格式的讀寫和顯示,可以實現地圖的可視化。
3.3 實驗結果
    通過OGSA-SDQP訪問空間數據庫,既可以像以前一樣訪問單個數據庫來獲取空間信息,如圖4(a)、圖4(b)所示,也可以通過集成查詢,將鐵路和公路一次讀取并顯示出來,看起來就像是對一個數據庫進行操作一樣,如圖4(c)所示;還可以對獲取的空間數據進行操作,圖4(d)是對鐵路的外包框操作,圖4(e)是對公路做緩沖區操作,圖4(f)求鐵路和公路的交點。

    測試OGSA-SDQP的性能如圖5所示。橫軸表示查詢的數據量,縱軸表示查詢時間。先分別對兩個空間數據庫進行查詢,將它們的查詢時間相加,再與OGSA-SDQP的查詢時間做比較。實驗發現,由于采用并行查詢,OGSA-SDQP在查詢記錄較小時,基本上與單獨查詢的時間一致。隨著數據量的增大,耗費的資源也隨之增大,因此在查詢數據量大時集成查詢所需時間會比單獨查詢時間更長,但總體上還是小于累計的時間。OGSA-SDQP的性能取決于網格服務器的性能和各個數據庫服務器的性能。

    針對空間數據分布式異構的特點,使用網格技術,構建了分布式多源異構空間信息的集成訪問環境OGSA-SDQP。在該環境下,用戶可以采用并發的方式同時訪問多個空間數據源;擴展了空間操作功能,支持對查詢結果的處理。最后,通過實驗證明了該系統在集成查詢中的性能優勢。
參考文獻
[1] 龔強. 地理空間信息網格計算環境研究[J].信息技術,2008,32(7):1-4.
[2] 都志輝, 陳渝. 以服務為中心的網格體系結構OGSA[J]. 計算機科學, 2003,30(7):26-30.
[3] JOSHY J, FELLENSTEIN F著. 網格計算(Grid Computing)[M]. 占曉蘇, 張少華,譯.北京: 清華大學出版社, 2005.
[4] 張豐. 面向網格的海量時空數據訪問、集成于互操作研究[D]. 浙江:浙江大學, 2007.4.
[5] HOARAU W, TIXEUIL S, RODRIGUES N. Dependability evaluation of the ogsa-dai middleware[A]. Achievements in European Research on Grid  Systems[C]. 2008:223-236.
[6] LYNDEN S, MUKHERJEE A, HUME A C. The design and implementation of OGSA-DQP: A service-based distributed query processor[J]. FutureGeneration Computer Systems, 2009,25(3):224-236.
[7] 劉會強. 網格環境下數據集成和查詢處理的研究與實現[D].北京:北京工業大學, 2009.4.
[8] CHUE Hong N, ANTONIOLETTI M, KARASAVVAS K.  Accessing data in grids using OGSA-DAI[A]. Knowledge  and Data Management in GRIDs[C]. 2007.3.
[9] 高昂. 面向空間數據的分布式服務計算研究與實現[D].北京:中國科學院地理科學與資源研究所, 2010.3.
[10] 張建兵. 基于網格的空間信息服務關鍵技術研究[D]. 北京:中國科學院遙感應用研究所, 2006.5.
[11] 龐雄文, 齊德昱, 李擁軍. Globus下的數據訪問方法[J].計算機應用研究, 2006,27(4):68-70.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 波多野结衣50连精喷在线 | 第一页在线视频 | 婷婷人人爽人人爽人人片 | 黄色小视频在线免费观看 | 色偷偷偷 | 97人人揉人人捏人人添 | 国产日产在线观看 | 久久国产精品偷 | 欧美精品99久久久久久人 | 狠狠久久综合伊人不卡 | 521香蕉视频 | xxx欧洲| 日批免费视频不要会员 | 国产精品人成在线播放新网站 | 成人在线影视 | 亚洲欧美日韩中字综合 | 国产精品免费看久久久麻豆 | 国产欧美国日产网站 | 日日碰日日摸日日澡视频播放 | 成人毛片免费观看视频 | 日本不卡视频一区二区三区 | 亚洲免费一区 | 精品欧美日韩一区二区 | 最新亚洲一区二区三区四区 | 狠狠的干狠狠的操 | 成年人三级网站 | 国产日韩欧美swag在线观看 | 日本精品不卡 | 久久九九精品视频 | 午夜资源 | 午夜影院免费看 | 美女黄频a美女大全免费皮 美女黄免费网站 | 午夜黄网站 | 一级特黄aaa大片在线观看视频 | 五月激情综合 | 一二三四社区在线播放 | 欧美日韩国产成人综合在线 | 真实一级一级一片免费视频 | 可以免费观看的一级毛片 | 免费国产不卡午夜福在线观看 | 天天摸天天看天天爽 |