隨著計算機和網絡技術已經成為人們生活中不可或缺的一部分,地理信息系統的發展進入了一個新時期,各個行業對地理空間數據及其處理功能的需求日益增長,要求地理信息能夠廣泛地被共享、交換和訪問。因此,地理信息系統迫切需要發展成為面向大眾化的技術產業,分布式異構環境下易于集成的地理信息服務應運而生。
地理信息服務是把地理空間數據和處理功能封裝為服務并發布在網絡上,允許通過網絡對地理信息進行集成和共享,為用戶構建分布式異構系統提供了有效資源,它主要包括數據服務和處理服務兩部分。在整個地理信息服務體系中,數據服務是基礎,任何服務都是基于海量、格式多樣的空間數據得以實現的。但是,大多數情況下人們真正需要的并不是各種地理數據,而是數據中包含的信息及其提供的增值服務,最終實現空間處理和空間分析等功能,這就是地理信息處理服務的關鍵所在。
近年來,很多研究機構和部門相繼建立了公共或專業的地理信息服務網站,但大多是基于專業3DGIS軟件的私有服務或OGC(Open GIS Con-sortium)中網絡地圖服務WMS ( Web Mapping Service)、網絡覆蓋服務WCS ( Web Cover Serv-ice)、網絡要素服務WFS(Web Feature Service)等服務,只提供了數據服務,沒有將地理信息處理服務作為其基本服務,缺少對處理服務的系統性研究。比如公共電子地圖中提供了地圖縮放、漫游、數據查詢等功能,但最短或最優路徑查詢僅限于處理該網站的私有數據,不支持用戶調用服務接口以完成自己的應用。
1、地理處理服務概述
1. 1處理服務定義
處理服務是在數據服務的基礎上,為了滿足客戶不同的需求,對本地數據或存放在網絡上的空間數據進行處理操作,并為用戶提供面向應用的增值服務,比如坐標轉換服務、柵格/矢量轉換服務、尺寸測量服務、路徑確定服務、地理編碼服務等。處理服務過程中用戶并不直接對空間信息資源操作,它強調過程,主要為用戶提供計算、分析、處理空間信息資源等功能。當用戶對同一數據有不同請求處理時,處理服務會針對用戶的請求從不同方面解讀該數據,返回不同的處理結果。處理服務還遵循一定的通信機制,通過對空間數據建立計算和處理模型,既能夠為用戶提供通用的處理服務,也能靈活地針對某項具體應用提供特定處理服務,真正實現了處理服務多粒度、功能多樣化這一特性,滿足了用戶的不同需求。
1. 2處理服務基本原理
處理服務實現的整個過程中,對空間數據的分析、處理等操作在服務器端實現。客戶端基于網絡通信協議向服務器端發送請求,服務器端使用本地數據或共享網絡數據,提供處理算法及計算模型,執行處理服務,并將處理結果傳送給客戶端,具體實現過程如圖1所示。
服務客戶端主要有桌面GIS客戶端和Web-GIS客戶端兩種,可以基于HTTP傳輸協議或SOAP協議實現與服務器端的交互操作,通過網絡向服務器端傳送請求并得到相應返回結果;服務器端接收到用戶請求后,對地理空間數據進行格式轉換、投影轉換、坐標轉換等一系列操作,并提供空間數據分析處理算法和計算模型,支持用戶實現最優路徑分析、緩沖區分析、疊加分析等處理服務;空間數據資源則為服務端執行處理服務提供了有效數據源,包括標準的矢量數據、柵格數據和地理信息數據,存在于處理服務的整個生命周期中,是成功完成處理服務的必要基礎。
1. 3處理服務主要實現方法
1. 3. 1 OGC WPS的服務標準
網絡處理服務規范WPS ( Web Processing Service)是OGC組織為所有地理處理服務提供的一個標準化協議,并指定了客戶端和服務器端實現的操作。它規定了處理服務的標準接口,并將處理功能模塊封裝為網絡服務,包括輸入參數、輸出參數和觸發方式,客戶端基于XML文檔通信方式,通過網絡可以共享空間信息及其處理功能。通過這三個接口,基于XML傳輸協議,可以實現客戶端與服務器端的互操作,客戶端可以通過網絡調用與空間數據處理相關的GIS函數功能。
1. 3. 2 ArcGIS Server的Geoprocessing Service
ESRI公司生產的ArcGIS Server軟件中Geoprocessing Service地理處理服務是將位于ArcGIS Server服務器端的地理數據處理模型或者包含一個處理模型工具圖層的地圖文檔發布為服務。它是一種地理數據處理工具,客戶端通過網絡向服務器端發送請求,服務器端提供了分析、計算模型,執行空間分析和建模等功能,并將處理結果返回給客戶端,促進GIS功能從桌面向網絡方向發展。
1.3.3其他基于通用Web Service的處理服務
除了以上提到的基于OGC WPS服務標準的處理服務和ArcGIS Server軟件中Geopro-cessing Service地理處理服務外,還有一些基于通用Web Service的處理服務,比如企業服務總線ESB(Enterprise Service Bus)。企業服務總線ESB是一種基于面向服務架構SOA的處理服務技術,它是在分布式環境下,接受相關事件及消息的引導,并根據其內容進行篩選,能夠傳送各種各樣的復雜數據,還提供了一系列標準化接口,具有松耦合、易組合、可擴展、互操作等特點,有利于實現企業不同部門、不同業務單元、不同合作伙伴之間的應用集成。
2、處理服務構建的技術路線
本文首先對處理服務的定義及原理進行研究。其次,利用Visual Studio. NET開發平臺研究GIS算法封裝、服務流程編排及服務接口實現等內容,關鍵是將處理功能封裝為Web服務及服務接口的實現。客戶端向服務器端發送請求,服務器端接收并分析用戶請求,以XML文檔的形式返回處理結果,完成了客戶端與服務器端的互操作,幫助用戶根據需要調用相關處理服務。最后,結合全球地表覆蓋動態信息服務系統中變化檢測服務實現了將處理功能封裝為.asmx服務、基于JavaScript進行流程編排和服務調用等功能。技術路線圖如圖2所示。
3、基于.NET技術的處理服務構建方法
3. 1 GIS算法封裝
基于.NET平臺構建處理服務,為了提高Web處理服務中空間分析、空間處理等算法的可擴展性,建立算法注冊中心,開發人員可以將與處理功能有關的GIS算法封裝成為組件,通過在算法注冊中心注冊存放在算法庫內,便于GIS算法的查詢、集成和共享。
構建算法注冊中心的目的是維護算法類的元數據信息,這主要包括每個GIS算法的標識符、實現類的Qualified Name,算法的輸入、輸出參數等。為了能夠把所有GIS算法成功注冊到注冊中心,可以在服務初始化時將已有的算法模塊動態地加載到注冊列表中。接著,算法注冊中心將注冊列表中已注冊的算法類中定義的Annotation注釋信息提取出來,方便用戶搜索和使用GIS算法,實現處理功能的實時有效調用,如圖3所示。
3. 2處理服務流程編排
處理服務流程編排是通過流程驅動方式對有關Web服務組件進行組合和編排,以形成服務流程。由于Web服務具有松散耦合、分布式異構環境下易集成的特點,它要求服務流程編排應該滿足靈活、敏捷、可視化、個性化定制等特性。
處理服務流程編排實現過程中,分為前臺部分和后臺部分。前臺是優化服務流程編排需求,包括流程的設計、替換、修改、保存等操作;后臺是利用前臺生成的XML文件對流程進行部署。用戶在前臺選擇新建流程后,首先根據自己的需要進行流程設計,并根據實際情況判斷是否需要對生成的XML文件進行調整和修改。然后,將符合要求的XML文件保存在后臺中,并且將此流程部署在數據庫中,便于外部系統以服務的形式調用該流程。由于外部系統發送的參數與本地參數存在差異,后臺會專門定義一個解析外部字符流的類來識別外部系統傳送過來的參數,包括服務名稱、服務數據等內容,最終完成該流程的順利執行。處理服務流程編排的具體實現過程如圖4所示。
3. 3處理服務接口實現
處理服務接口是一組方法的邏輯組合,定義了外部可以調用的處理功能及其訪問方式,可作為客戶端調用Web處理服務的媒介。在設計處理服務接口時,接口描述文檔應該對接口的名字、參數、返回值等內容進行詳細說明。其中,接口命名的方法尤其重要,它能幫助使用者快速了解該接口的用途。在定義接口參數時,參數要盡量簡單,不增加客戶端和服務器端的耦合性,仍舊保持松耦合、易集成的特性。當接口設計完成后,要能夠方便地對接口參數和返回值進行測試,保證返回值形式簡潔且與語言無關。若測試過程中出現異常,就需要提高XML文檔的靈活性,保證它不管是在正常情況還是異常情況下都能應對自如。處理服務接口的實現過程如圖5所示。
處理服務接口的實現需要通過Web Service描述語言WSDL ( Web Service Description Lan-guage)對接口信息進行說明,它基于XML語法描述Web服務,說明了服務所提供的操作方法、訪問協議、數據格式及服務的網絡地址等內容。
4、處理服務的實例
全球地表覆蓋動態信息服務原型系統主要包括服務集成(Service Intergration)、服務搜索(Service Searching)、服務計算(Service Compu-tion)和變化標報(Making and Reporting)四個部分。本文主要研究實現服務計算部分,該部分實驗是基于.NET平臺,使用Visual Studio開發工具將變化檢測處理功能封裝為Web處理服務,用戶可以通過 Web瀏覽器發送請求,并得到相應的處理結果,實現處理功能的調用。客戶端可以根據自己的具體需求再做進一步處理。
4. 1變化檢測處理服務的實現
在全球地表覆蓋動態信息服務原型系統提供的變化檢測功能服務中,主要涉及到特征提取、特征匹配、最小二乘估計、仿射變換和變化檢測等算法函數。需將這些算法進行封裝為功能服務,其次基于JavaScript進行服務流程編排,最后進行處理服務調用。
4.1.1算法封裝為功能服務
本實驗中將特征匹配、最小二乘估計、仿射變換和變化檢測等遙感算法封裝在dll類庫中,在實現特征匹配、平差處理、影像糾正和變化檢測等處理功能時,可以通過編碼直接調用類庫中相對應的有關算法,并使用Visual Studio開發工具把處理功能封裝為服務。
4.1.2基于JavaScript的服務流程編排
本實驗中主要研究全球地表覆蓋動態信息服務系統中的遙感影像變化檢測服務,首先創建開始節點,選擇要進行變化檢測的兩幅原始遙感影像:原始影像1和原始影像2,接著按照特征匹配、平差處理、影響糾正、變化檢測的順序對兩幅影像進行處理,最后指向結束節點。至此,就完成了變化檢測服務的流程編排。
4. 1. 3處理服務調用
以特征匹配服務為例,部分調用代碼如下:
4. 2變化檢測處理服務的檢測
打開變化檢測功能服務頁面后,會出現之前選擇的兩幅原始遙感影像:原始影像1和原始影像2,作為該處理過程的輸入數據。首先,對遙感影像分別進行特征提取,其結果如圖6所示。特征匹配完成后,進行平差處理和影像糾正,最后進行變形檢測,最終結果如圖7所示。
5、結束語
目前,在全球地表覆蓋動態信息服務系統中,只能在全球范圍內搜索數據服務,不支持功能服務模塊中處理算法的搜索,服務流程編排中使用的功能服務選擇范圍較小,局限性比較強。接下來,將在該方向繼續研究,真正為使用者提供動態信息服務,實現服務的個性化定制。此外,隨著Internet網絡技術和計算機技術的快速普及和應用,Web Service開始由封閉、緊耦合向開放、松散耦合、異構環境下易于集成的方向發展。OGC提出的WPS規范就是針對Web處理服務指定的標準,但國內對于WPS的研究現在處于起步階段,因此,對WPS的研究及應用還有很大的提升空間,可以作為今后研究方向之一。