云计算的研究现状

郑州大学

升达经贸管理学院毕业论文

档案管理系统

学号:2009050242

学生姓名:袁月明

专业:计算机科学与技术

指导教师:乔木

提交时间:

摘要

针对云计算这样一个范畴综述了当前云计算所采用的技术, 剖析其背后的技术含义以及当前云计算参与企业所采用的云计算实现方案. 云计算包含两个方面的含义:一方面是底层构建的云计算平台基础设施, 是用来构造上层应用程序的基础; 另外一方面是构建在这个基础平台之上的云计算应用程序. 主要是针对云计算的基础架构的研究与实现状况给出综述, 对于云计算的应用也有所涉及. 云计算有3个最基本的特征:第1个是基础设施架构在大规模的廉价服务器集群之上; 第二是应用程序与底层服务协作开发, 最大限度地利用资源; 第3个是通过多个廉价服务器之间的冗余, 通过软件获得高可用性. 云计算达到了两个分布式计算的重要目标:可扩展性和高可用性. 可扩展性表达了云计算能够无缝地扩展到大规模的集群之上, 甚至包含数千个节点同时处理. 高可用性代表了云计算能够容忍节点的错误, 甚至有很大一部分节点发生失效也不会影响程序的正确运行. 通过此文可以了解云计算的当前发展状况以及未来的研究趋势.

关键词: 云计算; 分布式基础架构; 分布系统范例。

Abstract

This paper surveys the current technologies adopted in cloud computing as well as the systems in enterprises. Cloud computing can be viewed from two different aspects. One is about the cloud infrastructure which is the building block for the up layer cloud application. The other is of course the cloud application. This paper focuses on the cloud infrastructure including the systems and current research. Some attractive cloud applications are also discussed. Cloud computing infrastructure has three distinct characteristics. First, the infrastructure i s built on top of large scale clusters which contain a large number of cheap PC servers. Second, the applications are co -designed with the fundamental infrastructure that the computing resources can be maximally utilized. Third, the reliability of the whole system is achieved by software building on top of redundant hardware instead of mere hardware. All these technologies are for the two important goals for distributed system: high scalability and high availability. Scalability means that the cloud infrastructure can be expanded to very large scale even to thousands of nodes. Availability means that the services are available even when quite a number of nodes fail. From this paper, readers will capture the current status of cloud computing as well as its future trends.

Key words: cloud computing; distributed infrastructure; distributed paradigm

目录

摘要 ........................................................................................... - 2 - Abstract ..................................................................................... - 3 -

第一章 绪论 .............................................................................. - 6 -

第二章 云计算系统的简介 ......................................................... - 7 -

2.1云计算概念 ........................................................................ - 7 -

2.2 云计算的产生背景 ............................................................. - 7 -

2.3云计算的特点 ..................................................................... - 8 -

第三章 云计算的发展现状 ......................................................... - 9 -

3.1发展中的云计算服务 . .......................................................... - 9 -

3.2国内外云计算的发展现状 .................................................. - 10 -

第四章 云计算的关键技术 ....................................................... - 13 -

4.1 数据存储技术 .................................................................. - 13 -

4. 2 数据管理技术 ................................................................ - 14 -

4.3数据存储技术 ................................................................... - 15 -

4.4数据管理技术 ................................................................... - 16 -

4. 5 编程模型技术 ................................................................ - 17 -

第五章 典型云计算平台介绍 ..................................................... - 18 -

5.1清华大学透明计算平台 ..................................................... - 18 -

5.2 Google的云计算平台 ....................................................... - 20 -

5.2.1 Google File System文件系统(GFS) . .......................... - 20 -

5.2.2 MapReduce分布式编程环境 ........................................ - 21 -

5.2.3 分布式的大规模数据库管理系统BigTable .................. - 22 -

5.3 IBM“蓝云”计算平台 ...................................................... - 24 -

5.3.1 “蓝云”计算平台中的虚拟化技术 ............................. - 25 -

5.3.2 “蓝云”计算平台中的存储体系结构 . ......................... - 26 -

5.4 Amazon的弹性云计算 ....................................................... - 27 -

第六章 云计算系统的特征与未来的发展 .................................... - 28 -

第七章 结束语 .......................................................................... - 29 - 致谢 ......................................................................................... - 31 - 参考文献................................................................................... - 32 -

第一章 绪论

今天,计算资源在人们的日常生活中逐渐变得不可或缺,于是如何以更好地方式给公众提供计算资源受到很多研究人员和 实践者的关注。

随着多核处理器、虚拟化、分布式存储、宽带互联网和自动化管理等技术的发展,产生了一种新型的计算模式——云计算 ,它能够按需部署计算资源,用户只需要为所使用的资源付费。从本质上来讲,云计算是指用户终端通过远程连接,获取 存储、计算、数据库等计算资源。云计算在资源分布上包括“云”和“云终端”。“云”是列互联网或大型服务器集群的 一种比喻,由分布的互联网基础设施(网络设备、服务器、存储设备、安全设备等) 等构成,几乎所有的数据和应用软件, 都可存储在“云”里,“云终端”,例如PC 、手机、车载电子设备等,只需要拥有一个功能完备的浏览器,并安装一个简 单的操作系统,通过网络接入“云”,就可以轻松地使用云中的计算资源。

本文旨在探讨云计算的概念、现状及其关键技术,组织如下:

第一节讨论云计算的产生、定义及其特点; 第二节研究云计 算的发展现状,分析比较几个典型的云计算平台; 第三节探讨云计算的体系结构和部分关键技术。

随着互联网时代信息与数据的快速增长,科学、工程和商业计算领域需要处理大规模、海量的数据, 对计算能力的需求远远超出自身 IT架构的计算能力, 这时就需要不断加大系统硬件投入来实现系统的可扩展性。另外,由于传统并行编程模型应用的局限性,客观上要求一种容易学习、使用、部署的新的并行编程框架。在这种情况下, 为了节省成本和实现系统的可扩放性,云计算的概念被提了出来。云计算是分布式计算、并行处理和网格计算的进一步发展, 它是基于互联网的计算,能够向各种互联网应用提供硬件服务、基础架构服务、平台服务、软件服务、存储服务的系统。通常云系统由第三方拥有的机制提供服务,用户只关心云所提供的服务。

第二章 云计算系统的简介

2.1云计算概念

云计算(Cl oud Co mputi ng )是由分布式计算(Dist ribu ted Co mputi ng )、并行处理(Par alle l Compu ting )、网格计算(Gr id C ompu ting )发展来的,是一种新兴的商业计算模型。目前,对于云计算的认识在不断的发展变化,云计算没仍没有普遍一致的定义。中国网格计算、云计算专家刘鹏给出如下定义 :“云计算将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和各种软件服务”。狭义的云计算指的是厂商通过分布式计算和虚拟化技术搭建数据中心或超级计算机,以免费或按需租用方式向技术开发者或者企业客户提供数据存储、分析以及科学计算等服务,比如亚马逊数据仓库出租生意。广义的云计算指厂商通过建立网络服务器集群,向各种不同类型客户提供在线软件服务、硬件租借、数据存储、计算分析等不同类型的服务。广义的云计算包括了更多的厂商和服务类型,例如国内用友、金蝶等管理软件厂商推出的在线财务软件,谷歌发布的Go ogle 应用程序套装等。

通俗的理解是,云计算的“云“就是存在于互联网上的服务器集群上的资源,它包括硬件资源(服务器、存储器、CP U 等)和软件资源(如应用软件、集成开发环境等),本地计算机只需要通过互联网发送一个需求信息,远端就会有成千上万的计算机为你提供需要的资源并将结果返回到本地计算机,这样,本地计算机几乎不需要做什么,所有的处理都在云计算提供商所提供的计算机群来完成。

2.2 云计算的产生背景

21世纪初期,崛起的Web2.0让网络迎来了新的发展高峰。网站或者业务系统所需要处理的业务量快速增长,例如视频在线 或

者照片共享,这样的网站需要为用户储存和处理大量的数据。这类系统所面临的重要问题是如何在用户数量快速增长的 情况下快速扩展原有系统,随着移动终端的智能化、移动宽带网络的普及,将有越来越多的移动设备进入互联网,意味着 与移动终端相关的IT 系统会承受更多的负载,而列于提供数据服务的企业来讲,IT 系统需要处理更多的业务量。由于资源 的有限性,电力成本、空间成本、各种设施的维护成本快速上升,直接导致数据中心的成本上升,这就面临着怎样有效地 利用这些资源,以及如何利用更少的资源解决更多的问题。

同时,随着高速网络连接的衍生,芯片和磁盘驱动器产品在功能增强的同时,价格也在变得甘益低廉,拥有成百上千台计 算机的数掂中心也具备了快速为大量用户处理复杂问题的能力。技术上,分布式计算的日益成熟和应用,特别是网格计算 的发展通过Internet 把分散在各处的硬件、软件、信息资源连接成为一个巨大的整体,从而使得人们能够利用地理上分散 于各处的资源,完成大规模的、复杂的计算和数据处理的任务oJ 。数据存储的快速增长产生了以GFS(Google File System) 、SAN(Storage Area Network) 为代表的高性能存储技术。服务器整合需求的不断升温推动了Xen 等虚拟化技术的进步还有 Web2 0的实现,SaaS(Software as a Service)观念方兴未艾,多核技术的普及等,所有这些技术为产生更强大的计算能力和服务提供了可能。计算能力和资源利用效率的迫切需求,资源的集中化和技术的进步,推动云计算应运而生。

2.3云计算的特点

从现有的云计算半台来看,它与传统的单机和网络应用模式相比,具有如下特点:

1) 虚拟化技术:这是云计算最强调的特点,包括资源虚拟化和应用虚拟化。每一个应用部署的环境和物理平台是没有关系 的。通过虚拟半台进行管理达到对应用进行扩展、迁移、备份,操作均通过虚拟化层次完成。

2) 动态可扩展:通过动态扩展虚拟化的层次达到对应用进行扩展的目的。:可以实时将服务器加入到现有的服务器机群中 ,增加“云”的计算能力。

3) 按需部署:用户运行不同的应用需要不同的资源和计算能力。云计算平台可以按照用户的需求部署资源和计算能力。

4) 高灵活性:现在大部分的软件和硬件都对虚拟化有一定支持,各种IT 资源,例如,软件、

硬件、操作系统、存储网络等所有要素通过虚拟化,放在云计算虚拟资源池中进行统一管理。同时,能够兼容不同硬件厂 商的产品,兼容低配置机器和外设而获得高性能计算。

5) 高可靠性:虚拟化技术使得用户的应用和计算分布在不同的物理服务器上面,即使单点服务器崩溃,仍然可以通过动态 扩展功能部署新的服务器作为资源和计算能力添加进来,保证应用和计算的正常运转。

6) 高性价比:云计算采用虚拟资源池的方法管理所有资源,对物理资源的要求较低。可以使用廉价的PC 组成云,而计算性 能却可超过大型主机。

第三章 云计算的发展现状

3.1发展中的云计算服务

目前,已经涌现的云计算服务形态包括从技术、半台供应商到软件服务提供商,从成熟的应用程序到存储服务再到垃圾邮件过滤等,不一而足。

根据不同服务的特性可以将云计算分为以下几种类型:

3.1.1云计算基础架构

这类云计算提供底层的技术平台以及核心的云服务,是最为全面的云计算服务。Amazon 、Google 等推出的云计算服务可以 归于这类。这种云计算服务形态将支撑起整个互联网的虚拟中心,使其能够将内存、I/O设备、存储和计算能力集中起来成为一个虚拟的资源池为整个网络提供服务。

3.1.2云计算半台服务

这种形式的云计算也被称为半台即服务PaaS(Platfbrm as a Service) ,它将开发环境作为服务来提供。:这种形式的云计 算可以使用供应商的基础架构来开发自己的程序,然后通过网络从供应商的服务器上传递给用户。典型的实例比如 Salesforce com 的

Force tom开发半台。

3.1.3云计算软件服务

这种类型的云计算称之为软件即服务SaaS ,它通过浏览器把程序传给用户。. 从用户的角度,这样会省去在服务器和软件 授干义上的开支; 从供应商的角度看,这样只需要维持一个程序就够了,减少了维护成本。Salesforce com是迄今为止这 类服务最为有名的公司。SaaS 在CRM 、ERP 中比较常用,Google Apps 和Zoho Office 也提供类似的服务。

3.1.4云计算API

这类服务供应商提供API(Application Programming Interface) 让开发者能够开发更多基于互联网的应用,帮助开发商拓 展功能和服务,而不是只提供成熟的应用软件他们的服务范围从提供分散的商业服务到Google Maps等的全套API 服务。这 与软件即服务有着密切的关系。

3.1.5云计算互动半台

该类云计算为用户和提供商之问的互动提供了一个半台。例如,RightScale 利用Amazon EC2网络计算服务和s3网络存储服 务的API 提供一个操作面板和AWS(Amazon’s Web Services)前端托管服务。

