蔡志明,胡 馳,王欽敏
(1.福建工程學院電子信息與電氣工程系 福州 350108;2.福建工程學院福建省汽車電子與電驅動技術重點實驗室 福州350108;3.福州大學福建省空間信息工程研究中心 福州350002)
隨著無線通信技術的快速發展,手機、PDA和上網筆記本等移動終端的使用者數量已經遠遠超過使用PC機的用戶數。同時,隨著移動終端內置的GPS定位和移動服務提供商的基站定位技術的推廣,Wi-Fi、GPRS、3G等無線網絡的廣泛覆蓋,移動位置服務(location based service,LBS)的應用變得越來越廣泛。移動位置服務是指移動終端通過內置的定位模塊、基站定位或者人工輸入與位置相關的信息(如地址、郵編)等多種途徑獲取位置信息,并在地理信息服務平臺的支持下,為用戶提供與位置相關的服務。移動位置服務呈現給用戶的表達形式主要有文字、圖片、地圖等。其中,電子地圖因其直觀、可疊加各種豐富的時空信息等特性,在移動位置服務中應用最為普遍。
如何為用戶提供良好的地圖服務,現有的研究做了大量卓有成效的工作。參考文獻[1]對采用SVG(一種通用的互聯網矢量圖形語言)描述與表達空間信息的方法進行了系統的研究,在移動地圖服務方面,借助SVG瀏覽器實現SVG矢量圖形的可視化。參考文獻[2]提出的基于J2EE平臺的位置服務系統,利用Mobile SVG實現移動終端地圖數據的可視化。參考文獻[3]采用kXML對SVG地圖文件進行解析,并用Java編程實現矢量地圖在移動終端的顯示。參考文獻[4]利用現有的Web GIS軟件平臺和空間數據引擎,構建了一個瀏覽器/服務器模式的遙感地圖影像的網絡發布系統,實現了地圖的在線瀏覽、查詢、編輯等。參考文獻[5]結合目前地圖服務提供商,如Google Map、微軟的Virtual Earth以及靈圖(提供中國地圖服務)等提供的公用地圖API,進行業務邏輯封裝,以獲取網絡電子地圖。參考文獻[6]提出一種網絡與自主導航相結合的方案,其思想是先在移動終端預先存儲地圖數據,以后再實時下載增量更新。參考文獻[7]提出一種遵循OGC的WMS(Web map service,Web地圖服務)和 W FS(Web feature service,Web要素服務)標準的的LBS應用架構,該架構可以滿足各種中檔移動終端通過移動互聯網訪問網絡地圖的需求。在學術界研究地圖服務這一復雜而又廣泛的問題時,工程界卻把復雜的問題簡單化,尋找到了一種較為有效并廣泛使用的方法。Google最先采用地圖瓦片技術,并對外提供公用API,獲得了巨大成功。此后,其他的一些地圖服務商也采用類似的技術使得網絡地圖服務變得十分流行。為此,OGC也在2010年推出網絡地圖瓦片服務實現標準[8]。
從現有的研究和應用可以看出,電子地圖服務形式主要有客戶端/服務器(client/server,C/S)模式和瀏覽器/服務器(browser/server,B/S)模式兩種。在C/S模式下,客戶端應用一般用J2ME、eVC、.net等編程環境進行開發,適用于具有Java虛擬機、Windows Mobile操作系統的移動終端。移動終端可以從服務器下載電子地圖到本地進行調用,得到較高的響應速度;存在的缺陷是需要為各種異構的移動終端量身定制不同的客戶端應用程序,用戶在移動漫游時也可能需要經常更新下載電子地圖。在B/S模式下,移動終端不需要安裝附加的插件,通過Web瀏覽器便可實時調用服務器上的電子地圖。谷歌、百度的網絡電子地圖服務便屬于這種模式,這也是國際開放地理信息聯盟OGC提倡的地圖服務模式。存在的缺陷是由于不是本地調用,響應速度較慢。
在早期的研究中,除了移動終端的存儲容量和內存均非常小外,無線網絡數據傳輸的帶寬成為移動電子地圖服務的主要障礙。為了減小數據傳輸量,大量的研究放在電子地圖的存儲結構和壓縮算法上。由于涉及地圖數據的編碼、解碼、解析、格式轉換、圖形渲染等,而這些是普通Web瀏覽器無法實現的,因此C/S模式自然成為首選模式。但對于每一種具體的應用,都要求移動客戶端安裝一個相應的應用程序并不實際。例如,已有的一些智能手機上捆綁安裝了一些與地圖服務相關的應用,如交通、旅游、氣象服務等,而更多的服務仍需要移動用戶自己下載安裝。隨著各種富客戶端設備,如MID、iPhone等帶有功能強大的Web瀏覽器的移動終端設備的推出,特別是3G/4G無線通信技術的應用和逐步推廣,通信帶寬將不再是LBS的主要瓶頸。考慮到各種移動終端的異構性(操作系統、硬件配置等不同)和用戶使用的方便性,用戶通過Web瀏覽器訪問各種地圖服務(即B/S模式)是較為理想的選擇,具有普適性。
在B/S模式下,移動客戶端對服務器的依賴很大。用戶在漫游的情況下,網絡連接,特別是遠程服務器的連接經常不可靠,同時服務器的負載也在動態變化。因此如何提高網絡地圖服務的QoS(涉及吞吐量、時延、可用性、可靠性等)成了研究的熱點[9]。現有可用的解決方法有:在服務器端生成地圖瓦片圖像,并建立不同比例尺度的瓦片圖像的索引來滿足客戶端快速調用的需求[10];在服務器端采用空間數據庫連接池來應對大規模用戶的并發訪問[11];采用多級地圖瓦片緩存技術[9]等。同時,對于移動位置服務來說,如何設計一種移動網絡地圖服務架構,使得地圖服務應用與具體的地圖數據提供者、移動終端等無關,也是值得關注的問題。本文提出一種網絡地圖服務遷移的架構——MobileWMS,實現了地圖服務、地圖服務應用和地圖數據等的分離與遷移。
(1)WMS 和 WFS[8]
WMS和WFS是OGC制定的網絡地圖服務的兩個重要標準。WMS提供客戶端向一個或者多個分布式地理空間數據庫服務器請求地圖服務的接口,服務器端根據服務請求定義的地理圖層、查詢范圍等讀取空間數據,并以地圖圖片的形式發送給客戶端,同時允許客戶端進行一些基本的查詢。由于地圖矢量數據本身不包含數據如何顯示的信息,OGC引入了SLD(styled layer descriptor)。SLD是一種XML格式的文檔,用來描述各種地理實體如何顯示。用戶可以通過自定義SLD實現地圖不同樣式的顯示;和WMS返回地圖圖片不同,WFS返回給客戶的是可編輯和可進行空間分析的地理要素。已有部分開源軟件實現了WMS、WFS服務標準。例如,GeoServer實現了符合WMS、WFS標準的空間數據發布、編輯和共享架構,并通過集成OpenLayers客戶端實現地圖圖片、地理要素信息的疊加與瀏覽。下文以WMS直接表示實現了WMS標準的地圖服務器。
(2)網絡地圖服務應用
利用WMS提供基礎地圖服務(按區域劃分,包括可選的行政區劃、道路、河流、綠地、分類建筑用地等多個圖層),并借助于WFS,在基礎地圖上疊加地理要素信息,形成各種行業的專題地圖的應用服務。
(3)URI
統一資源標識符(uniform resource identifier,URI)用于對網絡上的各種資源(包括網頁、各種格式的文檔、程序、服務等)進行定位,其內容主要包括協議、該資源的主機IP地址(包括端口號)以及主機資源的具體地址(如目錄和文件名等)3個部分。其中,相對URI用于指向同一機器上的資源。
(4)Web 服務容器
駐留并運行在各種私有或者公有的物理服務器上,為各種Web項目提供運行環境的軟件平臺,常見的有由Apache軟件基金會資助研發的Tomcat和微軟公司的IIS。
(5)Web 應用
指駐留并運行在Web服務容器中的各種Web項目。每個Web服務容器中允許同時運行多個Web項目。
在互聯網通信中,隨著傳輸距離的增大,物理鏈路的傳輸時延、不同網絡之間的切換以及路由選擇開銷也逐漸增加,同時傳輸中的不確定性因素,如網絡擁塞、中斷的概率也隨之增加。在應用中,為了克服這些缺點,現在一般采用鏡像服務器的分布式服務方式,讓用戶訪問就近的服務器。網絡地圖服務作為不斷增長的在線服務,經常被大量的全球用戶循環訪問,其數據流量主要是地圖圖片數據。以瓦片大小為512 dpi×512 dpi的png格式的地圖圖片為例,其大小大于10 KB。客戶端顯示時,需要多個地圖瓦片進行拼接,同時用戶在漫游、縮放等操作中需要動態下載地圖瓦片,為此WMS服務器的負載很重。因此在移動網絡地圖服務應用中,如果將WMS部分分離出來,對WMS進行復制并遷移(遷移到性能較好、網絡帶寬較大的服務器上或者用戶所在地,或者隨著移動用戶的漫游一起動態遷移),便可以獲得較好的服務帶寬,降低網絡時延和網絡擁塞概率等,同時分攤WMS主服務器的負載,從而提高服務質量。以網絡時延為例,在福州某高校對全國各地的102所高校進行Ping測試網絡時延,剔除少數不連通以及與平均時延差異較大的異常值,得到該校與各個高校的直線距離和平均網絡時延的關系,如圖 1所示。可以看出,平均網絡時延隨著距離的增加而增加,這也部分說明了服務靠近用戶可以提高服務的質量。

