桂林山水甲天下

Jacquette的技术生活

探讨云计算、Web X.0、网格等buzz word背后的本质问题和关键技术的书出版

和韩老师以及其他几位同事合作写的书《互联网计算的原理与实践》出版了,当当网、chinapub均可以买到:当当网购书,不过销量已经和我们没有关系了。这本书写了大半年的时间,期间很辛苦,有的时候也很枯燥,书中对当前的key-value分布式数据库、多租户数据管理、SaaS、PaaS等、CAP定理等这些我们本来也很陌生的最新技术(用时下流行的名词,也称为云计算技术)都进行了阐述。我们没有花钱进行书的宣传和推广,但希望能够抛砖引玉,得到更多的评论。

 

下面是本书序言:

背景、定位和主要内容

今天,每当人们谈及互联网,想到的不止是物理上的网,而是一个巨大的信息系统。物联网的发展又进一步丰富了该信息系统的触角和神经。广域、开放和聚众的互联网已成为一种不可或缺的社会基础设施和迄今最大的协同计算平台。一方面,互联网上数据资源呈指数级增长,其经典使用环境——万维网(world wide Web, WWW)朝着提供更加强大和丰富的用户交互能力的方向发展;另一方面,互联网上的计算资源和服务资源日益丰富,连接在网络上的计算设备和存储设备能力有了大幅提升,互联网正在演变为迄今人类最大的协同计算平台。在很多担心和质疑声中,由传统的基于单个计算机或客户端-服务器的计算模式向基于互联网的计算模式迈进的步伐不但没有停止反而越来越明显。当前,不论规模大小,一个应用系统或多或少都会依赖互联网和互联网上的资源。互联网和Web的发展使互联网计算成为可能,但更重要的是,以下两项重大需求促动了互联网计算:一个是IT(infomation technology)资源的优化利用,另一个是跨管理域的资源共享和应用集成。

当前IT行业有一种普遍的现象:硬件性能快速提升且成本不断下降;软件发展速度较为缓慢,但其占用的硬件资源却越来越多;用户体验没有得到合理的提升。几十年来,硬件系统的发展始终遵循着摩尔定律预测的速度,每十八个月,CPU、存储和网络带宽等IT产品的性能会翻一番。这些提升的硬件性能被越来越复杂的软件占用。以个人计算机(personal computer, PC)为例,主流操作系统占用内存、CPU和硬盘越来越多,但是,用户发现,在自己所购买的PC中,软件的功能通常并没有本质的提升。据统计,人们在PC上的花费超过IT总预算的66%,但PC的CPU利用率却不足1%。在行业应用领域,平台软件十分庞大和复杂,重复投资现象严重,企业在IT上的全部投资,仅用到了其中很小部分的功能;用户购买的上线新系统,往往很多功能模块用户在其他系统中已经付过费。软件从业人员众多,系统换代频繁且版本众多,IT系统已经成为浪费严重的“烧钱机”。

IT界把上述现象戏称为安迪-比尔定律(Andy and Bill’s law):硬件的进步被以微软为首的软件开发商消耗掉,牟取利益;膨胀的软件又迫使用户升级机器,以英特尔为首的各硬件厂商不断提升性能获取利润;而硬件提升带来的好处又被新膨胀的软件消耗掉。在这个循环过程中,最终对用户造成了极大的浪费。这种现象的背后其实是一种以经济利益为导向的“资源消耗型”产业发展模式。

针对“资源消耗型”发展模式,人们不禁会思考:我们何时才能够走出这个怪圈?硬件的性能会无限制的得到提升吗,摩尔定律会永远有效吗?假如硬件性能提升的空间是有限的,20年之后IT行业会不会面临资源枯竭的危机?站在整个IT产业可持续发展的角度来看,另外的一种思路是,可否摆脱以经济利益为导向的“资源消耗型”发展模式,而是以用户为中心审视当今软件业进步的瓶颈,思考如何恰当并充分地利用硬件和网络基础设施发展带来的好处,提高IT行业的资源利用率。针对上述IT资源优化利用的需求,近年来,以网格、云、Web X.0和SaaS模式等为代表的互联网计算新形态逐渐形成,这些变化为突破困惑了人们多年的软件生态链条不够优化、成本高昂以及效率低下等问题带来机会。

