JimmyJin
          走在架構師的大道上,學習的樂趣就在于將知識應用于具體實踐中,在實戰中實現知識的價值。
          posts - 4,comments - 0,trackbacks - 0

          表征狀態轉移(英文:Representational State Transfer,簡稱REST)是Roy Fielding博士在2000年他的博士論文中提出來的一種軟件架構風格。

          目前在三種主流的Web服務實現方案中,因為REST模式的Web服務與復雜的SOAPXML-RPC對比來講明顯的更加簡潔,越來越多的web服務開始采用REST風格設計和實現。例如,Amazon.com提供接近REST風格的Web服務進行圖書查找;雅虎提供的Web服務也是REST風格的。
           三種主流的Web服務實現方案:

          1,表征狀態轉移(英文:Representational State Transfer,簡稱REST),
          2,簡單對象訪問協議SOAP,全寫為Simple Object Access Protocol)是一種標準化的通訊規范,主要用于Web服務(web service)中。
          3,XML-RPC是一個遠程過程調用遠端程序呼叫)(remote procedure call,RPC)的分布式計算協議,通過XML將調用函數封裝,并使用HTTP協議作為傳送機制

          。后來在新的功能不斷被引入下,這個標準慢慢演變成為今日的SOAP協定。
          何為REST,
          REST 從資源的角度來觀察整個網絡,認為分布在網絡各處的資源由URI確定,而客戶端的應用通過URI來獲取資源的Representational(有的翻譯成表征或具象),獲得這些表征致使這些應用程序轉變了其狀態。隨著不斷獲取資源的表征,客戶端應用不斷地在轉變著其狀態,所謂表征狀態轉移(Representational State Transfer)。 

           

          REST是設計風格而不是標準。

          REST
          原則(The REST architectural style constrains)

          Ø         統一接口(unifrom interface

          Ø         所有的事物都是資源且通過URI來使用資源

          (data and functionality are considered resources,and these resources are accessed using URIs,typically links on the web)

          Ø         客戶端和服務器結構

          Ø         使用無狀態的通信協議如HTTP

          (constrains an architecture to a client-server architecture ,and is designed to use a stateless communication protocol ,typically HTTP)

          Ø         對資源的操作包括獲取、創建、修改和刪除資源,這些操作正好對應HTTP協議提供的GETPOSTPUTDELETE方法。

          Ø         資源的多重表現形式,可以是XML或者HTML當然也可以是任何其他的格式。
          通過操作資源的表現形式來操作資源。

          Ø         能夠利用Cache機制增進性能

          Ø         層次化的系統

          Ø         隨需代碼 - Javascript (可選)

          RESTful Web 服務
          符合以上REST原則的Web 服務就是一個RESTful Web 服務(也稱為 RESTful Web API
           
          RESTful Web 服務(也稱為 RESTful Web API)是一個使用HTTP并遵循REST原則的Web服務。它從以下三個方面資源進行定義:

          • URI,比如:http://example.com/resources/
          • Web服務接受與返回的互聯網媒體類型,比如:JSONXMLYAML 等。
          • Web服務在該資源上所支持的一系列請求方法(比如:POST,GET,PUT或DELETE)。

          構建 RESTful 應用程序的最困難的部分在于確定要公開哪些資源。解決了這個問題之后,再使用開源 Restlet 框架構建 RESTful Web 服務就是小菜一碟了。

          該表列出了在實現RESTful Web 服務時HTTP請求方法的典型用途。
          HTTP 請求方法在RESTful Web 服務中的典型應用[1]
          資源 GET PUT POST DELETE
          一組資源的URI,比如http://example.com/resources/ 列出 URI,以及該資源組中每個資源的詳細信息(后者可選)。 使用給定的一組資源替換當前整組資源。 在本組資源中創建/追加一個新的資源。 該操作往往返回新資源的URL。 刪除 整組資源。
          單個資源的URI,比如http://example.com/resources/142 獲取 指定的資源的詳細信息,格式可以自選一個合適的網絡媒體類型(比如:XML、JSON等) 替換/創建 指定的資源。并將其追加到相應的資源組中。 把指定的資源當做一個資源組,并在其下創建/追加一個新的元素,使其隸屬于當前資源。 刪除 指定的元素。

          PUT 和 DELETE 方法是冪等方法。GET方法是安全方法 (不會對服務器端有修改,因此也是冪等的)。

          不像基于SOAP的Web服務,RESTful Web服務并沒有的“正式”標準[2]。 這是因為REST是一種架構,而SOAP只是一個協議。雖然REST不是一個標準,但在實現RESTful Web服務時可以使用其他各種標準(比如HTTP,URL,XML,PNG等)。
          HTTP協議是無狀態協議。無狀態是指協議對于事務處理沒有記憶能力。缺少狀態意味著如果后續處理需要前面的信息,則它必須重傳(傳參形式),這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。)

           HTTP不是一種傳輸協議(transport protocol),而是一種應用協議(application protocol)。它采用TCP作為下層傳輸(underlying transport),但它擁有自己的語義(否則它就沒什么用處了)。僅將HTTP作為傳輸,是不恰當的。
          URIs:(Uniform Resource Id entifiers


          個人總結:

          1RESTROA的,跟SOAP WEB服務架構不同。
          REST
          架構是以資源為中心的,它推崇發揮HTTP協議至極致而不是僅將HTTP作為傳輸協議來用(如像我過去的WEB服務架構中只用HTTPPOSTGET方法或在SOAP僅用了HTTPPOST方法來傳遞數據)
          REST
          充分利用HTTPGETPOSTPUTDelete方法來實現對資源的操作,利用HTTPCache機制來輕松實現了REST的緩存 
          2
          REST用到WADLSOAP用到了WSDLWADL是以資源為中心的,WSDL是以操作(接口)為中心
          3
          ,資源間的互動是通過鏈接(link)來實現的
          4
          ,其實REST并不擅長于面向事務的應用,擅長于在面向資源的應用。
          5
          REST中的WADL僅支持HTTP協議,SOAP支持HTTPFTPSMTP,MQ


           

          posted on 2012-05-21 20:45 jimmy2009 閱讀(163) 評論(0)  編輯  收藏 所屬分類: 分析設計

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 扶沟县| 沙湾县| 郎溪县| 许昌县| 济源市| 大埔区| 南召县| 托克逊县| 饶平县| 富川| 扎鲁特旗| 改则县| 贵德县| 寿光市| 攀枝花市| 丹棱县| 德保县| 旺苍县| 毕节市| 五指山市| 蒙自县| 洞口县| 郧西县| 呼伦贝尔市| 佛冈县| 郑州市| 平顺县| 察隅县| 禹州市| 尚义县| 资源县| 饶阳县| 郴州市| 承德县| 休宁县| 禄丰县| 三河市| 阜宁县| 南丰县| 武鸣县| 长沙县|