出版時(shí)間:2011-10 出版社:東南大學(xué)出版社 作者:Jim Webber,Savas Parastatidis,Ian Robinson 頁數(shù):388 譯者:李錕,俞黎敏,馬鈞,崔毅
Tag標(biāo)簽:無
內(nèi)容概要
為何典型的企業(yè)項(xiàng)目無法像你為Web所開發(fā)的項(xiàng)目那樣運(yùn)行得如此平滑?對(duì)于建造分布式和企業(yè)級(jí)的應(yīng)用來說,REST架構(gòu)風(fēng)格真地提供了一個(gè)可行的替代選擇嗎?
在《REST實(shí)戰(zhàn)》這本富有洞察力的書中,三位SOA專家對(duì)于REST進(jìn)行了講求實(shí)際的解釋,并且通過將Web的指導(dǎo)原理應(yīng)用到普通的企業(yè)計(jì)算問題中,向你展示了如何開發(fā)簡(jiǎn)單的、優(yōu)雅的分布式超媒體系統(tǒng)。你將會(huì)學(xué)習(xí)到很多技術(shù),并且隨著一家典型的公司從最初的小企業(yè)逐漸成長(zhǎng)為全球化的企業(yè),使用這些Web技術(shù)和模式來解決這家公司在成長(zhǎng)過程中產(chǎn)生的各種需求。本書由Jim
Webber等著。
作者簡(jiǎn)介
Jim
Webber,ThoughtWorks公司的一位技術(shù)主管,工作于可信賴的分布式系統(tǒng)。 Savas
Parastatidis,微軟公司的一位架構(gòu)師,工作于大規(guī)模的數(shù)據(jù)密集型和計(jì)算密集型應(yīng)用。 Ian
Robinson,ThoughtWorks公司的首席咨詢顧問,幫助客戶從奠基階段到運(yùn)營階段創(chuàng)建可持續(xù)的面向服務(wù)開發(fā)能力。
書籍目錄
序言
前言
第1章 將Web作為建造分布式系統(tǒng)的平臺(tái)
Web的架構(gòu)
從資源的角度思考
從Web架構(gòu)到REST架構(gòu)風(fēng)格
Web作為一個(gè)應(yīng)用平臺(tái)
Web的友好性和Richardson的成熟度模型
起航
第2章介紹 Restbucks:如何以Web風(fēng)格獲得一杯咖啡
Restbucks:一家有著全球抱負(fù)的小咖啡店
Web現(xiàn)身了
第3章 基礎(chǔ)的Web集成
減肥的感覺真好!
一個(gè)簡(jiǎn)單的咖啡訂購系統(tǒng)
URI模板
URI隧道技術(shù)
POX:基于HTTP之上的普通老式XML
開始行動(dòng)
第4章 CRUD式Web服務(wù)
將Orcler(訂單)建模為資源
建造CRUD式服務(wù)
消費(fèi)CRUD式服務(wù)
通過WADL自動(dòng)消費(fèi)服務(wù)
CRuD雖好,但還可以更好
第5章 超媒體服務(wù)
超媒體原則
超媒體格式
契約
超媒體協(xié)議
實(shí)現(xiàn)超媒體服務(wù)
用Java建造訂購服務(wù)
在.NET中建造訂購服務(wù)
Ready、Set和Action
第6章 向外擴(kuò)展
回到基礎(chǔ)
創(chuàng)建可緩存的內(nèi)容
在.NET中實(shí)現(xiàn)緩存
保持新鮮
第7章 Atom聯(lián)合格式
格式
將Atom用于事件驅(qū)動(dòng)系統(tǒng)
用Java建造Atom服務(wù)
在.NET中創(chuàng)建Atom服務(wù)
Atom無處不在?
反思
第8章 Atom發(fā)布協(xié)議
Atom發(fā)布協(xié)議
使用AtomPub實(shí)現(xiàn)訂單履行
在.NET中實(shí)現(xiàn)AtomPub
一個(gè)多功能的協(xié)議
第9章 Web安全
HTTP安全要點(diǎn)
身份標(biāo)識(shí)和OpenID協(xié)議
0Auth協(xié)議
服務(wù)的黑客攻擊和防御
最后的思考
第10章 語義
語法vs.語義
信息的結(jié)構(gòu)和表述
語義網(wǎng)
微格式
鏈接數(shù)據(jù)和Web
指導(dǎo)
第1 章 Web和WS-*協(xié)議棧
Wleb Services是邪惡的?
SOAP:全部真相
wsDL:不過是另一種對(duì)象接口定義語言(Object IDL)
兩個(gè)錯(cuò)誤疊加無法得到正確結(jié)果
安全的,可靠的,事務(wù)性的
Web services的安魂曲?
第12章 為Web建造案例
更多的銀彈是不存在的
建造并運(yùn)行基于Web的服務(wù)
沒有度量就沒有架構(gòu)
推銷Web
出發(fā)去建造
章節(jié)摘錄
版權(quán)頁: 插圖: 安全性和冪等性 我們?cè)诘?章中了解到,GET請(qǐng)求很特殊,因?yàn)樗哂屑劝踩謨绲鹊奶匦?。PUT請(qǐng)求和DEL ETE請(qǐng)求都是冪等的,但是它們都不安全,POST請(qǐng)求則是既不安全也不冪等。只有GET請(qǐng)求在重復(fù)調(diào)用時(shí)能返回相同的結(jié)果,并且不會(huì)產(chǎn)生需要消費(fèi)者負(fù)責(zé)的副作用。 對(duì)于GET請(qǐng)求,重復(fù)發(fā)送失敗的請(qǐng)求不會(huì)改變應(yīng)用的整體行為。例如,如果分布式應(yīng)用的某個(gè)部分在GET操作過程中崩潰了,或者在收到對(duì)GET的響應(yīng)之前網(wǎng)絡(luò)中斷了,那么客戶只要重新發(fā)出同樣的請(qǐng)求,并不會(huì)改變它與服務(wù)器交互的語義。 籠統(tǒng)來講,PUT和DELETE請(qǐng)求也同樣如此。對(duì)某個(gè)資源的狀態(tài)進(jìn)行一次絕對(duì)更新或者徹底將它刪除,無論該操作是進(jìn)行一次還是多次,結(jié)果將都是一樣的。如果PUT和DELETE請(qǐng)求的失敗是因?yàn)樗矔r(shí)的網(wǎng)絡(luò)或者服務(wù)器出錯(cuò)(如503響應(yīng)),那么該操作就可以安全地重復(fù)。 然而,由于PUT和DELETE請(qǐng)求會(huì)有副作用(因?yàn)樗鼈儾皇前踩模?,如果服?wù)器一開始就拒絕了某個(gè)操作,可能就不能隨時(shí)重復(fù)該操作了。例如,我們已經(jīng)見過當(dāng)消費(fèi)者和服務(wù)看到的資源狀態(tài)不一致時(shí)如何產(chǎn)生409響應(yīng)的(僅僅重復(fù)執(zhí)行相同的交互是沒有用的)。不過,HTTP提供了其他有用的特性,當(dāng)狀態(tài)發(fā)生變化的時(shí)候,對(duì)我們會(huì)很有幫助。 校正資源狀態(tài) 在分布式應(yīng)用中,經(jīng)常會(huì)出現(xiàn)多個(gè)消費(fèi)者與同一個(gè)資源交互的情況,每一位消費(fèi)者都不理會(huì)其他人所做的修改。除了這些由消費(fèi)者驅(qū)動(dòng)的變化,內(nèi)部的服務(wù)行為也會(huì)導(dǎo)致資源狀態(tài)發(fā)生消費(fèi)者所不知道的變化。在這兩種情況下,消費(fèi)者對(duì)資源狀態(tài)的了解可能會(huì)變得與服務(wù)的資源狀態(tài)不一致。除了預(yù)期有些不一致之外,如果消費(fèi)者對(duì)資源狀態(tài)的了解沒有及時(shí)更新,它發(fā)出的變更請(qǐng)求就會(huì)得到不符合預(yù)期的結(jié)果,無論是重復(fù)計(jì)算代價(jià)昂貴的請(qǐng)求,還是覆蓋以及丟失其他消費(fèi)者的變更,都是如此。 HTTP提供了一種簡(jiǎn)單但強(qiáng)大的機(jī)制,可以按照實(shí)體標(biāo)簽(entity tag)與條件請(qǐng)求頭信息(conditional request header)的形式,對(duì)所期待的資源狀態(tài)進(jìn)行校正(并防止產(chǎn)生競(jìng)爭(zhēng))。一個(gè)實(shí)體標(biāo)簽值或者說ETag,就是一個(gè)不透明的字符串令牌,使服務(wù)器與資源關(guān)聯(lián)起來,以便在資源的生命周期中唯一標(biāo)識(shí)其狀態(tài)。當(dāng)資源發(fā)生變化時(shí),如果其頭信息中有一個(gè)或者多個(gè)發(fā)生變化,或者其實(shí)體消息體發(fā)生變化,實(shí)體標(biāo)簽就會(huì)相應(yīng)地發(fā)生變化,表明該狀態(tài)已經(jīng)被修改。 ETag用于將實(shí)體與同一個(gè)資源進(jìn)行對(duì)比。通過在條件請(qǐng)求頭信息(如If—Match或者If—None—Match請(qǐng)求頭信息)中提供一個(gè)實(shí)體標(biāo)簽值,消費(fèi)者就可以告訴服務(wù)器在應(yīng)用請(qǐng)求中提供的方法之前,應(yīng)該先測(cè)試一下與當(dāng)前資源狀態(tài)有關(guān)的先決條件。
編輯推薦
《REST實(shí)戰(zhàn):超媒體和系統(tǒng)架構(gòu)(中文版)》由東南大學(xué)出版社出版。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載