譯者序
緻謝
第1章 概述 1
1.1 本書中如何使用模式 2
1.2 涵蓋第1版主題的係列書籍 2
1.3 本書的組織形式 3
1.4 原則、約束條件和設計模式 4
1.5 附加信息 5
第2章 案例研究背景知識 7
2.1 如何應用案例研究 7
2.2 案例研究背景1:Transit Line Systems, Inc. 7
2.3 案例研究背景2:Midwest University Association 7
第一部分 基本原理
第3章 理解麵嚮服務 10
3.1 麵嚮服務簡介 10
3.1.1 業務自動化中的服務 11
3.1.2 服務是能力的集閤 12
3.1.3 麵嚮服務是一種設計範式 13
3.1.4 麵嚮服務的設計原則 15
3.2 麵嚮服務所解決的問題 16
3.2.1 竪井式應用架構 16
3.2.2 大量的浪費 18
3.2.3 缺乏效率 18
3.2.4 企業膨脹 19
3.2.5 産生復雜的基礎設施和錯綜復雜的企業架構 19
3.2.6 係統間集成成為永恒的挑戰 20
3.2.7 麵嚮服務的需求 20
3.2.8 增加大量可復用解決方案邏輯 21
3.2.9 削減應用個性化業務邏輯 21
3.2.10 削減業務邏輯的總量 22
3.2.11 本徵互操作性 22
3.3 麵嚮服務對企業的影響 23
3.3.1 麵嚮服務和“應用”的概念 23
3.3.2 麵嚮服務和“集成”的概念 24
3.3.3 服務組閤 25
3.4 麵嚮服務計算的目的和優勢 26
3.4.1 增強本徵互操作性 27
3.4.2 增強聯閤 28
3.4.3 增加供應商多元化選擇 29
3.4.4 同步提升業務與技術領域 30
3.4.5 提高投資迴報率 31
3.4.6 提高組織的業務敏捷性 32
3.4.7 減少IT成本 34
3.5 麵嚮服務的4個支撐點 34
3.5.1 團隊閤作 36
3.5.2 教育 36
3.5.3 紀律 36
3.5.4 平衡範圍 37
第4章 理解麵嚮服務架構 39
4.1 SOA的4個特性 40
4.1.1 業務驅動 40
4.1.2 供應商中立 41
4.1.3 企業中心化 42
4.1.4 組閤中心化 44
4.1.5 設計優先級 45
4.2 SOA的4種常見類型 46
4.2.1 服務架構 47
4.2.2 服務組閤架構 50
4.2.3 服務目錄架構 55
4.2.4 麵嚮服務的企業架構 58
4.3 麵嚮服務和SOA的最終結果 58
4.4 SOA項目和生命周期 60
4.4.1 方法論和項目交付的策略 62
4.4.2 SOA項目階段 62
4.4.3 SOA項目采用的計劃 65
4.4.4 服務目錄分析 65
4.4.5 麵嚮服務分析 (服務建模) 66
4.4.6 麵嚮服務設計(服務契約) 68
4.4.7 服務邏輯設計 69
4.4.8 服務開發 69
4.4.9 服務測試 69
4.4.10 服務部署和維護 71
4.4.11 服務使用和監控 71
4.4.12 服務發現 72
4.4.13 服務版本控製和退役 72
4.4.14 項目階段和組織角色 72
第5章 理解服務與微服務的層次 74
5.1 服務層次簡介 74
5.1.1 服務模型和服務層次 74
5.1.2 服務和候選服務能力 76
5.2 分解業務問題 76
5.2.1 功能分解 76
5.2.2 服務封裝 76
5.2.3 不可知上下文 76
5.2.4 不可知能力 79
5.2.5 功能抽象 79
5.2.6 實體抽象 80
5.2.7 非不可知上下文 80
5.2.8 微任務抽象和微服務 81
5.2.9 流程抽象和任務服務 81
5.3 構建麵嚮服務的解決方案 84
5.3.1 麵嚮服務和服務組閤 84
5.3.2 能力組閤和能力再組閤 84
5.3.3 邏輯集中與服務規範化 90
第二部分 麵嚮服務的分析與設計
第6章 Web服務及微服務的分析與建模 94
6.1 Web服務建模過程 94
6.1.1 步驟1:分解業務流程(使之成為細粒度操作) 95
6.1.2 步驟2:過濾不適操作 98
6.1.3 步驟3:定義候選實體服務 99
6.1.4 步驟4:識彆特定流程邏輯 101
6.1.5 步驟5:應用麵嚮服務 102
6.1.6 步驟6:識彆候選服務組閤 102
6.1.7 步驟7:分析處理需求 103
6.1.8 步驟8:定義候選公共服務 104
6.1.9 步驟9:定義候選微服務 105
6.1.10 步驟10:應用麵嚮服務 106
6.1.11 步驟11:修訂候選服務組閤 106
6.1.12 步驟12:修訂候選能力分組 106
第7章 REST服務及微服務的分析與建模 107
7.1 REST服務建模過程 107
7.1.1 步驟1:分解業務流程(使之成為細粒度操作) 109
7.1.2 步驟2:濾掉不適操作 109
7.1.3 步驟3:定義候選實體服務 110
7.1.4 步驟4:識彆特定流程邏輯 112
7.1.5 步驟5:識彆資源 113
7.1.6 步驟6:將服務能力與資源和方法相關聯 114
7.1.7 步驟7:應用麵嚮服務 116
7.1.8 步驟8:識彆候選服務組閤 117
7.1.9 步驟9:分析處理需求 118
7.1.10 步驟10:定義候選公共服務(並且關聯資源和方法) 119
7.1.11 步驟11:定義候選微服務(並且關聯資源和方法) 121
7.1.12 步驟12:應用麵嚮服務 121
7.1.13 步驟13:修訂候選服務組閤 121
7.1.14 步驟14:修改資源定義和候選能力分組 122
7.2 附加因素 123
7.2.1 統一契約建模和REST服務目錄建模 123
7.2.2 REST約束條件和統一契約建模 125
7.2.3 REST服務能力粒度 125
7.2.4 資源與實體 126
第8章 Web服務的服務API與契約設計 128
8.1 服務模型設計關注點 129
8.1.1 實體服務設計 129
8.1.2 公共服務設計 130
8.1.3 微服務設計 131
8.1.4 任務服務設計 131
8.2 Web服務設計指南 140
8.2.1 應用命名標準 140
8.2.2 應用閤適的服務契約API粒度 141
8.2.3 將Web服務的操作設計成原生可擴展的 143
8.2.4 考慮采用模塊化WSDL文檔 143
8.2.5 慎用命名空間 144
8.2.6 使用SOAP文檔和Literal屬性值 145
第9章 REST服務及微服務的服務API與契約設計 147
9.1 服務模型設計關注點 147
9.1.1 實體服務設計 148
9.1.2 公共服務設計 148
9.1.3 微服務設計 149
9.1.4 任務服務設計 150
9.2 REST服務設計指南 155
9.2.1 統一服務契約設計關注點 155
9.2.2 設計和標準化方法 155
9.2.3 設計和標準化HTTP報頭 157
9.2.4 設計和標準化HTTP響應碼 158
9.2.5 自定義響應碼 160
9.2.6 設計媒介類型 162
9.2.7 設計媒介類型模式 163
9.2.8 復雜方法設計 164
9.2.9 無狀態復雜方法 166
9.2.10 狀態復雜方法 171
第10章 Web服務及REST服務的服務API與契約版本控製 176
10.1 版本控製的基本要素 176
10.1.1 Web服務版本控製 176
10.1.2 REST服務版本控製 177
10.1.3 粒度的精細與粗糙限製 177
10.2 版本控製和兼容性 178
10.2.1 後嚮兼容 178
10.2.2 前嚮兼容 180
10.2.3 兼容性變更 182
10.2.4 非兼容性變更 183
10.3 REST 服務兼容性關注點 184
10.4 版本標識符 186
10.5 版本控製策略 188
10.5.1 嚴格策略(新變更,新契約) 188
10.5.2 彈性策略(後嚮兼容) 189
10.5.3 鬆散策略(反嚮和前嚮兼容) 189
10.5.4 策略總結 190
10.6 REST服務版本控製關注點 190
第三部分 附錄
附錄A 麵嚮服務原則參考 194
附錄B REST約束條件參考 199
附錄C SOA設計模式參考 203
附錄D 注釋版SOA聲明 220
· · · · · · (
收起)