項方月
(寧波市天一測繪設(shè)計研究有限公司,浙江 寧波 315000)
隨著計算機和網(wǎng)絡(luò)技術(shù)已經(jīng)成為人們生活中不可或缺的一部分,GIS的發(fā)展進(jìn)入了一個新時期,各個行業(yè)對地理空間數(shù)據(jù)及其處理功能的需求日益增長,要求地理信息能夠廣泛地被共享、交換和訪問,因此易于集成的地理信息服務(wù)應(yīng)運而生。地理信息服務(wù)是把地理空間數(shù)據(jù)和處理功能封裝為服務(wù)并發(fā)布在網(wǎng)絡(luò)上,通過網(wǎng)絡(luò)對地理信息進(jìn)行集成和共享,以數(shù)據(jù)服務(wù)和處理服務(wù)兩種形式,為用戶方便快捷地獲取各種空間數(shù)據(jù)及其處理功能[1]。地理信息服務(wù)將在地理國情監(jiān)測、全球地表覆蓋、智慧城市等熱點研究中發(fā)揮重要作用,完善和開發(fā)處理服務(wù)功能將成為今后的發(fā)展趨勢和研究熱點。
處理服務(wù)是在數(shù)據(jù)服務(wù)的基礎(chǔ)上,為了滿足客戶不同的需求,對本地數(shù)據(jù)或存放在網(wǎng)絡(luò)上的空間數(shù)據(jù)進(jìn)行處理操作,并為用戶提供面向應(yīng)用的增值服務(wù),比如坐標(biāo)轉(zhuǎn)換服務(wù)、柵格/矢量轉(zhuǎn)換服務(wù)、尺寸測量服務(wù)、路徑確定服務(wù)、地理編碼服務(wù)等[2]。處理服務(wù)過程中用戶并不直接對空間信息資源操作,它強調(diào)過程,主要為用戶提供計算、分析、處理空間信息資源等功能。當(dāng)用戶對同一數(shù)據(jù)有不同請求處理時,處理服務(wù)會針對用戶的請求從不同方面解讀該數(shù)據(jù),返回不同的處理結(jié)果。處理服務(wù)還遵循一定的通信機制,通過對空間數(shù)據(jù)建立計算和處理模型,既能夠為用戶提供通用的處理服務(wù),也能靈活地針對某項具體應(yīng)用提供特定處理服務(wù),真正實現(xiàn)了處理服務(wù)多粒度、功能多樣化這一特性,滿足了用戶的不同需求[3]。
處理服務(wù)實現(xiàn)的整個過程中,對空間數(shù)據(jù)的分析、處理等操作在服務(wù)器端實現(xiàn)??蛻舳嘶诰W(wǎng)絡(luò)通信協(xié)議向服務(wù)器端發(fā)送請求,服務(wù)器端使用本地數(shù)據(jù)或共享網(wǎng)絡(luò)數(shù)據(jù),提供處理算法及計算模型,執(zhí)行處理服務(wù),并將處理結(jié)果傳送給客戶端,具體實現(xiàn)過程如圖1所示。
服務(wù)客戶端主要有桌面GIS客戶端和WebGIS客戶端兩種,可以基于HTTP傳輸協(xié)議或SOAP協(xié)議實現(xiàn)與服務(wù)器端的交互操作,通過網(wǎng)絡(luò)向服務(wù)器端傳送請求并得到相應(yīng)返回結(jié)果;服務(wù)器端接收到用戶請求后,對地理空間數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換、投影轉(zhuǎn)換、坐標(biāo)轉(zhuǎn)換等一系列操作,并提供空間數(shù)據(jù)分析處理算法和計算模型,支持用戶實現(xiàn)最優(yōu)路徑分析、緩沖區(qū)分析、疊加分析等處理服務(wù)[4];空間數(shù)據(jù)資源則為服務(wù)端執(zhí)行處理服務(wù)提供了有效數(shù)據(jù)源,包括標(biāo)準(zhǔn)的矢量數(shù)據(jù)、柵格數(shù)據(jù)和地理信息數(shù)據(jù),存在于處理服務(wù)的整個生命周期中,是成功完成處理服務(wù)的必要基礎(chǔ)。
圖1 處理服務(wù)實現(xiàn)模式示意圖
1.3.1 OGC WPS的服務(wù)標(biāo)準(zhǔn)
網(wǎng)絡(luò)處理服務(wù)規(guī)范WPS(Web Processing Service)是OGC組織為所有地理處理服務(wù)提供的一個標(biāo)準(zhǔn)化協(xié)議,并指定了客戶端和服務(wù)器端實現(xiàn)的操作。它規(guī)定了處理服務(wù)的標(biāo)準(zhǔn)接口,并將處理功能模塊封裝為網(wǎng)絡(luò)服務(wù),包括輸入?yún)?shù)、輸出參數(shù)和觸發(fā)方式,客戶端基于XML文檔通信方式,通過網(wǎng)絡(luò)可以共享空間信息及其處理功能。通過這三個接口,基于XML傳輸協(xié)議,可以實現(xiàn)客戶端與服務(wù)器端的互操作,客戶端可以通過網(wǎng)絡(luò)調(diào)用與空間數(shù)據(jù)處理相關(guān)的GIS函數(shù)功能。
1.3.2 ArcGIS Server的Geoprocessing Service
ESRI公司生產(chǎn)的ArcGIS Server軟件中Geoprocessing Service地理處理服務(wù)是將位于ArcGIS Server服務(wù)器端的地理數(shù)據(jù)處理模型或者包含一個處理模型工具圖層的地圖文檔發(fā)布為服務(wù)[5]。它是一種地理數(shù)據(jù)處理工具,客戶端通過網(wǎng)絡(luò)向服務(wù)器端發(fā)送請求,服務(wù)器端提供了分析、計算模型,執(zhí)行空間分析和建模等功能,并將處理結(jié)果返回給客戶端,促進(jìn)GIS功能從桌面向網(wǎng)絡(luò)方向發(fā)展[6]。
1.3.3 其它基于通用Web Service的處理服務(wù)
除了以上提到的基于OGC WPS服務(wù)標(biāo)準(zhǔn)的處理服務(wù)和ArcGIS Server軟件中Geoprocessing Service地理處理服務(wù)外,還有一些基于通用Web Service的處理服務(wù)[7],比如企業(yè)服務(wù)總線ESB(Enterprise Service Bus)。企業(yè)服務(wù)總線ESB是一種基于面向服務(wù)架構(gòu)SOA的處理服務(wù)技術(shù),它是在分布式環(huán)境下,接受相關(guān)事件及消息的引導(dǎo),并根據(jù)其內(nèi)容進(jìn)行篩選,能夠傳送各種各樣的復(fù)雜數(shù)據(jù),還提供了一系列標(biāo)準(zhǔn)化接口,具有松耦合、易組合、可擴展、互操作等特點,有利于實現(xiàn)企業(yè)不同部門、不同業(yè)務(wù)單元、不同合作伙伴之間的應(yīng)用集成[8]。
本文首先對處理服務(wù)的定義及原理進(jìn)行研究。其次,利用Visual Studio .NET開發(fā)平臺研究GIS算法封裝、服務(wù)流程編排及服務(wù)接口實現(xiàn)等內(nèi)容,關(guān)鍵是將處理功能封裝為Web服務(wù)及服務(wù)接口的實現(xiàn)??蛻舳讼蚍?wù)器端發(fā)送請求,服務(wù)器端接收并分析用戶請求,以XML文檔的形式返回處理結(jié)果,完成了客戶端與服務(wù)器端的互操作,幫助用戶根據(jù)需要調(diào)用相關(guān)處理服務(wù)。最后,結(jié)合全球地表覆蓋動態(tài)信息服務(wù)系統(tǒng)中變化檢測服務(wù)實現(xiàn)了將處理功能封裝為.asmx服務(wù)、基于JavaScript進(jìn)行流程編排和服務(wù)調(diào)用等功能。技術(shù)路線圖如圖2所示。
圖2 處理服務(wù)構(gòu)建的技術(shù)路線示意圖
基于.NET平臺構(gòu)建處理服務(wù),為了提高Web處理服務(wù)中空間分析、空間處理等算法的可擴展性,建立算法注冊中心,開發(fā)人員可以將與處理功能有關(guān)的GIS算法封裝成為組件,通過在算法注冊中心注冊存放在算法庫內(nèi),便于GIS算法的查詢、集成和共享[8]。
構(gòu)建算法注冊中心的目的是維護(hù)算法類的元數(shù)據(jù)信息,這主要包括每個GIS算法的標(biāo)識符、實現(xiàn)類的Qualified Name,算法的輸入、輸出參數(shù)等。為了能夠把所有GIS算法成功注冊到注冊中心,可以在服務(wù)初始化時將已有的算法模塊動態(tài)地加載到注冊列表中。接著,算法注冊中心將注冊列表中已注冊的算法類中定義的Annotation注釋信息提取出來,方便用戶搜索和使用GIS算法,實現(xiàn)處理功能的實時有效調(diào)用,如圖3所示。
處理服務(wù)流程編排是通過流程驅(qū)動方式對有關(guān)Web服務(wù)組件進(jìn)行組合和編排,以形成服務(wù)流程。
圖3 GIS算法封裝與注冊示意圖
由于Web服務(wù)具有松散耦合、分布式異構(gòu)環(huán)境下易集成的特點,它要求服務(wù)流程編排應(yīng)該滿足靈活、敏捷、可視化、個性化定制等特性[10]。
處理服務(wù)流程編排實現(xiàn)過程中,分為前臺部分和后臺部分。前臺是優(yōu)化服務(wù)流程編排需求,包括流程的設(shè)計、替換、修改、保存等操作;后臺是利用前臺生成的XML文件對流程進(jìn)行部署。用戶在前臺選擇新建流程后,首先,根據(jù)自己的需要進(jìn)行流程設(shè)計,并根據(jù)實際情況判斷是否需要對生成的XML文件進(jìn)行調(diào)整和修改。然后,將符合要求的XML文件保存在后臺中,并且將此流程部署在數(shù)據(jù)庫中,便于外部系統(tǒng)以服務(wù)的形式調(diào)用該流程。由于外部系統(tǒng)發(fā)送的參數(shù)與本地參數(shù)存在差異,后臺會專門定義一個解析外部字符流的類來識別外部系統(tǒng)傳送過來的參數(shù),包括服務(wù)名稱、服務(wù)數(shù)據(jù)等內(nèi)容,最終完成該流程的順利執(zhí)行。處理服務(wù)流程編排的具體實現(xiàn)過程如圖4所示。
圖4 服務(wù)流程編排總體結(jié)構(gòu)示意圖
處理服務(wù)接口是一組方法的邏輯組合,定義了外部可以調(diào)用的處理功能及其訪問方式,可作為客戶端調(diào)用Web處理服務(wù)的媒介。在設(shè)計處理服務(wù)接口時,接口描述文檔應(yīng)該對接口的名字、參數(shù)、返回值等內(nèi)容進(jìn)行詳細(xì)說明。其中,接口命名的方法尤其重要,它能幫助使用者快速了解該接口的用途。在定義接口參數(shù)時,參數(shù)要盡量簡單,不增加客戶端和服務(wù)器端的耦合性,仍舊保持松耦合、易集成的特性。當(dāng)接口設(shè)計完成后,要能夠方便地對接口參數(shù)和返回值進(jìn)行測試,保證返回值形式簡潔且與語言無關(guān)。若測試過程中出現(xiàn)異常,就需要提高XML文檔的靈活性,保證它不管是在正常情況還是異常情況下都能應(yīng)對自如。處理服務(wù)接口的實現(xiàn)過程如圖5所示。
處理服務(wù)接口的實現(xiàn)需要通過Web Service描述語言WSDL(Web Service Description Language)對接口信息進(jìn)行說明,它基于XML語法描述Web服務(wù),說明了服務(wù)所提供的操作方法、訪問協(xié)議、數(shù)據(jù)格式及服務(wù)的網(wǎng)絡(luò)地址等內(nèi)容。
圖5 處理流程服務(wù)接口實現(xiàn)示意圖
全球地表覆蓋動態(tài)信息服務(wù)原型系統(tǒng)主要包括服務(wù)集成(Service Intergration)、服務(wù)搜索(Service Searching)、服務(wù)計算(Service Compution)和變化標(biāo)報(Making and Reporting)四個部分。本文主要研究實現(xiàn)服務(wù)計算部分,該部分實驗是基于.NET平臺,使用Visual Studio開發(fā)工具將變化檢測處理功能封裝為Web處理服務(wù),用戶可以通過Web瀏覽器發(fā)送請求,并得到相應(yīng)的處理結(jié)果,實現(xiàn)處理功能的調(diào)用??蛻舳丝梢愿鶕?jù)自己的具體需求再做進(jìn)一步處理。
在全球地表覆蓋動態(tài)信息服務(wù)原型系統(tǒng)提供的變化檢測功能服務(wù)中,主要涉及到特征提取、特征匹配、最小二乘估計、仿射變換和變化檢測等算法函數(shù)。需將這些算法進(jìn)行封裝為功能服務(wù),其次,基于JavaScript進(jìn)行服務(wù)流程編排,最后,進(jìn)行處理服務(wù)調(diào)用。
4.1.1 算法封裝為功能服務(wù)
本實驗中將特征匹配、最小二乘估計、仿射變換和變化檢測等遙感算法封裝在dll類庫中,在實現(xiàn)特征匹配、平差處理、影像糾正和變化檢測等處理功能時,可以通過編碼直接調(diào)用類庫中相對應(yīng)的有關(guān)算法,并使用Visual Studio開發(fā)工具把處理功能封裝為服務(wù)。
4.1.2 基于JavaScript的服務(wù)流程編排
本實驗中主要研究全球地表覆蓋動態(tài)信息服務(wù)系統(tǒng)中的遙感影像變化檢測服務(wù),首先創(chuàng)建開始節(jié)點,選擇要進(jìn)行變化檢測的兩幅原始遙感影像:原始影像1和原始影像2,接著按照特征匹配、平差處理、影響糾正、變化檢測的順序?qū)煞跋襁M(jìn)行處理,最后指向結(jié)束節(jié)點。至此,就完成了變化檢測服務(wù)的流程編排。
打開變化檢測功能服務(wù)頁面后,會出現(xiàn)之前選擇的兩幅原始遙感影像:原始影像1和原始影像2,作為該處理過程的輸入數(shù)據(jù)。首先,對遙感影像分別進(jìn)行特征提取,其結(jié)果如圖6所示。
圖6 特征提取結(jié)果
由于遙感影像特征提取和特征匹配算法編寫在一個算法函數(shù)中,當(dāng)特征提取操作執(zhí)行結(jié)束后,單擊“特征匹配”按鈕,會繼續(xù)執(zhí)行特征匹配操作,得到特征匹配1和特征匹配2的結(jié)果,如圖7所示。
圖7 特征匹配結(jié)果
在特征匹配完成后,還可以點擊圖片下方的“查看數(shù)據(jù)傳輸”選項,可以查看所有特征匹配點的坐標(biāo)信息。
單擊“平差處理”按鈕,采用最小二乘估計的方法對影像進(jìn)行平差處理。同樣,點擊“查看數(shù)據(jù)傳輸”選項,會得到a0,a1,a2,a3,a4,a5參數(shù)的值,結(jié)果圖8所示。
圖8 平差處理數(shù)據(jù)傳輸
兩幅影像平差處理結(jié)束后,將會進(jìn)行影像糾正。單擊“影像糾正”按鈕,在兩幅原始影像右邊得到糾正影像,如圖9所示。
點擊“變化檢測”按鈕,得到最終變化檢測結(jié)果,如圖10中綠色區(qū)域所示。
圖9 影像糾正結(jié)果
圖10 變化檢測結(jié)果
目前,在全球地表覆蓋動態(tài)信息服務(wù)系統(tǒng)中,只能在全球范圍內(nèi)搜索數(shù)據(jù)服務(wù),不支持功能服務(wù)模塊中處理算法的搜索,服務(wù)流程編排中使用的功能服務(wù)選擇范圍較小,局限性比較強。接下來,將在該方向繼續(xù)研究,真正為使用者提供動態(tài)信息服務(wù),實現(xiàn)服務(wù)的個性化定制。此外,隨著Internet網(wǎng)絡(luò)技術(shù)和計算機技術(shù)的快速普及和應(yīng)用,Web Service開始由封閉、緊耦合向開放、松散耦合、異構(gòu)環(huán)境下易于集成的方向發(fā)展。OGC提出的WPS規(guī)范就是針對Web處理服務(wù)指定的標(biāo)準(zhǔn),但國內(nèi)對于WPS的研究現(xiàn)在處于起步階段,因此,對WPS的研究及應(yīng)用還有很大的提升空間,可以作為今后研究方向之一。