SOA架构:服务和微服务分析及设计(原书第2版)
出版信息
SOA架构:服务和微服务分析及设计(原书第2版)
SOA架构:服务和微服务分析及设计(原书第2) |
作者:[加] 托马斯·埃尔(Thomas Erl) 着 |
ISBN(书号):978-7-111-58261-8 |
丛书名:架构师书库 |
出版日期:2017-11 |
版次:1/1 |
开本:16 |
内容简介
本书是IT作家Thomas Erl的新作,上一版曾获Jolt大奖提名,是面向服务和服务技术领域的一本图书。本升级版反映了SOA技术的新实践、新技术和新策略,并引进了微服务和微任务作为SOA架构及其相关服务层的一部分。
全书共分三部分,10章。第1章和第2章分别是概述内容及案例研究背景信息。第一部分(第3~5章)是基本原理部分,其中第3章详细介绍了面向服务设计範式,包括其设计理念和设计原理以及与传统竖井式设计方法的比较;第4章深入探讨了面向服务架构的独有特徵和类型,并进一步探讨了面向服务套用设计範式与技术架构套用之间的联繫;第5章讲述了新版的标準服务模型和相应的服务层,并简要提到了与微服务实现要求相关的服务部署包和容器化的相关性。第二部分(第6~10章)讲解面向服务的分析和设计,其中第6章使用案例研究更新并逐步涵盖Web服务的面向服务分析过程;第7章探讨基于REST服务的面向服务分析过程,该过程随着微服务的併入而进行了修订;第8章讲解了Web服务指南和服务契约设计注意事项以及扩展的案例研究;第9章介绍了将微服务添加到服务模型特定的REST契约设计中,并提供了设计提南;第10章讲述了一系列Web服务和REST服务契约与API基本的版本控制及注意事项。第三部分为附录部分,提供了书中引用的面向服务设计原则、REST设计约束和SOA设计模式的简述表,以及完整的注释版SOA声明。
全书共分三部分,10章。第1章和第2章分别是概述内容及案例研究背景信息。第一部分(第3~5章)是基本原理部分,其中第3章详细介绍了面向服务设计範式,包括其设计理念和设计原理以及与传统竖井式设计方法的比较;第4章深入探讨了面向服务架构的独有特徵和类型,并进一步探讨了面向服务套用设计範式与技术架构套用之间的联繫;第5章讲述了新版的标準服务模型和相应的服务层,并简要提到了与微服务实现要求相关的服务部署包和容器化的相关性。第二部分(第6~10章)讲解面向服务的分析和设计,其中第6章使用案例研究更新并逐步涵盖Web服务的面向服务分析过程;第7章探讨基于REST服务的面向服务分析过程,该过程随着微服务的併入而进行了修订;第8章讲解了Web服务指南和服务契约设计注意事项以及扩展的案例研究;第9章介绍了将微服务添加到服务模型特定的REST契约设计中,并提供了设计提南;第10章讲述了一系列Web服务和REST服务契约与API基本的版本控制及注意事项。第三部分为附录部分,提供了书中引用的面向服务设计原则、REST设计约束和SOA设计模式的简述表,以及完整的注释版SOA声明。
目录
译者序
致谢
第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
致谢
第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
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
转载请注明出处海之美文 » SOA架构:服务和微服务分析及设计(原书第2版)