基于Silverlight技術的插件式GIS Server架構研究
劉興明,湯力,王大雪
(遼寧省冶金地質勘查局物探測繪大隊,遼寧鞍山114000)
摘要:針對傳統WebGIS開發復雜度高,交互體驗貧乏,擴展性差,運行效率低等不足,提出基于Silverlight技術的插件式GIS Server架構設計方案。對RIA/Silverlight技術和Flex技術進行比較,并提出基于Silverlight技術的插件式GIS Server架構模型,對實現該架構的插件技術進行詳細闡述。以阜新市旅游地理信息系統的開發為例,驗證此架構的可行性。
關鍵詞:插件技術;瓦片地圖;地理信息服務;框架設計
中圖分類號:P208
收稿日期:2014-09-06
作者簡介:劉興明(1987-),女,碩士研究生.
Silverlight technology-based plug-in GIS Server architecture researchLIU Xing-ming,TANG Li,WANG Da-xue
(Liaoning Metallurgical Geological Exploration Bureau Geophysical Surveying and Mapping Brigade,Anshan 114000,China)
Abstract:Aiming at the defect of high complexity of traditional WebGIS development,the paucity of interactive experience,poor scalability,low operating efficiency a Silverlight technology-based plug-the GIS Server architecture design is proposed.Comparing the RIA/Silverlight technology and flex technology,it proposes a plug-GIS Server architecture model based on Silverlight technology.Then the realization of plug-in technology is elaborated.Finally,Fuxin City tourism geographic information system development is taken as an example to verify the feasibility of this architecture.
Key words:Silverlight;plug-in technology;tile map;geographic information service;frame design
隨著互聯網技術和地理信息系統技術的迅速發展,使社會對地理信息有了巨大的需求,更多更廣泛的群體意識到要利用地理思考和空間服務的思維來為自己服務[1]。但現有的網絡地理信息系統的實現技術大都基于傳統的Web技術,過多依賴服務器端的處理能力,擴展、更新難度大[2]。
基于富互聯網應用程序(RIA)/Silverlight技術的插件式GISServer架構的提出,克服了上述不足,采用“平臺+插件”的設計理念,實現框架的設計和開發,簡化開發難度,提高用戶體驗,同時便于系統的更新和擴展。
1Sliverlight技術
Silverlight技術作為微軟公司首推的新一代跨平臺、跨瀏覽器的RIA實現技術,能夠為用戶提供具有專業圖形、視頻、音頻等多媒體的網絡應用程序[3]。Silverlight具有和桌面一樣的豐富的用戶體驗和交互能力,支持多線程,擁有良好的后臺語言框架,可以大大提高客戶端計算能力,同時增強對瀏覽器的自適應[4]。Silverlight的另一優勢是將前臺界面設計和后臺邏輯處理完全分開,具有低耦合性,提高系統的可擴展性和重用性,為聚合和集成多源的異構GIS網絡服務提供基礎架構。與Flex相比,Flash插件的安裝率比Silverlight多,但Silverlight平臺基于精簡的.NET框架,支持更多開發語言,具有混搭(Mashup)網絡服務能力,可以更好地表達多源、多尺度地理空間信息[5]。同時,Silverlight更注重開發人員,.NET程序員無需學習新的開發技術,可以在現有基礎上很快的開發Silverlight應用程序,降低學習成本,提高開發效率。
2系統總體架構
基于Silverlight技術的插件式GISServer架構采用層次化設計思路,包括Web表現層(User Interface,UI)、業務邏輯層(Business Logic Layer,BLL)和數據訪問層(Date Access Layer,DAL),整體架構如圖1所示。

