欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
理解REST軟件架構 (轉與 InfoQ)

理解REST軟件架構

作者 駱古道 發(fā)布于 2007年5月27日 下午8時(shí)18分

社區
Java,
Ruby
主題
Web框架,
架構,
Ruby on Rails

一種思維方式影響了軟件行業(yè)的發(fā)展。REST軟件架構是當今世界上最成功的互聯(lián)網(wǎng)的超媒體分布式系統。它讓人們真正理解我們的網(wǎng)絡(luò )協(xié)議HTTP本來(lái)面貌。它正在成為網(wǎng)絡(luò )服務(wù)的主流技術(shù),同時(shí)也正在改變互聯(lián)網(wǎng)的網(wǎng)絡(luò )軟件開(kāi)發(fā)的全新思維方式。AJAX技術(shù)和Rails框架把REST軟件架構思想真正地在實(shí)際中很好表現出來(lái)。今天微軟也已經(jīng)應用REST并且提出把我們現有的網(wǎng)絡(luò )變成為一個(gè)語(yǔ)義網(wǎng),這種網(wǎng)絡(luò )將會(huì )使得搜索更加智能化。

REST與HTTP協(xié)議

REST軟件架構是由Roy Thomas Fielding博士在2000年首次提出的。他為我們描繪了開(kāi)發(fā)基于互聯(lián)網(wǎng)的網(wǎng)絡(luò )軟件的藍圖。REST軟件架構是一個(gè)抽象的概念,是一種為了實(shí)現這一互聯(lián)網(wǎng)的超媒體分布式系統的行動(dòng)指南。利用任何的技術(shù)都可以實(shí)現這種理念。而實(shí)現這一軟件架構最著(zhù)名的就是HTTP協(xié)議。通常我們把REST也寫(xiě)作為REST/HTTP,在實(shí)際中往往把REST理解為基于HTTP的REST軟件架構,或者更進(jìn)一步把REST和HTTP看作為等同的概念。

今天,HTTP是互聯(lián)網(wǎng)上應用最廣泛的計算機協(xié)議。HTTP不是一個(gè)簡(jiǎn)單的運載數據的協(xié)議,而是一個(gè)具有豐富內涵的網(wǎng)絡(luò )軟件的協(xié)議。它不僅僅能夠對于互聯(lián)網(wǎng)資源進(jìn)行唯一定位,而且還能告訴我們對于該資源進(jìn)行怎樣運作。這也是REST軟件架構當中最重要的兩個(gè)理念。而REST軟件架構理念是真正理解HTTP協(xié)議而形成的。有了REST軟件架構理念出現,才使得軟件業(yè)避免了對HTTP協(xié)議的片面理解。只有正確的理論指導,才能避免在軟件開(kāi)發(fā)的實(shí)際工作過(guò)程中少走彎路。

REST與URI(資源定位)

REST軟件架構之所以是一個(gè)超媒體系統,是因為它可以把網(wǎng)絡(luò )上所有資源進(jìn)行唯一的定位,不管你的文件是圖片、文件Word還是視頻文件,也不管你的文件是txt文件格式、xml文件格式還是其它文本文件格式。它利用支持HTTP的TCP/IP協(xié)議來(lái)確定互聯(lián)網(wǎng)上的資源。

REST與CRUD原則

REST軟件架構遵循了CRUD原則,該原則告訴我們對于資源(包括網(wǎng)絡(luò )資源)只需要四種行為:創(chuàng )建(Create)、獲?。≧ead)、更新(Update)和銷(xiāo)毀(DELETE)就可以完成對其操作和處理了。其實(shí)世界萬(wàn)物都是遵循這一規律:生、變、見(jiàn)、滅。所以計算機世界也不例外。這個(gè)原則是源自于我們對于數據庫表的數據操作:insert(生)、select(見(jiàn))、update(變)和delete(滅),所以有時(shí)候CRUD也寫(xiě)作為RUDI,其中的I就是insert。這四個(gè)操作是一種原子操作,即一種無(wú)法再分的操作,通過(guò)它們可以構造復雜的操作過(guò)程,正如數學(xué)上四則運算是數字的最基本的運算一樣。

REST與網(wǎng)絡(luò )服務(wù)

