劉文兵,胡婷婷,江 帆,王 俊
(1.軍事經(jīng)濟學(xué)院,湖北 武漢 430035)
基于Web Services的異構(gòu)數(shù)字地圖資源檢索算法
劉文兵1,胡婷婷1,江 帆1,王 俊1
(1.軍事經(jīng)濟學(xué)院,湖北 武漢 430035)
從數(shù)字地圖資源互聯(lián)互檢的現(xiàn)狀出發(fā),研究了傳統(tǒng)異構(gòu)數(shù)據(jù)源統(tǒng)一檢索的3種模式,提出了基于Web Services的數(shù)字地圖資源檢索模式,設(shè)計了基于Web Services的數(shù)字地圖資源統(tǒng)一檢索結(jié)果融合算法和元數(shù)據(jù)更新算法,完成了一個基于Web Services的數(shù)字地圖資源檢索原型系統(tǒng),對數(shù)字地圖資源統(tǒng)一檢索系統(tǒng)的開發(fā)具有借鑒意義。
數(shù)據(jù)源;Web Services;數(shù)字地圖資源檢索;結(jié)果融合算法;元數(shù)據(jù)更新算法
網(wǎng)絡(luò)環(huán)境下,數(shù)字地圖資源迅猛增長,針對這些數(shù)字地圖資源而出現(xiàn)的具有地圖檢索功能的地圖數(shù)據(jù)庫管理系統(tǒng)也越來越多,但這些地圖數(shù)據(jù)庫管理系統(tǒng)本身各自獨立,導(dǎo)致各個數(shù)據(jù)庫管理系統(tǒng)之間缺乏必要的聯(lián)系,造成了“信息孤島”現(xiàn)象[1],這使得用戶進行地圖檢索時需要耗費很大的時間和精力,而且查準率和查全率不高。異構(gòu)數(shù)據(jù)源統(tǒng)一檢索系統(tǒng)在一定程度上解決了分布式異構(gòu)數(shù)據(jù)源的檢索問題,它能集成各個地圖數(shù)據(jù)庫管理系統(tǒng)的檢索功能,為用戶提供統(tǒng)一的地圖檢索界面,將用戶的地圖檢索請求發(fā)送給各地圖數(shù)據(jù)庫管理系統(tǒng),分別調(diào)用各自的地圖檢索功能,并把各系統(tǒng)的地圖檢索結(jié)果以統(tǒng)一的格式展現(xiàn)給用戶。異構(gòu)數(shù)據(jù)源統(tǒng)一檢索系統(tǒng)不需要用戶頻繁地登錄所有的地圖數(shù)據(jù)庫管理系統(tǒng),從而節(jié)省了大量的時間和精力,有效地提高了地圖查詢效率。
Web Services技術(shù)以其開放性、封裝性、松散耦合、使用標準協(xié)議規(guī)范和高度可集成能力等特點為網(wǎng)絡(luò)上空間元數(shù)據(jù)庫的互聯(lián)互檢問題提供了一種可行的解決方案。雖然Web Services技術(shù)大多應(yīng)用于解決數(shù)字圖書館領(lǐng)域的數(shù)字對象元數(shù)據(jù)的互聯(lián)互檢問題,應(yīng)用于地理信息領(lǐng)域的成功經(jīng)驗不多,但數(shù)字地圖也是一種數(shù)字對象,與數(shù)字圖書在一定程度上有其相似性。因此,借鑒Web Services技術(shù)在數(shù)字圖書元數(shù)據(jù)互操作領(lǐng)域中的成功經(jīng)驗,將此技術(shù)應(yīng)用到空間元數(shù)據(jù)的互操作中,可以為實現(xiàn)空間元數(shù)據(jù)的發(fā)布、共享與互操作提供一種新的解決辦法。
目前異構(gòu)數(shù)據(jù)源統(tǒng)一檢索模式主要包括中間件模式、元數(shù)據(jù)整合模式和網(wǎng)頁搜索代理模式3種[2]。
1.1 中間件模式分析
中間件模式首先運用中間件技術(shù)將用戶的檢索請求分解為各個數(shù)據(jù)源的獨立檢索請求[3],通過標準的檢索接口對各數(shù)據(jù)源進行實時訪問,再將檢索結(jié)果統(tǒng)一處理后通過異構(gòu)數(shù)據(jù)源統(tǒng)一檢索系統(tǒng)返回給用戶。該模式具有實時性好等特點,用戶能夠檢索到數(shù)據(jù)源最新的數(shù)據(jù);用戶的數(shù)據(jù)檢索是直接通過中間件實施的,因此數(shù)據(jù)源不需要向用戶發(fā)布專門的服務(wù)。但各數(shù)據(jù)源終端必須提供標準的檢索接口,且由于各數(shù)據(jù)源的檢索速度不同從而影響用戶的檢索效率;另外各數(shù)據(jù)源檢索結(jié)果的整合技術(shù)和中間件開發(fā)技術(shù)需要合理規(guī)劃。因此,中間件模式適用于有標準數(shù)據(jù)訪問接口的異構(gòu)數(shù)據(jù)源。
1.2 元數(shù)據(jù)整合模式分析
元數(shù)據(jù)整合模式在當前異構(gòu)數(shù)據(jù)源統(tǒng)一檢索系統(tǒng)中應(yīng)用較多。按一定的標準對各數(shù)據(jù)源進行標引后,組成一個通常用數(shù)據(jù)庫存儲的元數(shù)據(jù)集,再通過一個發(fā)布系統(tǒng)與客戶端進行通信。使用該模型集成的異構(gòu)數(shù)據(jù)源檢索系統(tǒng)查詢得到的信息是對各數(shù)據(jù)源的元數(shù)據(jù)描述信息。用戶通過一個特定的連接直接從各數(shù)據(jù)源得到檢索信息。該模式的特點是檢索方式和速度不受原始數(shù)據(jù)源的影響,元數(shù)據(jù)檢索和數(shù)據(jù)獲取通過各自獨立的服務(wù),但是元數(shù)據(jù)和各數(shù)據(jù)源之間的同步性較差,而且該模式的標引和組織元數(shù)據(jù)會耗費較多的資源。因此,元數(shù)據(jù)整合模式適合于不經(jīng)常變動的數(shù)據(jù)源或者元數(shù)據(jù)一致性協(xié)同性較高的數(shù)據(jù)源。
1.3 網(wǎng)頁搜索代理模式分析
網(wǎng)頁搜索代理模式的應(yīng)用前提是各數(shù)據(jù)源都應(yīng)具有Web發(fā)布和信息檢索功能,但是這些數(shù)據(jù)源一般僅提供較少的元數(shù)據(jù)信息,且很少提供標準的檢索接口。該模式是通過分布式網(wǎng)頁搜索代理模擬用戶發(fā)送請求至各數(shù)據(jù)源的網(wǎng)站上獲取元數(shù)據(jù)信息,對獲取的所有元數(shù)據(jù)信息進行整合處理后返回給用戶。該模式的特點是對于許多網(wǎng)上資源都可以進行高粒度的、實時的檢索,因此很大程度上提高了用戶的查準率;但為了獲取更多的元數(shù)據(jù)信息,設(shè)計時必須詳細地分析各數(shù)據(jù)源的Web結(jié)構(gòu)層次和數(shù)據(jù)組織方式,而且為了達到各數(shù)據(jù)源的交互要求需要對不同的檢索請求進行轉(zhuǎn)換,另外還要制定統(tǒng)一的元數(shù)據(jù)標準、數(shù)據(jù)整合機制和發(fā)布結(jié)果機制等。
通過上節(jié)中對傳統(tǒng)異構(gòu)數(shù)據(jù)源統(tǒng)一檢索的3種模式的介紹可以看出,這3種模式中的任何一種模式應(yīng)用于數(shù)字地圖資源發(fā)布與檢索系統(tǒng)中都會出現(xiàn)各種各樣的問題,如元數(shù)據(jù)標準、檢索接口標準、數(shù)據(jù)整合以及可維護性差等問題,因此這3種模式不能完全有效地解決數(shù)字地圖資源發(fā)布與檢索系統(tǒng)的平臺異構(gòu)、數(shù)據(jù)異構(gòu)、協(xié)議異構(gòu)和數(shù)據(jù)整合等關(guān)鍵問題,從而不能滿足用戶的需求。
通過對傳統(tǒng)異構(gòu)數(shù)據(jù)源統(tǒng)一檢索模式的分析,基于Web Services的數(shù)字地圖資源發(fā)布與檢索系統(tǒng)將采用中間件模式和元數(shù)據(jù)整合模式相結(jié)合的模式,即地圖檢索服務(wù)和本地元數(shù)據(jù)庫檢索相結(jié)合的模式,其中地圖檢索服務(wù)是中間件模式中的一種方法,而本地空間元數(shù)據(jù)庫檢索是元數(shù)據(jù)整合模式的一種方法。該模式的檢索原理是:用戶輸入關(guān)鍵詞進行地圖檢索時,首先查詢系統(tǒng)的本地空間元數(shù)據(jù)庫,如果空間元數(shù)據(jù)庫中存在此關(guān)鍵詞,則直接使用本地空間元數(shù)據(jù)庫檢索進行地圖檢索,否則就使用地圖檢索服務(wù)進行地圖檢索,并把檢索結(jié)果存入系統(tǒng)的本地空間元數(shù)據(jù)庫中。通過這種地圖檢索服務(wù)和本地空間元數(shù)據(jù)庫檢索相結(jié)合的方式,系統(tǒng)的空間元數(shù)據(jù)庫會被不斷地充實,因此系統(tǒng)的檢索次數(shù)越多,空間元數(shù)據(jù)庫也越來越完善。這樣就有效地解決了元數(shù)據(jù)整合模式下各數(shù)據(jù)源元數(shù)據(jù)一致性差的問題。當元數(shù)據(jù)庫中存在該關(guān)鍵詞時,系統(tǒng)使用的是本地空間元數(shù)據(jù)庫進行地圖檢索,這樣也避免了中間件模式的缺陷。因此,采用地圖檢索服務(wù)和本地空間元數(shù)據(jù)庫檢索相結(jié)合的模式避免了這二種模式的缺點,同時集成了二種模式的優(yōu)點,有效地提高了地圖檢索的效率,充實了系統(tǒng)的空間元數(shù)據(jù)庫,擴寬了系統(tǒng)的適用范圍,使系統(tǒng)具備較好的一致性、實時性和協(xié)同性等優(yōu)點。
因為數(shù)字地圖資源統(tǒng)一檢索是數(shù)字地圖資源發(fā)布與檢索系統(tǒng)的主要功能,所以數(shù)字地圖資源統(tǒng)一檢索算法是論文研究的核心算法。
數(shù)字地圖資源統(tǒng)一檢索算法貫穿了從用戶發(fā)送檢索請求到展示檢索結(jié)果的整個過程。用戶輸入檢索關(guān)鍵字并發(fā)送檢索請求后,系統(tǒng)把該請求發(fā)送給數(shù)字地圖資源發(fā)布與檢索系統(tǒng)的本地數(shù)據(jù)源,然后數(shù)字地圖資源發(fā)布與檢索系統(tǒng)本地數(shù)據(jù)源判斷數(shù)據(jù)庫中是否存在用戶請求的檢索服務(wù)和空間元數(shù)據(jù)庫中是否存在用戶輸入的檢索關(guān)鍵字,再根據(jù)不同的判斷結(jié)果執(zhí)行不同的操作。該判斷有4種不同的結(jié)果:
1)數(shù)據(jù)庫中存在該檢索服務(wù)且空間元數(shù)據(jù)庫中存在該檢索關(guān)鍵字,這種情況直接返回數(shù)字地圖資源檢索本地數(shù)據(jù)源的空間元數(shù)據(jù)庫中相應(yīng)的元數(shù)據(jù)即可。
2)數(shù)據(jù)庫中不存在該檢索服務(wù)且空間元數(shù)據(jù)庫中存在該檢索關(guān)鍵字,這種情況跟第一種情況的執(zhí)行結(jié)果一樣。
3)數(shù)據(jù)庫中存在該檢索服務(wù)且空間元數(shù)據(jù)庫中不存在該檢索關(guān)鍵字,這種情況直接調(diào)用數(shù)字地圖資源檢索本地數(shù)據(jù)源的檢索服務(wù)即可。
4)數(shù)據(jù)庫中不存在該檢索服務(wù)且空間元數(shù)據(jù)庫中不存在該檢索關(guān)鍵字,這種情況得調(diào)用各個數(shù)字地圖資源的檢索服務(wù)才能實現(xiàn)。系統(tǒng)首先按照數(shù)字地圖資源發(fā)布與檢索協(xié)議的規(guī)定對該請求進行處理,然后把處理過的請求轉(zhuǎn)發(fā)給各數(shù)字地圖資源,再統(tǒng)一調(diào)用各自的檢索服務(wù),各自返回由數(shù)字地圖資源發(fā)布與檢索協(xié)議規(guī)定格式的檢索結(jié)果,最后對所有檢索結(jié)果進行融合,并按數(shù)字地圖資源發(fā)布與檢索平臺要求的格式返回給數(shù)字地圖資源發(fā)布與檢索平臺。統(tǒng)一檢索算法流程圖的具體設(shè)計如圖1所示。
圖1 數(shù)字地圖資源統(tǒng)一檢索算法流程圖
3.1 數(shù)字地圖資源統(tǒng)一檢索結(jié)果融合算法研究
從基于Web Services的數(shù)字地圖資源發(fā)布與檢索系統(tǒng)的工作流程可以看出,數(shù)字地圖資源統(tǒng)一檢索結(jié)果融合[4]是該系統(tǒng)的重要組成部分,主要包括地圖資源檢索結(jié)果格式驗證、地圖資源檢索結(jié)果合并、地圖資源檢索結(jié)果去重、地圖資源檢索結(jié)果格式轉(zhuǎn)換和地圖資源檢索結(jié)果排序5項內(nèi)容,本節(jié)將對它們的算法分別進行詳細的描述。
3.1.1 地圖資源檢索結(jié)果格式驗證
由于調(diào)用檢索服務(wù)返回的檢索結(jié)果是XML格式的字符串,地圖資源檢索結(jié)果的格式驗證可以通過XML Schema來完成,從而將對檢索結(jié)果的格式驗證轉(zhuǎn)化為對一個XML文檔的驗證,而驗證的條件都定義在一個XML Schema文檔中。
由于數(shù)字地圖資源統(tǒng)一檢索服務(wù)模型調(diào)用檢索服務(wù)返回的檢索結(jié)果是XML類型的字符串,而XML格式的字符串的格式驗證可以通過XML Schema來完成,因此對檢索結(jié)果的格式驗證就是使用XML Schema對一個個檢索結(jié)果的XML文檔的格式驗證。檢索結(jié)果格式驗證的流程為:①獲取XML Schema文檔的位置schemaUrl。②使用XML Schema文檔驗證resultXml文檔的格式是否有效。③若有效,將檢索結(jié)果字符串tempResultXml、檢索關(guān)鍵詞、檢索服務(wù)名全部封裝到檢索結(jié)果對象queryResultWrapper中,并將queryResultWrapper添加到檢索結(jié)果對象列表resultsWrapperList中即可;若無效,返回結(jié)果驗證無效。
3.1.2 地圖資源檢索結(jié)果合并
地圖資源檢索結(jié)果合并是將所有數(shù)字地圖資源返回的并通過驗證的檢索結(jié)果按照統(tǒng)一的格式封裝到一個XML文檔中,這樣不僅完成了檢索結(jié)果的統(tǒng)一合并,而且便于后續(xù)的結(jié)果去重和格式轉(zhuǎn)換。地圖資源檢索結(jié)果合并算法流程如圖2所示。
3.1.3 地圖資源檢索結(jié)果去重
對于數(shù)字地圖資源發(fā)布與檢索系統(tǒng)而言,由于各個數(shù)字地圖資源的數(shù)據(jù)庫都是彼此獨立的數(shù)據(jù)源,它們的元數(shù)據(jù)庫的構(gòu)建也是完全獨立的,所以當從各數(shù)字地圖資源中返回查詢結(jié)果時,這些結(jié)果不可避免地包含有大量的重復(fù)記錄,為了除去這些重復(fù)記錄,論文設(shè)計了相應(yīng)的去重算法。論文采用XSLT技術(shù)進行檢索結(jié)果去重操作,XSLT文檔中定義了去重的條件和去重后XML文檔中的元素和元素順序。如果不同數(shù)字地圖資源返回相同的檢索記錄,去掉級別低的數(shù)字地圖資源的重復(fù)記錄,保留級別最高的數(shù)字地圖資源的檢索記錄。地圖資源檢索結(jié)果去重算法的流程為:①根據(jù)xslUrl的條件對resultXML進行去重處理。②構(gòu)建去重之后的檢索結(jié)果XML對象resultUltimaXML。③把去重處理之后的XML文檔保存到resultUltimaXML對象中。④返回去重后的檢索結(jié)果XML文檔resultUltimaXML。
圖2 地圖資源檢索結(jié)果合并算法流程圖
3.1.4 地圖資源檢索結(jié)果格式轉(zhuǎn)換
地圖資源檢索結(jié)果格式轉(zhuǎn)換是將去重后的檢索結(jié)果轉(zhuǎn)換為集合列表的形式,便于后續(xù)的排序和頁面綁定工作。地圖資源檢索結(jié)果格式轉(zhuǎn)換算法流程如圖3所示。
3.1.5 地圖資源檢索結(jié)果排序
當?shù)貓D資源檢索結(jié)果進行格式轉(zhuǎn)換后,檢索結(jié)果就變成了集合列表的形式,因此對地圖資源檢索結(jié)果的排序就相當于對集合列表中的對象排序。系統(tǒng)檢索結(jié)果排序默認的是按照地圖資源優(yōu)先級別從高到低的順序進行排列的,以便用戶首先查閱的是可信度較高的地圖資源,用戶也可以選擇其他的方式進行排序。地圖資源檢索結(jié)果排序算法流程為: ①構(gòu)建比較器對象CompareObject。②調(diào)用Sort(itemlist,CompareObject)函數(shù),根據(jù)比較器對象 CompareObject的條件對MapRecordList列表中的mapRecord進行排序。③返回經(jīng)過排序后的地圖檢索結(jié)果列表MapRecordList。
圖3 地圖資源檢索結(jié)果格式轉(zhuǎn)換算法流程圖
3.2 空間元數(shù)據(jù)更新算法研究
系統(tǒng)進行本地空間元數(shù)據(jù)更新操作時,模擬地圖檢索請求,調(diào)用各數(shù)字地圖資源的Web服務(wù)檢索和本地空間元數(shù)據(jù)庫檢索,將二者返回的檢索結(jié)果進行比較,保留本地元數(shù)據(jù)庫中檢索結(jié)果與調(diào)用各數(shù)字地圖資源的Web服務(wù)檢索相同的部分,再刪除本地元數(shù)據(jù)庫中檢索結(jié)果與調(diào)用各數(shù)字地圖資源的Web服務(wù)檢索不同的部分,最后將調(diào)用各數(shù)字地圖資源的Web服務(wù)檢索結(jié)果中與數(shù)字地圖資源發(fā)布與檢索系統(tǒng)本地數(shù)據(jù)源的空間元數(shù)據(jù)庫檢索結(jié)果不同的部分添加到本地空間元數(shù)據(jù)庫。本地空間元數(shù)據(jù)更新算法流程為:①構(gòu)建檢索關(guān)鍵詞對象SearchWord和檢索服務(wù)對象MapQuery,并給它們賦相應(yīng)的值。②調(diào)用各數(shù)字地圖資源的Web檢索服務(wù),并把結(jié)果保存到WebServicesResultList中。③調(diào)用本地空間元數(shù)據(jù)庫檢索服務(wù),并把結(jié)果保存到LocaleResultList中。④保留本地空間元數(shù)據(jù)庫中LocaleResultList與WebServicesResultList相同的部分。⑤刪除本地空間元數(shù)據(jù)庫中LocaleResultList與WebServicesResultList不同的部分。⑥將WebServicesResultList中與LocaleResultList不同的部分添加到本地空間元數(shù)據(jù)庫中。
4.1 系統(tǒng)功能模塊設(shè)計
根據(jù)前面的研究,按照功能的不同,基于Web Services的數(shù)字地圖資源檢索系統(tǒng)可以分為四大功能模塊,分別是用戶管理模塊、元數(shù)據(jù)管理模塊、數(shù)字地圖資源檢索服務(wù)模塊和數(shù)字地圖共享服務(wù)模塊。其中用戶管理模塊、元數(shù)據(jù)管理模塊、數(shù)字地圖資源檢索服務(wù)模塊是論文研究的重點,而數(shù)字地圖共享服務(wù)模塊是論文的后續(xù)工作,故在論文中對此不做重點研究。系統(tǒng)功能模塊圖如圖4所示。
4.2 基于Web Services的數(shù)字地圖資源統(tǒng)一檢索系統(tǒng)
數(shù)字地圖資源統(tǒng)一系統(tǒng)界面如圖5所示,用戶選擇檢索條件,如地圖編碼、地圖名稱比例尺、語種、地圖類型、地圖制作者、地圖出版單位、坐標系、投影、地理區(qū)域描述、地理邊界矩形、資源格式、涉密等級和制作日期等,再輸入檢索關(guān)鍵字,點擊查詢按鈕就可以從所有數(shù)字地圖資源中快速檢索出用戶所查詢的所有地圖元數(shù)據(jù)信息。
圖4 基于Web Services的數(shù)字地圖資源檢索系統(tǒng)功能模塊構(gòu)成
圖5 數(shù)字地圖資源統(tǒng)一檢索界面
檢索結(jié)果界面如圖6所示。用戶可以事先設(shè)置檢索結(jié)果中需要顯示元數(shù)據(jù)的那些項,還可以單擊某一條結(jié)果記錄顯示該條元數(shù)據(jù)的詳細信息。
圖6 檢索結(jié)果界面
隨著網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展與信息化建設(shè)的推動,電子地圖應(yīng)用與互動要求不斷深入,越來越多的用戶希望通過網(wǎng)絡(luò)獲得便捷的電子地圖服務(wù)。論文研究的異構(gòu)數(shù)字地圖資源檢索技術(shù)能提供給用戶自動發(fā)現(xiàn)和主動服務(wù)的功能;提出的基于Web Services的數(shù)字地圖資源統(tǒng)一檢索模式,不僅解決了傳統(tǒng)異構(gòu)數(shù)據(jù)源檢索模式的缺陷,又集成了地圖檢索服務(wù)和本地空間元數(shù)據(jù)庫檢索二種模式的優(yōu)點;設(shè)計的數(shù)字地圖資源檢索結(jié)果融合算法和元數(shù)據(jù)更新算法提高了數(shù)字地圖資源的檢索效率,實現(xiàn)了數(shù)字地圖資源的極大共享,擴大了數(shù)字地圖資源的使用人群,促進了數(shù)字地圖的網(wǎng)絡(luò)化、信息化、商業(yè)化和社會化的發(fā)展。
[1] 葉鵬.基于Web Services的異構(gòu)數(shù)據(jù)源共享研究[J].科技信息,2010(1):339-341
[2] 李朝奎,吳柏燕,高振記.基于中間件技術(shù)的異構(gòu)數(shù)據(jù)庫集成設(shè)計與實現(xiàn)[J].測繪工程,2012,21(5):5-7
[3] 鐘凱.基于網(wǎng)格的地理空間數(shù)據(jù)庫訪問和操作中間件研究[D].長沙:國防科學(xué)技術(shù)大學(xué),2009
[4] 王秀紅,鞠時光.基于混合核函數(shù)的分布式信息檢索結(jié)果融合[J].通信學(xué)報,2011,32(4):112-118
[5] 劉曉強.基于Web Services的異構(gòu)數(shù)據(jù)集成系統(tǒng)的應(yīng)用研究[D].廈門:廈門大學(xué),2009
P208
B
1672-4623(2016)12-0061-05
10.3969/j.issn.1672-4623.2016.12.020
劉文兵,碩士研究生,研究方向為地理信息系統(tǒng)的應(yīng)用與開發(fā)。
2014-10-28。