1. 程式人生 > >RIA+REST,琴瑟合鳴

RIA+REST,琴瑟合鳴

1.將表現層與後臺徹底分離

    從N年前討論MVC開始就在討論解耦、鬆耦合的設計方法,ArcGIS Server REST將GIS基礎和核心功能全部進行了封裝,並以服務的方式提供給客戶端,如常見的地圖展示、圖層資訊訪問、空間幾何查詢、高階分析功能(網路分析、地理統計、空間分析統計、水文分析、地址編碼、邏輯網路、座標轉換等)等等。這些全是GIS相關的功能,客戶端無論是Javascript、Flex還是Silverlight無需關注GIS功能的實現,只用專心於人機互動和使用者UI設計。

    2.方便程式設計師和美工協同開發

    對於Flex和Silverlight開發來說,這種界線更為明顯,如微軟專門為設計人員提供的Express Blend,程式設計師只需將精力集中在基於vs的程式碼編寫上,而這些程式碼無需關注GIS功能實現的方法,只需要完成對ArcGIS Server REST服務的呼叫即可,結構一目瞭然。

    3.有利於採用快速原型的開發方式

    沒有任何後臺邏輯之前,表現層就可以開始設計,FlexViewer無疑是最好的說明,ArcGIS Silverlight API也將擁有類似的框架。

    4.合理分配負載,減輕伺服器壓力

    這不是GIS的特點,是Javascript、Flex、Silverlight的能力,用GIS應用中的一個典型用例說明:通過不同顏色渲染出全國各省的人口數量。這是一個專題圖生成的功能,過去常用的方式是由GIS Server進行處理,然後將處理結果生成一張圖片,通過虛擬目錄地址返回,10000個併發的時候伺服器肯定死掉了,然而基於RIA+REST的應用架構,REST負責將需要的資料傳回客戶端,壓力較大的渲染工作放到客戶端進行了,有效減輕了伺服器的壓力,使用者體驗更佳,視覺效果更好。

    再如下面H1N1例子(
線上演示
),客戶端要繪製上萬個點,如用Soap API去動態繪製,速度會慢的難以忍受,而RIA做到了。


    5.提高使用者體驗

    這還用多說嗎,RIA最直接的效果就是良好的使用者體驗,事實證明專業GIS使用者更喜歡基於RIA的GIS應用,大眾GIS應用如Google Map、MapABC也都推出了各自的Flex API。

    任何技術沒有100%完美,但是在GIS行業和更加廣闊的IT技術應用中,RIA+REST在很多方面的確做得比前輩們更好。