盡管在Java語(yǔ)言世界中網(wǎng)絡(luò )服務(wù)目前是以SOAP技術(shù)為主,但是REST將是是網(wǎng)絡(luò )服務(wù)的另一選擇,并且是真正意義上的網(wǎng)絡(luò )服務(wù)?;赗EST思想的網(wǎng)絡(luò )服務(wù)不久的將來(lái)也會(huì )成為是網(wǎng)絡(luò )服務(wù)的主流技術(shù)。REST不僅僅把HTTP作為自己的數據運輸協(xié)議,而且也作為直接進(jìn)行數據處理的工具。而當前的網(wǎng)絡(luò )服務(wù)技術(shù)都需要使用其它手段來(lái)完成數據處理工作,它們完全獨立于HTTP協(xié)議來(lái)進(jìn)行的,這樣增加了大量的復雜軟件架構設計工作。REST的思想充分利用了現有的HTTP技術(shù)的網(wǎng)絡(luò )能力。在德國電視臺上曾經(jīng)出現過(guò)一個(gè)這樣的五十萬(wàn)歐元智力題:如何實(shí)現網(wǎng)絡(luò )服務(wù)才能充分利用現有的HTTP協(xié)議?該問(wèn)題給出了四個(gè)答案:去問(wèn)微軟;WSDL2.0/SOAP1.2;WS-Transfer;根本沒(méi)有。這個(gè)問(wèn)題告訴我們HTTP并不是一個(gè)簡(jiǎn)單的數據傳來(lái)傳去的協(xié)議,而是一個(gè)聰明的會(huì )表現自己的協(xié)議,這也許是REST = Representational State Transfer的真正含義。

實(shí)際上目前很多大公司已經(jīng)采用了REST技術(shù)作為網(wǎng)絡(luò )服務(wù),如Google、Amazon等。在Java語(yǔ)言中重要的兩個(gè)以SOAP技術(shù)開(kāi)始的網(wǎng)絡(luò )服務(wù)框架XFire和Axis也把REST作為自己的另一種選擇。它們的新的項目分別是Apache CXF Axis2 。Java語(yǔ)言也制定關(guān)于REST網(wǎng)絡(luò )服務(wù)規范:JAX-RS: Java API for RESTful Web Services (JSR 311)。相信還會(huì )出現更多與REST相關(guān)的激動(dòng)人心的信息。

REST與AJAX技術(shù)

盡管AJAX技術(shù)的出現才不到兩年時(shí)間,但是AJAX技術(shù)遵循了REST的一些重要原則。AJAX技術(shù)充分利用了HTTP來(lái)獲取網(wǎng)絡(luò )資源并且實(shí)現了HTTP沒(méi)有的對于異步數據進(jìn)行傳輸的功能。AJAX技術(shù)還使得軟件更好地實(shí)現分布性功能,在一個(gè)企業(yè)內只要一個(gè)人下載了AJAX引擎,其它企業(yè)內部的人員,就可以共享該資源了。AJAX技術(shù)遵守REST準則的應用程序中簡(jiǎn)單和可伸縮的架構,凡是采用AJAX技術(shù)的頁(yè)面簡(jiǎn)潔而又豐富,一個(gè)頁(yè)面表現了豐富多彩的形態(tài)。

AJAX技術(shù)還使用了一種不同于XML格式的JSON文件格式,這個(gè)意義在哪里呢?在REST軟件架構下我們不能對于XML文件進(jìn)行序列化處理,這樣程序員必須要使用自己的XML綁定框架。而以序列化的JavaScript對象為基礎的JSON已經(jīng)獲得了廣泛認可,它被認為能以遠比XML更好的方式來(lái)序列化和傳輸簡(jiǎn)單數據結構,而且它更簡(jiǎn)潔。這對REST是一個(gè)極大貢獻和補充。

當前的網(wǎng)絡(luò )應用軟件還違背了REST的“無(wú)狀態(tài)服務(wù)器”約束。REST服務(wù)器只知道自己的狀態(tài)。REST不關(guān)心客戶(hù)端的狀態(tài),客戶(hù)端的狀態(tài)自己來(lái)管理,這是AJAX技術(shù)的應用之地。通過(guò)AJAX技術(shù),可以發(fā)揮有狀態(tài)網(wǎng)絡(luò )客戶(hù)機的優(yōu)勢。而REST的服務(wù)器關(guān)心的是從所有網(wǎng)絡(luò )客戶(hù)端發(fā)送到服務(wù)器操作的順序。這樣使得互聯(lián)網(wǎng)這樣一個(gè)巨大的網(wǎng)絡(luò )得到有序的管理。