在MobileWMS網絡地圖服務遷移架構中,地圖數據(map data)、地圖顯示樣式 SLD、地圖服務器(WMS)和地圖服務應用(WMS application)是彼此分離且相互獨立的,系統開發人員在發布地圖服務應用后,可以只對其中一個或者數個進行部分或者全部更新、遷移等,如圖 2所示。
假設廣域網上不同地域的多個服務器通過Peer-to-Peer(P2P)對等方式互連,每個服務器上安裝并運行Tomcat服務容器,相互之間可以查詢對方的負載以及運行的服務。在MobileWMS服務遷移架構中,采用Java語言編程,利用Socket通信協議,實現Service Migration(服務遷移)服務,該服務部署在各個對等服務器的Tomcat容器中,并提供API調用接口,用于實現遷移數據、功能模塊的壓縮、異地傳輸、解壓并重新部署等。
MobileWMS的各個模塊功能如下。
·地圖數據集:地圖數據可以以矢量文件的形式存儲,如shapefile、GML文件等;也可以存儲在地圖數據庫服務器中。相對來說,以文件形式存儲的地圖數據更便于遷移。本文的地圖數據采用shapefile格式。
·地圖服務器:為了使WMS能在不同的Tomcat容器中進行遷移,要求WMS服務器必須是免安裝的。現有 可 用 的 開 源 的 WMS 有 GeoServer[12]、MapServer[13]、Mapyrus[14]等。其中,Mapyrus的大小只有 2 MB,適于輕量型的快速遷移。
·地圖服務應用:如前所述,在網絡地圖服務中,地圖數據的傳輸占據了大部分的流量。因而,將地圖服務應用項目分割成與地圖有關和與地圖無關的兩部分。與地圖無關的部分主要是一些簡單文字、圖片類的靜態頁面;地圖相關的部分包含地圖顯示客戶端OpenLayers、地理要素傳輸模塊和遠程控制觸發模塊。
·列表文件:以XML格式存儲。URI List存放WMS服務器、地圖數據以及SLD文檔的相對URI;MobileWMS Delegate List則存放當前MobileWMS經過復制并遷移到異地服務器作為代理的遷移體(MobileWMS Delegate)的信息以及對等服務器的運行狀態等。