跨域集成问题是一个困扰人们多年的难题,经历了从点到点集成到基于软总线的集成平台的发展历程。像我们人类社会许多其它领域一样,规模的壮大促动了标准化和基础设施建设的发展。在这一背景下,互联网上的资源越来越多的以服务形式对外提供,通过对网络上封装各类资源的服务的共享和集成来构造和支撑应用软件正逐渐成为一种新兴和主流方式,在互联网之上正逐渐形成一个以聚合和协同为核心的计算环境和互联网软件新形态。互联网计算还可让行业用户的信息化服务部门甚至最终用户能够直接利用各类网络资源以及本地资源,灵活地编排业务逻辑来构建个性化的且能满足其即时需求的网络化虚拟应用。这种计算模式尤其适合支持在未来10年大有可为的互联网增值服务和第三方运营,促进ICT产业的良性循环。

互联网软件在互联网这一开放、动态和难控的协同计算平台上进行开发和运行,以SaaS作为其应用的部署、运营和使用的基本模式,具有泛在、开放、异构、自治、多样化、不确定性、动态变化以及强调使用而非强调拥有等特征,与传统软件相比,在软件构成、系统边界、运营方式、管控原理和使用模式等方面有了质的变化,也注定了互联网计算与传统分布式计算的本质不同。人们对互联网内在规律、机理及其可利用的价值等方面的探索方兴未艾。技术的进步以及应用的激增和普及暴露出很多新的现象和矛盾。例如,人们已观察到,当相关联的互联网资源集合达到一定规模后,会带来聚众效应。也即,能够产生新的增值能力,吸附更多相关资源的能力会随之得到加强。反过来,有效地利用这些规律又会进一步推动技术创新、应用创新和社会进步。总之,对互联网计算背后本质问题和学科基础的探究有重要的意义。

本书并不讨论互联网本身及相关的协议和技术,而是从以下几个方面重点关注基于互联网开展协同计算的基本原理、关键技术、新型互联网中间件和基础设施形态以及基于互联网的新型应用的构造和运维:

(1) 中间件技术和分布系统工程、构件技术和软件工程、信息检索技术和互联网信息服务等领域的发展也极大地促进了互联网应用发展。特别是,SOA风格和面向服务的计算(service oriented computing, SOC)的发展标识了分布式系统和软件集成领域技术一个里程碑式的进步。服务呼应了人们从使用角度对具有自治、开放、平台无关等一些期待的特征的网络化构件抽象,而面向服务计算方式倡导关注分离、多方参与和松散耦合的系统设计思想,可使分布式应用具有更好的复用性、灵活性和可增长性。本书将服务计算视为重要基础加以讨论,着重强调对互联网计算的支撑作用。

(2) 把互联网看作为一个巨大的虚拟计算机的话,它的“操作系统”等系统软件该是什么样子呢?互联网上有那么多节点,能否指定和建立一些像局域网中的数据库服务器一样的专用节点呢?还有,已有的很多计算中心在互联网环境下该如何生存和发展呢?这些问题都可归结为互联网计算基础设施相关问题。实际上,早在上世纪60年代,图灵奖获得者John McCarthy就提出了效用计算(utility computing)的愿景,即像用水、电一样获得“按需计算”的能力。这种愿景一直是IT领域的一大追求,随着网络和信息处理技术的快速发展,该愿景会离我们越来越近。不论是早期的ASP(application service provider)还是近年流行起来的网格计算(grid computing)和云计算(cloud computing),其实质追求都无出其右。总结和归纳互联网计算基础设施相关的原理和方法有很大意义,比单独讨论某一类特定模式更有助于理解和把握关键问题。

