亢曉琛,張艷玲,閆浩文
(蘭州交通大學數理與軟件工程學院,甘肅蘭州 730070)
基于 ISAPI技術的柵格數據瓦片服務研究
亢曉琛,張艷玲,閆浩文
(蘭州交通大學數理與軟件工程學院,甘肅蘭州 730070)
在分析 GoogleMaps瓦片式服務模型的基礎上,提出可擴展性的數據服務方案。以 ISAPI技術為通訊手段,設計并實現了高性能的柵格數據瓦片服務系統。從系統的數據存儲設計、Web服務架構、應用服務模塊與服務接口設計等方面進行論述,并給出系統性能測試與相關的服務應用。
柵格數據;瓦片服務;存儲設計;接口設計;ISAPI
計算機軟硬件技術以及網絡技術的迅速發展,極大地增強了地理信息系統的服務能力。成熟的商業數據庫技術為海量空間信息的高效存儲管理提供了基礎的保障,數據的檢索能力得到了極大提高。與此同時,先進網絡信息技術則滿足了空間信息數據高效發布的需求。地理信息系統經歷了技術研究、集成應用到產品服務,直至今天正在向地理信息服務轉變。地理信息服務這一概念強調“服務”,這里的服務可以理解為“輔助用戶進行行為決策”,那么將地理信息轉化為輔助用戶進行行為決策的工具這一過程中所有的問題均可以認為是地理信息服務所需要研究的內容[1]。
當前,地理信息服務的服務模式多種多樣,而標準的數據服務始終是構建其他復雜地理信息服務應用的基礎環節。由于地理數據服務基于行業標準,并且具有良好的跨平臺性質,因此,以服務的方式實現空間數據的發布以及互操作成為技術的主流[2]。
類似于 GoogleMaps,當前有許多網絡 GIS應用基于瓦片服務模式來構建。但大多以二維顯示應用為主,服務的數據多為簡單的圖片。本文所論述的服務模型具有良好的數據擴展性,同時可以為二維顯示與三維應用提供數據服務。以具體的瓦片式柵格地圖服務的具體實現為例,詳細分析了瓦片式柵格數據服務的實現原理與關鍵技術。
在 GIS與模型集成的多層體系結構中,可以劃分為表示層、商業邏輯層和數據訪問層,這三層構成了一個經典的三層體系結構[3]。
柵格數據瓦片服務系統模型可以以數據源形式封裝來自數據庫與文件方式組織的不同數據來源。對于多種不同的數據源,向上服務的數據調用接口是一致的。這樣,以接口繼承的方式很容易實現數據源類型的擴展與多源數據的融合,這一優勢正是開源桌面軟件 QGIS所采用的數據管理方式。通過統一的數據調用接口,應用邏輯可以實時進行數據請求。為了應對較高的并發請求,在應用邏輯與數據源層之間預先建立可控的連接池。在連接池中保留了實時可用的有效數據源連接,用于數據請求與各種操作請求。Web Server層可以實時捕捉到來自客戶端的URL請求,應用邏輯將URL所攜帶的信息進行解析,然后根據數據請求參數從數據源調取數據,再由Web Server發送給客戶端。系統模型參見圖1。
1.數據瓦片編碼與生產
數據瓦片 tile是通過將柵格數據按照一定的像素寬高進行裁剪得到,對裁剪后的數據小文件重新命名,使它能夠反映在原始文件中所處的像素位置與金字塔級別。

圖1 瓦片服務系統模型
GoogleMaps、Google Earth以數字地圖與高分辨率衛星圖像兩種數據源提供地圖服務。Google分層組織地圖數據,分層存放結構,簡化了系統模型及處理過程[4]。GoogleMaps中,衛星影像的 tile采用256×256像素大小的 jpg圖片來表達地面內容,tile的命名規則是采用“qrst”4個字符排列而成的字符串來表達當前級別與像素位置。這樣每一幅圖在數據請求時就表現為一個 URL(如:http:∥kh0. google.com/kh?n=404&v=8&t=trtqtt,其中參數t=trtqtt代表了請求的級數與位置)。根據 zoom in (放大)級別的不同,tile進行適當的裂化,每塊的編碼規則為:左上“t=tq”,右上“t=tr”,右下“t=ts”,左下“t=tt”。依此類推,每放大一倍,每一小塊都裂分為四,從左上到右下順時針按 qrst編號,裂分后的編碼為裂分前的編號上小塊的編號。本研究所實現的瓦片數據服務所需的數據通過 GDAL進行生產(用 GDAL進行柵格數據讀寫),不同的是,作為基礎性的數據服務,所提供的數據格式不僅僅局限于用于顯示的 jpg或者 png格式。在當前應用需求下,通過擴展,增加了對DEM數據的支持。這樣,瓦片服務將更加靈活,tile的大小不局限于 256×256,如本應用需求中所需的DEM數據瓦片就是 150× 150大小。數據調用方通過元數據服務了解 DEM瓦片數據的存儲格式,就可以以URL方式進行調度并使用。
2.數據組織方式與數據索引
由于空間數據具有數據量大、數據類型多樣、表達形式復雜的特點,各種空間操作計算量大,因此空間索引的有無及其性能的發揮直接影響到空間數據引擎和地理信息服務網格的整體性能[5]。類似于 GoogleMaps,本系統瓦片數據采用分級組織方式,既可以采用文件系統方式組織數據,也可以分級存儲于數據庫中。
在文件系統模式下,同一級別數據存儲在同一目錄下。各級數據配置用標準 XML格式文件作為當前目錄的索引,具體格式參見圖 2。

