推荐理由 多年来,SOA一直只是个美好的愿景。通过描述在实践中实现和运行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博士,对象管理组织主席和ICEO、SOA联盟执行董事
内容简介
《SOA实践指南》展示了实现面向服务的架构(SOA)切实可行的规律,使得SOA不再只是镜花水月,可望而不可及。《SOA实践指南》基于作者在一家领先行业的公司中全面推广SOA的第一手经验,解释了SOA如何简化大型应用的创建和维护。不管你的项目是包含一套巨大的、基于Web Services的组件集,还是需要将老系统和更现代化的业务流程连接起来,《SOA实践指南》都阐明了SOA如何满足你的需要。
本书作者
Nicolai M.Josuttis.著有《C++标准库》和《C++模板》,两书都由Addison-Wesley出版。他的职务是系统架构师和技术经理。最近两年,他在一家国际电话公司中全面推广SOA。Nicolai在几个会议上办过S0A讲座,多年来他一直在发表关于这个主题的演讲。
目录
前言
第1章:动机
1.1 大型分布式系统的特征
1.2 魔术总线故事
1.3 魔术总线故事给我们的启示
1.4 SOA历史
1.5 五页幻灯讲完SOA
第2章:SOA
2.1 SOA定义
2.2 SOA驱动因素
2.3 SOA概念
2.4 SOA要素
2.5 SOA不是银弹
2.6 SOA不是特定技术
2.7 对比SOA与分布式对象
2.8 SOA术语
2.9 总结
第3章:服务
3.1 服务
3.2 接口和契约
3.3 额外的服务特性
3.4 总结
第4章:松耦合
4.1 对容错的需求
4.2 松耦合的形式
4.3 处理松耦合
4.4 总结
第5章:企业服务总线
5.1 ESB职责
5.2 异质的ESB
5.3 ESB的差异
5.4 ESB增值服务
5.5 总结
第6章:服务分类
6.1 基础服务分类
6.2 基本服务
6.3 组合服务
6.4 流程服务
6.5 其他服务分类法
6.6 技术服务和基础设施服务
6.7 服务之外
6.8 总结
第7章:业务流程管理
7.1 BPM术语
7.2 BPM和SOA
7.3 用于服务的BPM的例子
7.4 业务流程建模
7.5 识别服务的其他方法
7.6 配制和编排
7.7 更多思考
7.8 总结
第8章:SOA和组织
8.1 角色和组织
8.2 出资模型
8.3 总结
第9章:上下文环境中的SOA
9.1 基于SOA的架构模型
9.2 处理前端和后端
9.3 总结
第10章:消息交换模式
10.1 MEP简介
10.2 基本MEP
10.3 更复杂的MEP
10.4 处理可靠性和错误
10.5 处理不同MEP层
10.6 事件驱动的架构
10.7 总结
第11章:服务生命周期
11.1 开发中的服务
11.2 生产中的服务
11.3 总结
第12章:版本划分
12.1 版本划分需求
12.2 领域驱动的版本划分
12.3 数据类型的版本划分
12.4 配置管理驱动的版本划分
12.5 实践中的版本划分
12.6 总结
第13章:SOA和性能
13.1 性能在哪儿重要
13.2 从远程存储过程到服务
13.3 性能和可重用性
13.4 性能和向后兼容性
13.5 总结
第14章:SOA和安全
14.1 安全需求
14.2 处理安全需求
14.3 实践中的SOA安全.
14.4 XML和Web Services的安全
14.5 安全问题何时凸现
14.6 总结
第15章:技术细节
15.1 服务和状态
15.2 幂等性
15.3 测试和调试
15.4 处理技术性数据(头数据)
15.5 数据类型
15.6 错误处理
15.7 总结
第16章:Web S8rvices
16.1 使用Web Services的动机
16.2 基础Web Services标准
16.3 实践中的Web Services
16.4 结束按语
16.5 总结
第17章:服务管理
17.1 服务中间人的历史
17.2 业务库和注册中心
17.3 总结
第18章:模型驱动的服务开发
18.1 生成的服务代码
18.2 建模服务
18.3 实践中的元模型
18.4 建立MDSD过程
18.5 工具
18.6 避免瓶颈
18.7 总结
第19章:建立SOA和SOA监管
19.1 引入SOA
19.2 SOA监管
19.3 按部就班SOA
19.4 其他SOA方法
19.5 其他建议
19.6 总结
第20章:后记
20.1 SOA是新东西吗?
20.2 SOA增加了复杂性吗?
20.3 SOA关键的成功要素是什么?
20.4 SOA在哪些地方不合适?
20.5 SOA替代了OOP吗?
参考文献
词汇表
索引
先读为快
第1章:动机、
1.1 大型分布式系统的特征
SOA是用于大型分布式系统的概念。要理解SOA,你必须了解大型分布式系统的特点。
首先,大型系统必须处理“老系统”。引入SOA时,你不可能从头开始设计一切。你必须处理这样的事实:当前在用的大多数系统会一直用下去。这也意味着建立SOA不是一个设计新系统的项目。SOA涉及改变现有系统的结构,这意味着你必须和老平台及向后兼容问题打交道。实际上,SOA是对大型系统景观开展“维护”工作的方法。
所有大型系统天生就是异质的。这些系统目的有别、实施时间各异、新旧程度差异悬殊。你会发现大型系统呈现出堆积了不同平台、编程语言、编程范式,甚至不同中间件的系统景观。过去,人们多次试图依靠一致化解决可伸缩性问题。是的,一致化确实有帮助。剔除不再可维护的老平台和系统是重大的改善。然而,一般说来,你的系统永远无法彻底一致化。正当你将要剔除最后一个异质体时,一次公司兼并或其他变化将重新打开潘多拉之盒。
异质性的一个原因是,大型系统和它们的数据有非常长的生命周期。在此生命周期中,通过加入新的系统和流程,不断开发出促进业务的新功能。虽然剔除现有系统和数据有可能看起来没有业务价值,然而,这种改造是对系统可维护性的投资。通常说来,这类投资都进行得很晚,以致其代价变得不可思议地高昂,因为系统已经失控,关于系统的所有知识均已失传。
……
书摘与插图
