图书前言

近年来,随着分布式计算技术的发展,一种新兴的计算模式——云计算受到了研究者的极大关注。云计算已经成为当前计算机数据管理,计算机网络,计算机系统结构研究的前沿问题之一。它提供了一种新型的共享基础架构的方法,各服务提供商将巨大的系统池连接在一起提供各种IT服务。云计算是大规模分布式计算技术不断演进的结果;并行计算、网格计算、效用计算、服务计算等都为云计算的发展提供了技术基础。随着云计算的发展,这项兴起中的技术,正在深刻地影响乃至改变科学研究的方式以及人们学习、工作和生活方式。

虽然研究者针对云计算技术进行了大量的研究,但是到目前为止学术界和行业内还未形成对云计算的相关技术和产品的统一标准和规范。特别是在国内,关于云计算的研究较少,还处在探讨的初步阶段。迄今为止,国内尚缺乏全面系统介绍分布式系统与云计算技术的教材,而广大的大专院校学生和软件开发人员又迫切需要了解这一新兴的技术,本书的出版填补了这一空白。作者对基本概念给出了深入细致的介绍,对应用中的技术进行了详细具体的描述。对概念方面的内容,辅以详细的图表和相关的对比进行说明,对技术方面的内容和实际应用给出了细致的指导和相关代码,有效地提高了读者对技术问题的认识。相信本书可以为广大科研工作者和同学们提供重要的入门材料和学习参考。

中国人民大学教授王珊

在计算机网络技术高速发展的今天,云计算已成为当今信息技术领域最受瞩目的新兴概念之一。微软公司把未来的计算定义在云+端、软件+服务。可以预见今后几年内会有越来越多的技术人员会参与到云计算系统的开发和研究中来。然而,现在介绍云计算及其相关技术的书籍还相当少,很多读者都无法找到相应的参考书籍。我们可以看到这本书是在云计算系统实际开发工作的基础上完成的。本书广泛地介绍了云计算的相关系统与技术,所介绍的内容可以为广大读者提供参考,开阔思路。

微软云计算平台上有三大非常重要的核心技术,一个是Windows Azure; 另一个是SQL Azure;还有一个是Windows Azure Platform AppFabric。本书对Azure云计算平台相关技术进行了详细的介绍,并通过一定的实例说明了如何使用开发Azure平台下的应用程序。希望读者能通过本书的学习,深入了解Azure云计算平台,并在此基础上做出更出色的云计算系统或进行更好的云计算研究。

微软亚洲研究院院长洪小文

计算技术已经深刻地改变了我们的工作、学习和生活,电子技术和通信技术的飞速发展和进一步融合以及体系结构的进步更是将其提到前所未有的高度。分布式云计算是一项正在兴起中的计算技术,其发展脚步正在逐渐加快,云计算产品也在不断上市,其潜力巨大,正在扭转整个行业的面貌,也在悄然改变人们使用计算机的习惯。它的出现,有可能完全改变用户现有的以桌面为核心的使用习惯,而转移到以Web为核心,使用Web上的存储与服务。相信人类会因此迎来一个新的信息化时代!

云计算技术将对信息产业产生深远的影响,然而目前国内外还缺乏系统、深入地介绍相关技术的书籍。我非常欣喜地看到此书的出版,这本书系统、清晰、 全面地介绍了云计算的概念、架构、关键技术以及各企业最新研究动向及研究成果。希望能帮助大家更好地了解云计算概念及其发展现状。更为重要的是我相信不管是云计算研究者、初学人员还是IT人或者云计算的最终用户,都能从本书中找到自己想要的东西。

云计算是一个美好的愿景,相信通过众多学者研究人员的努力,它必将引领我们的生活进入一个新的信息时代!

IBM中国研究院院长李实恭

可以预见,在未来几年内会有越来越多的人员参与到云计算系统的研发中。然而,我们发现在介绍云计算及其相关技术的书籍方面还是一片空白。即使在澳大利亚,很多读者都无法找到相应的参考书籍。所幸,能够在中国看到这样一本系统介绍云计算领域的书籍。本书首先对分布式计算、云计算、云服务等做了简略介绍,特别是比较了效用计算、网格计算、集群计算与云计算。然后分类介绍Google、IBM、Amazon、Greenplum、Hadoop、HBase、Microsoft Azure等的概念与关键技术。这些都是当下最流行的与云计算直接相关联的技术,本书对其中每一类问题均提供具有代表性的实例。并对每种技术应用给出注重实效的规则和参考资料与习题。这本书不仅内容丰富,而且极佳的表达风格使之具有很好的可读性。

这本书还系统、清晰、全面地介绍了按需分配的虚拟化和云计算的概念、架构、关键技术以及最新研究动向,相信这本书能帮助大家更好地了解虚拟化和云计算技术。

澳大利亚墨尔本大学云计算与分布式系统试验室主任

Rajkumar Buyya教授