3.2国内外云计算的发展现状

云计算是多种技术混合演进的结果,又有大公司推动,发展极为迅速。Amazon 、Google 、IBM 、微软和Yahoo 等大公司是云计算的先行者。云计算领域的众多成功公司还包括Salesforce 、Facebook 、Youtube 、Myspace 等。

Amazon 使用弹性计算云(EC2)和简单存储服务(S3)为企业提供计算和存储服务。收费的服务项目包括存储服务器、带宽、 CPU资源以及月租费。月租费与电话月租费类似,存储服务器、带宽按容量收费,CPU 根据时长(小时) 运算量收费。Amazon 把云计算做成一个大生意没有花太长的时间:不到两年时间,Amazon 上的注册开发人员达44万人,还有为数众多的企业级用户。有第三方统计机构提供的数据显示,Amazon 与云计算相关的业务收入已达1亿美元。云计算是Amazon 增长最快的业务之一。

近期,Amazon 公司启动了一个云计算教育项目。该项目为全球

高校老师,学生,科研人员提供了云计算开放式基金申请。如果基金申请成功,就可以得到相应的免费云计算资源。

Google 当数最大的云计算的使用者。Google 搜索引擎就建立在分布在200多个地点、超过100万台服务器的支撑之上,这些设施的数量正在迅猛增长。Google 地球、地图、Gmail 、Docs 等也同样使用了这些基础设施。采用Google Docs 之类的应用,用户数据会保存在互联网上的某个位置,可以通过任何一个与互联网相连的系统十分便利地访问这些数据。目前,Google 已经允许第三方在Google 的云计算中通过Google App Engine运行大型并行应用程序。Google 值得称颂的是它不保守。它早已以发表学术论文的形式公开其云计算三大法宝:GFS 、MapReduce 和 BigTable,并在美国、中国等高校开设如何进行云计算编程的课程。

GDrive 是GOOGLE 推出的最新云计算服务,可以让用户通过任意网络连接访问自己的数据。

GDrive 可以让用户将个人文件和操作系统存储在谷歌的服务器上,并可通过网络访问。换句话说,GDrive 将使应用不再依赖目前大多数电脑中安装的Windows 操作系统,而是以“云计算”的方式,通过数千公里外的远程数据中心完成处理和存储过程。因此此举可能使应用程序依赖电脑硬盘的现状成为历史。谷歌企业产品与市场总监Dave Armstrong 称:“云计算的需求在不断增长。明显的趋势是,用户所谓的‘这是我的电脑,这是我的硬盘’的说法将向‘这是我与信息交流的方式,这是我与网络交流的方式’转变。”

IBM 在2007年11月推出了“改变游戏规则”的“蓝云”计算平台,为客户带来即买即用的云计算平台。它包括一系列的自动化、自我管理和自我修复的虚拟化云计算软件,使来自全球的应用可以访问分布式的大型服务器池。使得数据中心在类似于互联网的环境下运行计算。IBM 正在与17 个欧洲组织合作开展云计算项目。欧盟提供了1.7亿欧元做为部分资金。该计划名为RESERVOIR ,以“无障碍的资源和服务虚拟化”为口号。2008年 8月, IBM宣布将投资约4亿美元用于其设在北卡罗来纳州和日本东京的云计算数据中心改造。IBM 计划在2009年在10个国家投资3亿美元建13个云计算中心。

微软紧跟云计算步伐,于2008年10月推出了Windows Azure操作系统。Azure(译为“蓝天”) 是继Windows 取代DOS 之后,微软的又一次颠覆性转型——通过在互联网架构上打造新云计算平台,让 Windows真正由PC 延伸到“蓝天”上。微软拥有全世界数

以亿计的Windows 用户桌面和浏览器,现在它将它们连接到“蓝天”上。Azure 的底层是微软全球基础服务系统,由遍布全球的第四代数据中心构成。

近期,微软将推出三项手机互联网相关的云计算服务:SkyBox 、SkyLine 和SkyMarket 。1、SkyBox :这是一种数据同步服务,手机用户通过该服务可以远程同步通讯录、Email 、短信、日历条目和图像等。微软的SkyBox 不限于使用Windows Mobile的手机用户,其它智能手机也可以使用该服务。2、SkyLine :这是一种企业用户数据同步服务,仅面向企业用户,包括Exchange 整合和客户域。

3、SkyMarket :它是一种手机应用程序商店,和苹果App Store 相似。据悉,SkyMarket 也仅面向Windows Mobile用户开放,初期阶段,微软将提供1000多款Windows Mobile应用程序。

云计算的新颖之处在于它几乎可以提供无限的廉价存储和计算能力。纽约一家名为Animoto 的创业企业已证明云计算的强大能力。 Animoto 允许用户上传图片和音乐,自动生成基于网络的视频演讲稿,并且能够与好友分享。该网站目前向注册用户提供免费服务。2008年年初,网站每天用户数约为5000人。4月中旬,由于Facebook 用户开始使用Animoto 服务,该网站在三天内的用户数大幅上升至75万人。Animoto 联合创始人Stevie Clifton表示,为了满足用户需求的上升,该公司需要将服务器能力提高100倍,但是该网站既没有资金,也没有能力建立规模如此巨大的计算能力。因此,该网站与云计算服务公司RightScale 合作,设计能够在亚马逊的网云中使用的应用程序。通过这一举措,该网站大大提高了计算能力,而费用只有每服务器每小时10美分。这样的方式也加强创业企业的灵活性。当需求下降时,Animoto 只需减少所使用的服务器数量就可以降低服务器支出。

另一个实例是在网络游戏领域。硅谷一家创业公司不久前正式展示其新型“云计算”电子游戏服务。OnLive 公司的新服务利用网络服务器来存储和运行游戏,并能对大量数据进行有效压缩然后通过互联网快速传送。玩家不必购买专门的游戏机或高配置电脑就可联网玩一些最新款的复杂游戏,也可在电视机上玩这些游戏,不过要借助该公司一种手持式可联网的设备,并支付月租费。新服务的正式亮相引起业界广泛关注,被认为有可能给几大游戏机生产商带来冲击。

在我国,云计算发展也非常迅猛。2008年5月10日,IBM 在中国无锡太湖新城科教产业园建立的中国第一个云计算中心投入运

营。2008年6月 24日,IBM 在北京IBM 中国创新中心成立了第二家中国的云计算中心——IBM 大中华区云计算中心;2008年11月28日,广东电子工业研究院与东莞松山湖科技产业园管委会签约,广东电子工业研究院将在东莞松山湖投资2亿元建立云计算平台;2008年12月30日,阿里巴巴集团旗下子公司阿里软件与江苏省南京市政府正式签订了2009年战略合作框架协议,计划于2009年初在南京建立国内首个“电子商务云计算中心”,首期投资额将达上亿元人民币;世纪互联推出了CloudEx 产品线,包括完整的互联网主机服务"CloudEx Computing Service", 基于在线存储虚拟化的"CloudEx Storage Service",供个人及企业进行互联网云端备份的数据保全服务等等系列互联网云计算服务;中国移动研究院做云计算的探索起步较早,已经完成了云计算中心试验。中移动董事长兼CEO 王建宙认为云计算和互联网的移动化是未来发展方向。此外,我国企业创造的“云安全”概念,在国际云计算领域独树一帜,瑞星、趋势、卡巴斯基、MCAFEE 、SYMANTEC 、江民科技、PANDA 、金山、360安全卫士、卡卡上网安全助手等都推出了云安全解决方案。

第四章 云计算的关键技术

云计算是一种新型的超级计算方式,以数据为中心,是一种数据密集型的超级计算[10]。在数据存储、数据管理、编程模式等方面具有自身独特的技术。

4.1 数据存储技术

为保证高可用、高可靠和经济性,云计算采用分布式存储的方式来存储数据,采用冗余存储的方式来保证存储数据的可靠性,即为同一份数据存储多个副本。

另外,云计算系统需要同时满足大量用户的需求,并行地为大量用户提供服务。因此,云计算的数据存储技术必须具有高吞吐率和高传输率的特点。云计算的数据存储技术主要有谷歌的非开源的GFS (Google File System)[11]和 Hadoop 开发团队开发的GFS 的开源实现HDFS (Hadoop Distributed FileSystem)[12][13]。大部分IT 厂商,包括yahoo 、Intel 的“云”计划采用的都是HDFS 的数据存储技术。

未来的发展将集中在超大规模的数据存储、数据加密和安全性保证、以及继续提高I/O速率等方面。

4. 2 数据管理技术

云计算系统对大数据集进行处理、分析向用户提供高效的服务。因此,数据管理技术必须能够高效的管理大数据集。其次,如何在规模巨大的数据中找到特定的数据,也是云计算数据管理技术所必须解决的问题。

云计算的特点是对海量的数据存储、读取后进行大量的分析,数据的读操作频率远大于数据的更新频率,云中的数据管理是一种读优化的数据管理。因此,云系统的数据管理往往采用数据库领域中列存储的数据管理模式。将表按列划分后存储。

云计算的数据管理技术最著名的是谷歌的BigTable[14]数据管理技术,同时Hadoop 开发团队正在开发类似BigTable 的开源数据管理模块。

由于采用列存储的方式管理数据,如何提高数据的更新速率以及进一步提高随机读速率是未来的数据管理技术必须解决的问题。 编程模式

为了使用户能更轻松的享受云计算带来的服务,让用户能利用该编程模型编写简单的程序来实现特定的目的,云计算上的编程模型必须十分简单。必须保证后台复杂的并行执行和任务调度向用户和编程人员透明。

云计算采用类似MAP-Reduce[15]的编程模式。现在所有IT 厂商提出的“云”计划中采用的编程模型,都是基于MAP-Reduce 的思想开发的编程工具。MAP-Reduce 不仅仅是一种编程模型,同时也是一种高效的任务调度模型。Map-Reduce 这种编程模型并不仅适用于云计算,在多核和多处理器、cellprocessor 、以及异构机群上同样有良好的性能

该编程模式仅适用于编写任务内部松耦合、能够高度并行化的程序。如何改进该编程模式,使程序员得能够轻松的编写紧耦合的程序,运行时能高效的调度和执行任务,是Map-Reduce 编程模型未来的发展方向。

4.3数据存储技术

为了满足云计算的分布式存储方式、同时保证数据可靠性和高吞吐率以及高传输率的需求。目前各IT 厂商多采用GFS 或HDFS 的数据存储技术。以GFS 为例。GFS 是一个管理大型分布式数据密集型计算的可扩展的分布式文件系统。它使用廉价的商用硬件搭建系统并向大量用户提供容错的高性能的服务。

GFS 和普通的分布式文件系统有以下区别,如表

2所示:

GFS 传统分布式文件系统组件失败管理不作为Exception 处理作为Exception 处理文件大小少量大文件大量小文件数据写方式在文件末尾附加数据修改现存数据数据流和控制流数据流和控制流分开数据流和控制流结合GFS 系统由一个Master 和大量块服务器构成。Master 存放文件系统的所有的元数据,包括名字空间、存取控制、文件分块信息、文件块的位置信息等。GFS 中的文件切分为64MB 的块进行存储。

在GFS 文件系统中,采用冗余存储的方式来保证数据的可靠性。每份数据在系统中保存3个以上的备份。为了保证数据的一致性,对于数据的所有修改需要在所有的备份上进行,并用版本号的方式来确保所有备份处于一致的状态。

客户端不通过Master 读取数据,避免了大量读操作使Master 成为系统瓶颈。客户端从Master 获取目标数据块的位置信息后,直接和块服务器交互进行读操作。

GFS 的写操作将写操作控制信号和数据流分开,

如图3[11]所示:

图4-1 写控制信号和写数据流

即,客户端在获取Master 的写授权后,将数据传输给所有的数据副本,在所有的数据副本都收到修改的数据后,客户端才发出写请求控制信号。在所有的数据副本更新完数据后,由主副本向客户端发出写操作完成控制信号。具体请见。

4.4数据管理技术

为了满足云计算的大规模数据集管理,高效的数据定位需求。谷歌采用BigTable 的数据管理技术。在各大IT 厂商的支持下,Hadoop 开发团队正在开发其开源版本。

以BigTable 为例。BigTable 数据管理方式设计者——Google 给出了如下定义:“BigTable 是一种为了管理结构化数据而设计的分布式存储系统,这些数据可以扩展到非常大的规模,例如在数千台商用服务器上的达到PB(Petabytes)规模的数据。”

BigTable 对数据读操作进行优化,采用列存储的方式,提高数据读取效率。BigTable 管理的数据的存储结构为: ->string。BigTable 的基本元素是:行,列,记录板和时间戳。其中,记录板是一段行的集合体。 BigTable 中的数据项按照行关键字的字典序排列,每行动态地划分到记录板中。每个节点管理大约100个记录板。时间戳是一个64位的整数,表示数据的不同版本。