圖1 系統整體架構圖
Web表現層是系統功能的直觀表達,也是用戶與系統直接交互的窗口[6]。用戶通過瀏覽器即可方便的訪問系統提供的功能。對開發人員而言表現層是系統功能的具體實現。表現層包括前端用戶界面、后臺邏輯和功能插件三部分。前端用戶界面的設計使用可擴展應用程序標記語言XAML,它簡化了.Net Framework 編程模式上的用戶界面創建過程。后臺邏輯采用高級程序語言C#設計,根據后臺邏輯的不同,劃分為地圖容器、操作容器、功能插件容器及可擴展容器等。功能插件主要是在前端用戶界面、后臺邏輯定制好后,將系統欲實現的各個功能單獨定制,以插件的形式加載到主程序中,各功能插件利用接口技術實現與主程序連接,供主程序調用。
業務邏輯層作為響應客戶端請求的核心層,主要負責接收來自客戶端的請求,并根據用戶請求類型做出相應的響應[7]。采用ArcGIS Server服務器和.NET應用服務器相應用戶對空間數據和屬性數據的請求,并對空間數據進行分析和控制。同時利用應用網關、遠程服務與業務數據庫進行交互,完成業務數據的查詢。業務邏輯層作為整個架構的核心,負責完成對地理信息公共服務平臺數據資源(服務資源)的抽象工作,GIS Web Service被抽象為地圖服務、地理編碼服務、地理數據服務、空間分析服務、Global服務、影像服務、網絡分析服務、幾何服務等類型;擴展服務被抽象為簡單數學計算服務、復雜數學計算服務、數據統計服務、數據驗證服務、輸出打印服務,OGC標準的WMS、WFS、WCS等類型。服務訪問接口以REST類型接口為主。IIS7.0作為Web服務器,承擔GIS服務器程序托管和Silverlight應用程序托管。
數據訪問層作為網絡地理信息服務架構的最底層,用來存儲和管理空間數據、屬性數據和多媒體等數據,維護各種數據之間的關系,并提供數據備份、存檔及數據安全機制,為系統提供數據源,保障系統的正常運行[8]。數據訪問層的主要功能包括:①根據系統欲實現功能和相關數據標準設計數據關系及屬性結構表;②根據數據結構表制作數據,注意有較高要求的數據的定制與表達;③數據測試、優化、維護和備份[8]。
基于這種層次化設計思路使得整個架構配置靈活、易于部署,部件間具有低耦合特性,基于標準的XML文件,更改后無需重啟服務器;采用異步服務通訊模式,用戶操作不會被中斷,可進行多任務并行操作。插件技術的應用使系統更易于擴展,開發人員可以根據需求獨立設計相應功能,封裝成插件,供主程序調用。
3插件技術
插件的本質是在不修改主程序的情況下靈活地進行軟件功能擴展[9]。在軟件項目開發領域,需要改進軟件的架構來提高軟件復用性、模塊化、封裝性和擴展性,使軟件不同功能模塊之間能夠無縫集成。插件技術以其松耦合性、代碼重用率高、擴展性強、移植性強等優點而被廣泛應用。
插件技術一般有3種實現方式,即基于組件對象模型(COM)的插件技術、基于動態鏈接庫(DLL)的插件技術和基于.NET反射機制的插件技術。
本文研究的是基于動態鏈接庫的插件技術。它是一個包含可由多個程序共同使用的代碼和數據的庫。DLL不是一個可執行文件,它本身也不能獨立運行,但它可以通過被其他程序調用的方式來實現。用戶無需了解DLL文件內部函數的處理邏輯,僅通過DLL提供的實現方法,來調用DLL提供的函數即可。DLL 還有助于共享數據和資源。多個應用程序可以同時訪問某個DLL文件中的內容。每一個插件都是基于主程序接口進行定制,其定制過程相對獨立,互不影響,可根據不同需求設計界面(XAML)和編輯后臺邏輯(C#),完成后生成新的解決方案,將新生成Bin/Debug文件夾下的.dll文件復制到主程序自動生成的ClientBin文件夾下,再通過標準的XML對該插件功能的實現進行配置[10],最后在主程序中調用該插件,完成該插件對應功能的實現。圖2中各功能插件對應的XML文件如圖3所示。
使用基于動態鏈接庫的插件技術,程序可以實現模塊化管理。此外,它在不影響應用程序其他內容的情況下,就可以完成對各個模塊的更新。

圖2 基于插件的網絡系統功能結構圖

圖3 標準XML文件
4實驗
基于上述架構,本文開發了阜新市旅游資源管理信息系統。系統采用ArcSDE10和SQL Server2008創建和管理空間、屬性數據庫,由ArcGIS Server10發布地圖服務、影像服務、要素服務和幾何服務,在創建地圖服務時將旅游相關矢量數據集按設計的專題圖發布為動態地圖服務,通過Silverlight富客戶端在執行相關空間服務請求實時生成;電子地圖數據作為底圖的地圖服務,為提高服務器響應效率,按照ArcGIS Server緩存模式建立13級不同比例尺的緩存切片包,并將其存儲在GIS服務器上,建立地圖緩存服務。同時利用ArcGIS Silverlight API和ArcGIS REST API及C#高級語言,開發具有豐富交互體驗的用戶界面和完備地理信息功能的插件式地圖服務功能[11],系統功能有:地圖導航、動態地圖管理、可配置化的功能控件(圖層管理,游、住、食、行、購、娛、醫等信息查詢,自駕游路徑分析,書簽,專題圖制圖,地圖編輯,地圖打印等)。在此基礎架構上,開發人員可以根據用戶需求實時擴展和更新功能插件。基于插件式架構的旅游系統功能實現,如圖4所示。

圖4 基于插件式架構的旅游系統功能實現圖
上述實驗表明,基于silverlight技術的插件式GIS Server在此架構上增加了旅游專題信息,即旅游相關功能插件(景點查詢、自駕游等),開發成旅游系統。開發人員可以依據此架構通過添加和修改插件的形式開發地價、房產、工商等用戶需求的各專題系統。系統界面友好,用戶體驗豐富;基于瓦片地圖技術的網絡地圖解決方案大大提高了地圖的出圖效率;“平臺+插件”的設計理念使系統更加穩定,更易于擴展。
5結束語
本文提出的基于silverlight技術的插件式多進程GIS Server解決方案,具有以下幾個特性:
1)基于silverlight技術使得本架構具有RIA技術特點,將部分服務器負載轉移到富客戶端,減輕應用服務器端的壓力,提高系統性能。絢麗的用戶界面,超強體驗的動畫功能等將增強用戶交互體驗能力。
2)采用“以空間置換時間”思想的瓦片地圖技術,使地圖服務更加人性化,提高系統地圖服務效率。
3)插件技術的應用使得業務功能和服務器本身相對獨立,在一定程度上提高架構的可擴展性和靈活性。
4)基于REST和SOAP的服務聚合和通信機制為系統提供安全、順暢的服務保障。
參考文獻:
[1]錢繼來.基于REST與RIA的Web應用研究與實現[D].武漢:武漢理工大學,2011.
[2]陸亞剛,邱知,游先祥,等.基于Silverlight和REST的富網絡地理信息系統框架設計[J].地球信息科學學報,2012,14(2):192-198.
[3]施佺,陸春龍,王恒山.基于Silverlight 的海洋環境監測信息平臺設計與實現[J].計算機應用與軟件,2010,27(12):82-85.
[4]曾蔚.基于Silverlight和MVVM模式的移動商業智能系統研究[J].太原師范學院學報,2011,10(2):77-81.
[5]吳信才,吳亮.面向服務的分布式空間信息支撐平臺[J].地球科學:中國地質大學學報,2006,31(5):585-589.
[6]高曉蓉,徐丹,雷瑛.基于Flex和REST服務的WebGIS系統開發-以隴西縣地理空間信息應用系統為例[J].遙感技術與應用,2011(1):123-128.
[7]SAYAR A,PIERCE M,FOX G.IntegratingAJAX Approach into GIS Visualization Web Services Telecommunications,2006.AICT-ICIW’06.International Conference on Internet and Web Applications and Services[Z].2006.
[8]馬妮,李維功.ArcSDE for Oracle優化實踐[J].測繪通報,2007(10):50-53.
[9]楊之江,扈震,常曉婕.基于插件技術的GIS Server架構模型的設計[J].地球科學:中國地質大學學報,2010,35(3):475-479.
[10]張瑞軍,姜雪嬌.一種基于WebGIS的網絡地圖數據采集方法研究[J].測繪工程,2014,23(2):24-28.
[11]RICHARDSON L.Restful Web Services[M],Sebastopol,Califoenia:O’Reilly Media,2007,1-21.繼來.基于REST與RIA的Web應用研究與實現[D].武漢:武漢理工大學,2011.
[2]陸亞剛,邱知,游先祥,等.基于Silverlight和REST的富網絡地理信息系統框架設計[J].地球信息科學學報,2012,14(2):192-198.
[3]施佺,陸春龍,王恒山.基于Silverlight 的海洋環境監測信息平臺設計與實現[J].計算機應用與軟件,2010,27(12):82-85.
[4]曾蔚.基于Silverlight和MVVM模式的移動商業智能系統研究[J].太原師范學院學報,2011,10(2):77-81.
[5]吳信才,吳亮.面向服務的分布式空間信息支撐平臺[J].地球科學:中國地質大學學報,2006,31(5):585-589.
[6]高曉蓉,徐丹,雷瑛.基于Flex和REST服務的WebGIS系統開發-以隴西縣地理空間信息應用系統為例[J].遙感技術與應用,2011(1):123-128.
[7]SAYAR A,PIERCE M,FOX G.IntegratingAJAX Approach into GIS Visualization Web Services Telecommunications,2006.AICT-ICIW’06.International Conference on Internet and Web Applications and Services[Z].2006.
[8]馬妮,李維功.ArcSDE for Oracle優化實踐[J].測繪通報,2007(10):50-53.
[9]楊之江,扈震,常曉婕.基于插件技術的GIS Server架構模型的設計[J].地球科學:中國地質大學學報,2010,35(3):475-479.
[10]張瑞軍,姜雪嬌.一種基于WebGIS的網絡地圖數據采集方法研究[J].測繪工程,2014,23(2):24-28.
[11]RICHARDSON L.Restful Web Services[M],Sebastopol,Califoenia:O’Reilly Media,2007,1-21.
[責任編輯:張德福]