当前: 首页 - 图书专区 - 深入理解云计算:基本原理和应用程序编程技术
深入理解云计算:基本原理和应用程序编程技术


  在线购买
[澳]拉库马·布亚(Rajkumar Buyya)[澳]克里斯坦·维奇拉(Christian Vecchiola)[印]S. 泰马莱·赛尔维(S. Thamarai Selvi) 著
978-7-111-49658-8
69.00
349
2015年04月13日
刘丽 米振强 熊曾刚 译
计算机 > 计算机组织与体系结构
Elsevier (Singapore) Pte Ltd
1464
简体中文
16
Mastering Cloud Computing: Foundations and Applications Programming
教材
计算机科学丛书








本书是一本关注云计算应用程序开发的本科生教材。主要讲述分布式和并行计算的基本原理,基础的云架构,并且特别关注虚拟化、线程编程、任务编程和map-reduce编程。
Buyya等人带我们踏上云计算的征途,一路从理论到实践、从历史到未来、从计算密集型应用到数据密集型应用,激发我们产生学术研究兴趣,并指导我们掌握工业实践方法。从虚拟化和线程理论基础,到云计算在基因表达和客户关系管理中的应用,都进行了深入的探索。
—— Dejan Milojicic,HP实验室,2014年IEEE计算机学会主席
本书介绍云计算基本原理和云应用开发方法。未来的应用开发将不再依赖于单一计算机,而是在云数据中心的一台或多台虚拟服务器上进行,并且可以在任何时间、从任何地点访问。未来的开发者必须掌握云计算技术,包括并行编程、高性能计算和数据密集型系统。本书提供与这些技术密切相关的实例、练习以及Aneka云平台实验环境。

本书特点
详细解析虚拟化云计算环境中应用程序的设计和实现方法。
提供实验和测试的真实云系统环境—Aneka云平台。
展示丰富的云应用实例,涉及科学、商业、能效等众多方面。
配套网站(www.buyya.com/MasteringClouds/)提供多种免费教辅资源。