(3) 在互联、开放、共享和协作为主旋律的互联网计算环境下,软件呈现出网络化、服务化、虚拟化和集成化的发展趋势,应用系统的形态也在发生质的变化,不再以固化、独有的形式出现,会包含越来越多的“不为所有,但为所用”的服务构件。一种具有动态、开放、可共享以及强调使用而非强调拥有等特征的软件应用形式逐渐形成,在软件构成、系统边界、运营方式、管控原理和使用模式等方面有了质的变化。我们把依托互联网平台、可共享互联网软件基础设施及互联网资源的软件新形态成为互联网软件。这些变化为突破困惑了人们多年的软件生态链条不够优化、成本高昂等问题带来机会,也凸现出若干科学问题。互联网软件和传统软件的最大不同就在于公用服务和服务运营,出现了SaaS及平台即服务(platform as a service, PaaS)为代表的新兴服务供给模式。当前,怎么利用互联网平台做计算和构造软件是仍是一个有巨大意义的挑战性问题。本书所关注的有关互联网软件的构建、运营、保障和有效利用的相关理论和方法有重要意义。

作者长期以来一直致力于分布系统应用集成、基于互联网的智能信息服务、环境敏感的个性化信息服务、服务组合、信息融合、业务流程管理和协同、最终用户可用的网络应用“编程”方法和语言以及服务网格中间件等方面的研究及其行业应用(电子政务、企业应用集成、网络化科研、城市应急以及全国科技信息资源共享服务等)。我们认识到,互联网软件一方面要为用户提供具有像桌面软件一样的易用性和丰富用户体验的一体化服务,以及要应对多样化和个性化的用户需求以及具有不确定性的负载和扩展性要求;另一方面要面对广域、分散、异构的各类资源(存储资源、计算资源、遗留应用资源、各种新兴的服务资源以及大量的非结构化的数据资源)。如何利用这些分散、自治、动态和边界模糊的网络资源满足大规模用户群个性化的业务需求,又如何将领域相关的业务抽象和复杂多变的企业级业务流程与实现层面的互联网资源有机关联起来,都需要对基础理论、体系结构、保障策略和优化方法等开展深入研究。针对网络化、开放、动态和协同等软件发展趋势,结合领域实践,以支持跨管理域业务集成和大众用户“编程”为重点,我们自2000年起展开了对分布系统动态应用集成与协同问题的研究,形成一组基于资源动态汇聚、虚拟化和领域建模的服务集成技术,打造了一套互联网计算方法和软件环境-VINCA,旨在改造现行软件生产方式和使用模式,促进软件服务业发展。VINCA方法学及具体实践是本书的一个重要组成部分。

特色和适用范围

虽然市面上已有很多有关互联网技术、Web应用开发、Web 2.0、Web服务技术、SaaS、云系统和云计算的书籍,但多在探讨解决方案、产品、工具或具体技术,缺少对背后的科学问题和基本原理的归纳。在一定程度上也助长了互联网相关领域存在的以下现象:名词概念繁多,应用开发方法比较随意,厂商和产品主导走向,用户和开发人员盲从。本书试图填补空白,对互联网计算的本质问题和基本原理进行总结和归纳。我们力求透过现象看本质,在不失实用性的前提下从理论、原理和共性规律视角总结和归纳科学问题和核心技术,使读者不仅对互联网计算领域有个整体认识和理解,也能掌握互联网软件构造和运维的方法、原理和准则。

进入21世纪以来,围绕网络环境下的应用集成问题,网格和云计算等新理念和新技术层出不穷。首先,源自应用集成的SOA带来了一种以服务为核心的开放集成架构和灵活集成方式,很快就被业界和用户所接纳;最近,SaaS作为软件服务化发展与互联网结合的产物,体现了一种新型软件系统交付模式,也很快得到普遍关注;另一方面,Web 2.0代表了群众参与的互联网文化,体现了互联网上的聚众效应,带来了冲击和变革。本书试图搭建起互联网计算的概念体系,把相关基础和技术串在一起,体现整体性和系统性,避免盲人摸象似地只从某一个特定的视角分析问题或者零散地罗列概念和技术。本书的另一大特点是,正如副标题(——探索网格、云和Web X.0背后的本质问题和关键技术)所示,总结和归纳集成模式的演化,强调建立虚拟资源中心,对分散、自治、动态和边界模糊的资源实现“逻辑集中、物理自治”的集成方法,强调对资源的优化和管控,并允许用户随时随地的方便使用资源。网格和云计算等都是这种新模式的具体落实。

