OGC WMS規(guī)范定義了三個接口,分別是GetCapabilities、GetMap和GetFeatureInfo。其中前兩個接口是必須實(shí)現(xiàn)的。GetCapabilities接口用來獲取服務(wù)器元數(shù)據(jù),它是計算機(jī)和人都可以理解的、關(guān)于WMS的信息內(nèi)容和可以接受的請求參數(shù)的描述。當(dāng)向一個WMS服務(wù)器發(fā)送GetCapabilities請求時,返回服務(wù)級元數(shù)據(jù)的XML文檔,是對服務(wù)信息內(nèi)容和可接受請求參數(shù)的一種描述。這些文檔是根據(jù)Web地圖服務(wù)規(guī)范所規(guī)定的DTD的格式編寫的,同時,文檔中各圖層都是以相同的方式進(jìn)行描述的。這樣,我們就可以對服務(wù)器返回的信息做統(tǒng)一的處理。
基于上述分析,在理論上,我們可以讓一個高效的網(wǎng)絡(luò)蜘蛛程序?qū)ヂ?lián)網(wǎng)中所有的URL發(fā)送GetCapabilities請求。通過對響應(yīng)信息的分析來判斷對方是否是符合OGC WMS規(guī)范的網(wǎng)絡(luò)地圖服務(wù)器。這樣,我們就可以提取出整個互聯(lián)網(wǎng)中幾乎所有的WMS服務(wù)器信息。Web地圖服務(wù)搜索引擎主要有如下兩個步驟:
(1)從互聯(lián)網(wǎng)上發(fā)現(xiàn)、搜集有用URL信息,利用高性能的Spider程序去自動地在互聯(lián)網(wǎng)中搜索信息。“網(wǎng)絡(luò)蜘蛛”工作的方式,是查看一個頁面,并從中提取出相關(guān)URL詳細(xì),然后它再從該頁面的所有URL中出發(fā),爬行到相關(guān)頁面,重復(fù)這過程,直到把爬過的所有URL信息都收集回來。
(2)對收集回來的所有URL地址都發(fā)送一個符合GetCapabilities規(guī)范的HTTP請求,收集所有的請求響應(yīng)文檔。對響應(yīng)文檔進(jìn)行解析,再以結(jié)構(gòu)化的形式將其存儲到本地數(shù)據(jù)庫中供用戶檢索。
上面簡述了Web地圖服務(wù)搜索引擎的工作原理,從這里不難看出Web地圖服務(wù)搜索引擎的基本構(gòu)成是URL搜索器(Web Spider)、WMS響應(yīng)文檔解析與存儲器和用于結(jié)構(gòu)化存儲WMS服務(wù)器元數(shù)據(jù)信息的Capabilities數(shù)據(jù)庫。Web地圖服務(wù)搜索引擎體系結(jié)構(gòu)如圖3-1所示。
圖3-1 Web地圖服務(wù)搜索引擎體系結(jié)構(gòu)圖
URL搜索器主要負(fù)責(zé)從互聯(lián)網(wǎng)中搜索到所有可以搜索到的URL鏈接地址,并將其儲存到臨時數(shù)據(jù)庫中。URL搜索器主要以一個網(wǎng)絡(luò)蜘蛛為基礎(chǔ),周期性的對整個互聯(lián)網(wǎng)進(jìn)行全面的爬行。
WMS響應(yīng)文檔解析與存儲器主要負(fù)責(zé)對臨時數(shù)據(jù)庫中的URL發(fā)送符合GetCapabilities規(guī)范的HTTP請求,判斷出有效的WMS鏈接,再對WMS響應(yīng)文檔進(jìn)行解析,并提取出相關(guān)的信息存儲于Capabilities數(shù)據(jù)庫中。
Capabilities數(shù)據(jù)庫負(fù)責(zé)以結(jié)構(gòu)化的形式儲存和管理WMS原數(shù)據(jù)信息。
WEB地圖服務(wù)搜索引擎的主要工作流程是:首先從網(wǎng)絡(luò)蜘蛛開始,Spider程序每隔一定的時間自動啟動并讀取網(wǎng)頁URL服務(wù)器上的URL列表,抓取各URL所指定的網(wǎng)頁,解析出該網(wǎng)頁中的URL地址,并將當(dāng)前頁上的所有超鏈接存入到URL服務(wù)器中。在進(jìn)行網(wǎng)頁抓取的同時,對當(dāng)前URL地址發(fā)送GetCapabilities請求,再由WMS響應(yīng)文檔解析儲存器對響應(yīng)文檔進(jìn)行解析然后將解析結(jié)構(gòu)以結(jié)構(gòu)化的形式存入數(shù)據(jù)庫。(李軒)
{{item.content}}