作者简介
拉库马·布亚(Rajkumar Buyya) 博士,澳大利亚墨尔本大学云计算与分布式系统实验室负责人,Manjrasoft公司创始人及首任CEO。
克里斯坦·维奇拉(Christian Vecchiola) 博士,IBM澳大利亚研究院成员,澳大利亚墨尔本大学工程学院研究员。
S. 泰马莱·赛尔维(S. Thamarai Selvi) 博士,印度安那大学金奈分校Madras技术学院院长。
随着互联网与Web技术的快速发展和普及,以及手持计算机、移动设备、传感器设备功能的不断强大,人与人之间的交互方式、商业行为以及获取和提供服务的模式都在发生变化。低成本的计算与通信驱动了从单一计算方式向以数据中心为核心的计算方式的转变。尽管并行与分布式计算在IT行业已经存在多年,但其新的形式——多核和云计算为IT行业带来了彻底的变革。这种发展趋势将促使IT行业从PC应用开发模式转变为支持数百万用户同时使用软件的云数据中心模式。
计算向商业服务模式变革,这种计算服务类似于传统的公共基础设施服务,如水、电、煤气和电话。因此IT服务被当作与水、电、煤气和电话一样的“计算公共基础设施”,通过共有传输网络来交付使用并计费。在这种计算环境下,用户按需获取服务,而不管该服务由哪里提供。一些计算模式已经提出交付这种效用计算服务的构想,云计算是最新出现的实现这一目标的计算模式。
云计算如今已成为IT行业的又一个流行术语。众多IT厂商承诺提供存储、计算及应用托管服务,其服务范围涵盖几大洲,并能提供基于服务等级协议(Service Level Agreement,SLA)的服务性能保障和运行时间承诺。云服务模式允许用户基于订阅方式访问基础设施、平台及应用,也就是通常所说的基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)。这种服务模式大大降低了计算和应用的成本,但是要实现应用和服务开发及交付的一致性、可扩展性、可靠性是极其复杂的。
已有一些云计算技术和云平台产品,如谷歌 AppEngine、微软Azure和Manjrasoft Aneka。谷歌 AppEngine利用大量IT基础设施为托管的Web应用提供可扩展的运行环境。微软Azure为在云计算环境中开发和部署应用提供了大量Windows服务实例。Manjrasoft Aneka能够灵活地创建云应用并将其部署在各种基础设施上,如亚马逊公共云EC2 。
随着应用开发从PC向云数据中心迁移,需要大量掌握云计算技能的人员。面对这一挑战,大学教育在培养下一代IT专业人员方面发挥了重要作用,帮助学生学习和掌握新的相关技术与工具。这样,大学需要以较小的投入建立云计算教学环境,而Manjrasoft Aneka比较适合建立这种云应用平台,它允许用户利用已有计算机网络组建私有云/企业云,提供软件开发工具包(SDK),支持多种编程模型(如线程、任务、 MapReduce)的应用编程接口(API),支持在多核服务器、私有云、公共云等不同基础设施上无缝地部署和执行应用。
如今,专业开发人员需要创建云应用和服务。云计算研究人员、从业者以及供应商努力让用户了解云计算的好处并充分利用其潜在能力。然而,由于云计算是一种新兴的计算范式,所以对于云计算的精确定义,不同的云计算专家会给出不同的答案。因此,尽管现在比以往更好地实现了真正的效用计算,但是,与云计算服务方交互的复杂性使得对于云计算的认可和应用还只限于领域专家。本书旨在用简单的方式向读者讲解云计算基础知识、技术及编程技能,让更多普通程序员和软件工程师能轻松地开发云应用程序。
本书结构
本书介绍云计算的基本原理及相关范式,阐述云计算架构模型中虚拟化技术的概念,并展示包括Aneka云计算应用平台在内的著名云计算技术产品,详细讲解并行计算、高吞吐量计算和数据密集型计算的范式,以及如何将这些范式应用于云应用程序开发。本书还研究了来自科学界、工程界、游戏和社交网络领域的多个应用案例,阐述了各应用案例的架构以及云计算技术的应用方式。这些案例研究有助于读者对云计算原理的理解。最后,本书详细阐述了许多源于云计算快速应用的开放性研究问题和机遇,我们希望这有助于激发读者在未来的研发过程中解决这些问题。另外,了解本书相关内容可浏览Web站点(http://www.buyya.com/MasteringClouds),其中包含更多在线资源。
全书分为三部分,共11章:
第一部分 基础
第1章 导论
第2章 并行计算与分布式计算原理
第3章 虚拟化
第4章 云计算架构
第二部分 云应用编程与Aneka平台
第5章 Aneka:云应用平台
第6章 并行计算:线程编程
第7章 高吞吐量计算:任务编程
第8章 数据密集型计算:MapReduce编程
第三部分 工业云平台与新进展
第9章 工业云平台
第10章 云应用
第11章 云计算高级主题
本书将引导读者进入云计算领域,从理论基础讲解开始,让学生和专业人员通过在Aneka平台上实际开发云应用程序来理解和掌握相关概念。第三部分介绍业界其他云技术和解决方案(亚马逊 Web 服务、谷歌 AppEngine和微软Azure)及其实际应用,阐述云计算的发展趋势和发展前景。
读者对象
由于云计算迅速崛起为一种主流计算模式,所以必须深入理解其核心概念和特性,并掌握如何设计和实现云计算的应用程序与系统。这是如今的软件架构师、工程师和开发人员应具有的基本技能,因为多数应用都将被迁移到云环境。随着技术的成熟,具备此技能尤其重要。本书涵盖云计算的起源、理论和实际开发技术,读者对象更广泛,可作为研究生、IT从业者、开发人员、工程师等设计和实现云计算解决方案的参考书。此外,书中最后关于相关研究的展望更加吸引云计算领域的研究人员探究其将带来的新挑战。
云计算正在不断获取相当可观的商业利益且发展势头强劲,本书为云计算领域做出了非常适时的贡献。本书主要针对研究生和IT专家,例如系统架构师、软件工程师、应用程序员等。在未来的20年里,云计算将是对科学研究和社会生活产生重大影响的五大新兴技术之一,因此认真理解和掌握本书的知识将帮助读者置身IT领域的前沿。
用书指南:理论、实验室、项目
鉴于云计算范式的重要性及其在业界的快速崛起,教育机构应该更新其课程体系,增加云计算或相关领域的一门或多门专业课程,例如“并行计算”和“分布式系统”。我们建议大学设置面向本科生或研究生的云计算专业,及计算科学学士和相关硕士学位,相信此书将是该专业的优秀教材。如果学生已经了解并行和分布式计算的概念,可以跳过第2章。
对于想用云计算丰富其课程体系的学校,建议分别在两个学期开设两门课程:“云计算基础课程”和“云计算高级课程”。本书第1~6章适用于云计算基础课程,第7~11章适用于云计算高级课程。
除了理论学习以外,我们强烈推荐实验室使用本书,书中给出了很多实验指导。实验练习和作业题包括数学函数的并行执行、大量数据排序的并行处理、图像处理和数据挖掘。 在Aneka云软件系统上,学校很容易利用已有的Windows系统的计算机局域网络搭建私有云(企业云)计算环境。学生可利用此环境学习各种云应用编程模型和接口的实例并在Aneka平台上实现,如第6章的线程编程、第7章的任务编程、第8章的MapReduce编程。章后编程习题可作为实验作业让学生自己编写程序实现。
学生也可以在其本科毕业设计中开发处理实际问题的云应用程序。例如,学生可以协助其他科学领域或工程领域(比如生命医学科学、机械科学)的研究人员,利用云计算强大的计算能力开发符合实际需求的应用。请阅读并学习第10章的各种应用案例。
教辅资源
教师与学生需要的教辅资源可以从Elsevier网站下载(booksite.elsevier.com/9780124114548),也可以从作者为本书所做的主页(http://www.buyya.com//MasteringClouds)下载。
出版者的话
译者序
前 言
致 谢
第一部分 基础
第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平台
第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
第三部分 工业云平台与新进展
第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
云计算是在传统计算机科学基础上发展起来的新兴技术。随着移动设备的大量普及、网络与计算成本的大幅降低以及用户计算需求的不断提升,传统的PC计算模式必将向以云数据中心为核心的云计算模式转移。同时,云计算技术所提供的强大的计算能力、低廉的成本以及按需服务的模式将会从根本上推动计算密集型应用的进一步发展,以及全球计算能力的全方位释放。
由于涉及计算机科学领域的专业知识和技术,所以对普通研发人员而言,云计算技术颇有些阳春白雪的意味。究其根源,云计算技术是学术研究与工程开发的集合体。一方面,研究人员在有好的想法或者概念的情况下,需要一个良好的云计算模型与原型系统来验证所提出的方法;另一方面,工程人员则由于专业背景知识的缺乏,而很难进入真正的云计算技术开发领域。
作为云计算技术领域的先驱者和领导者,本书作者——澳大利亚墨尔本大学计算机科学系著名教授Rajkumar Buyya,长期从事网格计算及云计算技术研究,研究成果得到学术界与工业界的广泛认可。本书集成了Buyya教授在云计算领域多年的研究成果,从云计算基础、应用平台和编程技术三个方面,利用11个章节详细介绍云计算技术的起源、发展、核心技术及其范式、典型云计算平台以及编程技巧等重要内容。本书内容丰富、深入浅出,并包含配套习题,适合不同层次的云计算技术研发人员使用。同时,本书清晰的思路、严谨的技术框架和详尽的实例讲解也使其成为适用于计算机相关学科本科生及研究生教学的不可多得的优秀教材。
参与本书翻译工作的人员均多年从事云项目相关工作,对云计算前沿问题的研究及教学都有较深刻的理解。本书前言、第1~4章及索引由刘丽(北京科技大学自动化学院副教授)翻译,第5~8章由米振强(北京科技大学计算机与通信工程学院讲师)翻译,第9~11章由熊曾刚(湖北工程学院计算机与信息科学学院教授)翻译,全书由刘丽统稿。北京科技大学的研究生张淼、翟颖奇、夏毓娴、徐安琪、谢翔、潘梦圆、李萌、何苗、陆源等同学协助进行资料收集,并参与了部分章节的初稿翻译工作。
感谢机械工业出版社引进此书并为本书的出版付出大量努力,使IT从业人员和计算机相关专业学生从中受益。特别感谢本书作者Rajkumar Buyya教授对翻译过程中遇到的问题进行解答。
需要说明的是,本书翻译工作和云计算研究工作得到以下项目的资助和支持:国家自然科学基金项目“互联云环境中基于效用模型的跨云协同服务优化研究(No. 61370132)”、“大数据环境下基于视觉主题模型的视觉数据分类方法研究(No. 61370092)”、“互联云环境下面向数据中心的服务资源分配与调度机制研究(No. 61472033)”,国家高技术研究发展计划(863计划)项目“城市多模式数据系统互联技术与支撑环境(No. 2013AA01A601)”,以及湖北省自然科学基金项目“云计算环境下内容语义信任度量与评估方法研究
(No. 2013CFC005)”和湖北省高等学校优秀中青年科技创新团队计划项目“云计算环境下智能信息处理技术研究(No. T201410)” 。
由于译者对云计算相关变革性技术的理解有待加深,而且许多新出现的专业术语还没有公认的译法,所以在翻译过程中难免出现一些不够清楚的表述,若有不妥之处,恳请广大读者批评指正,电子邮箱liuli@ustb.edu.cn。

刘丽
2015年1月
计算机/云计算
读者书评
发表评论



高级搜索
深入理解计算机系统(原书第3版)
OpenStack系统架构设计实战
从M2M到物联网:架构、技术及应用


版权所有© 2017  北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260
高校教师服务
华章教育微信
诚聘英才
诚聘英才