SOA 实践指南:分布式系统设计的艺术
SOA 实践指南:分布式系统设计的艺术
Nicolai M. Josuttis
出版时间:2008年07月
本书展示了实现面向服务的架构(SOA)切实可行的规律,使得SOA不再只是镜花水月,可望而不可及。本书基于作者在一家领先行业的公司中全面推广SOA的第一手经验,解释了SOA如何简化大型应用的创建和维护。不管你的项目是包含一套巨大的、基于Web Services的组件集,还是需要将老系统和更现代化的业务流程连接起来,本书都阐明了SOA如何满足你的需要。
多年来,SOA一直只是个美好的愿景。通过描述在实践中实现和运行SOA所碰到的问题,本书让SOA走入凡尘,真正能被大家所用。通过介绍SOA的方方面面,分析典型的使用模式,并探究松耦合如何帮助构筑更强大的应用,《SOA实践指南》提出了一个框架,帮助你决定何时,以及如何利用SOA获益。在本书中,你将:
直接聚焦于真实的技术和部署,而不是仅仅关注若干标准在应用SOA解决方案之前,先检查业务问题,确定哪些业务问题适用SOA方法找到建立解决方案的清晰路径,而不是陷入不断变化的Web Services细节泥潭之中分享资深SOA系统架构师的实战经验
“本书描述的原则和经验,在使T-Mobile公司成功建立SOA上扮演了重要角色,公司的SOA每天要处理超过1000万个服务调用。”
——Steffen Roehn博士,T-Mobile国际公司执行委员会成员(CIO)
“在过分炒作的SOA世界中,Nicolai Josuttis做出了杰出的贡献:一部基于第一手经验、经过认真推敲的、深刻洞察SOA本质的作品。就鼓励SOA实践者采用切实可行的方法而言,本书是一个重要的里程碑。”
——John Schmidt,集成联盟主席
“所有CIO、IT主管和IT计划经理都应该看看这本书。”
——Richard Mark Soley博士,对象管理组织主席和CEO、SOA联盟执行董事