随着计算机网络的进一步发展和对海量数据计算能力的要求,各种大型计算能力的计算机硬件不断出现。此外,全球信息系统万维网也非常流行。这些软硬件技术或设备的出现,为提出一种新型的计算模型提供了可能。本书考察分布式系统与云计算的概念和技术。云计算是分布式系统中一个有巨大商业前景的学科前沿。它是虚拟化、效用计算、基础设施即服务、平台即服务和软件即服务等概念混合演进的结果。

云计算作为一个新兴的术语,目前还没有确切的定义,很多技术还处在起步阶段。它涉及的范围非常广。本书主要从分布式系统的角度对云计算进行解释,并通过对现有各大IT公司云计算技术的分析,使读者对云计算建立一种直观概念。本书是对云计算技术的全面介绍,同时关注系统实现和设计问题。对于本科生、研究生、应用开发人员、行业专业人士以及相关学科的研究者而言,本书应该是比较全面的云计算书籍。

云计算是分布式计算、并行计算和网格计算的发展,或者说是这些计算机科学概念的商业实现。云计算目前还处在起步阶段,但由于IT界各大公司的争相角逐,云计算在不久会迎来它的黄金发展机遇,给IT带来全面的革新。本书提供分布式系统和云计算的全面知识,介绍云计算相关的技术和开源项目,并讨论和设计相关云计算平台的应用程序开发设计。写本书的一个重要动机就是,在当前云计算到底为何物,如何具体实现云计算这些基本问题尚不明了的情况下,帮助读者入门与提高,这是一项富有挑战性的任务。我们希望通过本书的出版,与不同领域、不同层次读者探讨、交流,为进一步促进这一领域的发展做出贡献。

1. 本书的组织

本书除第1章绪论外其他内容分为3篇。

第一篇分布式系统,包含第2章和第3章。这部分对分布式计算进行介绍,为读者进行后续章节的学习打下良好的知识基础。

第2章是分布式计算的入门,引入分布式计算的定义及其相关概念,简单地介绍背景知识,方便读者理解本书中所提到的材料,并对人们非常关心的分布式计算的安全性与容错性问题进行重点论述。

第3章讨论客户—服务器端架构的问题。首先讲解客户—服务器端的相关协议,然后分别介绍面对有连接和无连接情况时客户—服务器端的构架,最后讨论有状态和无状态的服务器问题。

第二篇云计算技术,包含第4章~第9章。这部分是对云计算的综述,从各个方面与角度,向读者全面地介绍云计算。我们选取了具有代表性的云平台和技术,这些代表性的技术更是现阶段研究学习的重点与未来继续开发新平台与新技术的重要参考。

第4章是云计算的入门章节,在这一章中经过综合比较分析,给出本书认为的云计算的定义,简述云计算的发展历史,详细分析云计算的优点与缺点,如果以前你对是否使用云计算或如何使用云计算还有疑虑,相信这一章将帮助你理清思路,本章对云计算所涉及的服务进行了讨论,最后是与云相关技术的比较,本章分别从网格计算、效用计算、集群计算、并行和分布计算等方面与云计算进行了具体比较。

第5章就Google公司云平台的Google 文件系统(GFS)技术、Bigtable技术、MapReduce 三大技术分别进行详细的介绍与论述,并针对每个具体技术给出应用的例子,方便学习及理解。

第6章讲述的是Yahoo!公司的云平台技术。Yahoo!公司在云计算方面投入巨大,涉及云计算的许多方面并支持许多与此相关的开源项目,而本章介绍的正是其中的重要部分包括一种灵活通用的表存储平台PNUTS云平台,分析大型数据集的框架Pig,提供团体服务的集中化服务平台ZooKeeper。

第7章就Greenplum云平台技术进行介绍。Greenplum是一个商业的分析型云数据库,同样也用来支持下一代数据仓库和大规模的分析过程。它支持SQL和MapReduce 并行处理,可以提供低成本的管理太字节(TB)到皮字节(PB)数量级数据的能力。相信在未来云计算发展过程中,云数据库将占有重要的一席之地。

第8章讲的是Amazon公司的Dynamo云平台技术。Amazon公司提供的EC2和S3想必已为大家所熟知,但其中的关键技术所利用的平台Amazon Dynamo,可能读者并不了解。本章分别从Amazon Dynamo的研发背景和Dynamo系统体系结构对其进行讲解。

第9章介绍IBM公司与云计算相关的项目,包括云风暴、智能商业服务、智慧地球、Z系统以及虚拟化的动态基础架构。IBM公司在云计算领域的工作的影响力十分巨大,并且在云计算的普及方面以其针对企业的云服务推动了领域的发展。

第三篇分布式云计算的程序开发,包含第10章~第16章。这一部分是分布式云计算的程序开发部分,在了解了众多的与云计算相关的知识与技术之后,本书讲解各种主流的进行分布式云计算的程序开发系统与平台,并给出对应的开发实例,方便读者进行实践。

第10章对Apache开源项目Hadoop系统进行介绍。Hadoop主要由Hadoop核心组件、MapReduce以及HDFS组成。本章对Hadoop生态系统所包含的项目及其自身体系结构进行介绍,并对Hadoop集群相关安全策略进行说明。