BigTable 在执行时需要三个主要的组件: 链接到每个客户

的库,一个主服务器,多个记录板服务器。主服务器用于分配记录板到记录板服务器以及负载平衡,垃圾回收等。记录板服务器用于直接管理一组记录板,处理读写请求等。

为保证数据结构的高可扩展性,BigTable 采用三级的层次化的方式来存储位置信息,如图4[14]所示。其中第一级的Chubby file 中包含Root Tablet 的位置,Root Tablet 包含所有METADATA tablets 的位置信息,每个METADATA tablets 包含许多User Table 的位置信息。具体见。

图4-4 B igTa ble 中存储记录板位置信息的结构

4. 5 编程模型技术

当前各IT 厂商提出的“云”计划的编程工具均基于Map-Reduce 的编程模型。Map-Reduce 是一种处理和产生大规模数据集的编程模型,程序员在Map 函数中指定对各分块数据的处理过程,在Reduce 函数中指定如何对分块数据处理的中间结果进行归约。用户只需要指定map 和reduce 函数来编写分布式的并行程序。当在机群上运行Map-Reduce 程序时,程序员不需要关心如何将输入的数据分块、分配和调度,同时系统还将处理机群内节点失败以及节点见通信的管理等。图5给出了一个Map-Reduce 程序的具体执行过程。从图5可以看出,执行一个Map-Reduce 程序需要五个步骤:输入文件、将文件分配给多个worker 并行地执行、写中间文件(本地写)、多个Reduceworkers 同时运行、输出最终结果。本地写中间文件在减少了对网络带宽的压力同时减少了写中间文件的时

耗费。执行Reduce 时,根据从Master 获得的中间文件位置信息,将Reduce 命令发送给中间文件所在节点执行,进一步减少了传送中间文件对带宽的需求。

图4-5 Map -Red uce 程序的具体执行过程

Map-Reduce 模型具有很强的容错性,当worker 节点出现错误时,只需要将该worker 节点屏蔽在系统外等待修复,并将该worker 上执行的程序迁移到其他worker 上重新执行同时将该迁移信息通过Master 发送给需要该节点处理结果的节点。Map-Reduce 使用检查点的方式来处理Master 出错失败的问题,当Master 出现错误时,可以根据最近的一个检查点重新选择一个节点作为Master 并由此检查点位置继续运行。

第五章 典型云计算平台介绍

5.1清华大学透明计算平台

张尧学教授领导的研究小组从1998年开始就从事透明计算系统和理论的研究, 到2004年前后正式提出, 并不断完善了透明计算的概念和相关理论[3,4].随着硬件、软件以及网络技术的发展, 计算模式从大型机的方式逐渐过渡到微型个人计算机的方式, 并且近年来过渡到普适计算上. 但是用户仍然很难获得异构类型的操作系统以及应用程序, 在轻量级的设备上很难获得完善的服务. 而在

明计算中, 用户无须感知计算具体所在位置以及操作系统、中间件、应用等技术细节, 只需要根据自己的需求, 通过连通在网络之上的各种设备选取相应的服务.

图5-1显示了透明计算平台的3个重要组成部分. 用户的显示界面是前端的轻权设备, 包括各种个人计算机、笔记本、PDA 、智能手机等, 被统称为透明客户端. 透明客户端可以是没有安装任何软件的裸机, 也可以是装有部分核心软件平台的轻巧性终端. 中间的透明网络则整合了各种有线和无线网络传输设施, 主要用来在各种透明客户端与后台服务器之间完成数据的传递, 而用户无须意识到网络的存在. 与云计算基础服务设施构想一致, 透明服务器不排斥任何一种可能的服务提供方式, 既可通过当前流行的PC 服务器集群方式来构建透明服务器集群, 也可使用大型服务器等.

图5-1 透明计算系统的组成结构

当前透明计算平台已经达到了平台异构的目的, 能够支持Linux 以及Windows 操作系统的运行. 用户具有很大的灵活性, 能够自主选择自己所需要的操作系统运行在透明客户端上. 透明服务器使用了流行的PC 服务器集群的方式, 预先存储了各种不同的操作平台, 包括操作系统的运行环境、应用程序以及相应的数据. 每个客户端从透明服务器上获取并建立整个运行环境以满足用户对于不同操作环境的需求. 由于用户之间的数据相互隔离, 因此服务器集群可以选取用户相对独立的方式进行存储, 使得整个系统能够扩展到很大的规模. 在服务器集群之上进行相应的冗余出错处理, 很好地保护了每个用户的透明计算数据安全性

.

5.2 Google的云计算平台

Google 公司有一套专属的云计算平台[5],这个平台先是为Google 最重要的搜索应用提供服务[6],现在已经扩展到其他应用程序.Google 的云计算基础架构模式包括4个相互独立又紧密结合在一起的系统:Google File System[7]分布式文件系统, 针对Google 应用程序的特点提出的MapReduce 编程模式[8],分布式的锁机制Chubby[9]以及Google 开发的模型简化的大规模分布式数据库BigTable[10].

5.2.1 Google File System文件系统(GFS)

除了性能, 可伸缩性、可靠性以及可用性以外,GFS 设计还受到Google 应用负载和技术环境的影响[7].体现在4个方面:1) 充分考虑到大量节点的失效问题, 需要通过软件将容错以及自动恢复功能集成在系统中;2) 构造特殊的文件系统参数, 文件通常大小以G 字节计, 并包含大量小文件;3) 充分考虑应用的特性, 增加文件追加操作, 优化顺序读写速度;4) 文件系统的某些具体操作不再透明, 需要应用程序的协助完成.

图5-2-1给出了Google File System 的系统架构. 如图2所示, 一个GFS 集群包含一个主服务器和多个块服务器, 被多个客户端访问. 大文件被分割成固定尺寸的块, 块服务器把块作为Linux 文件保存在本地硬盘上, 并根据指定的块句柄和字节范围来读写块数据. 为了保证可靠性, 每个块被缺省保存3个备份. 主服务器管理文件系统所有的元数据, 包括名字空间、访问控制、文件到块的映射、块物理位置等相关信息. 通过服务器端和客户端的联合设计,GFS 对应用支持达到性能与可用性最优.GFS 是为Google 应用程序本身而设计的, 在内部部署了许多GFS 集群. 有的集群拥有超过1 000个存储节点, 超过300T 的硬盘空间, 被不同机器上的数百个客户端连续不断地频繁访问着.

图5-2-1 Google File System的系统架构

5.2.2 MapReduce分布式编程环境

Google 构造MapReduce 编程规范[8,11,12]来简化分布式系统的编程. 应用程序编写人员只需将精力放在应用程序本身, 而关于集群的处理问题, 包括可靠性和可扩展性, 则交由平台来处理.MapReduce 通过“Map(映射)”和“Reduce(化简)”这样两个简单的概念来构成运算基本单元, 用户只需提供自己的Map 函数以及Reduce 函数即可并行处理海量数据. 为了进一步理解MapReduce 的编程方式, 下面给出一个基于MapReduce 编程方式的程序伪代码. 程序功能是统计文本中所有单词出现的次数.

在3所示的map 函数中, 用户的程序将文本中所有出现的单词都按照出现计数1(以Key-Value 对的形式) 发射到MapReduce 给出的一个中间临时空间中. 通过MapReduce 中间处理过程, 将所有相同的单词产生的中间陈康 等:云计算:系统实例与研究现状

map (String input_key, String input_value):

// input_key: document name

// input_value: document contents

for each word w in input_value:

EmitIntermediate (w ,“1”);

reduce (String output_key,

intermediate_values):

// output_key: a word

// output_values: a list of counts

int result = 0;

for each v in intermediate_values:

result +=ParseInt (v );

Emit (AsString (result ));

3 基于MapReduce 框架的单词统计程序举例 Interator 3 WordCount program using MapReduce framework

结果分配到同样一个Reduce 函数中. 而每一个Reduce 函数则只需把计数累加在一起即可获得最后结果.

图5-2-2给出了MapReduce 执行过程, 分为Map 阶段以及Reduce 两个阶段, 都使用了集群中的所有节点. 在两个阶段之间还有一个中间的分类阶段, 即将中间结果包含相同的key 的中间结果交给同一个Reduce 函数去执行.

图5-2-2 MapReduce 处理程序的执行过程(M代表Map 函数的执行,R 代表Reduce 函数的执行)

5.2.3 分布式的大规模数据库管理系统BigTable

由于一部分Google 应用程序需要处理大量的格式化以及半格

式化数据, Google 构建了弱一致性要求的大规模数据库系统BigTable[10].BigTable的应用包括Search History,Maps,Orkut,RSS 阅读器等

.

图5-2-3 给出了在BigTable 模型中给出的数据模型. 数据模型包括行列以及相应的时间戳, 所有的数据都存放在表格单元中.BigTable 的内容按照行来划分, 将多个行组成一个小表, 保存到某一个服务器节点中. 这个小表就被称为Tablet. 图5-2-4 是整个BigTable 的存储服务体系结构.

图5-2-3 Google BigTable的数据模型

图5-2-4 BigT able 系统的组织结构

与前述的系统类似,BigTable 也是客户端和服务器端的联合设计, 使得性能能够最大程度地符合应用的需求.BigTable 系统依赖于集群系统的底层结构, 一个是分布式的集群任务调度器, 一个是前述的Google 文件系统, 还有一个分布式的锁服务Chubby.Chubby 是一个非常鲁棒的粗粒度锁,BigTable 使用Chubby 来保存根数据表格的指针, 即用户可以首先从Chubby 锁服务器中获得根表的位置

,

进而对数据进行访问.BigTable 使用一台服务器作为主服务器, 用来保存和操作元数据. 主服务器除了管理元数据之外, 还负责对tablet 服务器(即一般意义上的数据服务器) 进行远程管理与负载调配. 客户端通过编程接口与主服务器进行元数据通信, 与tablet 服务器进行数据通信.

以上是Google 内部云计算基础平台的3个主要部分.Google 还构建其他云计算组件, 包括一个领域描述语言以及分布式锁服务机制等. 文献[5]描述了Google 内部构建集群的方法, 即使用了大量的x86服务器集群来构建整个计算的硬件基础设施.Sawzall[13]是一种建立在MapReduce 基础上的领域语言, 专门用于大规模的信息处理.Chubby[9]是前述的一个高可用、分布式数据锁服务. 当有机器失效时,Chubby 使用Paxos 算法[14]来保证备份的一致性.Chubby 的小型分布式文件系统的每一个单元都可以用来提供锁服务.

5.3 IBM“蓝云”计算平台

IBM 的“蓝云”计算平台是一套软、硬件平台, 将Internet 上使用的技术扩展到企业平台上, 使得数据中心使用类似于互联网的计算环境.“蓝云”大量使用了IBM 先进的大规模计算技术, 结合了IBM 自身的软、硬件系统以及服务技术, 支持开放标准与开放源代码软件.“蓝云”基于IBM Almaden 研究中心的云基础架构, 采用了Xen[15,16]和PowerVM[17]虚拟化软件,Linux 操作系统映像以及Hadoop[18]软件(Google File System 以及MapReduce 的开源实现).IBM 已经正式推出了基于x86芯片服务器系统的“蓝云”产品.

图5-3 IBM“蓝云”产品架构

由图可知,“蓝云”计算平台由一个数据中心、IBM Tivoli部署管理软件(Tivoli provisioning manager) 、IBM Tivoli 监控软件(IBM Tivoli monitoring) 、IBM WebSphere 应用服务器、IBM DB2数据库以及一些开源信息处理软件和开源虚拟化软件共同组成.“蓝云”的硬件平台环境与一般的x86服务器集群类似, 使用刀片的方式增加了计算密度.“蓝云”软件平台的特点主要体现在虚拟机以及对于大规模数据处理软件Apache Hadoop 的使用上.Hadoop 是开源版本的Google File System软件和MapReduce 编程规范.

5.3.1 “蓝云”计算平台中的虚拟化技术

“蓝云”软件的一个重要特点是虚拟化技术的使用[19].虚拟化的方式在“蓝云”中有两个级别, 一个是在硬件级别上实现虚拟化, 另一个是通过开源软件实现虚拟化. 硬件级别的虚拟化可以使用IBM p 系列的服务器, 获得硬件的逻辑分区LPAR(logic partition). 逻辑分区的CPU 资源能够通过IBM Enterprise Workload Manager来管理. 通过这样的方式加上在实际使用过程中的资源分配策略, 能够使相应的资源合理地分配到各个逻辑分区.p 系列系统的逻辑分区最小粒度是1/10颗中央处理器(CPU).Xen则是软件级别上的虚拟化, 能够在Linux 基础上运行另外一个操作系统.

虚拟机是一类特殊的软件, 能够完全模拟硬件的执行, 运行不经修改的完整的操作系统, 保留了一整套运行环境语义. 通过虚