圖2 文件組織方式
在數據庫存儲模式下,數據組織采用與文件存儲類似的方案,不同的是,同級別數據以大對象格式存儲于有固定標識的一批數據表中,即一個數據表相當于一個文件目錄。元數據也存儲于相關的數據庫表中。
采用這種方式組織數據的優勢為:系統初始化時,首先將索引信息與元數據信息加載到內存中。系統收到數據請求時,在內存中快速分級檢索,如果檢索到數據,則直接定位到數據葉結點的文件路徑下,如果是數據庫模式則讀出該記錄。
1.基于 ISAPI的應用程序模塊
ISAPI(internet server application program interface)是微軟提供的一套面向Web服務的API接口,它能實現 CGI(公共網關接口)提供的全部功能。ISAPI應用大多數以 DLL動態庫的形式使用,可以在被用戶請求后執行,在處理完一個用戶請求后不會馬上消失,而是繼續駐留在內存中等待處理別的用戶輸入。此外,ISAPI的DLL應用程序和Web服務器處于同一個進程中,效率要明顯高于 CGI。
對于本系統 ISAPI應用程序模塊,數據庫模式數據源在系統初始化時,會自動建立一個可伸縮的數據庫連接池。數據庫連接池通過提供一套連接的分配、使用策略,來解決連接頻繁分配、釋放所造成的問題,最終實現高效的連接、安全的復用[6]。而對文件系統則需要對索引文件進行加載。大量數據請求并發而來時,可以同時從多個連接池棧中獲取數據庫連接,用于從數據庫中獲取數據,或者從索引中快速定位并讀取數據。通過對系統相關配置,可以實時對當前系統的運行配置狀態進行動態調整。由于數據在服務器端,數據安全可以得到保證,而且由于只需處理用戶請求的區域,數據傳輸量恒定,不會隨著數據量加大而導致性能線性下降[7]。
2.基于OGC標準的元數據服務接口與數據服務接口
接口設計是系統多種地理信息服務應用實現數據共享的關鍵所在。本系統數據服務接口基于OGC標準設計,數據與服務通訊借助 URL來實現,每個數據瓦片 tile通過一個URL來唯一定位。URL的結構為:http:∥host[:port]/path[?{name=[value]&}][8]。本系統目前支持 DescribeTiles與 Get-Tile兩種操作。
DescribeTiles操作用于獲取服務元數據,服務元數據描述了服務的信息內容以及服務器可以接受的請求參數值。元數據的請求字符串為:
http:∥127.0.0.1/mapserver.dll?SERV ICE= WMS&VERS ION=*&REQUEST=DescribeTiles。
返回結果采用 xml格式文檔來描述,基本元素包括:"WMS_DescribeTilesResponse","TiledLayer","TiledStyles","TiledFor mats","TiledDimension","Value","TiledCrs","TileMatrixSet","Tile-Matrix","NonEmptyString"等節點。
GetTile操作用于請求數據,服務器會對應返回符合URL請求參數的各種格式的地圖數據瓦片。本系統目前支持兩種基本的數據格式,png/jpeg圖片與柵格數據瓦片。其中 png/jpeg圖片主要用于顯示使用,而柵格數據與DEM數據主要用于計算與三維建模。基本請求格式為:http:∥127.0.0.1/ mapserver.dll??SERV I CE=WMS&VERS ION=*&REQUEST=GetTile&LAYER=*&STYLE=*&CRS=*&FORMAT=*&SCALE=*&T IME=*&T ILEROW=*&T ILECOL=*。
1.系統測試結果與分析
在W indow XP/Server 2003環境下,通過配置IIS+SQL Server 2000集成運行環境,進行系統壓力測試。測試結果參見表 1。

表1 壓力測試結果
從表 1分析可知,在一定并發量請求下,通過配置符合系統環境的數據庫連接池,系統具備以較高的服務性能響應數據服務請求的能力。
2.系統應用
目前該系統已經在實際項目中部署應用,可以同時為二維與三維應用提供各種服務。在二維應用中,可以通過OpenLayers(JavaScript編寫)在 IE中顯示瀏覽影像數據。在三維地理信息系統中,對外同時提供DEM與影像瓦片數據服務,響應速度良好。其中DEM數據用于顯示地形,影像數據在對應地理位置進行背景顯示。
[1] 劉岳峰.地理信息服務概述[J].地理信息世界,2004, 2(6):26-29.
[2] 唐桂芬.面向地理數據服務的集成空間查詢處理技術[D].長沙:國防科學技術大學,2007.
[3] 任建武,閭國年,王橋.多層體系 GIS與模型集成研究[J].測繪學報,2003,32(2):178-182.
[4] 符海月,趙軍,李慢春.從 Google Maps看我國全球化地理信息服務面臨的挑戰和對策[J].地理與地理信息科學,2006,22(2):1-3.
[5] 李科,游雄.地理信息服務網格關鍵技術研究[C]∥第十屆中國科協年會論文集.鄭州:[s.n.],2008.
[6] 王繼周,李成名,付俊娥.面向分布式異構數據庫的WebGIS連接池服務研究[J].地理與地理信息科學, 2003,19(3):18-21.
[7] 劉志勇,許曉宏,邵彥蕊.網絡地圖發布技術研究[J].測繪與空間地理信息,2007,30(2):112-115.
[8] Open Geospatial Consortium Inc.OpenGIS Tiled WMS Discussion Paper[EB/OL].(2010-01-02)[2010-01-15].http:∥www.opengeospatial.org.
Study on Tile Service for Raster Data Based on ISAPI
KANG Xiaochen,ZHANG Yanling,YAN Haowen
0494-0911(2010)07-0012-03
P208
B
2010-01-19
多尺度地理空間相似關系計算模型及其在地圖自動綜合中的應用研究(40871208)
亢曉琛(1983—),男,山西襄汾人,碩士生,主要從事網絡地理信息系統研究。