正是科学研究和企业IT对计算工具的需求推动了分布式计算的发展,就分布式计算的模式、组织和构成,产生了许多不同的方法和建议,构成了各种分布式计算系统。
高性能微处理器的开发、高速计算机网络的发明与普及,以及计算模型和算法的进展,导致了分布式计算的出现和兴起。
分布式计算系统通信的基本机制是消息传送和远程过程调用,消息传送几乎与计算机网络同时出现。1984年Birrell等人将单机上过程调用的概念推广到分布式系统。
客户/服务器是最基本的分布式计算模式,出现于20世纪80年代。与客户/服务器模式相对应的是对等计算模式,即P2P网络。参与P2P的机器,既是客户也充作服务器。
1989年由11家著名公司成立了对象管理集团(OMG),它的工作是创建一个异构的分布式对象标准,构造分布式对象计算系统。
面向服务结构为企业信息系统提供了另一种实现途径,使之更贴近业务。Web服务是一种导向架构技术,通过标准的Web协议提供的服务,保证不同平台的应用服务可以实现互操作。面向服务的体系结构(SOA)与Web服务有着天然的联系,是一种组件模型。应用程序通过这些服务定义的接口松散地联系起来,使应用程序独立于硬件平台、操作系统和编程语言,实现企业间的IT整合。
网格计算20世纪90年代首次出现在Ian Foster和Carl Kesselman的《网格: 新的计算设施蓝图》文章中。“云”计算可以回溯到60年代,John Macarthy认为“某一天,计算可以像公用服务一样进行组织”,1997年Ramnath Chellappa在演讲中第一次使用“云计算”这一术语。网格计算与云计算希望为用户提供一种和公用服务(电力、煤气)类似的计算服务。
愚以为,分布式计算系统可分为两类: 基于分布式操作系统的和基于中间件的分布式系统。前者以Amoeba为代表,它是在特定的硬件配置的基础上,设计了一个分布式操作系统,实现系统的单一视图(Single System Image,SSI),构成一个分布式计算系统。后者是以计算机网络和网络节点异构的通用操作系统为基础,通过中间件力求达到系统单一视图,实现一个分布式计算系统。基于中间件的系统是当前分布式计算系统的主流,本书将重点讨论这类分布式计算系统。
本书大致分为三部分。第1~6章,讨论分布式计算系统的基础,包括分布式进程、分布式实体命名、通信和同步以及分布系统的安全机制与技术。第7~10章,涉及分布式系统的数据(信息)存储与共享,包括网络存储技术、数据的多副本与一致性、分布式文件系统以及分布式事务处理。第11~14章,讨论分布式计算系统的组织模式,包括面向对象的分布计算模式、面向服务的分布计算模式、公用服务分布计算模式和志愿参与分布计算模式。
本书试图在以下三个方面能具有自己的特色。
(1) 基本原理和典型实例相结合。本书各章都以基本原理为基础,在充分讨论和说明各主体的基本原理的基础上,每一章都尽量引入相关的实例,以期对原理得到正确和深刻的理解。如在讨论身份认证时,介绍了Kerberos V5实例。
(2) 基本技术与最新发展相结合。分布式计算技术是正在发展的技术,新的方法和技术途径层出不穷。本书在把握基本技术的基础上,也讨论最新的技术进展,如网格计算和云计算的概念。
(3) 成熟技术与可能问题相结合。一本教材并非金科玉律,特别是技术科学领域的教材。一种方法在一种环境下适合,换一环境就不一定适合; 一种技术可能勉强使用,但希望有更好的技术。在讨论成熟技术的基础上,尽可能提出一些问题。引导学生在掌握成熟技术基础上作进一步思考,使学生认识到科学技术发展的无穷尽。
本书的构思和编写大纲经编著者多次讨论确定。第1~10章由胡建平撰写,第11~14章由胡凯撰写。胡建平最后对全部内容进行了审阅。
编写本书主要目的是作为本科高年级学生和研究生教材; 作为参考书,希冀对从事分布式计算技术的专业人员能有所帮助。只需具备计算机网络和操作系统知识就可阅读本书。
分布计算兴未歇,服务、对象、网格。技术变革“云”当热。结构领风骚,应用催新辙。参考文献浩如海,论文、标准、手册。笨牛拙笔列章节。读者是考官,但愿评“要得”。
由于编著者的业务能力和知识水平有限,错误之处在所难免,敬请读者批评指正。
本书的配套课件等资料可以从清华大学出版社网站下载,如果在本书及课件的使用中遇到问题,请联系fuhy@tup.tsinghua.edu.cn。
编著者2014年5月