如圖 2所示,以移動終端通過無線局域網(WLAN)或者3G移動通信網絡連接到互聯網,訪問遠程服務器A(稱為MobileWMS的家鄉服務器)上的地圖服務應用為例,MobileWMS的處理流程如下。
(1)MobileWMS接收遠程移動終端的請求,根據其IP地址確定用戶所在的地域。查詢MobileWMS Delegate List,若用戶所在地有生命周期未結束的代理遷移體,且其駐留的服務器負載較輕、帶寬較大,則延長其生命周期,并轉到步驟(3);否則執行步驟(2)。
(2)MobileWMS 通過 MobileWMS Delegate List查找 用戶所在地域的性能較好的對等服務器B(稱為MobileWMS的代理服務器),通過服務遷移把WMS、地圖數據、SLD文檔、URI List文檔以及WMS Application地圖部分的應用遷移到服務器B的Tomcat容器中重新發布。同時配置MobileWMS Delegate List中遷移體的生命周期。
(3)把用戶的訪問鏈接切換到用戶所在地域的對等服務器的代理遷移體上。
(4)家鄉MobileWMS通過遠程控制對生命周期結束的MobileWMS Delegate進行就地銷毀。網絡地圖服務結束。
地圖顯示客戶端采用OpenLayers。調用WMS、獲取地圖數據以及指定SLD文檔的主要代碼如下:
var commands1="mimetype FORMAT;";
…
commands1+="dataset'shapefile',"+地圖數據的相對URI+",";";
…
map=new OpenLayers.Map('mapwin');
var wmsLayer=new OpenLayers.Layer.WMS("WMS","mapyrus的相對URI/servlet?format=image/png&commands="+encodeURIComponent(commands1));
map.addLayers([wmsLayer]);
OpenLayers.loadURL(SLD相對URI,null,null,loadSuccess,loadFailure);
…
3.4.1 測試原型
以移動用戶訪問遠程氣象服務為例,在廣域網(WAN)環境下驗證網絡地圖服務遷移的可行性。假設上海和杭州的移動用戶訪問發布于福州的氣象服務,以對當前位于福建區域的臺風進行實時跟蹤。氣象服務發布于福州某服務器(CPU 為 1.7 GHz,內存為 1.98 GB,帶寬 3 Mbit/s)上。福州的氣象服務應用以Mapyrus作為WMS服務器,當其接收到遠程上海、杭州區域用戶的請求后,將WMS服務復制并遷移到嘉興市的某對等服務器(CPU為1.7 GHz,內存為1 GB,帶寬3 Mbit/s)上,并將用戶請求鏈接切換到該服務器上,如圖3(a)所示。移動終端采用華為C8500 3G智能手機 (操作系統為 Android 2.1,CPU為 528 MHz,內存為512 MB ROM+256 MB RAM),通過電信天翼移動寬帶無線網絡接入internet訪問氣象服務。圖3(b)為C8500訪問氣象服務對臺風進行實時跟蹤的界面。由于臺風監測所需的基礎地圖服務已經遷移到嘉興的代理服務器上,福州家鄉服務器上的氣象服務只需實時將少量當地監測的臺風位置、覆蓋區域等要素信息以WKT(well-known text)[8]格式,通過Socket協議發送到代理服務器的MobileWMS Delegate上。這些地理要素信息通過OpenLayers以矢量圖層的形式疊加到Mapyrus生成的底層地圖上,并進行實時刷新。
3.4.2 實驗結果與分析
對于移動應用來說,與用戶體驗相關的因素主要有:服務的響應時間、服務價格和服務結果的易理解性和操作的方便性等。在此對上海、杭州的用戶分別訪問福州的氣象服務應用以及遷移到嘉興后的氣象服務應用代理的響應時間進行比較,包括兩類響應時間:總的連接時間(包括路由搜索、地圖頁面下載等)和單獨地圖頁面下載時間。為了減小互聯網網絡波動對測試結果的影響,分10次進行測試,每次間隔大約2 h。測試參數介紹如下:
·訪問遠程MobileWMS時的總連接時間 (total link time of accessing to remote MobileWMS,TLTofARM);
·就近訪問MobileWMS Delegate時的總連接時間(total link time of accessing to local MobileWMS delegate,TLTofALMD);
·訪問遠程MobileWMS時的地圖頁面下載時間(map page download time of accessing to remote MobileWMS,MPDTofARMD);