机的方式, 在云计算平台上获得如下一些优点:1) 云计算的管理平台能够动态地将计算平台定位到所需要的物理节点上[20,21],而无须停止运行在虚拟机平台上的应用程序, 进程迁移方法更加灵活;

2) 降低集群电能消耗, 将多个负载不是很重的虚拟机计算节点合并到同一个物理节点上, 从而能够关闭空闲的物理节点, 达到节约电能的目的;3) 通过虚拟机在不同物理节点上的动态迁移, 迁移了整体的虚拟运行环境, 能够获得与应用无关的负载平衡性能;4) 在部署上也更加灵活, 即可以将虚拟机直接部署到物理计算平台上, 而虚拟机本身就包括了相应的操作系统以及相应的应用软件, 直接将大量的虚拟机映像复制到对应的物理节点即可.

5.3.2 “蓝云”计算平台中的存储体系结构

“蓝云”计算平台中的存储体系结构对于云计算来说也是非常

重要的, 无论是操作系统、服务程序还是用户的应用程序的数据都保存在存储体系中. “蓝云”存储体系结构包含类似于Google File System 的集群文件系统以及基于块设备方式的存储区域网络SAN.

在设计云计算平台的存储体系结构时, 不仅仅是需要考虑存储容量的问题. 实际上, 随着硬盘容量的不断扩充以及硬盘价格的不断下降, 可以通过组合多个磁盘获得很大的磁盘容量. 相对于磁盘的容量, 在云计算平台的存储中, 磁盘数据的读写速度是一个更重要的问题, 因此需要对多个磁盘进行同时读写. 这种方式要求将数据分配到多个节点的多个磁盘当中. 为达到这一目的, 存储技术有两个选择, 一个是使用类似于Google File System的集群文件系统, 另一个是基于块设备的存储区域网络SAN 系统.

在蓝云计算平台上,SAN 系统与分布式文件系统(例如Google File System)并不是相互对立的系统,SAN 提供的是块设备接口, 需要在此基础上构建文件系统, 才能被上层应用程序所使用. 而Google File System正好是一个分布式的文件系统, 能够建立在SAN 之上. 两者都能提供可靠性、可扩展性, 至于如何使用还需要由建立在云计算平台上的应用程序来决定, 这也体现了计算平台与上层应用相互协作的关系.

5.4 Amazon的弹性云计算

Amazon 是互联网上最大的在线零售商, 每天负担着大量的网络交易, 同时Amazon 也为独立软件开发人员以及开发商提供云计算服务平台.Amazon 将他们的云计算平台称为弹性计算云(elastic compute cloud,简称EC2)[22],是最早提供远程云计算平台服务的公司.Amazon 将自己的弹性计算云建立在公司内部的大规模集群计算的平台上, 而用户可以通过弹性计算云的网络界面去操作在云计算平台上运行的各个实例(instance).用户使用实例的付费方式由用户的使用状况决定, 即用户只需为自己所使用的计算平台实例付费, 运行结束后计费也随之结束. 这里所说的实例即是由用户控制的完整的虚拟机运行实例. 通过这种方式, 用户不必自己去建立云计算平台, 节省了设备与维护费用.

Amazon 的弹性计算云由名为Amazon 网络服务(Amazon Web services) 的现有平台发展而来.2006年3月,Amazon 发布了简单存储服务(simple storage service,简称S3), 用户使用SOAP 协议存放和获取自己的数据对象. 在2007年7月,Amazon 公司推出了简单队列服务(simple queue service, 简称SQS), 这项服务能够使得托管虚拟主机之间发送的消息, 支持分布式程序之间的数据传递, 无须考虑消息丢失的问题.Amazon 又继续提供了EBS(elastic block storage) 服务, 为用户提供块级别的存储接口. 在提供这些基础设施的同时,Amazon 公司开发了弹性计算云EC2系统, 开放给外部开发人员使用. 图5-4给出了一个EC2系统的使用模式.

从图5-4中可以看出, 弹性计算云用户使用客户端通过SOAP over HTTPS 协议与Amazon 弹性计算云内部的实例进行交互. 这样, 弹性计算云平台为用户或者开发人员提供了一个虚拟的集群环境, 在用户具有充分灵活性的同时, 也减轻了云计算平台拥有者(Amazon公司) 的管理负担. 弹性计算云中的每一个实例代表一个运行中的虚拟机. 用户对自己的虚拟机具有完整的访问权限, 包括针对此虚拟机操作系统的管理员权限. 虚拟机的收费也是根据虚拟机的能力进行费用计算的, 实际上, 用户租用的是虚拟的计算能力.

总而言之,Amazon 通过提供弹性计算云, 满足了小规模软件开发人员对集群系统的需求, 减小了维护负担. 其收费方式相对简单明了:用户使用多少资源, 只需为这一部分资源付费即可.

为了弹性计算云的进一步发展,Amazon 规划了如何在云计算平

台基础上帮助用户开发网络化的应用程序. 除了网络零售业务以外, 云计算也是Amazon 公司的核心价值所在, 必然会在弹性计算云的平台上添加更多的网络服务组件模块, 为用户构建云计算应用提供方便.

图5-4 Amazon弹性计算云使用模式

第六章 云计算系统的特征与未来的发展

从用户的角度来看, 云计算系统将各种数据包括用户数据都通过网络保存到远端的云存储平台上, 减小了用户对于数据管理的负担; 同时, 云计算系统也将处理数据的服务程序通过远程的大规模云计算处理平台进行, 能够负担大量数据的处理工作. 可以说, 云计算是数据共享计算模式与服务共享计算模式的结合体, 是下一代计算模式的发展方向. 从平台技术构建来看, 云计算具有3个基本特征, 即系统建立在大规模的廉价服务器集群之上, 通过基础设施与上层应用程序的协同构建以达到最大效率利用硬件资源的目的, 以及通过软件的方法容忍多个节点的错误. 通过云计算对这3个方面基本特征的体现, 达到了分布式系统两个方面的目标, 即系统的可扩展性和可靠性.

各个云计算平台也各自具有不同的特点. 特别是在平台的使用上, 透明计算平台为用户同时提供了用户实际接触的客户端节点以及无法接触的远程虚拟存储服务器, 是一个半公开的环境

.Google

的云计算平台环境是私有的环境, 除了开放有限的应用程序接口, 例如GWT(Google Web toolkit),Google App Engine以及Google Map API 等以外,Google 并没有将云计算的内部基础设施共享给外部的用户使用.IBM 的“蓝云”计算平台则是可供销售的软、硬件集合, 用户基于这些软、硬件产品构建自己的云计算应用.Amazon 的弹性计算云则是托管式的云计算平台, 用户可以通过远端的操作界面直接操作使用, 看不到实际的物理节点. 表1从其他角度比较了各个云计算系统的不同之处. 可以看出, 虽然云计算系统在很多方面具有共性, 但实际上各个系统之间还是有很大不同的, 这也给云计算用户或者开发人员带来了不同的体验.

云计算未来主要有两个发展方向:一个是构建与应用程序紧密结合的大规模底层基础设施, 使得应用能够扩展到很大的规模; 另一个是通过构建新型的云计算应用程序, 在网络上提供更加丰富的用户体验. 第1个发展趋势能够从现有的云计算研究状况中体现出来, 详见上一节的分析. 而在云计算应用的构造上, 很多新型的社会服务型网络, 如facebook 等, 已经体现了这个发展趋势, 而在研究上则开始注重如何通过云计算基础平台将多个业务融合起来.

尽管云计算模式具有许多优点,但是也存在的一些问题,如数据隐私问题、安全问题、软件许可证问题、网络传输问题等。1) 数据隐私问题:如何保证存放在云服务提供商的数据隐私,不被非法利用,不仅需要技术的改进,也需要法律的进一步完善。2) 数据安全性:有些数据是企业的商业机密,数据的安全性关系到企业的生存和发展。云计算数据的安全性问题解决不了会影响云计算在企业中的应用。 3) 用户使用习惯:如何改变用户的使用习惯,使用户适应网络化的软硬件应用是长期而艰巨的挑战。3) 网络传输问题:云计算服务依赖网络,目前网速低且不稳定,使云应用的性能不高。云计算的普及依赖网络技术的发展。

第七章 结束语

云计算的出现并快速发展,一方面是虚拟化技术、数据密集型计算等技术发展的结果, 另一方面也是互联网发展需要不断丰富其应用必然趋势的体现。目前,云计算还没有一个统一的标准,虽然Amazon 、Google 、IBM 、Microsoft 等云计算平台已经为很多用户所使用, 但是云计算在行业标准、数据安全、服务质量、应用

软件等方面也面临着各种问题,这些问题的解决需要技术的进一步发展。总体上讲,云计算领域的研究还处于起步阶段,尚缺乏统一明确的研究框架体系, 还存在大量未明晰和有待解决的问题,研究机会、意义和价值非常明显。

目前,云计算还处于起步阶段,毫无疑问云计算前景光明。它可能彻底改变用户对计算资源的使用方式,使得用户从以桌 面为核心转向以Web 为核心。在本文中,我们已经讨论了云计算的现有服务,对比分析了现有的云计算平台、随着云计算的发展,将会有更多的平台和服务类型不断涌现。

云计算不仅仅是一个计算问题,它需要融合许多技术和成果。我们相信,随着越来越多的参与者加入到云计算的研究与发展中,云计算会出现一些新的结构模式、开发平台和应用软件 ,推动云计算及其应用日益走向成熟。

致谢

经过两个多月的构思与设计,在指导老师乔木的精心指导和安排下,本系统已经设计完毕。其使用功能基本符合企业在实际工作的需要,具有一定的实用性。但是由于时间比较仓促,加上本人软件设计经验的不足。因此,在分析问题、解决问题时显得不够严密、完善,还需要在以后的学习工作中不断地改进和完善。

在这次的毕业设计中,让我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。最后,我要衷心感谢乔木老师及我身边的同学——在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的毕业设计。

2009050242 袁月明

11年3月24日初稿

参考文献

[ 1] 王 鹏. 走近云计算[M ] . 北京: 人民邮电出版社,2009.

[3] 陈康, 郑纬民. 云计算:系统实例与研究现状[J].软件学报.2009, 20(5) :1337-1348.

[4] 陈全, 邓倩妮. 云计算及其关键技术[J].计算机应用. 2009,29 (09) : 2562-2567.

[ 7] 刘鹏. 云计算[M ] . 北京: 电子工业出版社, 2010: 66-67.

IBM. 蓝云解决方案. http ://www-900.ib m.c o m/ibm/ideas f ro mib m/

cn/cloud /solu tion s /index. sh tml

[1]

Sims K. IBM introdu c es ready -to -u se cloud comp u ting colla bo ra tion ser vic es get c lien ts s ta r ted with c lou d co mpu tin g. 2007. http ://www-03. ib m. co m/pres s /us/en/pres s re leas e/22613. ws s

[2]

Boss G, Mallad i P, Quan D, Legreg ni L, Hall H. Cloud compu ting. IBM White P aper,

2007. h ttp ://down loa d.bo u lde r. ib m. co m/ ib md l/pub/softwa re /dw/wes/hip ods /Clou d_c o mpu tin g_wp_fina l_8Oct. pdf

郑州大学

升达经贸管理学院毕业论文

档案管理系统

学号:2009050242

学生姓名:袁月明

专业:计算机科学与技术

指导教师:乔木

提交时间:

摘要

针对云计算这样一个范畴综述了当前云计算所采用的技术, 剖析其背后的技术含义以及当前云计算参与企业所采用的云计算实现方案. 云计算包含两个方面的含义:一方面是底层构建的云计算平台基础设施, 是用来构造上层应用程序的基础; 另外一方面是构建在这个基础平台之上的云计算应用程序. 主要是针对云计算的基础架构的研究与实现状况给出综述, 对于云计算的应用也有所涉及. 云计算有3个最基本的特征:第1个是基础设施架构在大规模的廉价服务器集群之上; 第二是应用程序与底层服务协作开发, 最大限度地利用资源; 第3个是通过多个廉价服务器之间的冗余, 通过软件获得高可用性. 云计算达到了两个分布式计算的重要目标:可扩展性和高可用性. 可扩展性表达了云计算能够无缝地扩展到大规模的集群之上, 甚至包含数千个节点同时处理. 高可用性代表了云计算能够容忍节点的错误, 甚至有很大一部分节点发生失效也不会影响程序的正确运行. 通过此文可以了解云计算的当前发展状况以及未来的研究趋势.

关键词: 云计算; 分布式基础架构; 分布系统范例。

Abstract