互联网计算囊括了IT领域所涉及的诸多内容和方法,虽然我们在书中1.5节特别指出了互联网计算的几个重要特征作为本书阐述的重点,但是,要想把互联网计算所涉及的问题全部在一本书的篇幅中讨论清楚,仍然是不可能的。考虑到互联网计算的有些问题已经在我们实验室的前一本书《面向服务的计算——原理及应用》以及国内外与网格计算有关的著述中得到了充分的阐述,因此,本书尽可能从互联网计算这个问题域内选择出我们认为比较重要并且在相关著述中还未被深入讨论的那些问题。其中,第一章和第二章为本书基础篇。第一章主要从概况的角度介绍互联网的基本概念和发展概况,提出互联网计算和互联网分布式系统的基本概念,并总结归纳互联网分布式系统的主要特征;第二章主要从学科关联的角度,介绍了与互联网计算的学科基础——软件工程、分布式系统、应用集成以及万维网工程等几个方面的基础知识,作为本书原理篇的铺垫;第三章至第七章为本书原理篇。其中,第三章探讨互联网分布式系统的体系结构,第四章探讨互联网分布式系统的数据资源存储与管理原理,第五章探讨服务资源的虚拟化、组合和管控原理,第六章探讨软件即服务模式下的第三方运营和优化问题(也涉及多租户环境下的特定问题),第七章则讨论贯穿互联网分布式系统各个层次的互联网计算安全和信任问题。第八章和第九章为本书实践篇。作为本书介绍的互联网计算原理的软件实践,实践篇主要介绍了VINCA软件的实现原理及其应用实例。

本书读者对象包括:(1) 分布系统、软件工程、网络计算、互联网服务、互联网应用、中间件与软件集成等相关方向的在校研究生和教师;(2) 想更新知识和跟上IT进步,透过网格计算、云系统、Web X.0、SaaS和SOA等热点概念深入了解本质问题和基本原理的业界专业人士;(3) 离不开互联网计算和互联网应用集成的行业信息化专业人士和管理者。通过本书读者不仅可以对互联网应用领域有个整体认识和理解,更主要的是有助于弄清云系统、SaaS系统和各类新兴互联网应用的基本原理并掌握互联网软件的架构设计准则。本书原本用于研究生课程,帮助相关领域而研究生了解互联网计算领域的前沿知识,启发新的研究选题。作者在此特意进行了拓展,使其也可以用作为相关领域的参考书,也可用作为计算机软件和计算机应用等相关本科高年级的专业教科书。

本书要求读者对操作系统、软件工程和软件体系结构、分布系统基本原理、计算机网络基础和Web以及XML有基本的了解,最好对中间件技术,如应用服务器技术有一定的使用经验。

从Web站点(http://sigsit.ict.ac.cn)的本书专栏链接可以获取关于本书的最新信息。

致谢

本书是中国科学院计算技术研究所软件集成与服务计算实验室和中德软件集成技术联合实验室全体人员集体努力的结晶。写作得益于团队在打造VINCA互联网服务集成套件和探索其应用过程中的醒悟和提高。VINCA得到了国家自然科学基金(No. 60903048, No. 60970132和No. 60903137)、北京市自然科学基金(No. 4092046)和973研究计划(2007CB310805)的资助。事实上,写作该书(把网格归纳为一类互联网计算)的想法最早源于2005年的山东省泰山学者计划支持。在此,一并表示感谢!

本书的撰写过程中,我们得到了许多师友的帮助和鼓励,在这里我们无法一一列举,谨向他们表示真挚的感谢。作者尤其要感谢中科院计算技术研究所李国杰院士和高庆狮院士、清华大学计算机系史美林教授、澳大利亚Swinburne大学韩军教授的关怀和帮助。实验室博士研究生张鹏、丁维龙、季光、亓开元、孙君意、赵栓、温彦以及硕士研究生林海伦、师春晓等同学为本书的绘图、校对、试验系统整理(光盘)花费了大量心血。张鹏、丁维龙、季光和亓开元还对本书的实例分析做了再次验证。

科学出版社的王志欣老师、张艳芬老师为书稿的最终面世给予了大力的帮助。在此,对他们表示衷心的感谢!

韩燕波 王桂玲 刘晨 王菁 赵卓峰

2010年3月于北京中关村 

posted on 2010-09-02 08:57  Jacquette.wang  阅读(788)  评论(0编辑  收藏  举报

导航