·就近訪問MobileWMS Delegate時的地圖頁面下載時間(map page download time of accessing to local MobileWMS delegate,MPDTofALMD)。
測試結果如圖 4所示。可以看出,在服務器性能和連接帶寬接近時,通過把服務遷移到用戶所在的地域,明顯降低了地圖服務的響應時間,在此稱為“就近效應”。雖然“就近效應”并不是絕對存在,例如訪問光纖連接的遠程服務器可能比訪問電纜連接的本地服務器的響應更快,但是,在同等服務器性能、網絡環境以及均勻的網絡拓撲結構下,“就近效應”一般是存在的。對于網絡地圖服務來說,通過遷移到性能較好的服務器上或者移動用戶所在的地域,可以獲得較好的服務體驗。
本文分析了B/S網絡地圖服務模式在移動位置服務應用中的意義。針對傳統WMS的集中服務方式響應速度慢、可擴展性差[9]等缺點,提出一種網絡地圖服務遷移架構——MobileWMS,通過實驗測試驗證了方案的可行性和有效性。該架構采用組件模塊化方式實現了地圖數據、顯示樣式、地圖服務和地圖服務應用的分離,方便實現地圖數據、顯示樣式以及地圖服務應用的在線實時更新。通過在對等服務器之間進行服務遷移,提供分布式的地圖服務,提高了服務器的使用效率,也有利于實現個性化服務,可以作為移動位置服務新的增值服務方式。由于網絡地圖服務遷移涉及地學、通信、電子、計算機等多個學科領域,如何進一步提高應用系統的服務性能并提供個性化服務是今后研究的重點,此外還需要實現各個組件模塊之間調用的標準API,以便于系統集成和應用。
1 李清泉,謝智穎,左小清等.基于SVG的空間信息描述與可視化表達.測繪學報,2005,34(1):58~63
2 呂志平,趙冬青,徐愛民等.位置服務系統(LBS)的構建.測繪科學,2005,30(2):92~94
3 朱三妹.基于開放標準的移動位置服務系統的設計與實現.武漢理工大學學報(交通科學與工程版),2006(30)
4 Fujun Zhao,Jingfa Zhang,Daiyong Cao.Dynamic Web map service for Web publishing system of mass remote sensing images.IEEE InternationalConference on Geoscience and Remote Sensing Symposium,2006:858~860
5 朱麗莉,王金華.手機定位服務系統的研究.華東理工大學學報(自然科學版),2007,33(B06):21~23
6 孫華波,劉岳峰,錢旭等.基于網絡與自主導航結合的LBS終端軟硬件設計.計算機工程與設計,2008,29(14):3 657~3 659,3 662
7 Fernando N,Dias D,Wijesekara S.A framework to develop location based services applications using OGC map services.5th International Conference on Information and Automation for Sustainability,2010:521~526
8 OGC Standards and Specifications.http://www.opengeospatial.org/standards
9 Davis C A,Kimo Yu J,Duarte-Figueiredo F L P.OGC Web map service implementation challenges for mobile computers.17th International Conference on Geoinformatics,2009:1~6
10 Yansheng Zhang,Dancheng Li,Zhiliang Zhu.A server side caching system for efficient Web map services.International Conference on Embedded Software and Systems Symposia,2008:32~37
11 梁清翰,沈占鋒,駱劍承等.構建LBS系統的數據庫連接池技術研究.計算機工程,2006,32(18):39~41
12 GeoServer.http://geoserver.org
13 MapServer.http://mapserver.org/
14 Mapyrus.http://mapyrus.sourceforge.net/