This paper surveys the current technologies adopted in cloud computing as well as the systems in enterprises. Cloud computing can be viewed from two different aspects. One is about the cloud infrastructure which is the building block for the up layer cloud application. The other is of course the cloud application. This paper focuses on the cloud infrastructure including the systems and current research. Some attractive cloud applications are also discussed. Cloud computing infrastructure has three distinct characteristics. First, the infrastructure i s built on top of large scale clusters which contain a large number of cheap PC servers. Second, the applications are co -designed with the fundamental infrastructure that the computing resources can be maximally utilized. Third, the reliability of the whole system is achieved by software building on top of redundant hardware instead of mere hardware. All these technologies are for the two important goals for distributed system: high scalability and high availability. Scalability means that the cloud infrastructure can be expanded to very large scale even to thousands of nodes. Availability means that the services are available even when quite a number of nodes fail. From this paper, readers will capture the current status of cloud computing as well as its future trends.

Key words: cloud computing; distributed infrastructure; distributed paradigm

目录

摘要 ........................................................................................... - 2 - Abstract ..................................................................................... - 3 -

第一章 绪论 .............................................................................. - 6 -

第二章 云计算系统的简介 ......................................................... - 7 -

2.1云计算概念 ........................................................................ - 7 -

2.2 云计算的产生背景 ............................................................. - 7 -

2.3云计算的特点 ..................................................................... - 8 -

第三章 云计算的发展现状 ......................................................... - 9 -

3.1发展中的云计算服务 . .......................................................... - 9 -

3.2国内外云计算的发展现状 .................................................. - 10 -

第四章 云计算的关键技术 ....................................................... - 13 -

4.1 数据存储技术 .................................................................. - 13 -

4. 2 数据管理技术 ................................................................ - 14 -

4.3数据存储技术 ................................................................... - 15 -

4.4数据管理技术 ................................................................... - 16 -

4. 5 编程模型技术 ................................................................ - 17 -

第五章 典型云计算平台介绍 ..................................................... - 18 -

5.1清华大学透明计算平台 ..................................................... - 18 -

5.2 Google的云计算平台 ....................................................... - 20 -

5.2.1 Google File System文件系统(GFS) . .......................... - 20 -

5.2.2 MapReduce分布式编程环境 ........................................ - 21 -

5.2.3 分布式的大规模数据库管理系统BigTable .................. - 22 -

5.3 IBM“蓝云”计算平台 ...................................................... - 24 -

5.3.1 “蓝云”计算平台中的虚拟化技术 ............................. - 25 -

5.3.2 “蓝云”计算平台中的存储体系结构 . ......................... - 26 -

5.4 Amazon的弹性云计算 ....................................................... - 27 -

第六章 云计算系统的特征与未来的发展 .................................... - 28 -

第七章 结束语 .......................................................................... - 29 - 致谢 ......................................................................................... - 31 - 参考文献................................................................................... - 32 -

第一章 绪论

今天,计算资源在人们的日常生活中逐渐变得不可或缺,于是如何以更好地方式给公众提供计算资源受到很多研究人员和 实践者的关注。

随着多核处理器、虚拟化、分布式存储、宽带互联网和自动化管理等技术的发展,产生了一种新型的计算模式——云计算 ,它能够按需部署计算资源,用户只需要为所使用的资源付费。从本质上来讲,云计算是指用户终端通过远程连接,获取 存储、计算、数据库等计算资源。云计算在资源分布上包括“云”和“云终端”。“云”是列互联网或大型服务器集群的 一种比喻,由分布的互联网基础设施(网络设备、服务器、存储设备、安全设备等) 等构成,几乎所有的数据和应用软件, 都可存储在“云”里,“云终端”,例如PC 、手机、车载电子设备等,只需要拥有一个功能完备的浏览器,并安装一个简 单的操作系统,通过网络接入“云”,就可以轻松地使用云中的计算资源。

本文旨在探讨云计算的概念、现状及其关键技术,组织如下:

第一节讨论云计算的产生、定义及其特点; 第二节研究云计 算的发展现状,分析比较几个典型的云计算平台; 第三节探讨云计算的体系结构和部分关键技术。

随着互联网时代信息与数据的快速增长,科学、工程和商业计算领域需要处理大规模、海量的数据, 对计算能力的需求远远超出自身 IT架构的计算能力, 这时就需要不断加大系统硬件投入来实现系统的可扩展性。另外,由于传统并行编程模型应用的局限性,客观上要求一种容易学习、使用、部署的新的并行编程框架。在这种情况下, 为了节省成本和实现系统的可扩放性,云计算的概念被提了出来。云计算是分布式计算、并行处理和网格计算的进一步发展, 它是基于互联网的计算,能够向各种互联网应用提供硬件服务、基础架构服务、平台服务、软件服务、存储服务的系统。通常云系统由第三方拥有的机制提供服务,用户只关心云所提供的服务。

第二章 云计算系统的简介

2.1云计算概念

云计算(Cl oud Co mputi ng )是由分布式计算(Dist ribu ted Co mputi ng )、并行处理(Par alle l Compu ting )、网格计算(Gr id C ompu ting )发展来的,是一种新兴的商业计算模型。目前,对于云计算的认识在不断的发展变化,云计算没仍没有普遍一致的定义。中国网格计算、云计算专家刘鹏给出如下定义 :“云计算将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和各种软件服务”。狭义的云计算指的是厂商通过分布式计算和虚拟化技术搭建数据中心或超级计算机,以免费或按需租用方式向技术开发者或者企业客户提供数据存储、分析以及科学计算等服务,比如亚马逊数据仓库出租生意。广义的云计算指厂商通过建立网络服务器集群,向各种不同类型客户提供在线软件服务、硬件租借、数据存储、计算分析等不同类型的服务。广义的云计算包括了更多的厂商和服务类型,例如国内用友、金蝶等管理软件厂商推出的在线财务软件,谷歌发布的Go ogle 应用程序套装等。

通俗的理解是,云计算的“云“就是存在于互联网上的服务器集群上的资源,它包括硬件资源(服务器、存储器、CP U 等)和软件资源(如应用软件、集成开发环境等),本地计算机只需要通过互联网发送一个需求信息,远端就会有成千上万的计算机为你提供需要的资源并将结果返回到本地计算机,这样,本地计算机几乎不需要做什么,所有的处理都在云计算提供商所提供的计算机群来完成。

2.2 云计算的产生背景

21世纪初期,崛起的Web2.0让网络迎来了新的发展高峰。网站或者业务系统所需要处理的业务量快速增长,例如视频在线 或

者照片共享,这样的网站需要为用户储存和处理大量的数据。这类系统所面临的重要问题是如何在用户数量快速增长的 情况下快速扩展原有系统,随着移动终端的智能化、移动宽带网络的普及,将有越来越多的移动设备进入互联网,意味着 与移动终端相关的IT 系统会承受更多的负载,而列于提供数据服务的企业来讲,IT 系统需要处理更多的业务量。由于资源 的有限性,电力成本、空间成本、各种设施的维护成本快速上升,直接导致数据中心的成本上升,这就面临着怎样有效地 利用这些资源,以及如何利用更少的资源解决更多的问题。

同时,随着高速网络连接的衍生,芯片和磁盘驱动器产品在功能增强的同时,价格也在变得甘益低廉,拥有成百上千台计 算机的数掂中心也具备了快速为大量用户处理复杂问题的能力。技术上,分布式计算的日益成熟和应用,特别是网格计算 的发展通过Internet 把分散在各处的硬件、软件、信息资源连接成为一个巨大的整体,从而使得人们能够利用地理上分散 于各处的资源,完成大规模的、复杂的计算和数据处理的任务oJ 。数据存储的快速增长产生了以GFS(Google File System) 、SAN(Storage Area Network) 为代表的高性能存储技术。服务器整合需求的不断升温推动了Xen 等虚拟化技术的进步还有 Web2 0的实现,SaaS(Software as a Service)观念方兴未艾,多核技术的普及等,所有这些技术为产生更强大的计算能力和服务提供了可能。计算能力和资源利用效率的迫切需求,资源的集中化和技术的进步,推动云计算应运而生。

2.3云计算的特点

从现有的云计算半台来看,它与传统的单机和网络应用模式相比,具有如下特点:

1) 虚拟化技术:这是云计算最强调的特点,包括资源虚拟化和应用虚拟化。每一个应用部署的环境和物理平台是没有关系 的。通过虚拟半台进行管理达到对应用进行扩展、迁移、备份,操作均通过虚拟化层次完成。

2) 动态可扩展:通过动态扩展虚拟化的层次达到对应用进行扩展的目的。:可以实时将服务器加入到现有的服务器机群中 ,增加“云”的计算能力。

3) 按需部署:用户运行不同的应用需要不同的资源和计算能力。云计算平台可以按照用户的需求部署资源和计算能力。

4) 高灵活性:现在大部分的软件和硬件都对虚拟化有一定支持,各种IT 资源,例如,软件、

硬件、操作系统、存储网络等所有要素通过虚拟化,放在云计算虚拟资源池中进行统一管理。同时,能够兼容不同硬件厂 商的产品,兼容低配置机器和外设而获得高性能计算。

5) 高可靠性:虚拟化技术使得用户的应用和计算分布在不同的物理服务器上面,即使单点服务器崩溃,仍然可以通过动态 扩展功能部署新的服务器作为资源和计算能力添加进来,保证应用和计算的正常运转。

6) 高性价比:云计算采用虚拟资源池的方法管理所有资源,对物理资源的要求较低。可以使用廉价的PC 组成云,而计算性 能却可超过大型主机。

第三章 云计算的发展现状

3.1发展中的云计算服务

目前,已经涌现的云计算服务形态包括从技术、半台供应商到软件服务提供商,从成熟的应用程序到存储服务再到垃圾邮件过滤等,不一而足。

根据不同服务的特性可以将云计算分为以下几种类型:

3.1.1云计算基础架构

这类云计算提供底层的技术平台以及核心的云服务,是最为全面的云计算服务。Amazon 、Google 等推出的云计算服务可以 归于这类。这种云计算服务形态将支撑起整个互联网的虚拟中心,使其能够将内存、I/O设备、存储和计算能力集中起来成为一个虚拟的资源池为整个网络提供服务。

3.1.2云计算半台服务

这种形式的云计算也被称为半台即服务PaaS(Platfbrm as a Service) ,它将开发环境作为服务来提供。:这种形式的云计 算可以使用供应商的基础架构来开发自己的程序,然后通过网络从供应商的服务器上传递给用户。典型的实例比如 Salesforce com 的

Force tom开发半台。

3.1.3云计算软件服务

这种类型的云计算称之为软件即服务SaaS ,它通过浏览器把程序传给用户。. 从用户的角度,这样会省去在服务器和软件 授干义上的开支; 从供应商的角度看,这样只需要维持一个程序就够了,减少了维护成本。Salesforce com是迄今为止这 类服务最为有名的公司。SaaS 在CRM 、ERP 中比较常用,Google Apps 和Zoho Office 也提供类似的服务。

3.1.4云计算API

这类服务供应商提供API(Application Programming Interface) 让开发者能够开发更多基于互联网的应用,帮助开发商拓 展功能和服务,而不是只提供成熟的应用软件他们的服务范围从提供分散的商业服务到Google Maps等的全套API 服务。这 与软件即服务有着密切的关系。

3.1.5云计算互动半台

该类云计算为用户和提供商之问的互动提供了一个半台。例如,RightScale 利用Amazon EC2网络计算服务和s3网络存储服 务的API 提供一个操作面板和AWS(Amazon’s Web Services)前端托管服务。

3.2国内外云计算的发展现状

云计算是多种技术混合演进的结果,又有大公司推动,发展极为迅速。Amazon 、Google 、IBM 、微软和Yahoo 等大公司是云计算的先行者。云计算领域的众多成功公司还包括Salesforce 、Facebook 、Youtube 、Myspace 等。

Amazon 使用弹性计算云(EC2)和简单存储服务(S3)为企业提供计算和存储服务。收费的服务项目包括存储服务器、带宽、 CPU资源以及月租费。月租费与电话月租费类似,存储服务器、带宽按容量收费,CPU 根据时长(小时) 运算量收费。Amazon 把云计算做成一个大生意没有花太长的时间:不到两年时间,Amazon 上的注册开发人员达44万人,还有为数众多的企业级用户。有第三方统计机构提供的数据显示,Amazon 与云计算相关的业务收入已达1亿美元。云计算是Amazon 增长最快的业务之一。

近期,Amazon 公司启动了一个云计算教育项目。该项目为全球

高校老师,学生,科研人员提供了云计算开放式基金申请。如果基金申请成功,就可以得到相应的免费云计算资源。

Google 当数最大的云计算的使用者。Google 搜索引擎就建立在分布在200多个地点、超过100万台服务器的支撑之上,这些设施的数量正在迅猛增长。Google 地球、地图、Gmail 、Docs 等也同样使用了这些基础设施。采用Google Docs 之类的应用,用户数据会保存在互联网上的某个位置,可以通过任何一个与互联网相连的系统十分便利地访问这些数据。目前,Google 已经允许第三方在Google 的云计算中通过Google App Engine运行大型并行应用程序。Google 值得称颂的是它不保守。它早已以发表学术论文的形式公开其云计算三大法宝:GFS 、MapReduce 和 BigTable,并在美国、中国等高校开设如何进行云计算编程的课程。

