黃智華
(南寧市勘測(cè)院,廣西 南寧 530000)
萬(wàn)維網(wǎng)是人類歷史上最深遠(yuǎn)、最廣泛的傳播媒介。萬(wàn)維網(wǎng)的成功,在很大程度上是因?yàn)槠滠浖軜?gòu)的設(shè)計(jì)滿足了Internet規(guī)模的分布式超媒體系統(tǒng)的需求。在Web2.0時(shí)代,呼喚有一種現(xiàn)代Web架構(gòu)的模型,用來(lái)指導(dǎo)Web的設(shè)計(jì)、定義和部署。2000年,加州大學(xué)歐文分校的Roy Thomas Fielding博士提出了REST(表述性狀態(tài)轉(zhuǎn)移)這種軟件架構(gòu)的概念。REST允許程序在不同計(jì)算機(jī)上獨(dú)立于操作系統(tǒng)或平臺(tái)進(jìn)行通訊,通過(guò)發(fā)送一個(gè)HTTP請(qǐng)求到網(wǎng)址,并獲取某種格式的返回?cái)?shù)據(jù),支持的格式包括 XML或嵌入網(wǎng)址的XML。REST中,數(shù)據(jù)在調(diào)用之后仍保持原始狀態(tài)。
目前在主流的Web服務(wù)實(shí)現(xiàn)方案中,因?yàn)镽EST模式的Web服務(wù)相對(duì)來(lái)說(shuō)更加簡(jiǎn)潔,越來(lái)越多的Web服務(wù)開(kāi)始采用REST風(fēng)格設(shè)計(jì)和實(shí)現(xiàn)。例如,網(wǎng)易郵箱提供REST風(fēng)格的Web服務(wù)進(jìn)行郵件管理;雅虎提供的Web服務(wù)也是REST風(fēng)格的。利用REST開(kāi)發(fā)地理信息系統(tǒng),可以順理成章地繼承REST的優(yōu)勢(shì)。
自從2008年ArcGIS Server 9.3發(fā)布以來(lái),其新增了一種新的GIS服務(wù)——ArcGIS Server REST服務(wù),并逐漸開(kāi)始大行其道。正是有了這樣一個(gè)基于REST的服務(wù),地理信息系統(tǒng)開(kāi)發(fā)難度的問(wèn)題才得以迎刃而解。
第一,它將表現(xiàn)層與后臺(tái)徹底分離。ArcGIS Server REST將GIS基礎(chǔ)和核心功能全部進(jìn)行了封裝,并以服務(wù)的方式提供給客戶端,如常見(jiàn)的地圖展示、圖層信息訪問(wèn)、空間幾何查詢、高級(jí)分析功能等。客戶端無(wú)論是Javascript、Flex還是Silverlight無(wú)需關(guān)注GIS功能的實(shí)現(xiàn)。這樣低耦合的設(shè)計(jì)方法,結(jié)構(gòu)更加清晰,大大方便了系統(tǒng)的維護(hù)。
第二,便于快速開(kāi)發(fā)。沒(méi)有任何后臺(tái)邏輯之前,表現(xiàn)層就可以開(kāi)始設(shè)計(jì),甚至沒(méi)有發(fā)布服務(wù),亦可以模擬服務(wù)來(lái)進(jìn)行開(kāi)發(fā),最后再將模擬服務(wù)換成真正的服務(wù)即可。
第三,合理分配負(fù)載,減輕服務(wù)器壓力。如果大量數(shù)據(jù)渲染全部交由GIS Server進(jìn)行處理,然后將處理結(jié)果生成一張圖片返回,大并發(fā)的時(shí)候服務(wù)器速度會(huì)很慢甚至死掉,然而基于REST的應(yīng)用架構(gòu),REST負(fù)責(zé)將需要的數(shù)據(jù)傳回客戶端,壓力較大的渲染工作放到客戶端進(jìn)行,有效減輕了服務(wù)器的壓力。
在使用和消費(fèi)REST方面,ArcGIS API for JavaScript、ArcGIS API for Flex、ArcGIS API for Silverlight就是ArcGIS的“三劍客”,使大量開(kāi)發(fā)人員可根據(jù)需要選用它們進(jìn)行地理信息系統(tǒng)的開(kāi)發(fā)。
從根本上說(shuō),REST API就是由網(wǎng)址組成的。首先構(gòu)建請(qǐng)求網(wǎng)址,接著發(fā)送請(qǐng)求到ArcGIS Server,等待接收服務(wù)器的響應(yīng),然后解析和使用服務(wù)器的響應(yīng)。這種優(yōu)勢(shì)對(duì)基于瀏覽器的編程方面特別重要。使用REST API到服務(wù)器端和桌面編程也是非常簡(jiǎn)單,因而有很大的發(fā)展?jié)摿Α?/p>
南寧市基礎(chǔ)地理信息服務(wù)平臺(tái)采用了 Silverlight技術(shù),基于ArcGIS Server和綁定服務(wù)開(kāi)發(fā)富客戶端程序。使用ArcGIS API for Silverlight,能容易地創(chuàng)建高質(zhì)量的交互、華麗的界面和表現(xiàn)力豐富的Web程序。
首先要?jiǎng)?chuàng)建REST服務(wù),必須要將GIS資源發(fā)布為Web服務(wù),使他們能夠被互聯(lián)網(wǎng)或局域網(wǎng)的客戶端應(yīng)用程序遠(yuǎn)程調(diào)用。可以使用ArcCatalog或ArcGIS Server Manager發(fā)布。發(fā)布之后,就可以使用瀏覽器訪問(wèn)“http://(服務(wù)器)/ArcGIS/rest/ services/(服務(wù)名稱)/(服務(wù)類型)”這樣的方式展示服務(wù)的大量元數(shù)據(jù)。
在ArcGIS API for Silverlight中調(diào)用它顯示地圖,只需簡(jiǎn)單的代碼:

正是基于這種簡(jiǎn)潔清晰的REST方式,開(kāi)發(fā)的南寧市基礎(chǔ)地理信息服務(wù)平臺(tái)實(shí)現(xiàn)了放大、縮小、漫游、復(fù)位、前進(jìn)、后退、放大鏡查看、信息查看、搜索、點(diǎn)測(cè)、線測(cè)、面測(cè)、鷹眼、圖層、書簽、數(shù)據(jù)資源切換等基本功能。
在性能方面,緩存是改善REST地圖性能的關(guān)鍵技術(shù)。實(shí)時(shí)創(chuàng)建地圖是最費(fèi)力和最耗時(shí)的方式,所以從緩存中找回地圖將大大提高性能。如果存儲(chǔ)空間不受限制,高速緩存是最佳的選擇方案。在南寧市基礎(chǔ)地理信息服務(wù)平臺(tái)中,根據(jù)需求對(duì)GIS資源分級(jí)建立了緩存,使響應(yīng)速度得到了提升,增強(qiáng)了用戶體驗(yàn)。
REST開(kāi)發(fā)正在流行,有理由相信REST將會(huì)不斷得到發(fā)展和完善。