译者序
致谢
第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
· · · · · · (
收起)