云计算的研究
来源:用户上传
作者:
中图分类号:TP 文献标识码:A 文章编号:1007-0745(2011)11-0078-01
摘要:互联网的发展使得云计算的出现是一个必然的结果。在未来,计算能力将作为一种商品进行流通,就像煤气、水、电一样,取用方便,费用低廉。最大的不同在于它是通过互联网进行传输的。目前国内对于云计算机的研究还处于起步阶段。
关键词:云 云计算
云计算是一种大规模分布式计算,之所以被称为云计算,因为早期,网络工程师们喜欢用云的形状来表示网络。云计算起源于Google,于2007被正式的提出,Google的创始人因为负担不起昂贵的服务器而采用许多廉价的pc来提供服务,没想到正是这个被逼无奈的选择逐步形成了云计算技术。
云计算的出现并不是一蹴而就的,它的出现其实是一个必然的结果。曾经在旧pc时代,由于pc的价格昂贵,因此多进程、多线程、分时等概念被提了出来,这个阶段的特点一台机器供多人同时使用,可以说是“貌合神离”;随着pc的价格下降,pc变得越来越普及,人们将关注的重点转向了数据的共享上,于是便出现了Internet,这个阶段特点是pc机各自为战,通过Internet来完成简单的通信,可以称之为“貌离神离”,随着Internet的发展,导致信息的飞速增长,于是如何解决海量信息的存储与计算问题又摆在了人们的面前,一个很好的解决方法就是将多个pc组合起来一起来完成大量的计算任务,于是云计算就应运而生了,云计算的出现就是要达到“貌离神合”的境界。
那么到底什么是云计算呢?如果你在互联网上搜索云计算,你会得到n种不同的答案。这里我截取了wiki百科上对于云计算的解释:云计算是一种基于互联网的计算新方式,通过互联网上异构、自治的服务为个人和企业用户提供按需即取的计算。
目前,基于云计算的服务方式主要有三种,基础即是服务(Infrastructure as a Service, IaaS)、平台即是服务(Platform as a Service,SaaS)和软件即是服务(Software as a Service,SaaS)。三种服务方式的层次依次递增:
IaaS是最基础的服务,它将基础设施作为服务出租。以IaaS方式提供服务的项目有亚马逊的弹性云(EC2)和简单存储服务(S3)等。
PaaS则提供一个完整的虚拟平台,如操作系统以及平台软件、服务组件等。以PaaS提供服务的项目有著名的Google App Engine,它是一个由python应用加BigTable数据库以及GFS文件系统组成的平台。
而SaaS则需要提供用户可以使用的应用程序。以SaaS提供服务的项目有很多,例如在线文档编辑、CRM(客户关系管理)、ERP(企业资源管理)、HRM(人力资源管理)等等。
云计算用到的技术有很多,这里我列举了一些当前提出的重要的技术。
1.海量数据存储技术
云计算采用分布式存储的方式,利用冗余的方式保证数据的可靠。目前云计算的数据存储系统主要有两个,Google GFS(Google File System)和HDFS(Hadoop Distributed File System),两者的基本原理是一致的,都采用了主从式结构。
与以往的文件系统不同,在云计算中集群中的节点失效是一个常态而不是异常,需要软件来监视系统的运行状态。而且系统中文件的大小一般是以G为单位的,因此文件的读写方式是采用追加的方式来修改。在系统中包含一个主服务器和许多块服务器(这是GFS中的叫法,在Hadoop中它们被称为Namenode和Datanode)。文件被分割成固定尺寸的块,在创建这些块的时候会为每个块分配一个唯一的64位句柄作为标识,而每个块就是普通的linux文件,为了保证数据的可靠,每个块会被复制多次保存在多个块服务器,一般来说数据默认会被复制为3个,用户也可以根据需要进行更改。主服务器负责管理名字空间、访问控制信息以及文件到块的映射。客户端与主服务器进行数据的交互而与块服务器进行实际数据的交互。打个比方,从云中取数据就好比一个人到图书馆借书,主服务器就好比是装有图书索引的机器,从这台机器上可以找到你感兴趣的图书的索书码,然后你需要根据这个索书码自行去找想要的书。
2.并行编程技术
云计算所操作的数据如此巨大,显然用传统的单机处理程序是无法应对的,并行编程技术是必然的选择。当前云计算采用的是MapReduce的编程模式,该模式由Google提出,它将对数据的操作归约为两个过程,Map和Reduce。Map过程将数据分布在多个节点上进行处理,然后经过一个Shuffle的排序,交给Reduce过程处理。
3.数据管理技术
云计算要对大规模数据进行处理,因此相应的数据管理技术也必须能够管理并处理大规模数据,例如如何在大规模数据中查询到特定的数据,数据管理技术方面的项目目前主要有Google的BigTable和Hadoop的HBase,两者原理相同,现以BigTable为例,BigTable顾名思义就是比较大的table,对于每个table用一个多维的稀疏图来表示,由行和列组成,并对其分配一个时间戳来记录数据的变动情况,由于表比较大,因此要将其按行来划分,多个行组成小的table,保存到节点上。
4.虚拟化技术
通过虚拟化技术可以将软件应用和底层硬件进行有效的隔离,可以通过虚拟的方式融合或划分资源,从而提高资源的利用率。
云计算不仅仅是技术,更是一种商业运营模式,当前许多IT公司已经展开了自己的云计划。根据市场调研机构IDC最新的数据分析,云计算将在2013年达到IT消费的10%,年收益将达到442亿美元,云计算的服务增长态势十分强劲,平均年增幅可达26%。
云计算的出现为IT产业注入了新的活力,为软件服务开创了一个崭新的空间,相信它的发展将不可限量,它的前途将一片光明。
参考文献:
[1]Cloud Computing by Michael Miller (Kindle Edition - Sep 24, 2008)
[2]《走近云计算》王鹏 人民邮电出版社 2009-6-1
[3]《云计算:深刻改变未来》张为民 科学出版社 2009
转载注明来源:https://www.xzbu.com/8/view-50689.htm