RIA+REST,琴瑟合鳴

作者: Flyingis  來源: 博客園  發布時間: 2009-05-19 10:25  閱讀: 2114 次  推薦: 0   原文鏈接   [收藏]  

    在當前IT概念名詞漫天飛舞的年代,REST+RIA已經開始逐漸成為一種開發應用模式的標準,并越來越多的在各種實際業務中得到應用。

    記得第一次看到REST的身影,是在InfoQ上的一篇介紹,隨后又翻閱了后面的參考文章和Developerwork上一些資料,甚至隨手翻了翻Roy博士的論文。所幸,在不少人還在體會REST到底是何方神圣的時候,我拿到并安裝了最新版的ArcGIS Server 9.3,里面新增了一種新的GIS服務:ArcGIS Server REST服務。有了這樣的一個落地的基于REST的服務,所有對REST基礎概念的疑惑都迎刃而解:為所有“事務”定義ID;將所有“事務”鏈接在一起;使用標準方法;資源多重表述;無狀態通信(摘抄自InfoQ)。所以,學習開發或開發理念,看文字沒有看圖片快,看圖片沒有動手操作快,動手操作沒有導師親自指導快,對于REST的學習,我對生澀的文字概念的理解時間被壓縮到了最小。

    ArcGIS Server REST服務的組織結構:

    今天看到一則新聞,紐約時報通過Times Developer Network構建了一個基于REST的API,請求API之后將得到XML和JSON格式的返回數據,這些API包括

 

Article Search API:能夠搜索從1981年到現在紐約時報上的文章,可以獲取標題、摘要及相關多媒體的鏈接
Best Sellers API:能夠獲取紐約時報所有的最佳業績數據,包括特定銷售商的等級歷史  
Campaign Finance API:根據美國聯邦選舉委員會的備案獲取總統選舉的捐助及花費數據
Community API:獲取NYTimes.com用戶發表的評論
Congress API:獲取美國議會投票數據,包括具體議院和參議院議員的信息
Movie Reviews API:獲取到評論和紐約時報評論家的鏈接以及根據關鍵字搜索電影評論
New York State Legislature API:獲取紐約州參議院及大會的議員和委員會信息
Real Estate API:獲取紐約市房地產及銷售情況的聚合數據
Times Newswire API:獲取最新時報文章的鏈接和元數據
TimesPeople API:獲取時報讀者的信息及活動數據
TimesTags API:獲取與查詢信息匹配的標準化術語,同時由時報字典進行過濾


    微軟同時發布了紐約時報Silverlight工具集,這和ArcGIS各種客戶端API設計方法是類似的,過去大家包括我曾抱怨ArcGIS技術總是落后IT技術發展,如COM問題,這次,至少是在第一時間(2008年上半年)提供了RIA+REST完整的技術體系,目前在ArcGIS Server REST服務基礎上可以使用的客戶端技術有Javascript、Flex、Silverlight,大家可以到官方網站上了解:
http://resources.esri.com/arcgisserver/index.cfm?fa=applications

    下面以treenode在javaeye上總結的RIA+REST架構的優點,分析ArcGIS Server中的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在很多方面的確做得比前輩們更好。

0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()