第一部分 基础 1
第1章 SOA与企业 1
1.1 挑战 1
1.2 整体架构的概念 2
1.3 架构是目的明确的结构 2
1.4 持续变化 3
1.5 整体架构合成 3
1.6 让整体架构为企业所用 4
1.7 总体关键问题 4
第2章 架构基础 5
2.1 结构组织 5
2.2 功能组织 7
2.3 协作行为 9
2.4 整体架构 12
2.5 非功能需求 14
2.6 细化 14
2.7 架构师的角色 15
2.8 企业架构 16
2.9 总结 18
2.10 架构基础的关键问题 19
2.11 推荐阅读 19
第3章 服务基础 20
3.1 什么是服务 20
3.2 服务接口 26
3.3 服务背后的基本原理 29
3.4 总结 32
3.5 服务基础的关键问题 32
3.6 推荐阅读 33
第4章 服务使用 34
4.1 服务交互模式 34
4.2 服务访问 38
4.3 访问控制 41
4.4 服务请求路由 43
4.5 服务组合 46
4.6 服务定位 49
4.7 服务的企业架构 50
4.8 总结 50
4.9 服务使用的关键问题 51
4.10 推荐阅读 51
第5章 SOA开发过程 52
5.1 SOA开发有什么不同 52
5.2 整体开发过程 52
5.3 架构任务 53
5.4 上下文中的架构 54
5.5 整体架构合成 55
5.6 小心似是而非的流程! 60
5.7 管理风险:迭代架构 60
5.8 总结 61
5.9 开发过程的关键问题 61
5.10 推荐阅读 61
第二部分 业务流程视角第6章 流程 63
6.1 触发器、输入与结果 63
6.2 关联流程 64
6.3 流程成熟度 65
6.4 连续流程 66
6.5 结构化流程 67
6.6 总结 67
6.7 流程的关键问题 67
6.8 推荐阅读 68
第7章 项目初始范围划定 69
7.1 收集业务流程清单 69
7.2 进行访谈 70
7.3 记录业务流程清单 71
7.4 业务流程等级评定 78
7.5 剩余工作组织 81
7.6 总结 81
7.7 范围划定的关键问题 82
第8章 需求的技巧 83
8.1 划分 84
8.2 流程描述 87
8.3 交互模式 90
8.4 需求反映设计 95
8.5 总结 97
8.6 需求的关键问题 98
8.7 推荐阅读 98
第9章 业务流程架构 99
9.1 结果 99
9.2 参与者及其角色 101
9.3 活动和场景 103
9.4 场景建模 105
9.5 交互建模 110
9.6 细节多细才够用 113
9.7 活动图使用指导方针 114
9.8 总结 115
9.9 业务流程架构的关键问题 115
9.10 推荐阅读 115
第10章 里程碑 116
10.1 基本流程里程碑 116
10.2 里程碑序列的变化 117
10.3 里程碑分组 118
10.4 辨认里程碑需要设计 118
10.5 利用里程碑减少流程间耦合 120
10.6 总结 120
10.7 里程碑的关键问题 120
第11章 流程约束 121
11.1 业务流程约束决定系统约束 121
11.2 性能约束 122
11.3 高可用性和容错性 126
11.4 安全性 130
11.5 报告、监视和管理 130
11.6 异常处理 132
11.7 测试和接受 132
11.8 合规约束 133
11.9 总结 133
11.10 流程约束的关键问题 134
11.11 推荐阅读 134
第12章 关联流程 135
12.1 服务识别 136
12.2 触发事件 140
12.3 总结 144
12.4 关联流程的关键问题 145
第13章 领域建模 146
13.1 UML类符号 146
13.2 ATM例子的领域模型 150
13.3 领域模型的逆向工程 151
13.4 领域模型总结 152
13.5 领域模型的关键问题 153
13.6 推荐阅读 153
第14章 企业架构:流程与领域建模 154
14.1 流程与领域建模的职责 154
14.2 建立标准与最佳实践 155
14.3 流程与领域知识转移的管理 156
14.4 项目模型审查 156
14.5 维护业务流程和领域模型仓库 156
14.6 定义业务流程模式 157
14.7 定义公共数据模型表示法 157
14.8 总结 157
14.9 企业流程与领域建模关键的问题 158
第三部分 系统视角 159
第15章 系统架构纵览 159
15.1 架构分布式系统的挑战 159
15.2 学习CORBA的经验 159
15.3 有效地探索架构 164
15.4 总结 165
15.5 系统架构纵览的关键问题 166
第16章 顶层系统架构 167
16.1 结构粗加工 167
16.2 初始评估 168
16.3 通信和模块化 169
16.4 服务识别和性能 171
16.5 系统交互建模 171
16.6 部署建模 174
16.7 处理性能 177
16.8 早期架构评估 179
16.9 顶层系统架构的关键问题 179
16.10 推荐阅读 180
第四部分 通信 181
第17章 传输 181
17.1 传输技术 181
17.2 选择传输 183
17.3 消息传递服务器拓扑 185
17.4 能力 188
17.5 点对点交互模式 188
17.6 点对点中介 190
17.7 传输供给服务 191
17.8 总结 191
17.9 传输的关键问题 191
17.10 推荐阅读 192
第18章 适配器 193
18.1 基于API的适配器 194
18.2 基于数据库的适配器 194
18.3 结合API和数据库方法 195
18.4 基于文件的适配器 195
18.5 基于协议的适配器 195
18.6 记录适配器的使用 195
18.7 总结 196
18.8 适配器的关键问题 197
第19章 企业架构:通信 198
19.1 定义通信策略 198
19.2 交互标准 198
19.3 标准化适配器 199
19.4 总结 199
19.5 企业架构通信的关键问题 199
第五部分 数据和操作 201
第20章 数据挑战 201
第21章 消息和操作 202
21.1 消息语义和操作名字 202
21.2 传输目的地和操作包 203
21.3 内容表示 205
21.4 内容转换 205
21.5 在内容转换中引用数据 207
21.6 总结 207
21.7 消息和操作的关键问题 208
第22章 数据一致性:维护事实的唯一版本 209
22.1 维护数据一致性的方法 209
22.2 具有单记录系统的缓存数据 210
22.3 通过分布式事务协调更新 213
22.4 到处编辑,以后调整 213
22.5 处理数据不一致 213
22.6 数据管理业务流程 214
22.7 总结 215
22.8 数据一致性的关键问题 215
22.9 推荐阅读 215
第23章 公共数据模型(CDM) 216
23.1 公共数据模型概述 216
23.2 CDM和领域模型的关系 219
23.3 多种CDM表示法的需要 220
23.4 规划CDM变更 221
23.5 何时使用公共数据模型 224
23.6 总结 226
23.7 公共数据模型的关键问题 226
第24章 标识符(唯一名称) 227
24.1 标识(唯一名称)管理中心 227
24.2 层次标识符 228
24.3 应对标识错误 230
24.4 标识符映射 233
24.5 总结 235
24.6 标识符的关键问题 235
第25章 结果验证 236
25.1 检查枚举值 236
25.2 验证的位置和时机 236
25.3 总结 237
25.4 数据验证的关键问题 237
第26章 企业架构:数据 238
26.1 命名模式 238
26.2 构架内容转换 239
26.3 记录系统 239
26.4 公共数据模型 240
26.5 标识符 241
26.6 数据质量管理 241
26.7 总结 242
26.8 企业架构数据的关键问题 242
第六部分 协调 243
第27章 协调与故障检测 243
27.1 活动执行管理模式(AEMP)涉及的交互 243
27.2 协调模式的风格 245
27.3 即发即弃协调模式 245
27.4 请求-应答模式 247
27.5 代理 250
27.6 具有确认功能的代理 251
27.7 总结 252
27.8 协调的关键问题 252
第28章 事务:协调两个或更多活动 253
28.1 分布式事务的两阶段提交 253
28.2 两阶段提交协议的局限性 255
28.3 补偿性事务 255
28.4 绕过补偿性事务的局限性 256
28.5 总结 257
28.6 事务的关键问题 257
28.7 推荐阅读 257
第29章 流程监视器和管理器 258
29.1 流程监视 259
29.2 最小化故障监视带来的影响 260
29.3 把流程管理器作为监视器 260
29.4 流程管理的局限性 261
29.5 总结 261
29.6 流程监视和管理的关键问题 262
第30章 故障检测和响应 263
30.1 选择协调模式改善故障检测 263
30.2 响应故障 265
30.3 总结 271
30.4 故障检测和恢复的关键问题 271
第31章 企业架构:协调 272
31.1 首选协调模式 272
31.2 故障记录 273
31.3 故障报告 273
31.4 恢复流程 273
31.5 总结 274
31.6 企业协调的关键问题 274
第七部分 高可用性、容错性和负载分配第32章 高可用性和容错性基础 275
32.1 容错策略 275
32.2 失效检测策略 276
32.3 管理故障转移 277
32.4 重定向客户端 277
32.5 总结 278
32.6 高可用性和容错性的关键问题 279
第33章 无状态和有状态故障转移 280
33.1 无状态和有状态组件 280
33.2 无状态故障转移 280
33.3 通过协调保存工作进展 280
33.4 有状态故障转移 282
33.5 存储复制 282
33.6 总结 287
33.7 故障转移的关键问题 288
33.8 推荐阅读 288
第34章 多组件故障转移 289
34.1 站点内故障转移和站点间故障转移 289
34.2 集群:站点内故障转移技术 290
34.3 使用异步复制协调端到端应用故障转移 291
34.4 使业务流程具有容错性 292
34.5 总结 292
34.6 多组件故障转移的关键问题 293
第35章 工作负载分配 294
35.1 工作分配策略 294
35.2 分配管理和工作完成 294
35.3 顺序问题 295
35.4 访问共享持久状态 296
35.5 地理分布的工作负载分配 297
35.6 总结 297
35.7 工作负载分配的关键问题 297
第36章 企业架构:容错性、高可用性和负载分配 298
36.1 业务流程分类 298
36.2 信息存储 299
36.3 单个组件和服务故障转移模式 299
36.4 容错性和高可用性服务的组合模式 300
36.5 容错性和高可用性业务流程的组合模式 300
36.6 总结 301
36.7 容错性、高可用性和负载分配的关键问题 301
36.8 推荐阅读 301
第八部分 完善架构 303
第37章 流程安全 303
37.1 安全信息分类 303
37.2 身份和认证 304
37.3 授权 304
37.4 加密 305
37.5 数字签名 306
37.6 其他安全相关需求 306
37.7 引用数据服务器和性能 307
37.8 信任域 307
37.9 信道执行 308
37.10 区域执行和策略代理 309
37.11 多区域安全 309
37.12 总结 310
37.13 安全的关键问题 311
37.14 推荐阅读 311
第38章 流程监视 312
38.1 性能监视 312
38.2 监视流程状态 313
38.3 监管流程 314
38.4 监视的性能影响 314
38.5 总结 314
38.6 流程监视的关键问题 314
第39章 架构评估 316
39.1 易用性 316
39.2 性能 316
39.3 成本和进度的可行性 323
39.4 可观察性 323
39.5 演变能力 323
39.6 应对压力情况的能力 324
39.7 总结 324
39.8 架构评估的关键问题 325
39.9 推荐阅读 325
第40章 测试 326
40.1 单元测试、测试用具和回归测试 326
40.2 集成测试和装配顺序 327
40.3 功能和系统测试的环境 327
40.4 性能测试 327
40.5 失效模式测试 330
40.6 总结 330
40.7 测试的关键问题 330
第九部分 高级主题 333
第41章 表示复杂流程 333
41.1 忽略通信细节 333
41.2 省略参与者活动细节 334
41.3 省略辅助参与者 334
41.4 抽象子流程 335
41.5 总结 335
41.6 复杂流程表示的关键问题 336
第42章 流程管理和工作流 337
42.1 流程管理 337
42.2 工作分配模式 340
42.3 启动工作流 341
42.4 使管理流程具有容错性 341
42.5 人类接口 344
42.6 关联流程 346
42.7 划分工作优先级 349
42.8 动态工作分配 349
42.9 动态结果和流程定义 350
42.10 总结 351
42.11 流程管理和工作流的关键问题 352
42.12 推荐阅读 352
第43章 企业架构小组 353
43.1 小组不完整比没有强——但是还不够好 353
43.2 发展最佳实践 353
43.3 知识转移 354
43.4 治理 355
43.5 随需求的演变而设计 355
43.6 总结 357
43.7 企业架构小组的关键问题 358
后记 359