SOA的權(quán)威人物Thomas ERL經(jīng)典著作! 〉谝槐救鎸⒃O(shè)計(jì)與構(gòu)建RESTful服務(wù)作為面向服務(wù)的解決方案和面向服務(wù)架構(gòu)(SOA)的書籍! ⊥ㄟ^REST構(gòu)建以Web為中心的SOA的權(quán)威指南。
作者簡介 Thomas Erl 國際IT暢銷書作家,世界上最暢銷的SOA書籍的作者,Arcitura教育集團(tuán)的創(chuàng)始人。其著作在全球的印刷量超過16萬冊,涉及的主題從云計(jì)算、語義網(wǎng)技術(shù) 作者簡介 Thomas Erl 國際IT暢銷書作家,世界上最暢銷的SOA書籍的作者,Arcitura教育集團(tuán)的創(chuàng)始人。其著作在全球的印刷量超過16萬冊,涉及的主題從云計(jì)算、語義網(wǎng)技術(shù)到SOA。他曾出訪過20多個(gè)國家,擔(dān)任各種活動(dòng)的演講者和導(dǎo)師,定期參加SOA、Cloud + Service技術(shù)研討會和Gartner會議。Thomas的100多篇文章和采訪發(fā)表在大量出版物上,其中包括《華爾街日報(bào)》和《CIO雜志》。 Benjamin Carlyle Invensys Rail公司SystematICS服務(wù)框架創(chuàng)始開發(fā)者,做軟件開發(fā)員、軟件架構(gòu)師及系統(tǒng)工程師多年。從2004年起開始專注于REST和服務(wù)技術(shù)的整合。他出席過國際SOA研討會,并為關(guān)于REST風(fēng)格設(shè)計(jì)的國際研討會擔(dān)任技術(shù)委員。他的成就在于幫助啟發(fā)了Java的RESTlet框架,并創(chuàng)造了描述REST統(tǒng)一契約結(jié)構(gòu)的“REST三角”(REST Triangle)一詞。他對REST及相關(guān)風(fēng)格的理論和實(shí)際應(yīng)用以及更加廣泛的軟件及系統(tǒng)架構(gòu)都有非常深入的見解。 Cesare Pautasso 瑞士盧加諾大學(xué)大學(xué)信息學(xué)院的助理教授。此前,曾任IBM蘇黎世研究實(shí)驗(yàn)室研究員和蘇黎世聯(lián)邦理工大學(xué)資深研究員。他的研究組著重于建立實(shí)驗(yàn)系統(tǒng),探索REST架構(gòu)風(fēng)格和模型驅(qū)動(dòng)的軟件組合技術(shù)的交集、業(yè)務(wù)流程管理及動(dòng)態(tài)自組織的面向服務(wù)架構(gòu)。他是IEEE和ACM的活躍成員,還在WWW會議上啟動(dòng)了一系列關(guān)于REST風(fēng)格設(shè)計(jì)(WS-REST)的國際研討會,并擔(dān)任第九屆IEEE的Web Service歐洲會議(ECOWS2011)的大會主席。 Raj Balasubramanian IBM軟件部業(yè)務(wù)流程優(yōu)化(BPO)團(tuán)隊(duì)的資深技術(shù)人員,專注于跨行業(yè)交付SOA/BPM/Cloud解決方案。他在IBM DeveloperWorks上發(fā)表了大量的文章,并在各種主題的行業(yè)會議上發(fā)表演講。他的興趣在分布式系統(tǒng)、將Web結(jié)構(gòu)應(yīng)用于方案設(shè)計(jì),及使用正式的模型和分析來推論大型系統(tǒng)。譯者簡介馬國耀 IT行業(yè)從業(yè)十余年,做過開發(fā)工程師、項(xiàng)目經(jīng)理、架構(gòu)師、售前、咨詢等;從2007年開始,一直從事SOA相關(guān)的設(shè)計(jì)與咨詢工作,擅長SOA理論,ESB、BPM、CEP相關(guān)產(chǎn)品與技術(shù),是IBM認(rèn)證的SOA解決方案架構(gòu)師。熱愛翻譯與分享,自2009年開始擔(dān)任InfoQ中文站的社區(qū)編輯,現(xiàn)任云計(jì)算與SOA社區(qū)主編,譯著有《云計(jì)算與SOA》。在2002年和2007年分別獲得吉林大學(xué)(少年班)工學(xué)學(xué)士學(xué)位、北京大學(xué)理學(xué)碩士學(xué)位。申健 2005年畢業(yè)于南京大學(xué),之后一直在跨國企業(yè)從事研發(fā)和管理工作,涉及電信、銀行、互聯(lián)網(wǎng)等領(lǐng)域,擅長用不同技術(shù)實(shí)現(xiàn)面向服務(wù)的分布式架構(gòu)設(shè)計(jì)和整體解決方案,熟悉J2EE、Python、嵌入式
第1章 介紹
1.1 關(guān)于本書
1.1.1 本書的目標(biāo)讀者
1.1.2 本書不會覆蓋的內(nèi)容
1.2 推薦閱讀
1.3 本書的組織方式
1.3.1 第一部分:基礎(chǔ)知識
1.3.2 第二部分:REST風(fēng)格的面向服務(wù)
1.3.3 第三部分:REST環(huán)境下面向服務(wù)的分析與設(shè)計(jì)
1.3.4 第四部分:REST服務(wù)組合
1.3.5 第五部分:補(bǔ)充
1.3.6 第六部分:附錄
1.4 約定
1.4.1 灰色的使用
1.4.2 設(shè)計(jì)約束、原則和模式:頁碼參考
第1章 介紹
1.1 關(guān)于本書
1.1.1 本書的目標(biāo)讀者
1.1.2 本書不會覆蓋的內(nèi)容
1.2 推薦閱讀
1.3 本書的組織方式
1.3.1 第一部分:基礎(chǔ)知識
1.3.2 第二部分:REST風(fēng)格的面向服務(wù)
1.3.3 第三部分:REST環(huán)境下面向服務(wù)的分析與設(shè)計(jì)
1.3.4 第四部分:REST服務(wù)組合
1.3.5 第五部分:補(bǔ)充
1.3.6 第六部分:附錄
1.4 約定
1.4.1 灰色的使用
1.4.2 設(shè)計(jì)約束、原則和模式:頁碼參考
1.4.3 設(shè)計(jì)目標(biāo)
1.4.4 符號圖例
1.5 附加信息
1.5.1 更新、勘誤和資源
1.5.2 主詞匯表
1.5.3 面向服務(wù)
1.5.4 什么是REST
1.5.5 引用的規(guī)范
1.5.6 服務(wù)技術(shù)雜志
1.5.7 SOASchool.com SOA認(rèn)證專家(SOACP)
1.5.8 CloudSchool.com云認(rèn)證(CCP)專家
1.5.9 通知服務(wù)
第2章 案例研究背景
2.1 如何使用案例研究
2.2 案例研究背景之一:中西部大學(xué)聯(lián)盟(MUA)
2.2.1 歷史
2.2.2 IT環(huán)境
2.2.3 業(yè)務(wù)目標(biāo)和障礙
2.3 案例研究背景之二:KioskEtc有限公司
2.3.1 歷史
2.3.2 IT環(huán)境
2.3.3 業(yè)務(wù)目標(biāo)和障礙
第一部分 基礎(chǔ)知識
第3章 服務(wù)簡介
3.1 服務(wù)術(shù)語
3.1.1 服務(wù)
3.1.2 服務(wù)契約
3.1.3 服務(wù)能力
3.1.4 服務(wù)消費(fèi)者
3.1.5 服務(wù)代理
3.1.6 服務(wù)組裝
3.2 服務(wù)術(shù)語上下文
3.2.1 服務(wù)和REST
3.2.2 服務(wù)和SOA
3.2.3 REST服務(wù)和SOA
第4章 SOA術(shù)語和概念
4.1 基本術(shù)語和概念
4.1.1 面向服務(wù)的計(jì)算
4.1.2 面向服務(wù)
4.1.3 面向服務(wù)架構(gòu)(SOA)
4.1.4 SOA宣言
4.1.5 服務(wù)
4.1.6 云計(jì)算
4.1.7 IT資源
4.1.8 服務(wù)模型
4.1.9 服務(wù)目錄
4.1.10 服務(wù)集
4.1.11 候選服務(wù)
4.1.12 服務(wù)契約
4.1.13 與服務(wù)相關(guān)的粒度
4.1.14 服務(wù)概要
4.1.15 SOA設(shè)計(jì)模式
4.2 擴(kuò)展閱讀
第5章 REST約束和目標(biāo)
5.1 REST約束
5.1.1 客戶機(jī)-服務(wù)器
5.1.2 無狀態(tài)
5.1.3 緩存
5.1.4 接口/統(tǒng)一契約
5.1.5 分層系統(tǒng)
5.1.6 隨需應(yīng)變代碼
5.2 REST架構(gòu)風(fēng)格的目標(biāo)
5.2.1 性能
5.2.2 可伸縮性
5.2.3 簡單性
5.2.4 可修改性
5.2.5 可視性
5.2.6 可移植性
5.2.7 可靠性
第二部分 REST風(fēng)格的面向服務(wù)
第6章 REST服務(wù)契約
6.1 統(tǒng)一契約元素
6.1.1 資源標(biāo)識符語法
6.1.2 方法
6.1.3 媒體類型
6.2 REST服務(wù)能力和REST服務(wù)契約
6.3 REST服務(wù)契約與非REST服務(wù)契約
6.3.1 帶有定制服務(wù)契約的非REST服務(wù)
6.3.2 REST服務(wù)與統(tǒng)一契約
6.3.3 HTTP消息傳輸與SOAP消息傳輸之比較
6.3.4 REST服務(wù)契約與WSDL的結(jié)合?
6.4 超媒體角色
6.5 REST服務(wù)契約和后期綁定
第7章 用REST實(shí)現(xiàn)面向服務(wù)
7.1 “SOA或REST”還是“SOA與REST”?
7.2 設(shè)計(jì)目標(biāo)
7.2.1 提升內(nèi)在互操作性
7.2.2 增強(qiáng)聯(lián)邦
7.2.3 提升廠商選擇多樣性
7.2.4 提升業(yè)務(wù)與技術(shù)對齊
7.2.5 提升投資回報(bào)率
7.2.6 提升組織敏捷性
7.2.7 降低IT負(fù)擔(dān)
7.2.8 通用目標(biāo)
7.3 設(shè)計(jì)原則與約束
7.3.1 標(biāo)準(zhǔn)化服務(wù)契約
7.3.2 服務(wù)松耦合
7.3.3 服務(wù)抽象
7.3.4 服務(wù)可重用性
7.3.5 服務(wù)自治
7.3.6 服務(wù)無狀態(tài)
7.3.7 服務(wù)可發(fā)現(xiàn)性
7.3.8 服務(wù)可組合性
7.3.9 常見沖突
第三部分 REST環(huán)境下面向服務(wù)的分析與設(shè)計(jì)
第8章 主流SOA方法論和REST
8.1 服務(wù)目錄分析
8.2 面向服務(wù)的分析(服務(wù)建模)
8.3 面向服務(wù)的設(shè)計(jì)(服務(wù)契約)
8.4 服務(wù)邏輯設(shè)計(jì)
8.5 服務(wù)發(fā)現(xiàn)
8.6 服務(wù)版本控制和退役
第9章 REST服務(wù)分析與服務(wù)建!
9.1 統(tǒng)一契約建模和REST服務(wù)目錄建!
9.1.1 REST約束和統(tǒng)一契約建!
9.1.2 REST服務(wù)集中化和規(guī)范化
9.2 REST服務(wù)建模
9.2.1 REST服務(wù)能力粒度
9.2.2 資源與實(shí)體
9.2.3 REST服務(wù)建模流程
9.2.4 第1步:分解業(yè)務(wù)流程(分解為細(xì)粒度活動(dòng))
9.2.5 第2步:過濾掉不適合的活動(dòng)
9.2.6 第3步:識別無關(guān)性候選服務(wù)
9.2.7 第4步:識別特定于流程的邏輯
9.2.8 第5步:識別資源
9.2.9 第6步:將服務(wù)能力與方法和資源相關(guān)聯(lián)
9.2.10 第7步:應(yīng)用面向服務(wù)
9.2.11 第8步:識別候選服務(wù)組合
9.2.12 第9步:分析流程處理需求
9.2.13 第10步:定義候選公用服務(wù)
9.2.14 第11步:將以公用功能為中心的服務(wù)能力與方法和資源相關(guān)聯(lián)
9.2.15 第12步:應(yīng)用面向服務(wù)
9.2.16 第13步:修改候選服務(wù)組合
9.2.17 第14步:修改資源定義
9.2.18 第15步:修改候選能力分組
9.2.19 其他考慮因素
第10章 面向服務(wù)的設(shè)計(jì)和REST
10.1 統(tǒng)一契約設(shè)計(jì)考慮
10.1.1 設(shè)計(jì)并標(biāo)準(zhǔn)化方法
10.1.2 設(shè)計(jì)HTTP頭并進(jìn)行標(biāo)準(zhǔn)化
10.1.3 設(shè)計(jì)HTTP響應(yīng)代碼并進(jìn)行標(biāo)準(zhǔn)化
10.1.4 設(shè)計(jì)媒體類型
10.1.5 設(shè)計(jì)媒體類型模式
10.2 REST服務(wù)契約設(shè)計(jì)
10.2.1 基于服務(wù)模型設(shè)計(jì)服務(wù)
10.2.2 設(shè)計(jì)資源標(biāo)識符并進(jìn)行標(biāo)準(zhǔn)化
10.2.3 在REST約束下設(shè)計(jì)及REST約束的標(biāo)準(zhǔn)化
10.3 復(fù)雜方法的設(shè)計(jì)
10.3.1 無狀態(tài)的復(fù)雜方法
10.3.2 有狀態(tài)的復(fù)雜方法
第四部分 REST服務(wù)組合
第11章 REST基礎(chǔ)服務(wù)組合
11.1 服務(wù)組合術(shù)語
11.1.1 組合和組合實(shí)例
11.1.2 組合成員和控制器
11.1.3 服務(wù)活動(dòng)
11.1.4 組合啟動(dòng)者
11.1.5 點(diǎn)對點(diǎn)數(shù)據(jù)交換和組合
11.2 服務(wù)組合的設(shè)計(jì)影響
11.2.1 面向服務(wù)原則和組合設(shè)計(jì)
11.2.2 REST約束和組合設(shè)計(jì)
11.3 組合層次結(jié)構(gòu)和分層
11.3.1 實(shí)體服務(wù)組成任務(wù)服務(wù)
11.3.2 實(shí)體服務(wù)組成實(shí)體服務(wù)
11.4 REST服務(wù)組合設(shè)計(jì)的若干考慮
11.4.1 同步和異步服務(wù)組合
11.4.2 冪等的服務(wù)活動(dòng)
11.4.3 組合的逗留狀態(tài)
11.4.4 組合參與者之間的綁定
11.5 按步驟分解的服務(wù)活動(dòng)
11.5.1 請求購買機(jī)票
11.5.2 驗(yàn)證所請求的航班詳情
11.5.3 確認(rèn)航班座位
11.5.4 生成單據(jù)
11.5.5 創(chuàng)建機(jī)票
11.5.6 總結(jié)
第12章 REST高級服務(wù)組合
12.1 服務(wù)組合與無狀態(tài)
12.1.1 采用服務(wù)無狀態(tài)的組合設(shè)計(jì)
12.1.2 采用無狀態(tài)的組合設(shè)計(jì)
12.2 跨服務(wù)的REST事務(wù)
12.2.1 REST友好的原子服務(wù)事務(wù)
12.2.2 REST友好的補(bǔ)償服務(wù)事務(wù)
12.2.3 非REST友好的原子服務(wù)事務(wù)
12.3 事件驅(qū)動(dòng)的REST交互
12.3.1 事件驅(qū)動(dòng)的消息機(jī)制
12.3.2 消息輪詢
12.4 帶有動(dòng)態(tài)綁定和邏輯延遲的服務(wù)組合
12.4.1 跨規(guī)范化服務(wù)的非規(guī)范化能力
12.4.2 深化組合
12.4.3 動(dòng)態(tài)地綁定公共屬性
12.4.4 運(yùn)行時(shí)邏輯延遲
12.5 跨服務(wù)目錄的服務(wù)組合
12.5.1 REST的目錄端點(diǎn)
12.5.2 基線標(biāo)準(zhǔn)化的服務(wù)目錄之間的動(dòng)態(tài)綁定
第13章 REST服務(wù)組合之案例研究
13.1 重溫授予學(xué)生獎(jiǎng)項(xiàng)流程
13.2 提交申請和任務(wù)服務(wù)調(diào)用
13.3 授予學(xué)生獎(jiǎng)項(xiàng)服務(wù)組合實(shí)例(評審前的服務(wù)活動(dòng)視圖)
13.3.1 步驟1:從組合啟動(dòng)者到授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)(A)
13.3.2 步驟2:從授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)到事跡實(shí)體服務(wù)(B)
13.3.3 步驟3:從事跡實(shí)體服務(wù)到授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)(B)
13.3.4 步驟4:從授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)到獎(jiǎng)項(xiàng)實(shí)體服務(wù)(E)
13.3.5 步驟5:從獎(jiǎng)項(xiàng)實(shí)體服務(wù)到授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)(E)
13.3.6 步驟6:從授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)到獎(jiǎng)項(xiàng)實(shí)體服務(wù)(E)
13.3.7 步驟7:從獎(jiǎng)項(xiàng)實(shí)體服務(wù)到授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)(E)
13.3.8 步驟8:從授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)到學(xué)生實(shí)體服務(wù)(F)
13.3.9 步驟9:從學(xué)生實(shí)體服務(wù)到授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)(F)
13.3.10 步驟10:從授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)到學(xué)生成績單實(shí)體服務(wù)(F)
13.3.11 步驟11:從學(xué)生成績單實(shí)體服務(wù)到授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)(F)
13.3.12 步驟12:從授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)到組合啟動(dòng)者(A)
13.4 評審待定的申請和任務(wù)服務(wù)調(diào)用
13.5 授予學(xué)生獎(jiǎng)項(xiàng)服務(wù)組合實(shí)例(評審后的服務(wù)活動(dòng)視圖)
13.5.1 步驟1:從組合啟動(dòng)者到授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)(L)
13.5.2 步驟2:從授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)到通知公用服務(wù)(N)
13.5.3 步驟3:從通知公用服務(wù)到學(xué)生實(shí)體服務(wù)(N)
13.5.4 步驟4:從學(xué)生實(shí)體服務(wù)到通知公用服務(wù)(N)
13.5.5 步驟5:從通知公用服務(wù)到授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)(N)
13.5.6 中間步驟:從授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)到事務(wù)協(xié)調(diào)者(P,Q)
13.5.7 中間步驟:從事務(wù)協(xié)調(diào)者到授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)(P,Q)
13.5.8 步驟6:從授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)到授予實(shí)體服務(wù)(P)
13.5.9 中間步驟:從授予實(shí)體服務(wù)到事務(wù)協(xié)調(diào)者(P)
13.5.10 中間步驟:從事務(wù)協(xié)調(diào)者到授予實(shí)體服務(wù)(P)
13.5.11 步驟7:從授予實(shí)體服務(wù)到授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)(Q)
13.5.12 步驟8:從授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)到學(xué)生成績單實(shí)體服務(wù)(Q)
13.5.13 中間步驟:從學(xué)生成績單實(shí)體服務(wù)到事務(wù)協(xié)調(diào)者(Q)
13.5.14 中間步驟:從事務(wù)協(xié)調(diào)者到學(xué)生成績單實(shí)體服務(wù)(Q)
13.5.15 步驟9:從學(xué)生成績單實(shí)體服務(wù)到授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)(Q)
13.5.16 中間步驟:從授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)到事務(wù)協(xié)調(diào)者(P,Q)
13.5.17 中間步驟:從事務(wù)協(xié)調(diào)者到授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)(P,Q)
13.5.18 步驟10:從授予學(xué)生獎(jiǎng)項(xiàng)任務(wù)服務(wù)到組合啟動(dòng)者(L)
第五部分 補(bǔ)充
第14章 SOA與REST的設(shè)計(jì)模式
14.1 受REST啟發(fā)的SOA設(shè)計(jì)模式
14.1.1 內(nèi)容協(xié)商
14.1.2 端點(diǎn)重定向
14.1.3 實(shí)體鏈接
14.1.4 冪等能力
14.1.5 輕量級端點(diǎn)
14.1.6 可重用契約
14.1.7 統(tǒng)一契約
14.2 其他相關(guān)的SOA設(shè)計(jì)模式
14.2.1 契約集中化
14.2.2 契約去規(guī)范化
14.2.3 域目錄
14.2.4 模式集中化
14.2.5 狀態(tài)消息機(jī)制
14.2.6 校驗(yàn)抽象
第15章 REST服務(wù)版本控制
15.1 版本控制基礎(chǔ)
15.1.1 REST服務(wù)契約的兼容性
15.1.2 統(tǒng)一契約方法的兼容性
15.1.3 統(tǒng)一契約媒體類型的兼容性
15.2 版本標(biāo)識符
15.2.1 使用版本標(biāo)識符
15.2.2 版本標(biāo)識符和統(tǒng)一契約
第16章 統(tǒng)一契約概要
16.1 統(tǒng)一契約概要模板
16.1.1 統(tǒng)一契約層結(jié)構(gòu)
16.1.2 方法概要結(jié)構(gòu)
16.1.3 媒體類型概要結(jié)構(gòu)
16.2 REST服務(wù)概要考慮
第六部分 附錄
附錄A 案例研究結(jié)論
附錄B 支持Web的工業(yè)標(biāo)準(zhǔn)
附錄C REST約束參考
附錄D 面向服務(wù)原則參考
附錄E SOA設(shè)計(jì)模式參考
附錄F 狀態(tài)的概念和類型
附錄G 帶注解的SOA宣言
附錄H 其他資源
書中提到的模式的作者
關(guān)于序的作者
關(guān)于作者