侯東陽,陳 軍,武 昊,邢漢發(fā)
(1. 山東師范大學(xué) 地理與環(huán)境學(xué)院,山東 濟(jì)南 250358;2. 國家基礎(chǔ)地理信息中心,北京 100830)
在數(shù)字/智慧城市建設(shè)、國際標(biāo)準(zhǔn)化組織ISO/TC211和開放地理空間信息聯(lián)盟OGC(Open GIS Constrium)等應(yīng)用和組織的推動下,越來越多符合標(biāo)準(zhǔn)、穩(wěn)定易用的地理信息Web服務(wù)被發(fā)布到互聯(lián)網(wǎng)上,極大促進(jìn)了地理空間數(shù)據(jù)的集成和共享[1-3].其中,一部分地理信息Web服務(wù)直接以錨文本或超鏈接的形式嵌入到靜態(tài)頁面,屬于表層網(wǎng)絡(luò)資源[4];還有一部分地理信息Web服務(wù)被發(fā)布在注冊中心(如網(wǎng)絡(luò)目錄服務(wù)中)或在線數(shù)據(jù)庫中,需要通過自身提供的查詢接口才能暴露出來,屬于深層網(wǎng)絡(luò)資源[5-6].此外,隨著在線地圖網(wǎng)站的流行,還有一部分地理信息Web服務(wù)是隱藏于腳本中,需要查看網(wǎng)站的腳本源碼才能被發(fā)現(xiàn),也屬于深層網(wǎng)絡(luò)資源[4,7].這些位于表層和深層網(wǎng)絡(luò)的地理信息Web服務(wù)分散且互不聯(lián)通,形成了事實(shí)上的"信息孤島",沒有形成"一站式"的地理信息協(xié)作服務(wù)平臺,給服務(wù)的查找和獲取帶來了困難[8].
針對這一現(xiàn)象,眾多專家和研究機(jī)構(gòu)在2015年6月9日至10日召開的"全球地理信息支持未來地球"國際研討會上提出了"全球地理信息協(xié)作服務(wù)平臺(CoGLand)"國際科學(xué)項(xiàng)目的倡議,擬在GlobeLand30信息服務(wù)平臺基礎(chǔ)上,整合地表覆蓋在內(nèi)的各種地理信息,發(fā)展服務(wù)計算和在線應(yīng)用[9].其所面臨的首要問題就是能否快速準(zhǔn)確地搜索到相關(guān)地理信息Web服務(wù).
鑒于此,本研究以基于二級匹配的深層網(wǎng)絡(luò)地理信息Web服務(wù)采集方法和顧及用戶請求范圍的地理信息Web服務(wù)檢索方法為理論基礎(chǔ),設(shè)計開發(fā)了顧及深層網(wǎng)絡(luò)的地理信息Web服務(wù)搜索系統(tǒng),旨在快速準(zhǔn)確地采集分散的地理信息Web服務(wù),為用戶提供一站式的搜索體驗(yàn).
顧及深層網(wǎng)絡(luò)的地理信息Web服務(wù)搜索系統(tǒng)主要由數(shù)據(jù)層、業(yè)務(wù)層和表現(xiàn)層等3部分組成,如圖1所示.其具體如下:
1)數(shù)據(jù)層:主要包括Web地圖服務(wù)WMS(Web Map Service)、Web覆蓋服務(wù)WCS(Web Coverage Service)、Web要素服務(wù)WFS(Web Feature Service)、Web處理服務(wù)WPS(Web Processing Service)等符合OGC標(biāo)準(zhǔn)的地理信息Web服務(wù).
2)業(yè)務(wù)層:主要包括服務(wù)采集業(yè)務(wù)和服務(wù)檢索業(yè)務(wù)兩大類.其中,服務(wù)采集業(yè)務(wù)是指從互聯(lián)網(wǎng)中采集和整理泛在地理信息Web服務(wù)的業(yè)務(wù),涉及地理信息主題設(shè)置、地理信息Web服務(wù)解析、地理信息Web服務(wù)可用性驗(yàn)證等業(yè)務(wù),為服務(wù)檢索業(yè)務(wù)提供基礎(chǔ)數(shù)據(jù);服務(wù)檢索業(yè)務(wù)是指根據(jù)用戶請求從整理后的地理信息Web服務(wù)中返回其所需服務(wù)的業(yè)務(wù),包括Web服務(wù)檢索、Web服務(wù)元數(shù)據(jù)瀏覽和Web服務(wù)集成等業(yè)務(wù).
3)表現(xiàn)層:其主要包括地理信息Web服務(wù)采集子系統(tǒng)和檢索子系統(tǒng).其中地理信息Web服務(wù)采集子系統(tǒng)是采用了通訊開銷較小的C/S(Client/Server)架構(gòu)來開發(fā),主要面向小眾的專業(yè)管理人員;地理信息Web服務(wù)采集子系統(tǒng)采用交互性較強(qiáng)的B/S(Browser/Server)架構(gòu)來開發(fā),主要面向公眾用戶.
圖1 地理信息Web服務(wù)搜索系統(tǒng)的總體架構(gòu)Fig.1 Overall architecture of geospatial Web service search system
為了便于管理和查詢地理信息Web服務(wù),本系統(tǒng)主要按照其類型存儲和組織服務(wù)的元數(shù)據(jù),即將不同類型的地理信息Web服務(wù)存儲在不同的數(shù)據(jù)庫表中;以WMS服務(wù)為例,其數(shù)據(jù)庫表主要包括WMS服務(wù)能力描述文檔鏈接、內(nèi)容、IP地址和所對應(yīng)的國家、地區(qū)等字段,具體見表1.
表1 WMS服務(wù)數(shù)據(jù)庫表的存儲結(jié)構(gòu)Tab.1 Storage structure of WMS database table
表2 WMS服務(wù)索引文件的結(jié)構(gòu)Tab.2 Structure of WMS indexed fi le
本系統(tǒng)的服務(wù)采集業(yè)務(wù)是在傳統(tǒng)主題爬行方法的基礎(chǔ)上,新增基于名字和規(guī)則匹配的腳本識別模塊和腳本內(nèi)容理解模塊,以期同時采集位于表層和深層網(wǎng)絡(luò)的地理信息Web服務(wù).
該方法的主要思路如圖2所示,具體見文獻(xiàn)[4,10].①名字匹配:主要用于從已爬行的網(wǎng)頁中判斷其是否存在包含地理信息Web服務(wù)的腳本文件或腳本文件鏈接;其中,名字判斷條件是根據(jù)網(wǎng)頁中是否包含OpenLayers、ArcGIS API for JavaScript、Leaflet或Mapbox.js等腳本庫的引用形式來確定的;如果已爬取網(wǎng)頁中引用了這些腳本庫,則該網(wǎng)頁很可能存在腳本內(nèi)容或腳本文件調(diào)用了地理信息服務(wù);②規(guī)則匹配:旨在從候選的腳本文件中抽取出候選的地理信息Web服務(wù).其中,調(diào)用規(guī)則是根據(jù)OpenLayers、ArcGIS API for JavaScript、Leaflet和Mapbox.js 4個常用腳本庫調(diào)用地理信息Web服務(wù)的方式歸納總結(jié)的,如利用規(guī)則"OpenLayers.Layer.WMS([wW ]*?)"可以匹配出WMS服務(wù).
圖2 地理信息Web服務(wù)采集方法的主要思路Fig.2 Main idea of the geospatial Web service crawling method
在地理信息Web服務(wù)檢索業(yè)務(wù)中,用戶提交的查詢詞除了涉及服務(wù)主題外(如草地),通常也會暗含地理范圍(如巴西某一地區(qū)),甚至是直接以經(jīng)緯度范圍作為查詢詞.為了便于用戶表達(dá)檢索時的地理范圍意圖,本系統(tǒng)的服務(wù)檢索業(yè)務(wù)從WMS服務(wù)的GetMap操作、WCS服務(wù)的GetCoverage操作、WFS服務(wù)的GetCoverage操作角度和用戶需求角度出發(fā),將用戶請求的地理范圍和主題關(guān)鍵詞區(qū)別對待,具體為:以倒排索引方法為主,為主題關(guān)鍵詞建立文本索引;在此基礎(chǔ)上,采用Geohash方法為地理信息Web服務(wù)自身的地理范圍建立空間索引;然后,以地理信息檢索理論為基礎(chǔ),以包含、被包含和相交3種空間關(guān)系為檢索算子,將用戶請求的地理范圍融入到基于關(guān)鍵詞匹配的檢索機(jī)制中.
本系統(tǒng)以上述關(guān)鍵技術(shù)為理論基礎(chǔ),以Microsoft Visual Studio 2008為開發(fā)工具,以C#為后臺開發(fā)語言,利用Winform控件開發(fā)服務(wù)采集子系統(tǒng)的界面,利用ASP.NET、HTML、JavaScript和bootstrap等搭建服務(wù)檢索子系統(tǒng)的界面,具體開發(fā)環(huán)境見表3.
表3 開發(fā)環(huán)境列表Tab.3 Development environments
1)地理信息Web服務(wù)采集子系統(tǒng)
其主要是通過C#語言的HttpWebRequest類和HttpWebRespone類來實(shí)現(xiàn)網(wǎng)頁/服務(wù)的請求和獲取,通過Lucene.net實(shí)現(xiàn)地理信息Web服務(wù)的空間索引和文本索引.包括菜單欄、任務(wù)管理器和信息查看窗口三大部分.該子系統(tǒng)支持多線程多任務(wù)同時采集的模式.在新建采集任務(wù)時,允許管理員設(shè)置任務(wù)的多種參數(shù),包括任務(wù)的名稱、主題關(guān)鍵詞、下載類別、連接設(shè)置及時間設(shè)置等;任務(wù)運(yùn)行時,可以在信息查看窗口查看網(wǎng)頁采集、服務(wù)驗(yàn)證和索引的過程.
該子系統(tǒng)從2015年6月16運(yùn)行到2015年11月11日,最終收集到的地理信息Web服務(wù)數(shù)量見表4.
表4 服務(wù)采集實(shí)驗(yàn)結(jié)果Tab.4 Experimental results of service crawling
2)地理信息Web服務(wù)檢索子系統(tǒng)
其主要是通過Lucene.net及其 Contrib Spatial.NTS 3.0.3模塊實(shí)現(xiàn)了空間檢索和文本檢索的功能.目前,本系統(tǒng)僅僅開放了WMS服務(wù)檢索功能(http://www.globeland30.org/chinese/lcseek/index.aspx).該子系統(tǒng)可以設(shè)置檢索方式、操作算子和用戶請求范圍.
①檢索方式:其主要包括關(guān)鍵詞檢索模式、圖形檢索模式和混合檢索模式,其中,關(guān)鍵詞檢索模式是指根據(jù)查詢詞語與服務(wù)元數(shù)據(jù)中的關(guān)鍵詞的匹配與否返回服務(wù);圖形檢索模式是根據(jù)用戶選定的范圍與服務(wù)包含的地理范圍的匹配與否返回服務(wù).
②操作算子:指在圖形檢索時返回被用戶指定的空間范圍所包含的地理信息Web服務(wù);操作算子包括包含、相交和被包含3種.相交指在圖形檢索時返回與用戶指定的空間范圍所相交的服務(wù);被包含是指在圖形檢索時返回包含用戶指定空間范圍的服務(wù).
③用戶請求范圍:其可以通過面板直接輸入,也可以通過工具在地圖上直接框選.
其檢索結(jié)果界面如圖3所示(以"GAP land cover"為關(guān)鍵詞,框選美國某州附近的一個空間范圍,采用混合檢索模式檢索),主要是采用文本列表展示返回服務(wù)的元數(shù)據(jù),地圖模塊顯示的是檢索的范圍.每條檢索結(jié)果下面都包含3個操作:"GetCapabilities"用以瀏覽服務(wù)的能力文檔;"GetMap"是根據(jù)用戶請求范圍請求該服務(wù)中第一個圖層對應(yīng)的地圖圖片,相當(dāng)于提交了WMS服務(wù)的GetMap操作;"AddToLayer"用以將該服務(wù)集成到地圖面板上,使用戶可以預(yù)覽該服務(wù).
圖3 地理信息Web服務(wù)檢索子系統(tǒng)的檢索結(jié)果界面Fig.3 Resulting interface of the geospatial Web service retrieval subsystem
本文對顧及深層網(wǎng)絡(luò)的地理信息Web服務(wù)搜索系統(tǒng)的設(shè)計與實(shí)現(xiàn)進(jìn)行了詳細(xì)探討與研究,并闡述了基于二級匹配的深層網(wǎng)絡(luò)地理信息Web服務(wù)采集方法和顧及用戶請求范圍的地理信息Web服務(wù)檢索方法等關(guān)鍵技術(shù).相對傳統(tǒng)服務(wù)搜索系統(tǒng)而言,該搜索系統(tǒng)可同時搜索位于表層網(wǎng)絡(luò)和部分深層網(wǎng)絡(luò)的地理信息Web服務(wù),能為全球地理信息協(xié)作服務(wù)平臺提供更為廣泛的數(shù)據(jù)基礎(chǔ).下一步工作將集中在OGC多類型服務(wù)集成、面向未知查詢接口的深層服務(wù)采集和服務(wù)質(zhì)量監(jiān)測等方面.