GDrive 是GOOGLE 推出的最新云计算服务,可以让用户通过任意网络连接访问自己的数据。

GDrive 可以让用户将个人文件和操作系统存储在谷歌的服务器上,并可通过网络访问。换句话说,GDrive 将使应用不再依赖目前大多数电脑中安装的Windows 操作系统,而是以“云计算”的方式,通过数千公里外的远程数据中心完成处理和存储过程。因此此举可能使应用程序依赖电脑硬盘的现状成为历史。谷歌企业产品与市场总监Dave Armstrong 称:“云计算的需求在不断增长。明显的趋势是,用户所谓的‘这是我的电脑,这是我的硬盘’的说法将向‘这是我与信息交流的方式,这是我与网络交流的方式’转变。”

IBM 在2007年11月推出了“改变游戏规则”的“蓝云”计算平台,为客户带来即买即用的云计算平台。它包括一系列的自动化、自我管理和自我修复的虚拟化云计算软件,使来自全球的应用可以访问分布式的大型服务器池。使得数据中心在类似于互联网的环境下运行计算。IBM 正在与17 个欧洲组织合作开展云计算项目。欧盟提供了1.7亿欧元做为部分资金。该计划名为RESERVOIR ,以“无障碍的资源和服务虚拟化”为口号。2008年 8月, IBM宣布将投资约4亿美元用于其设在北卡罗来纳州和日本东京的云计算数据中心改造。IBM 计划在2009年在10个国家投资3亿美元建13个云计算中心。

微软紧跟云计算步伐,于2008年10月推出了Windows Azure操作系统。Azure(译为“蓝天”) 是继Windows 取代DOS 之后,微软的又一次颠覆性转型——通过在互联网架构上打造新云计算平台,让 Windows真正由PC 延伸到“蓝天”上。微软拥有全世界数

以亿计的Windows 用户桌面和浏览器,现在它将它们连接到“蓝天”上。Azure 的底层是微软全球基础服务系统,由遍布全球的第四代数据中心构成。

近期,微软将推出三项手机互联网相关的云计算服务:SkyBox 、SkyLine 和SkyMarket 。1、SkyBox :这是一种数据同步服务,手机用户通过该服务可以远程同步通讯录、Email 、短信、日历条目和图像等。微软的SkyBox 不限于使用Windows Mobile的手机用户,其它智能手机也可以使用该服务。2、SkyLine :这是一种企业用户数据同步服务,仅面向企业用户,包括Exchange 整合和客户域。

3、SkyMarket :它是一种手机应用程序商店,和苹果App Store 相似。据悉,SkyMarket 也仅面向Windows Mobile用户开放,初期阶段,微软将提供1000多款Windows Mobile应用程序。

云计算的新颖之处在于它几乎可以提供无限的廉价存储和计算能力。纽约一家名为Animoto 的创业企业已证明云计算的强大能力。 Animoto 允许用户上传图片和音乐,自动生成基于网络的视频演讲稿,并且能够与好友分享。该网站目前向注册用户提供免费服务。2008年年初,网站每天用户数约为5000人。4月中旬,由于Facebook 用户开始使用Animoto 服务,该网站在三天内的用户数大幅上升至75万人。Animoto 联合创始人Stevie Clifton表示,为了满足用户需求的上升,该公司需要将服务器能力提高100倍,但是该网站既没有资金,也没有能力建立规模如此巨大的计算能力。因此,该网站与云计算服务公司RightScale 合作,设计能够在亚马逊的网云中使用的应用程序。通过这一举措,该网站大大提高了计算能力,而费用只有每服务器每小时10美分。这样的方式也加强创业企业的灵活性。当需求下降时,Animoto 只需减少所使用的服务器数量就可以降低服务器支出。

另一个实例是在网络游戏领域。硅谷一家创业公司不久前正式展示其新型“云计算”电子游戏服务。OnLive 公司的新服务利用网络服务器来存储和运行游戏,并能对大量数据进行有效压缩然后通过互联网快速传送。玩家不必购买专门的游戏机或高配置电脑就可联网玩一些最新款的复杂游戏,也可在电视机上玩这些游戏,不过要借助该公司一种手持式可联网的设备,并支付月租费。新服务的正式亮相引起业界广泛关注,被认为有可能给几大游戏机生产商带来冲击。

在我国,云计算发展也非常迅猛。2008年5月10日,IBM 在中国无锡太湖新城科教产业园建立的中国第一个云计算中心投入运

营。2008年6月 24日,IBM 在北京IBM 中国创新中心成立了第二家中国的云计算中心——IBM 大中华区云计算中心;2008年11月28日,广东电子工业研究院与东莞松山湖科技产业园管委会签约,广东电子工业研究院将在东莞松山湖投资2亿元建立云计算平台;2008年12月30日,阿里巴巴集团旗下子公司阿里软件与江苏省南京市政府正式签订了2009年战略合作框架协议,计划于2009年初在南京建立国内首个“电子商务云计算中心”,首期投资额将达上亿元人民币;世纪互联推出了CloudEx 产品线,包括完整的互联网主机服务"CloudEx Computing Service", 基于在线存储虚拟化的"CloudEx Storage Service",供个人及企业进行互联网云端备份的数据保全服务等等系列互联网云计算服务;中国移动研究院做云计算的探索起步较早,已经完成了云计算中心试验。中移动董事长兼CEO 王建宙认为云计算和互联网的移动化是未来发展方向。此外,我国企业创造的“云安全”概念,在国际云计算领域独树一帜,瑞星、趋势、卡巴斯基、MCAFEE 、SYMANTEC 、江民科技、PANDA 、金山、360安全卫士、卡卡上网安全助手等都推出了云安全解决方案。

第四章 云计算的关键技术

云计算是一种新型的超级计算方式,以数据为中心,是一种数据密集型的超级计算[10]。在数据存储、数据管理、编程模式等方面具有自身独特的技术。

4.1 数据存储技术

为保证高可用、高可靠和经济性,云计算采用分布式存储的方式来存储数据,采用冗余存储的方式来保证存储数据的可靠性,即为同一份数据存储多个副本。

另外,云计算系统需要同时满足大量用户的需求,并行地为大量用户提供服务。因此,云计算的数据存储技术必须具有高吞吐率和高传输率的特点。云计算的数据存储技术主要有谷歌的非开源的GFS (Google File System)[11]和 Hadoop 开发团队开发的GFS 的开源实现HDFS (Hadoop Distributed FileSystem)[12][13]。大部分IT 厂商,包括yahoo 、Intel 的“云”计划采用的都是HDFS 的数据存储技术。

未来的发展将集中在超大规模的数据存储、数据加密和安全性保证、以及继续提高I/O速率等方面。

4. 2 数据管理技术

云计算系统对大数据集进行处理、分析向用户提供高效的服务。因此,数据管理技术必须能够高效的管理大数据集。其次,如何在规模巨大的数据中找到特定的数据,也是云计算数据管理技术所必须解决的问题。

云计算的特点是对海量的数据存储、读取后进行大量的分析,数据的读操作频率远大于数据的更新频率,云中的数据管理是一种读优化的数据管理。因此,云系统的数据管理往往采用数据库领域中列存储的数据管理模式。将表按列划分后存储。

云计算的数据管理技术最著名的是谷歌的BigTable[14]数据管理技术,同时Hadoop 开发团队正在开发类似BigTable 的开源数据管理模块。

由于采用列存储的方式管理数据,如何提高数据的更新速率以及进一步提高随机读速率是未来的数据管理技术必须解决的问题。 编程模式

为了使用户能更轻松的享受云计算带来的服务,让用户能利用该编程模型编写简单的程序来实现特定的目的,云计算上的编程模型必须十分简单。必须保证后台复杂的并行执行和任务调度向用户和编程人员透明。

云计算采用类似MAP-Reduce[15]的编程模式。现在所有IT 厂商提出的“云”计划中采用的编程模型,都是基于MAP-Reduce 的思想开发的编程工具。MAP-Reduce 不仅仅是一种编程模型,同时也是一种高效的任务调度模型。Map-Reduce 这种编程模型并不仅适用于云计算,在多核和多处理器、cellprocessor 、以及异构机群上同样有良好的性能

该编程模式仅适用于编写任务内部松耦合、能够高度并行化的程序。如何改进该编程模式,使程序员得能够轻松的编写紧耦合的程序,运行时能高效的调度和执行任务,是Map-Reduce 编程模型未来的发展方向。

4.3数据存储技术

为了满足云计算的分布式存储方式、同时保证数据可靠性和高吞吐率以及高传输率的需求。目前各IT 厂商多采用GFS 或HDFS 的数据存储技术。以GFS 为例。GFS 是一个管理大型分布式数据密集型计算的可扩展的分布式文件系统。它使用廉价的商用硬件搭建系统并向大量用户提供容错的高性能的服务。

GFS 和普通的分布式文件系统有以下区别,如表

2所示:

GFS 传统分布式文件系统组件失败管理不作为Exception 处理作为Exception 处理文件大小少量大文件大量小文件数据写方式在文件末尾附加数据修改现存数据数据流和控制流数据流和控制流分开数据流和控制流结合GFS 系统由一个Master 和大量块服务器构成。Master 存放文件系统的所有的元数据,包括名字空间、存取控制、文件分块信息、文件块的位置信息等。GFS 中的文件切分为64MB 的块进行存储。

在GFS 文件系统中,采用冗余存储的方式来保证数据的可靠性。每份数据在系统中保存3个以上的备份。为了保证数据的一致性,对于数据的所有修改需要在所有的备份上进行,并用版本号的方式来确保所有备份处于一致的状态。

客户端不通过Master 读取数据,避免了大量读操作使Master 成为系统瓶颈。客户端从Master 获取目标数据块的位置信息后,直接和块服务器交互进行读操作。

GFS 的写操作将写操作控制信号和数据流分开,

如图3[11]所示:

图4-1 写控制信号和写数据流

即,客户端在获取Master 的写授权后,将数据传输给所有的数据副本,在所有的数据副本都收到修改的数据后,客户端才发出写请求控制信号。在所有的数据副本更新完数据后,由主副本向客户端发出写操作完成控制信号。具体请见。

4.4数据管理技术

为了满足云计算的大规模数据集管理,高效的数据定位需求。谷歌采用BigTable 的数据管理技术。在各大IT 厂商的支持下,Hadoop 开发团队正在开发其开源版本。

以BigTable 为例。BigTable 数据管理方式设计者——Google 给出了如下定义:“BigTable 是一种为了管理结构化数据而设计的分布式存储系统,这些数据可以扩展到非常大的规模,例如在数千台商用服务器上的达到PB(Petabytes)规模的数据。”

BigTable 对数据读操作进行优化,采用列存储的方式,提高数据读取效率。BigTable 管理的数据的存储结构为: ->string。BigTable 的基本元素是:行,列,记录板和时间戳。其中,记录板是一段行的集合体。 BigTable 中的数据项按照行关键字的字典序排列,每行动态地划分到记录板中。每个节点管理大约100个记录板。时间戳是一个64位的整数,表示数据的不同版本。

BigTable 在执行时需要三个主要的组件: 链接到每个客户

的库,一个主服务器,多个记录板服务器。主服务器用于分配记录板到记录板服务器以及负载平衡,垃圾回收等。记录板服务器用于直接管理一组记录板,处理读写请求等。

为保证数据结构的高可扩展性,BigTable 采用三级的层次化的方式来存储位置信息,如图4[14]所示。其中第一级的Chubby file 中包含Root Tablet 的位置,Root Tablet 包含所有METADATA tablets 的位置信息,每个METADATA tablets 包含许多User Table 的位置信息。具体见。

图4-4 B igTa ble 中存储记录板位置信息的结构

4. 5 编程模型技术

当前各IT 厂商提出的“云”计划的编程工具均基于Map-Reduce 的编程模型。Map-Reduce 是一种处理和产生大规模数据集的编程模型,程序员在Map 函数中指定对各分块数据的处理过程,在Reduce 函数中指定如何对分块数据处理的中间结果进行归约。用户只需要指定map 和reduce 函数来编写分布式的并行程序。当在机群上运行Map-Reduce 程序时,程序员不需要关心如何将输入的数据分块、分配和调度,同时系统还将处理机群内节点失败以及节点见通信的管理等。图5给出了一个Map-Reduce 程序的具体执行过程。从图5可以看出,执行一个Map-Reduce 程序需要五个步骤:输入文件、将文件分配给多个worker 并行地执行、写中间文件(本地写)、多个Reduceworkers 同时运行、输出最终结果。本地写中间文件在减少了对网络带宽的压力同时减少了写中间文件的时

耗费。执行Reduce 时,根据从Master 获得的中间文件位置信息,将Reduce 命令发送给中间文件所在节点执行,进一步减少了传送中间文件对带宽的需求。

