第一部分 基础 2
第1章 导论 2
1.1 云计算简介 2
1.1.1 云计算构想 3
1.1.2 云计算定义 4
1.1.3 进一步了解云计算 6
1.1.4 云计算参考模型 7
1.1.5 特性和优势 9
1.1.6 面临的挑战 10
1.2 云计算起源 10
1.2.1 分布式系统 11
1.2.2 虚拟化 12
1.2.3 Web 2.0 13
1.2.4 面向服务的计算 14
1.2.5 效用计算 15
1.3 构建云计算环境 16
1.3.1 应用程序开发 16
1.3.2 基础设施和系统开发 16
1.3.3 云计算平台和技术 17
本章小结 18
习题 19
第2章 并行计算与分布式计算原理 20
2.1 计算时代 20
2.2 并行计算与分布式计算 21
2.3 并行计算基本要素 21
2.3.1 什么是并行处理 21
2.3.2 并行处理硬件架构 22
2.3.3 并行编程方法 25
2.3.4 并行性的级别 25
2.3.5 注意事项 26
2.4 分布式计算基本要素 26
2.4.1 通用概念和定义 27
2.4.2 分布式系统组件 27
2.4.3 分布式计算架构模式 28
2.4.4 进程间通信模型 35
2.5 分布式计算技术 37
2.5.1 远程过程调用 37
2.5.2 分布式对象框架 38
2.5.3 面向服务的计算 42
本章小结 48
习题 48
第3章 虚拟化 50
3.1 简介 50
3.2 虚拟化环境特点 51
3.2.1 更强的安全性 52
3.2.2 执行管理 53
3.2.3 可移植性 54
3.3 虚拟化技术分类 54
3.3.1 执行虚拟化 54
3.3.2 其他类型的虚拟化 61
3.4 虚拟化和云计算 62
3.5 虚拟化的利与弊 64
3.5.1 虚拟化技术的优点 64
3.5.2 虚拟化技术的缺点 64
3.6 技术实例 66
3.6.1 Xen:半虚拟化 66
3.6.2 VMware:完全虚拟化 67
3.6.3 微软Hyper-V 72
本章小结 75
习题 75
第4章 云计算架构 76
4.1 简介 76
4.2 云计算参考模型 76
4.2.1 架构 76
4.2.2 基础设施即服务和硬件即服务 78
4.2.3 平台即服务 80
4.2.4 软件即服务 83
4.3 云的种类 85
4.3.1 公共云 85
4.3.2 私有云 86
4.3.3 混合云 88
4.3.4 社区云 90
4.4 云计算经济特性 91
4.5 云计算面临的挑战 93
4.5.1 云计算定义 93
4.5.2 云计算互操作性和标准 93
4.5.3 可扩展性和容错性 94
4.5.4 安全、可信和隐私 94
4.5.5 组织方面 95
本章小结 95
习题 95
第二部分 云应用编程与Aneka平台 98
第5章 Aneka:云应用平台 98
5.1 框架概述 98
5.2 Aneka容器结构 100
5.2.1 Aneka平台基础:平台抽象层 101
5.2.2 构造服务 101
5.2.3 基础服务 103
5.2.4 应用服务 105
5.3 构建Aneka云平台 106
5.3.1 基础设施组织 107
5.3.2 逻辑组织 107
5.3.3 私有云部署模式 109
5.3.4 公共云部署模式 110
5.3.5 混合云部署模式 111
5.4 云编程和云管理 112
5.4.1 Aneka SDK 112
5.4.2 管理工具 115
本章小结 116
习题 116
第6章 并行计算:线程编程 117
6.1 单机并行计算简介 117
6.2 线程编程应用 118
6.2.1 什么是线程 119
6.2.2 线程API 120
6.2.3 线程并行计算技术 121
6.3 Aneka多线程方式 130
6.3.1 线程编程模型简介 131
6.3.2 Aneka线程和普通线程 132
6.4 Aneka线程编程应用 135
6.4.1 Aneka线程应用模型 135
6.4.2 域分解:矩阵乘法 136
6.4.3 功能分解:Sine、Cosine、Tangent 142
本章小结 147
习题 148
第7章 高吞吐量计算:任务编程 149
7.1 任务计算 149
7.1.1 任务特性 150
7.1.2 计算类别 150
7.1.3 任务计算框架 151
7.2 基于任务的应用模型 152
7.2.1 高度并行应用 153
7.2.2 参数化应用 153
7.2.3 消息传递接口应用 155
7.2.4 具有任务依赖性的工作流应用 156
7.3 基于任务的Aneka编程 159
7.3.1 任务编程模型 159
7.3.2 用任务模型开发应用 160
7.3.3 开发参数化应用 174
7.3.4 管理工作流 176
本章小结 178
习题 179
第8章 数据密集型计算:MapReduce编程 181
8.1 什么是数据密集型计算 181
8.1.1 数据密集型计算特性 182
8.1.2 未来的挑战 182
8.1.3 历史背景 183
8.2 数据密集型计算技术 186
8.2.1 存储系统 186
8.2.2 编程平台 193
8.3 Aneka MapReduce编程 199
8.3.1 MapReduce编程模型简介 199
8.3.2 应用实例 216
本章小结 226
习题 226
第三部分 工业云平台与新进展 228
第9章 工业云平台 228
9.1 亚马逊Web服务 228
9.1.1 计算服务 229
9.1.2 存储服务 232
9.1.3 通信服务 239
9.1.4 其他服务 240
9.1.5 总结 241
9.2 谷歌AppEngine 241
9.2.1 架构和核心概念 241
9.2.2 应用程序生命周期 245
9.2.3 成本模型 247
9.2.4 结论 247
9.3 微软Azure 248
9.3.1 Azure核心概念 248
9.3.2 SQL Azure 252
9.3.3 Windows Azure平台设备 253
9.3.4 结论 253
本章小结 254
习题 254
第10章 云应用 256
10.1 科学应用 256
10.1.1 医疗保健:云心电图分析 256
10.1.2 生物学:蛋白质结构预测 257
10.1.3 生物学:基因表达数据用于癌症诊断分析 258
10.1.4 地球科学:卫星图像处理 259
10.2 商业和消费应用 260
10.2.1 CRM和ERP 260
10.2.2 效率型应用 262
10.2.3 社交网络 265
10.2.4 媒体应用 265
10.2.5 多人在线游戏 268
本章小结 269
习题 269
第11章 云计算高级主题 270
11.1 云能效 270
11.2 基于市场的云管理 273
11.2.1 面向市场的云计算 273
11.2.2 MOCC参考模型 274
11.2.3 支持MOCC的技术和实现 278
11.2.4 结论 282
11.3 云联盟和互联云 282
11.3.1 特性和定义 282
11.3.2 云联盟栈 283
11.3.3 关注点 288
11.3.4 云联盟技术 301
11.3.5 结论 304
11.4 第三方云服务 304
11.4.1 MetaCDN 304
11.4.2 SpotCloud 306
本章小结 307
习题 307
参考文献 309
索引 317