REST與Rails框架

Ruby on Rails框架(簡(jiǎn)稱(chēng)Rails或者Rails框架)是一個(gè)基于Ruby語(yǔ)言的越來(lái)越流行的網(wǎng)絡(luò )應用軟件開(kāi)發(fā)框架。它提供了關(guān)于REST最好的支持,也是當今應用REST最成功的一個(gè)軟件開(kāi)發(fā)框架。Rails框架(從版本1.2.x起)成為了第一個(gè)引入REST作為核心思想的主流網(wǎng)絡(luò )軟件開(kāi)發(fā)框架。在Rails框架的充分利用了REST軟件架構之后,人們更加堅信REST的重要性和必要性。Rails利用REST軟件架構思想對網(wǎng)絡(luò )服務(wù)也提供了一流的支持。從最直觀(guān)的角度看待REST,它是網(wǎng)絡(luò )服務(wù)最理想的手段,但是Rails框架把REST帶到了網(wǎng)絡(luò )應用軟件開(kāi)發(fā)框架。這是一次飛躍,讓REST的思想從網(wǎng)絡(luò )服務(wù)的應用提升到了網(wǎng)絡(luò )應用軟件開(kāi)發(fā)。利用REST思想的simply_restful插件已經(jīng)成為了Rails框架的核心內容。

REST安全性

我們把現有基于SOAP的網(wǎng)絡(luò )服務(wù)和基于REST/HTTP網(wǎng)絡(luò )服務(wù)作個(gè)比喻,前者是一種傳統的寄信方式,而后者是現代網(wǎng)絡(luò )的電子郵件方式。要是是寄信和電子郵件都有病毒存在的話(huà),傳統的寄信被送到對方就很危險,而電子郵件是開(kāi)發(fā)的,電子郵件供應商比如Google為我們檢查了電子郵件是否有病毒。這里并不是說(shuō)明SOAP網(wǎng)絡(luò )服務(wù)消息包含義病毒,而是說(shuō)明HTTP是無(wú)法處理SOAP信息包究竟好不好,需要額外的軟件工具解決這一問(wèn)題,包括防火墻也用不上和管不了。

REST/HTTP網(wǎng)絡(luò )服務(wù)的信息包可以被防火墻理解和控制。你可以按照操作和鏈接進(jìn)行過(guò)濾信息包,如你可以規定從外部來(lái)的只能讀?。℅ET操作)自己服務(wù)器的資源。這樣對于系統管理員而言使得軟件管理更為簡(jiǎn)單。REST的安全性還可以利用傳輸安全協(xié)議SSL/TLS、基本和摘要式認證(Basic und Digest Authentication)。除了這些REST自身的安全性功能外,還可以利用像基于信息的Web Services Security(JSR 155)作為REST不錯的補充。

參考文獻

中文參考文獻Roy Thomas Fielding博士論文中文版本Roy Thomas Fielding博士論文英文版本
作者簡(jiǎn)介:駱古道,網(wǎng)名Cnruby,八十年代初畢業(yè)于西北工業(yè)大學(xué)數理力學(xué)系,1988年公派留學(xué)德國,從事組合最優(yōu)化理論研究,從九十年代初期起一直致力于計算機領(lǐng)域軟件開(kāi)發(fā)、設計和管理等方面工作,個(gè)人博客為“道喜技術(shù)日記”。

1 條回復

回復

REST!= CRUD 發(fā)表人 eisen hower 發(fā)表于 2007年5月28日 下午9時(shí)37分
  1. 返回頂部

    REST!= CRUD

    2007年5月28日 下午9時(shí)37分 發(fā)表人 eisen hower

    REST代表更多的是狀態(tài)的遷移!

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Web開(kāi)發(fā)技術(shù)發(fā)展歷史
什么才是真正的 RESTful 架構?
【程序思考】RIA 對于 java 在 web 開(kāi)發(fā)領(lǐng)域是否是一個(gè)轉機? - mulder...
Introduction of REST & RESTful WebServices
對 5 個(gè) Go Web 框架的調查
白話(huà)REST
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久