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