图4-5 Map -Red uce 程序的具体执行过程

Map-Reduce 模型具有很强的容错性,当worker 节点出现错误时,只需要将该worker 节点屏蔽在系统外等待修复,并将该worker 上执行的程序迁移到其他worker 上重新执行同时将该迁移信息通过Master 发送给需要该节点处理结果的节点。Map-Reduce 使用检查点的方式来处理Master 出错失败的问题,当Master 出现错误时,可以根据最近的一个检查点重新选择一个节点作为Master 并由此检查点位置继续运行。

第五章 典型云计算平台介绍

5.1清华大学透明计算平台

张尧学教授领导的研究小组从1998年开始就从事透明计算系统和理论的研究, 到2004年前后正式提出, 并不断完善了透明计算的概念和相关理论[3,4].随着硬件、软件以及网络技术的发展, 计算模式从大型机的方式逐渐过渡到微型个人计算机的方式, 并且近年来过渡到普适计算上. 但是用户仍然很难获得异构类型的操作系统以及应用程序, 在轻量级的设备上很难获得完善的服务. 而在

明计算中, 用户无须感知计算具体所在位置以及操作系统、中间件、应用等技术细节, 只需要根据自己的需求, 通过连通在网络之上的各种设备选取相应的服务.

图5-1显示了透明计算平台的3个重要组成部分. 用户的显示界面是前端的轻权设备, 包括各种个人计算机、笔记本、PDA 、智能手机等, 被统称为透明客户端. 透明客户端可以是没有安装任何软件的裸机, 也可以是装有部分核心软件平台的轻巧性终端. 中间的透明网络则整合了各种有线和无线网络传输设施, 主要用来在各种透明客户端与后台服务器之间完成数据的传递, 而用户无须意识到网络的存在. 与云计算基础服务设施构想一致, 透明服务器不排斥任何一种可能的服务提供方式, 既可通过当前流行的PC 服务器集群方式来构建透明服务器集群, 也可使用大型服务器等.

图5-1 透明计算系统的组成结构

当前透明计算平台已经达到了平台异构的目的, 能够支持Linux 以及Windows 操作系统的运行. 用户具有很大的灵活性, 能够自主选择自己所需要的操作系统运行在透明客户端上. 透明服务器使用了流行的PC 服务器集群的方式, 预先存储了各种不同的操作平台, 包括操作系统的运行环境、应用程序以及相应的数据. 每个客户端从透明服务器上获取并建立整个运行环境以满足用户对于不同操作环境的需求. 由于用户之间的数据相互隔离, 因此服务器集群可以选取用户相对独立的方式进行存储, 使得整个系统能够扩展到很大的规模. 在服务器集群之上进行相应的冗余出错处理, 很好地保护了每个用户的透明计算数据安全性

.

5.2 Google的云计算平台

Google 公司有一套专属的云计算平台[5],这个平台先是为Google 最重要的搜索应用提供服务[6],现在已经扩展到其他应用程序.Google 的云计算基础架构模式包括4个相互独立又紧密结合在一起的系统:Google File System[7]分布式文件系统, 针对Google 应用程序的特点提出的MapReduce 编程模式[8],分布式的锁机制Chubby[9]以及Google 开发的模型简化的大规模分布式数据库BigTable[10].

5.2.1 Google File System文件系统(GFS)

除了性能, 可伸缩性、可靠性以及可用性以外,GFS 设计还受到Google 应用负载和技术环境的影响[7].体现在4个方面:1) 充分考虑到大量节点的失效问题, 需要通过软件将容错以及自动恢复功能集成在系统中;2) 构造特殊的文件系统参数, 文件通常大小以G 字节计, 并包含大量小文件;3) 充分考虑应用的特性, 增加文件追加操作, 优化顺序读写速度;4) 文件系统的某些具体操作不再透明, 需要应用程序的协助完成.

图5-2-1给出了Google File System 的系统架构. 如图2所示, 一个GFS 集群包含一个主服务器和多个块服务器, 被多个客户端访问. 大文件被分割成固定尺寸的块, 块服务器把块作为Linux 文件保存在本地硬盘上, 并根据指定的块句柄和字节范围来读写块数据. 为了保证可靠性, 每个块被缺省保存3个备份. 主服务器管理文件系统所有的元数据, 包括名字空间、访问控制、文件到块的映射、块物理位置等相关信息. 通过服务器端和客户端的联合设计,GFS 对应用支持达到性能与可用性最优.GFS 是为Google 应用程序本身而设计的, 在内部部署了许多GFS 集群. 有的集群拥有超过1 000个存储节点, 超过300T 的硬盘空间, 被不同机器上的数百个客户端连续不断地频繁访问着.

图5-2-1 Google File System的系统架构

5.2.2 MapReduce分布式编程环境

Google 构造MapReduce 编程规范[8,11,12]来简化分布式系统的编程. 应用程序编写人员只需将精力放在应用程序本身, 而关于集群的处理问题, 包括可靠性和可扩展性, 则交由平台来处理.MapReduce 通过“Map(映射)”和“Reduce(化简)”这样两个简单的概念来构成运算基本单元, 用户只需提供自己的Map 函数以及Reduce 函数即可并行处理海量数据. 为了进一步理解MapReduce 的编程方式, 下面给出一个基于MapReduce 编程方式的程序伪代码. 程序功能是统计文本中所有单词出现的次数.

在3所示的map 函数中, 用户的程序将文本中所有出现的单词都按照出现计数1(以Key-Value 对的形式) 发射到MapReduce 给出的一个中间临时空间中. 通过MapReduce 中间处理过程, 将所有相同的单词产生的中间陈康 等:云计算:系统实例与研究现状

map (String input_key, String input_value):

// input_key: document name

// input_value: document contents

for each word w in input_value:

EmitIntermediate (w ,“1”);

reduce (String output_key,

intermediate_values):

// output_key: a word

// output_values: a list of counts

int result = 0;

for each v in intermediate_values:

result +=ParseInt (v );

Emit (AsString (result ));

3 基于MapReduce 框架的单词统计程序举例 Interator 3 WordCount program using MapReduce framework

结果分配到同样一个Reduce 函数中. 而每一个Reduce 函数则只需把计数累加在一起即可获得最后结果.

图5-2-2给出了MapReduce 执行过程, 分为Map 阶段以及Reduce 两个阶段, 都使用了集群中的所有节点. 在两个阶段之间还有一个中间的分类阶段, 即将中间结果包含相同的key 的中间结果交给同一个Reduce 函数去执行.

图5-2-2 MapReduce 处理程序的执行过程(M代表Map 函数的执行,R 代表Reduce 函数的执行)

5.2.3 分布式的大规模数据库管理系统BigTable

由于一部分Google 应用程序需要处理大量的格式化以及半格

式化数据, Google 构建了弱一致性要求的大规模数据库系统BigTable[10].BigTable的应用包括Search History,Maps,Orkut,RSS 阅读器等

.

图5-2-3 给出了在BigTable 模型中给出的数据模型. 数据模型包括行列以及相应的时间戳, 所有的数据都存放在表格单元中.BigTable 的内容按照行来划分, 将多个行组成一个小表, 保存到某一个服务器节点中. 这个小表就被称为Tablet. 图5-2-4 是整个BigTable 的存储服务体系结构.

图5-2-3 Google BigTable的数据模型

图5-2-4 BigT able 系统的组织结构

与前述的系统类似,BigTable 也是客户端和服务器端的联合设计, 使得性能能够最大程度地符合应用的需求.BigTable 系统依赖于集群系统的底层结构, 一个是分布式的集群任务调度器, 一个是前述的Google 文件系统, 还有一个分布式的锁服务Chubby.Chubby 是一个非常鲁棒的粗粒度锁,BigTable 使用Chubby 来保存根数据表格的指针, 即用户可以首先从Chubby 锁服务器中获得根表的位置

,

进而对数据进行访问.BigTable 使用一台服务器作为主服务器, 用来保存和操作元数据. 主服务器除了管理元数据之外, 还负责对tablet 服务器(即一般意义上的数据服务器) 进行远程管理与负载调配. 客户端通过编程接口与主服务器进行元数据通信, 与tablet 服务器进行数据通信.

以上是Google 内部云计算基础平台的3个主要部分.Google 还构建其他云计算组件, 包括一个领域描述语言以及分布式锁服务机制等. 文献[5]描述了Google 内部构建集群的方法, 即使用了大量的x86服务器集群来构建整个计算的硬件基础设施.Sawzall[13]是一种建立在MapReduce 基础上的领域语言, 专门用于大规模的信息处理.Chubby[9]是前述的一个高可用、分布式数据锁服务. 当有机器失效时,Chubby 使用Paxos 算法[14]来保证备份的一致性.Chubby 的小型分布式文件系统的每一个单元都可以用来提供锁服务.

5.3 IBM“蓝云”计算平台

IBM 的“蓝云”计算平台是一套软、硬件平台, 将Internet 上使用的技术扩展到企业平台上, 使得数据中心使用类似于互联网的计算环境.“蓝云”大量使用了IBM 先进的大规模计算技术, 结合了IBM 自身的软、硬件系统以及服务技术, 支持开放标准与开放源代码软件.“蓝云”基于IBM Almaden 研究中心的云基础架构, 采用了Xen[15,16]和PowerVM[17]虚拟化软件,Linux 操作系统映像以及Hadoop[18]软件(Google File System 以及MapReduce 的开源实现).IBM 已经正式推出了基于x86芯片服务器系统的“蓝云”产品.

图5-3 IBM“蓝云”产品架构

由图可知,“蓝云”计算平台由一个数据中心、IBM Tivoli部署管理软件(Tivoli provisioning manager) 、IBM Tivoli 监控软件(IBM Tivoli monitoring) 、IBM WebSphere 应用服务器、IBM DB2数据库以及一些开源信息处理软件和开源虚拟化软件共同组成.“蓝云”的硬件平台环境与一般的x86服务器集群类似, 使用刀片的方式增加了计算密度.“蓝云”软件平台的特点主要体现在虚拟机以及对于大规模数据处理软件Apache Hadoop 的使用上.Hadoop 是开源版本的Google File System软件和MapReduce 编程规范.

5.3.1 “蓝云”计算平台中的虚拟化技术

“蓝云”软件的一个重要特点是虚拟化技术的使用[19].虚拟化的方式在“蓝云”中有两个级别, 一个是在硬件级别上实现虚拟化, 另一个是通过开源软件实现虚拟化. 硬件级别的虚拟化可以使用IBM p 系列的服务器, 获得硬件的逻辑分区LPAR(logic partition). 逻辑分区的CPU 资源能够通过IBM Enterprise Workload Manager来管理. 通过这样的方式加上在实际使用过程中的资源分配策略, 能够使相应的资源合理地分配到各个逻辑分区.p 系列系统的逻辑分区最小粒度是1/10颗中央处理器(CPU).Xen则是软件级别上的虚拟化, 能够在Linux 基础上运行另外一个操作系统.

虚拟机是一类特殊的软件, 能够完全模拟硬件的执行, 运行不经修改的完整的操作系统, 保留了一整套运行环境语义. 通过虚

机的方式, 在云计算平台上获得如下一些优点:1) 云计算的管理平台能够动态地将计算平台定位到所需要的物理节点上[20,21],而无须停止运行在虚拟机平台上的应用程序, 进程迁移方法更加灵活;

2) 降低集群电能消耗, 将多个负载不是很重的虚拟机计算节点合并到同一个物理节点上, 从而能够关闭空闲的物理节点, 达到节约电能的目的;3) 通过虚拟机在不同物理节点上的动态迁移, 迁移了整体的虚拟运行环境, 能够获得与应用无关的负载平衡性能;4) 在部署上也更加灵活, 即可以将虚拟机直接部署到物理计算平台上, 而虚拟机本身就包括了相应的操作系统以及相应的应用软件, 直接将大量的虚拟机映像复制到对应的物理节点即可.

5.3.2 “蓝云”计算平台中的存储体系结构

“蓝云”计算平台中的存储体系结构对于云计算来说也是非常

重要的, 无论是操作系统、服务程序还是用户的应用程序的数据都保存在存储体系中. “蓝云”存储体系结构包含类似于Google File System 的集群文件系统以及基于块设备方式的存储区域网络SAN.

在设计云计算平台的存储体系结构时, 不仅仅是需要考虑存储容量的问题. 实际上, 随着硬盘容量的不断扩充以及硬盘价格的不断下降, 可以通过组合多个磁盘获得很大的磁盘容量. 相对于磁盘的容量, 在云计算平台的存储中, 磁盘数据的读写速度是一个更重要的问题, 因此需要对多个磁盘进行同时读写. 这种方式要求将数据分配到多个节点的多个磁盘当中. 为达到这一目的, 存储技术有两个选择, 一个是使用类似于Google File System的集群文件系统, 另一个是基于块设备的存储区域网络SAN 系统.