Nicolai M. Josuttis,著有《C++标准库》和《C++模板》,两书都由Addison-Wesley出版。他的职务是系统架构师和技术经理。最近两年,他在一家国际电话公司中全面推广SOA。Nicolai在几个会议上办过SOA讲座,多年来他一直在发表关于这个主题的演讲。
  1. 前言 I
  2. 第1章:动机 1
  3. 1.1 大型分布式系统的特征 3
  4. 1.2 魔术总线故事 4
  5. 1.3 魔术总线故事给我们的启示 6
  6. 1.4 SOA历史 7
  7. 1.5 五页幻灯讲完SOA 8
  8. 第2章:SOA 11
  9. 2.1 SOA定义 11
  10. 2.2 SOA驱动因素 13
  11. 2.3 SOA概念 16
  12. 2.4 SOA要素 18
  13. 2.5 SOA不是银弹 21
  14. 2.6 SOA不是特定技术 22
  15. 2.7 对比SOA与分布式对象 23
  16. 2.8 SOA术语 23
  17. 2.9 总结 24
  18. 第3章:服务 25
  19. 3.1 服务 25
  20. 3.2 接口和契约 26
  21. 3.3 额外的服务特性 29
  22. 3.4 总结 34
  23. 第4章:松耦合 35
  24. 4.1 对容错的需求 35
  25. 4.2 松耦合的形式 36
  26. 4.3 处理松耦合 45
  27. 4.4 总结 46
  28. 第5章:企业服务总线 47
  29. 5.1 ESB职责 47
  30. 5.2 异质的ESB 49
  31. 5.3 ESB的差异 50
  32. 5.4 ESB增值服务 56
  33. 5.5 总结 59
  34. 第6章:服务分类 61
  35. 6.1 基础服务分类 62
  36. 6.2 基本服务 63
  37. 6.3 组合服务 67
  38. 6.4 流程服务 71
  39. 6.5 其他服务分类法 73
  40. 6.6 技术服务和基础设施服务 77
  41. 6.7 服务之外 78
  42. 6.8 总结 79
  43. 第7章:业务流程管理 81
  44. 7.1 BPM术语 82
  45. 7.2 BPM和SOA 83
  46. 7.3 用于服务的BPM的例子 84
  47. 7.4 业务流程建模 87
  48. 7.5 识别服务的其他方法 94
  49. 7.6 配制和编排 96
  50. 7.7 更多思考 98
  51. 7.8 总结 98
  52. 第8章:SOA和组织 101
  53. 8.1 角色和组织 101
  54. 8.2 出资模型 106
  55. 8.3 总结 107
  56. 第9章:上下文环境中的SOA 109
  57. 9.1 基于SOA的架构模型 109
  58. 9.2 处理前端和后端 114
  59. 9.3 总结 121
  60. 第10章:消息交换模式 123
  61. 10.1 MEP简介 123
  62. 10.2 基本MEP 124
  63. 10.3 更复杂的MEP 128
  64. 10.4 处理可靠性和错误 129
  65. 10.5 处理不同MEP层 131
  66. 10.6 事件驱动的架构 134
  67. 10.7 总结 136
  68. 第11章:服务生命周期 137
  69. 11.1 开发中的服务 137
  70. 11.2 生产中的服务 140
  71. 11.3 总结 143
  72. 第12章:版本划分 145
  73. 12.1 版本划分需求 145
  74. 12.2 领域驱动的版本划分 146
  75. 12.3 数据类型的版本划分 149
  76. 12.4 配置管理驱动的版本划分 155
  77. 12.5 实践中的版本划分 156
  78. 12.6 总结 157
  79. 第13章:SOA和性能 159
  80. 13.1 性能在哪儿重要 159
  81. 13.2 从远程存储过程到服务 162
  82. 13.3 性能和可重用性 164
  83. 13.4 性能和向后兼容性 169
  84. 13.5 总结 171
  85. 第14章:SOA和安全 173
  86. 14.1 安全需求 173
  87. 14.2 处理安全需求 174
  88. 14.3 实践中的SOA安全 178
  89. 14.4 XML和Web Services的安全 182
  90. 14.5 安全问题何时凸现 188
  91. 14.6 总结 188
  92. 第15章:技术细节 191
  93. 15.1 服务和状态 191
  94. 15.2 幂等性 198
  95. 15.3 测试和调试 201
  96. 15.4 处理技术性数据(头数据) 203
  97. 15.5 数据类型 204
  98. 15.6 错误处理 207
  99. 15.7 总结 208
  100. 第16章:Web Services 209
  101. 16.1 使用Web Services的动机 209
  102. 16.2 基础Web Services标准 211
  103. 16.3 实践中的Web Services 220
  104. 16.4 结束按语 228
  105. 16.5 总结 229
  106. 第17章:服务管理 231
  107. 17.1 服务中间人的历史 231
  108. 17.2 业务库和注册中心 233
  109. 17.3 总结 236
  110. 第18章:模型驱动的服务开发 237
  111. 18.1 生成的服务代码 237
  112. 18.2 建模服务 239
  113. 18.3 实践中的元模型 244
  114. 18.4 建立MDSD过程 247
  115. 18.5 工具 255
  116. 18.6 避免瓶颈 258
  117. 18.7 总结 258
  118. 第19章:建立SOA和SOA监管 261
  119. 19.1 引入SOA 261
  120. 19.2 SOA监管 262
  121. 19.3 按部就班SOA 266
  122. 19.4 其他SOA方法 271
  123. 19.5 其他建议 274
  124. 19.6 总结 278
  125. 第20章:后记 281
  126. 20.1 SOA是新东西吗? 281
  127. 20.2 SOA增加了复杂性吗? 282
  128. 20.3 SOA关键的成功要素是什么? 282
  129. 20.4 SOA在哪些地方不合适? 283
  130. 20.5 SOA替代了OOP吗? 283
  131. References 285
  132. 词汇表 293
  133. 索引 303
书名:SOA 实践指南:分布式系统设计的艺术
出版时间:2008年07月
书号:978-7-121-07041-9
原版书出版商:O'Reilly Media
Nicolai M. Josuttis
 
Nicolai M. Josuttis, 《The C++ Standard Library》和《C++ Templates》的作者(这两本书均由Addison-Wesley出版),是一位系统架构师和技术经理。最近,他花了两年的时间为一个国际性电话公司开发了一套SOA系统。Nicolai在为几个会议讲解SOA教程,并已经成为这个领域活跃的发言人很多年了。
Nicolai M. Josuttis is an experienced systems architect and IT manager who is responsible
for the successful realization of several large distributed systems. Recently, he spent
three years rolling out a SOA at a major international phone company. He is well known
to the IT community as an experienced speaker and is the author of The C++ Standard
Library and C++ Templates (both for Addison-Wesley). He is always interested in the practical
and appropriate application of technology and principles.