(浙江師范大學(xué) 數(shù)理與信息工程學(xué)院, 浙江 金華 321004)
摘 要:針對(duì)現(xiàn)有WebGIS開發(fā)效率不高、并發(fā)能力不強(qiáng)及服務(wù)器負(fù)載過重的問題,利用MVC設(shè)計(jì)模式在.NET開發(fā)平臺(tái)中,建立了一個(gè)實(shí)用的WebGIS應(yīng)用系統(tǒng)模型,并在此基礎(chǔ)上進(jìn)行了仿真。系統(tǒng)對(duì)WebGIS的客戶端、服務(wù)器端進(jìn)行了計(jì)算機(jī)仿真。系統(tǒng)具有顯示的直觀性與逼真性,而且具有很強(qiáng)的擴(kuò)展性,可用于與WebGIS有關(guān)的教學(xué)與科研、實(shí)驗(yàn)分析。典型仿真實(shí)例及結(jié)果表明用MVC設(shè)計(jì)模式仿真WebGIS系統(tǒng)是方便和高效的。
關(guān)鍵詞:網(wǎng)絡(luò)地理信息系統(tǒng);模型—視圖—控制器;仿真
中圖分類號(hào):TP31152 文獻(xiàn)標(biāo)志碼:A
文章編號(hào):10013695(2009)01024703
Simulation system of WebGIS based on MVC pattern
HU Tengbo,YE Jiankao
(College of Mathematics, Physics Information Engineering, Zhejiang Normal University, Jinhua Zhejiang 321004, China)Abstract:Based on low efficiency of designing, low concurrency and high load of server of the current WebGIS field, this paper proposed a proper application model of WebGIS by using design pattern of MVC in .NET development platform. A simulation based on this model was also presented. The system simulated the client and server of WebGIS. The system had not only visual display and reality, but also strong expansibility, could be used in teaching and scientific research and experimentation analysis related to WebGIS. Several typical simulation examples and results show that it is convenient and effective using design pattern of MVC to simulate WehGIS system.
Key words:WebGIS; MVC; simulation0 引言
WebGIS作為傳統(tǒng)GIS技術(shù)與Internet技術(shù)相結(jié)合的產(chǎn)物,它依托于Internet,結(jié)合WWW的網(wǎng)絡(luò)功能,實(shí)現(xiàn)全球化的GIS服務(wù)和數(shù)據(jù)共享,真正成為一種大眾化的實(shí)用工具[1]。WebGIS由于操作簡(jiǎn)單、跨平臺(tái)、可擴(kuò)展、信息分布共享等特點(diǎn),已經(jīng)在諸多領(lǐng)域中得到廣泛的重視和應(yīng)用[2~7]。
現(xiàn)有的一些WebGIS系統(tǒng),如MapXtreme Java Edition、MapGuide、GeoBeans等在某些方面有良好的表現(xiàn),但仍存在一些不足,如服務(wù)器的負(fù)擔(dān)過重、并發(fā)能力不強(qiáng)、效率不高,這些問題嚴(yán)重制約了WebGIS的應(yīng)用。
MVC是一個(gè)經(jīng)典的軟件設(shè)計(jì)模式[8,9],在實(shí)現(xiàn)Web應(yīng)用系統(tǒng)中具有得天獨(dú)厚的優(yōu)勢(shì),已經(jīng)得到了廣泛應(yīng)用。它的主要思想是在各個(gè)對(duì)象之間取得高層接口,MVC設(shè)計(jì)模式將用戶界面設(shè)計(jì)、流程控制和事務(wù)邏輯進(jìn)行了分離,實(shí)現(xiàn)了表示與數(shù)據(jù)的分離。它由三部分組成,即模型(M)、視圖(V)和控制器(C),每個(gè)部分負(fù)責(zé)不同的功能。MVC設(shè)計(jì)模式在J2EE中已經(jīng)應(yīng)用得非常成熟[10~15],然而在.NET框架中的應(yīng)用卻不多見[16]。
1 WebGIS仿真平臺(tái)
11 系統(tǒng)設(shè)計(jì)目標(biāo)
根據(jù)WebGIS應(yīng)用系統(tǒng)的特點(diǎn),提出以下設(shè)計(jì)目標(biāo):
a)建立基于瀏覽器/服務(wù)器(B/S)模式的WebGIS應(yīng)用系統(tǒng),向全社會(huì)提供一些基本信息和相關(guān)的查詢服務(wù)。
b)要求頁(yè)面結(jié)構(gòu)合理,系統(tǒng)運(yùn)行安全可靠,具有良好的穩(wěn)定性,系統(tǒng)具有良好的開發(fā)性,允許一
定數(shù)量的并發(fā)訪問。
c)能實(shí)現(xiàn)地圖顯示、放大、縮小、移動(dòng)、全圖、刷新等基本操作,以及屬性查詢、圖層顯示、距離計(jì)算、地圖的添加及刪除等功能。
12 系統(tǒng)設(shè)計(jì)原則
為了保證WebGIS的成功應(yīng)用,在其開發(fā)中要遵循一定的設(shè)計(jì)原則,主要包括以下幾個(gè)方面:
a)適應(yīng)性。WebGIS應(yīng)對(duì)外界條件的變化有較強(qiáng)的適應(yīng)能力。不能適應(yīng)環(huán)境變化的系統(tǒng)是沒有生命力的。由于WebGIS是一個(gè)很復(fù)雜的系統(tǒng)工程,要求系統(tǒng)的結(jié)構(gòu)具有較好的靈活性和可塑性。這樣,當(dāng)組織管理模式或計(jì)算機(jī)軟硬件等發(fā)生變化時(shí),系統(tǒng)才能夠容易地進(jìn)行修改、擴(kuò)充等功能。
b)經(jīng)濟(jì)性。它是衡量系統(tǒng)值不值得開發(fā)的重要依據(jù)。開發(fā)過程中,盡可能節(jié)省開支和縮短開發(fā)周期。新系統(tǒng)投入運(yùn)行后,盡快回收投資,以提高系統(tǒng)的經(jīng)濟(jì)效益和社會(huì)效益。
c)可靠性。只有可靠的系統(tǒng)才能得到用戶的信任。因此在設(shè)計(jì)WebGIS應(yīng)用系統(tǒng)時(shí),要保證系統(tǒng)軟硬件設(shè)備的穩(wěn)定性;要保證數(shù)據(jù)采集的質(zhì)量;要有數(shù)據(jù)校驗(yàn)功能;要有一套系統(tǒng)的安全措施。只有這樣,系統(tǒng)的可靠性才能得到充分保證。系統(tǒng)的可靠性是檢驗(yàn)系統(tǒng)成敗的主要指標(biāo)之一。
13 系統(tǒng)仿真平臺(tái)
根據(jù)WebGIS應(yīng)用系統(tǒng)的設(shè)計(jì)目標(biāo)和設(shè)計(jì)原則,本文采用MVC設(shè)計(jì)模式利用多層架構(gòu)思想在.NET環(huán)境中構(gòu)建WebGIS應(yīng)用系統(tǒng)仿真平臺(tái)。系統(tǒng)仿真平臺(tái)如圖1所示。
131 客戶端
客戶端采用瀏覽器方式。客戶端向Web服務(wù)器發(fā)送請(qǐng)求后利用瀏覽器軟件(如微軟的Internet Explorer)對(duì)服務(wù)器返回的執(zhí)行結(jié)果進(jìn)行本地解析生成用于展現(xiàn)的aspx頁(yè)面。客戶端的瀏覽器通過HTTP協(xié)議將用戶的指令或請(qǐng)求提交給Web服務(wù)器進(jìn)行處理,并接收處理完后的返回結(jié)果。
132 Web服務(wù)器
Web服務(wù)器對(duì)應(yīng)表示層,使用微軟的IIS作為Web服務(wù)器,表示層使用基于.NET架構(gòu)的MVC設(shè)計(jì)模式。客戶端訪問aspx頁(yè)面,向服務(wù)器端發(fā)出請(qǐng)求。控制器截獲請(qǐng)求,對(duì)請(qǐng)求進(jìn)行分析以決定調(diào)用哪個(gè)模型組件完成相應(yīng)的業(yè)務(wù)操作。執(zhí)行完業(yè)務(wù)操作后,控制器負(fù)責(zé)選擇合適的視圖顯示操作的結(jié)果。利用ASP.NET中的網(wǎng)頁(yè)(*.aspx)來實(shí)現(xiàn)MVC設(shè)計(jì)模式中的視圖,代碼隱藏文件(*.aspx.cs)作為控制器來調(diào)用相應(yīng)的模型組件。ASP.NET允許自定義控件(*.ascx),將自定義控件作為MVC設(shè)計(jì)模式中的模型組件。模型組件主要通過對(duì)數(shù)據(jù)庫(kù)的操作來實(shí)現(xiàn)與用戶的交互功能。
133 GIS應(yīng)用服務(wù)器
GIS應(yīng)用服務(wù)器對(duì)應(yīng)業(yè)務(wù)層,模型組件(M)由該層實(shí)現(xiàn)。利用ESRI公司的MO(MapObjects)IMS來實(shí)現(xiàn)業(yè)務(wù)層的相關(guān)操作。M中封裝了應(yīng)用系統(tǒng)所需要的數(shù)據(jù)以及操作這些數(shù)據(jù)的方法。應(yīng)用所需要的數(shù)據(jù)包括描述M狀態(tài)變更的用戶會(huì)話數(shù)據(jù)以及對(duì)應(yīng)于數(shù)據(jù)庫(kù)中物理存儲(chǔ)的實(shí)體數(shù)據(jù)。
134 數(shù)據(jù)庫(kù)服務(wù)器
數(shù)據(jù)庫(kù)服務(wù)器對(duì)應(yīng)數(shù)據(jù)庫(kù)層,數(shù)據(jù)庫(kù)層作為平臺(tái)的底層具有重要的意義,主要負(fù)責(zé)平臺(tái)的數(shù)據(jù)提供。系統(tǒng)除了涉及大量的業(yè)務(wù)數(shù)據(jù)(屬性數(shù)據(jù))外,還包括海量的圖形數(shù)據(jù)(空間數(shù)據(jù))。根據(jù)這一需求及系統(tǒng)的功能需求,最終將系統(tǒng)的數(shù)據(jù)庫(kù)層分為兩部分,即空間數(shù)據(jù)層和屬性數(shù)據(jù)層。空間數(shù)據(jù)的訪問采用ArcSDE技術(shù),而屬性數(shù)據(jù)的訪問則通過ADO.NET實(shí)現(xiàn)。本文使用的商業(yè)數(shù)據(jù)庫(kù)軟件是SQL Server 2000。通過ArcSDE將空間數(shù)據(jù)和屬性數(shù)據(jù)放在同一條記錄中,從而實(shí)現(xiàn)空間數(shù)據(jù)和屬性數(shù)據(jù)的一體化存儲(chǔ)與管理,其實(shí)現(xiàn)方法是只需在現(xiàn)有的屬性數(shù)據(jù)表中加入空間數(shù)據(jù)項(xiàng)即可。
2 仿真實(shí)例
本章應(yīng)用上一章提出的WebGIS系統(tǒng)仿真平臺(tái)來設(shè)計(jì)金華市區(qū)(婺城區(qū)、金東區(qū))電子地圖查詢系統(tǒng),通過該實(shí)例來進(jìn)行仿真實(shí)驗(yàn)。
21 功能設(shè)計(jì)
金華市區(qū)電子地圖查詢系統(tǒng)由基本功能子系統(tǒng)和查詢功能子系統(tǒng)兩部分組成。其中基本功能子系統(tǒng)包括全圖、放大、縮小、移動(dòng)、框選、測(cè)距、測(cè)量面積和鷹眼視圖,查詢功能子系統(tǒng)包括地圖分類列表查詢、地圖綜合目標(biāo)查詢和公交及自駕路線查詢。查詢結(jié)果顯示在查詢列表中,地圖顯示區(qū)域顯示所查詢目標(biāo)在電子地圖中的位置。系統(tǒng)功能結(jié)構(gòu)如圖2所示。
22 功能實(shí)現(xiàn)
系統(tǒng)的主界面(map.aspx)如圖3所示,頁(yè)面整體由七個(gè)框架組成。
頁(yè)面(map.aspx)作為MVC設(shè)計(jì)模式中的視圖,需要加載三個(gè)功能模塊,即按鈕功能模塊(button.ascx)、查詢功能模塊(search.ascx)和鷹眼視圖功能模塊(eagle.ascx)。代碼隱藏文件(map.aspx.cs)作為MVC設(shè)計(jì)模式的控制器,來控制對(duì)這些模塊的調(diào)用。這些模塊作為MVC設(shè)計(jì)模式中的模型組件,實(shí)現(xiàn)WebGIS應(yīng)用系統(tǒng)的不同功能。頁(yè)面加載這些模塊的HTML代碼如下:
〈%@ register Src=\"../search.ascx\" tagName=\"search\" %〉
〈%@ register Src=\"../button.ascx\" tagName=\"button\" %〉
〈%@ register Src=\"../eagle.ascx\" tagName=\"eagle\" %〉
1)標(biāo)題區(qū)
標(biāo)題區(qū)顯示“金華電子地圖網(wǎng)”,用簡(jiǎn)單的網(wǎng)頁(yè)即可實(shí)現(xiàn)。
2)主功能控制區(qū)
a)加載地圖。主要實(shí)現(xiàn)地圖的加載,在列表框中可選擇金華市各區(qū)縣地圖,然后單擊提交按鈕,在地圖顯示區(qū)域顯示所選擇區(qū)域地圖,主要代碼用JavaScript腳本語(yǔ)言實(shí)現(xiàn)。
b)地圖查詢。該查詢是本系統(tǒng)的核心功能,頁(yè)面的實(shí)現(xiàn)為search.ascx。加載地圖后可進(jìn)行地圖查詢,地圖查詢?cè)O(shè)置了三種查詢模式,即地圖分類列表查詢(search1.ascx)、地圖綜合目標(biāo)查詢(search2.ascx)和公交及自駕路線查詢(search3.ascx)。在頁(yè)面(search.ascx)中調(diào)用上述三類查詢模式頁(yè)面,即可實(shí)現(xiàn)地圖的查詢功能。
c)鷹眼視圖區(qū)。鷹眼功能的實(shí)現(xiàn),可使操作人員對(duì)地圖訪問時(shí),方便地顯示主窗口在全圖中的位置,在主窗口和鷹眼視圖窗口中進(jìn)行拖動(dòng)、畫矩形框或點(diǎn)擊等互操作,可使主窗口地圖在全圖中迅速定位。鷹眼的實(shí)現(xiàn)頁(yè)面為eagle.ascx,它與地圖顯示區(qū)是密切相關(guān)的。
d)按鈕操作區(qū)。按鈕操作包括全圖、放大、縮小、移動(dòng)、框選、測(cè)距、測(cè)量面積和滑桿操作。其實(shí)現(xiàn)頁(yè)面為button.ascx,實(shí)現(xiàn)方法是調(diào)用MO IMS的底層函數(shù)庫(kù)。
e)地圖顯示區(qū)。該區(qū)主要是顯示對(duì)地圖各種操作后的可視化效果。
f)詳細(xì)介紹區(qū)。該區(qū)是對(duì)查詢目標(biāo)的詳細(xì)描述。
23 仿真結(jié)果分析
該系統(tǒng)運(yùn)行良好,速度較快、穩(wěn)定性強(qiáng);而且圖文直觀,操作簡(jiǎn)便、維護(hù)方便。本文用Microsoft ACT(Microsoft application center test)對(duì)該系統(tǒng)進(jìn)行壓力負(fù)載測(cè)試(服務(wù)器:2.4 GHz/512 MB;操作系統(tǒng):Windows 2000 Advanced Server;網(wǎng)絡(luò)環(huán)境:100 Mbps全雙工;測(cè)試數(shù)據(jù):3.39 MB地圖數(shù)據(jù),圖像大小為746×514像素GIF)。測(cè)試結(jié)果如圖4所示。
從圖中可以看出,每增加5個(gè)并發(fā)用戶,其平均響應(yīng)時(shí)間增加約50 ms,具有較好的穩(wěn)定性、高效性、并發(fā)性和抗負(fù)載能力。
3 結(jié)束語(yǔ)
本文利用基于.NET架構(gòu)的MVC設(shè)計(jì)模式嘗試解決現(xiàn)有WebGIS系統(tǒng)的不足,特別在平衡負(fù)載能力、并發(fā)能力以及開發(fā)效率方面有新的突破,為拓寬WebGIS系統(tǒng)應(yīng)用的深度和廣度奠定了一定的基礎(chǔ)。由于該系統(tǒng)是基于瘦客戶端的,客戶端的靈活性不強(qiáng)。下一步的工作重點(diǎn)是提高客戶端的處理能力。
參考文獻(xiàn):
[1]
劉南,劉仁義.WebGIS原理及其應(yīng)用[M].北京:科學(xué)出版社,2002.
[2]趙紅丹.WebGIS在建筑監(jiān)管系統(tǒng)中的應(yīng)用研究[D].鄭州:鄭州大學(xué),2007.
[3]吳志偉,周濤,梅樹紅.Web GIS在廣西水庫(kù)管理信息系統(tǒng)中的應(yīng)用[J].測(cè)繪科學(xué),2005,30(1):9293.
[4]李瑞敏,陸化普.基于WebGIS的智能交通管理指揮調(diào)度系統(tǒng)[J].計(jì)算機(jī)工程,2007,33(21):232234.
[5]曹禮剛,王緒本.基于SVG技術(shù)的考古探測(cè)WebGIS研究[J].計(jì)算機(jī)應(yīng)用研究,2007,24(7):5557.
[6]傅春,苗放,王勇.基于WebGIS的消防重點(diǎn)單位監(jiān)督系統(tǒng)的研究與應(yīng)用[J].計(jì)算機(jī)仿真,2005,22(5):145148.
[7]楊飛,魏海平,吳興.基于CORBA/Java技術(shù)的WebGIS的研究[J].計(jì)算機(jī)應(yīng)用研究,2003,20(3):4143.
[8]WOJCIECHOWSKI J,SAKOWICZ B,DURA K,et al.MVC model, struts framework and file upload issues in Web applications based on J2EE platform[C]//Proc of International Conference on Modern Problems of Radio Engineering, Telecommunications and Computer Science.2004:342345.
[9]任中方,張華,閆明松,等.MVC模式研究的綜述[J].計(jì)算機(jī)應(yīng)用研究,2004,21(10):14,8.
[10]田小波,陳蜀宇.MVC設(shè)計(jì)模式在J2EE架構(gòu)下的研究與應(yīng)用[J].西華大學(xué)學(xué)報(bào),2007,26(2):67,93.
[11]陳洋,劉衛(wèi)寧,孫棣華.基于Struts框架和ActiveX控件的WebGIS實(shí)現(xiàn)技術(shù)[J].計(jì)算工程
與設(shè)計(jì),2007,28(1):230232,235.
[12]杜震洪.基于J2EE的分布式廣電WebGIS系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].杭州:浙江大學(xué),2007.
[13]孫雪飛,陸濤.基于J2EE技術(shù)網(wǎng)絡(luò)地理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪通報(bào),2004(11):3437.
[14]雷麗暉,耿國(guó)華,周明全.基于J2EE的網(wǎng)絡(luò)地理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2003,20(7):155157.
[15]陳能成,龔健雅,朱欣焰,等.基于J2EE的分布式GIS研究[J].測(cè)繪學(xué)報(bào),2003,32(2):158163.
[16]張勝,康志偉.基于.NET技術(shù)的WebGIS系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2006,32(15):106108.