第11章详细介绍MapReduce,它是Google提出的MapReduce编程模型的开源实现,被广泛应用于海量数据的处理。本章对MapReduce的计算模型以及工作机制进行深入分析,并结合MapReduce API和实例介绍如何采用MapReduce框架编写并行程序。

第12章详细介绍Hadoop的另一核心子项目HDFS。作为Hadoop所采用的分布式文件系统,本章着重对HDFS的体系结构以及数据在HDFS中的执行流程进行详细介绍。

第13章主要讨论HBase分布式数据库系统。HBase的设计思想主要来源于Google Bigtable技术,为面向列存储的分布式数据库。本章将分别对HBase的体系结构、数据模型、物理视图和概念视图进行介绍,并说明如何采用HBase Java API对HBase数据库进行操作。

第14章详细介绍Hive数据仓库。Hive的存储建立在Hadoop文件系统之上,它向上为用户封装了Hive QL编程语言,使用方法类似于SQL操作,这极大方便了用户的使用。

第15章讲解基于Google App Engine系统的开发。首先对Google App Engine做简介,然后讲解如何使用Google App Engine,同时给出基于Google App Engine的应用程序开发实例。

第16章讲解基于Windows  Azure系统的开发。首先对微软公司推出的Windows  Azure系统做简介,然后讲解Windows Azure服务的使用方法,并给出应用开发实例。

2. 致教师

本书旨在提供分布式系统最近发展云计算领域的一个全面而深入的概述。本书作为国内第一本云计算领域的教材,可以作为高年级本科生、研究生的云计算导论或高级课程的教材。此外,本书也可以作为讲授云计算的高级课程的参考书籍。

如果您打算使用本书作为讲授云计算导论的教材,您会发现第一篇是介绍分布式系统的基本概念;第二篇主要对云计算的基本概念和相关技术进行介绍。第三篇主要介绍相关云计算平台编程技术,第13章和第14章要求掌握基本原理,第11章、第12章、第15章和第16章则可以安排学生进行相应的编程作业。此外,每章后面还有相关的参考文献,供教师安排学生进行更深入的学习指导。

本书的很多知识,可以作为独立的自学材料。每章后面我们都设计了相关习题,这些习题可以作为课后巩固知识的作业。同时,本书的网站(datasearch.ruc.edu.cn/cloudbook/或清华大学出版社的网站)还提供了相应的教学辅助资料,如课程纲要和课程PPT。

3. 致学生

作为国内第一本全面介绍云计算及相关技术的书籍,希望通过本书的学习能够激发起你对云计算研究的兴趣,了解计算机科学的最新发展方向。我们力求以清晰全面易懂的方式提供该方面的知识讲解。我们还是力求卓越,通过实际的编程实例使学生们在学习的过程中,真正走进云计算环境中。如果你在以后的研究或学习中能够深入了解云计算的相关知识和编程技术,那么它将会给你的未来职业提供一个非常美好的前景。

为学习本书,应该具有如下知识和技能。

 具有一些分布式系统的基础知识。当然,本书尽力在介绍云计算之前对相关分布式的概念等知识进行介绍,帮助读者回忆或学习这方面的知识。

 较强的计算机编程能力或阅读代码能力。特别是能够熟练使用Java或C 语言。同时,还要有一定的UNIX和Linux知识背景。

4. 致专业人员

本书旨在涵盖目前云计算领域的广泛课题。这样,本书是国内关于该主题的第一本内容全面的参考书。由于每章内容的相对独立性,可以只关心最感兴趣的课题。希望从事分布式系统和云计算的应用程序员和相关领域的管理者都可以从本书受益。

书中关于云计算的介绍很多都是目前研究领域的最新成果,可以帮助专业人员及时掌握云计算的最新进展,并把握住云计算的发展机遇。通过对目前云计算领域中比较流行的平台和技术的介绍,以及一定的编程实例说明,相信可以很快地帮助专业人员了解、掌握并做进一步深入的研究工作。

5. 本书资源网站

本书的网站地址是http://datasearch.ruc.edu.cn/cloudbook/,该网站为本书读者和对云计算感兴趣的人提供了一些补充资料,主要包括:

 每章的幻灯片,提供Microsoft PowerPoint格式的教案;

 相关章节的源代码;

 课程大纲和教学计划;

 补充读物目录;

 本书勘误更正表。

欢迎到本网站指正本书的错误信息,一旦勘误被最终确认,会及时更新到勘误表中,并在此表示感谢!同时,也欢迎读者到本网站发表对本书的评论或建议信息,以帮助我们以后的工作。

6. 致谢

在本书的形成过程中,感谢众多研究生和本科生的工作,特别是马中瑞、廖承炫、冯博亮、王仲远、胡一、黄超、黄飞、刘胜文、吕瑛、孙荣丽、林春彬、田宗起、程明、王海涌、陈东伟、周凯、陈新星、张林、徐文韬等在资料收集和文献整理等方面的工作。

本书涉及面甚广,内容丰富,涉及的相关技术众多。但需要指出的是,在全书的撰写和相关技术的研究中,尽管作者投入了大量的精力、付出艰辛的努力,然而受知识水平所限,书中不当之处在所难免,望读者批评指正并不吝赐教。

 作者2013年8月于北京