在蓝云计算平台上,SAN 系统与分布式文件系统(例如Google File System)并不是相互对立的系统,SAN 提供的是块设备接口, 需要在此基础上构建文件系统, 才能被上层应用程序所使用. 而Google File System正好是一个分布式的文件系统, 能够建立在SAN 之上. 两者都能提供可靠性、可扩展性, 至于如何使用还需要由建立在云计算平台上的应用程序来决定, 这也体现了计算平台与上层应用相互协作的关系.

5.4 Amazon的弹性云计算

Amazon 是互联网上最大的在线零售商, 每天负担着大量的网络交易, 同时Amazon 也为独立软件开发人员以及开发商提供云计算服务平台.Amazon 将他们的云计算平台称为弹性计算云(elastic compute cloud,简称EC2)[22],是最早提供远程云计算平台服务的公司.Amazon 将自己的弹性计算云建立在公司内部的大规模集群计算的平台上, 而用户可以通过弹性计算云的网络界面去操作在云计算平台上运行的各个实例(instance).用户使用实例的付费方式由用户的使用状况决定, 即用户只需为自己所使用的计算平台实例付费, 运行结束后计费也随之结束. 这里所说的实例即是由用户控制的完整的虚拟机运行实例. 通过这种方式, 用户不必自己去建立云计算平台, 节省了设备与维护费用.

Amazon 的弹性计算云由名为Amazon 网络服务(Amazon Web services) 的现有平台发展而来.2006年3月,Amazon 发布了简单存储服务(simple storage service,简称S3), 用户使用SOAP 协议存放和获取自己的数据对象. 在2007年7月,Amazon 公司推出了简单队列服务(simple queue service, 简称SQS), 这项服务能够使得托管虚拟主机之间发送的消息, 支持分布式程序之间的数据传递, 无须考虑消息丢失的问题.Amazon 又继续提供了EBS(elastic block storage) 服务, 为用户提供块级别的存储接口. 在提供这些基础设施的同时,Amazon 公司开发了弹性计算云EC2系统, 开放给外部开发人员使用. 图5-4给出了一个EC2系统的使用模式.

从图5-4中可以看出, 弹性计算云用户使用客户端通过SOAP over HTTPS 协议与Amazon 弹性计算云内部的实例进行交互. 这样, 弹性计算云平台为用户或者开发人员提供了一个虚拟的集群环境, 在用户具有充分灵活性的同时, 也减轻了云计算平台拥有者(Amazon公司) 的管理负担. 弹性计算云中的每一个实例代表一个运行中的虚拟机. 用户对自己的虚拟机具有完整的访问权限, 包括针对此虚拟机操作系统的管理员权限. 虚拟机的收费也是根据虚拟机的能力进行费用计算的, 实际上, 用户租用的是虚拟的计算能力.

总而言之,Amazon 通过提供弹性计算云, 满足了小规模软件开发人员对集群系统的需求, 减小了维护负担. 其收费方式相对简单明了:用户使用多少资源, 只需为这一部分资源付费即可.

为了弹性计算云的进一步发展,Amazon 规划了如何在云计算平

台基础上帮助用户开发网络化的应用程序. 除了网络零售业务以外, 云计算也是Amazon 公司的核心价值所在, 必然会在弹性计算云的平台上添加更多的网络服务组件模块, 为用户构建云计算应用提供方便.

图5-4 Amazon弹性计算云使用模式

第六章 云计算系统的特征与未来的发展

从用户的角度来看, 云计算系统将各种数据包括用户数据都通过网络保存到远端的云存储平台上, 减小了用户对于数据管理的负担; 同时, 云计算系统也将处理数据的服务程序通过远程的大规模云计算处理平台进行, 能够负担大量数据的处理工作. 可以说, 云计算是数据共享计算模式与服务共享计算模式的结合体, 是下一代计算模式的发展方向. 从平台技术构建来看, 云计算具有3个基本特征, 即系统建立在大规模的廉价服务器集群之上, 通过基础设施与上层应用程序的协同构建以达到最大效率利用硬件资源的目的, 以及通过软件的方法容忍多个节点的错误. 通过云计算对这3个方面基本特征的体现, 达到了分布式系统两个方面的目标, 即系统的可扩展性和可靠性.

各个云计算平台也各自具有不同的特点. 特别是在平台的使用上, 透明计算平台为用户同时提供了用户实际接触的客户端节点以及无法接触的远程虚拟存储服务器, 是一个半公开的环境

.Google

的云计算平台环境是私有的环境, 除了开放有限的应用程序接口, 例如GWT(Google Web toolkit),Google App Engine以及Google Map API 等以外,Google 并没有将云计算的内部基础设施共享给外部的用户使用.IBM 的“蓝云”计算平台则是可供销售的软、硬件集合, 用户基于这些软、硬件产品构建自己的云计算应用.Amazon 的弹性计算云则是托管式的云计算平台, 用户可以通过远端的操作界面直接操作使用, 看不到实际的物理节点. 表1从其他角度比较了各个云计算系统的不同之处. 可以看出, 虽然云计算系统在很多方面具有共性, 但实际上各个系统之间还是有很大不同的, 这也给云计算用户或者开发人员带来了不同的体验.

云计算未来主要有两个发展方向:一个是构建与应用程序紧密结合的大规模底层基础设施, 使得应用能够扩展到很大的规模; 另一个是通过构建新型的云计算应用程序, 在网络上提供更加丰富的用户体验. 第1个发展趋势能够从现有的云计算研究状况中体现出来, 详见上一节的分析. 而在云计算应用的构造上, 很多新型的社会服务型网络, 如facebook 等, 已经体现了这个发展趋势, 而在研究上则开始注重如何通过云计算基础平台将多个业务融合起来.

尽管云计算模式具有许多优点,但是也存在的一些问题,如数据隐私问题、安全问题、软件许可证问题、网络传输问题等。1) 数据隐私问题:如何保证存放在云服务提供商的数据隐私,不被非法利用,不仅需要技术的改进,也需要法律的进一步完善。2) 数据安全性:有些数据是企业的商业机密,数据的安全性关系到企业的生存和发展。云计算数据的安全性问题解决不了会影响云计算在企业中的应用。 3) 用户使用习惯:如何改变用户的使用习惯,使用户适应网络化的软硬件应用是长期而艰巨的挑战。3) 网络传输问题:云计算服务依赖网络,目前网速低且不稳定,使云应用的性能不高。云计算的普及依赖网络技术的发展。

第七章 结束语

云计算的出现并快速发展,一方面是虚拟化技术、数据密集型计算等技术发展的结果, 另一方面也是互联网发展需要不断丰富其应用必然趋势的体现。目前,云计算还没有一个统一的标准,虽然Amazon 、Google 、IBM 、Microsoft 等云计算平台已经为很多用户所使用, 但是云计算在行业标准、数据安全、服务质量、应用

软件等方面也面临着各种问题,这些问题的解决需要技术的进一步发展。总体上讲,云计算领域的研究还处于起步阶段,尚缺乏统一明确的研究框架体系, 还存在大量未明晰和有待解决的问题,研究机会、意义和价值非常明显。

目前,云计算还处于起步阶段,毫无疑问云计算前景光明。它可能彻底改变用户对计算资源的使用方式,使得用户从以桌 面为核心转向以Web 为核心。在本文中,我们已经讨论了云计算的现有服务,对比分析了现有的云计算平台、随着云计算的发展,将会有更多的平台和服务类型不断涌现。

云计算不仅仅是一个计算问题,它需要融合许多技术和成果。我们相信,随着越来越多的参与者加入到云计算的研究与发展中,云计算会出现一些新的结构模式、开发平台和应用软件 ,推动云计算及其应用日益走向成熟。

致谢

经过两个多月的构思与设计,在指导老师乔木的精心指导和安排下,本系统已经设计完毕。其使用功能基本符合企业在实际工作的需要,具有一定的实用性。但是由于时间比较仓促,加上本人软件设计经验的不足。因此,在分析问题、解决问题时显得不够严密、完善,还需要在以后的学习工作中不断地改进和完善。

在这次的毕业设计中,让我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。最后,我要衷心感谢乔木老师及我身边的同学——在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的毕业设计。

2009050242 袁月明

11年3月24日初稿

参考文献

[ 1] 王 鹏. 走近云计算[M ] . 北京: 人民邮电出版社,2009.

[3] 陈康, 郑纬民. 云计算:系统实例与研究现状[J].软件学报.2009, 20(5) :1337-1348.

[4] 陈全, 邓倩妮. 云计算及其关键技术[J].计算机应用. 2009,29 (09) : 2562-2567.

[ 7] 刘鹏. 云计算[M ] . 北京: 电子工业出版社, 2010: 66-67.

IBM. 蓝云解决方案. http ://www-900.ib m.c o m/ibm/ideas f ro mib m/

cn/cloud /solu tion s /index. sh tml

[1]

Sims K. IBM introdu c es ready -to -u se cloud comp u ting colla bo ra tion ser vic es get c lien ts s ta r ted with c lou d co mpu tin g. 2007. http ://www-03. ib m. co m/pres s /us/en/pres s re leas e/22613. ws s

[2]

Boss G, Mallad i P, Quan D, Legreg ni L, Hall H. Cloud compu ting. IBM White P aper,

2007. h ttp ://down loa d.bo u lde r. ib m. co m/ ib md l/pub/softwa re /dw/wes/hip ods /Clou d_c o mpu tin g_wp_fina l_8Oct. pdf


相关文章

  • 2016年智慧城市建设行业现状及发展趋势分析
  • 2016年中国智慧城市建设现状调研及市场 前景走势分析报告 报告编号:1659391 行业市场研究属于企业战略研究范畴,作为当前应用最为广泛的咨询服务,其研究成果以报告形式呈现,通常包含以下内容: 一份专业的行业研究报告,注重指导企业或投资 ...查看


  • 虚拟仪器技术的国内外研究现状分析
  • Harbin Institute of Technology 虚拟仪器技术的 国内外研究现状分析 课程名称:院 系:班 级: 姓 名:学 号:完成时间: 哈尔滨工业大学 摘 要 全面介绍了虚拟仪器概念的提出,它的基本原理.主要结构和性能特点 ...查看


  • 中国计算机网络设备制造调研报告
  • 中国市场调研在线 行业市场研究属于企业战略研究范畴,作为当前应用最为广泛的咨询服务,其研究成果以报告形式呈现,通常包含以下内容: 一份专业的行业研究报告,注重指导企业或投资者了解该行业整体发展态势及经济运行状况,旨在为企业或投资者提供方向性 ...查看


  • 大学生网络安全意识现状与对策研究
  • 第3期(总第98期) JournalofShandongAdministrationInstitute&ShandongEconomicManagementPersonnelInstitute NO.3Ser.No.98 大学生网络 ...查看


  • 云计算产业园项目可行性研究报告
  • 专业编写 云计算产业园项目可行性研究报告 <十三五规划> 核心提示:云计算产业园项目投资环境分析,云计算产业园项目背景和发展概况,云计算产业园项目建设的必要性,云计算产业园行业竞争格局分析,云计算产业园行业财务指标分析参考,云计 ...查看


  • 刘晶-2013362 讲座心得
  • 信号与信息处理专业硕士研究生 讲座心得 班 级:2013级13班 姓 名:刘晶 学 号:2013362 指导教师:柯丽 2016年 2月 29日 第1次讲座 <国内外机器人技术研究进展与发展趋势>讲座心得 时间: 2014.6. ...查看


  • 田径专修学生基础理论知识的现状与分析
  • 第32卷第2期 唐山师范学院学报 2010年3月 Vol. 32 No. 2 Journal of Tangshan Teachers College Mar. 2010 田径专修学生基础理论知识的现状与分析 杨杰夫 (广西师范大学 漓江学 ...查看


  • 国外区域火灾风险评估技术及应用现状
  • 作者:杜 霞, 张 欣, 刘庭全, 马玉河 摘 要: 介绍了英国的区域火灾风险评估技术及日本和美国相关技术的现状, 对区域火灾风险评估技术的应用研究工作提出了建议. 关键词: 区域火灾; 火灾风险; 评估 1 前 言 火灾风险评估技术是现代 ...查看


  • 云计算的关键技术及发展现状
  • 云计算的关键技术及发展现状 摘要:云计算是一种全新的领先信息技术,结合 IT 技术和互联网实现超级计算和存储能力,它的目标是要像供水.供电.金融系统一样,把"计算力"作为一种公用基础设施.组织大规模的信息和计算资源,面向 ...查看


  • 国内外虚拟现实技术的研究现状
  • 第23卷第2期辽宁工程技术大学学报2004年4月塑!:!!些!:!!!!望型!!兰!!!墅!£!!!!!!!!!些!!:!!!!!¥--::::::垒望二::!!丝文章编号:10080s62(2(xH加2一0238_03 国内外虚拟现实技术 ...查看


热门内容