1、绪论
云计算( Cloud Computing)是网格计算(Grid Computing)、分布式计算〔Disaibuted Computing)、并行计算(Parallel Computing) ,效用计算(Utility Computing)、网络存储(Network Storage Tcchnologies),虚拟化(Virtulization ) ,负载均衡(Load Balance )等传统计算机技术和网络技术发展融合的产物。它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统.并借助SaaS,PaaS.IaaS.MSP等先进的商业模式把这强大的计算能力分布到终端用户手中。云计算的一个核心理念就是通过不断提高“云”的处理能力,进而减少用户终端的处理负担,最终使用户终端简化成一个单纯的编人输出设备.并能按需享受“云衬的强大计算处理能力。
云计算的核心思想,是将大最用网络连接的计算资源统一管理和调度.构成一个计算资源池向用户按需服务。
2、云计算的核心技术
云计算系统运用了许多技术,其中以编程模型、数据管理技术、数据存储技术、虚拟化技术、云计算平台管理技术最为关键。
(1)编程模型
MapReduce是Google开发的java,Python,C++编程模型,它是一种简化的分布式编程模型和高效的任务调度模型,用于大规模数据集(大于1T8)的并行运算。严格的编程模型使云计算环境下的编程十分简单。MapAeduce模式的思想是将要执行的问题分解成}P(映射)和Reduce(化简)的方式,先通过Map程序将数据切割成不相关的区块,分配(调度)给大量计算机处理,达到分布式运算的效果,再通过Reduce程序将结果汇整输出。
(2)海量数据分布存储技术
云计算系统由大量服务器组成,同时为大量用户服务,因此云计算系统采用分布式存储的方式存储数据,用冗余存储的方式保证数据的可靠性。云计算系统中广泛使用的数据存储系统是Google的GFS和Hadoop团队开发的GFS的开源实现HDFS。 GFS即Google文件系统(Google File System),是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。GFS的设计思想不同于传统的文件系统,是针对大规模数据处理和Google应用特性而设计的。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。一个GFS集群由一个主服务器(~)和大量的块服务器(chunksecvcr)构成,并被许多客户(Client)访问。主服务器存储文件系统所有的元数据,包括名字空间、访问控制信息、从文件到块的映射以及块的当前位置。它也控制系统范围的活动,如块租约(lease)管理,孤儿块的垃圾收集,块服务器间的块迁移。主服务器定期通过HeartBeat消息与每一个块服务器通信.给块服务器传递指令并收集它的状态。GFS中的文件被切分为64MB的块并以冗余存储,每份数据在系统中保存3个以上备份。客户与主服务器的交换只限于对元数据的操作.所有数据方面的通信都直接和块服务器联系,这大大提高了系统的效率,防止主服务器负载过重。
(3)海量数据管理技术
云计算需要对分布的、海量的数据进行处理、分析,因此,数据管理技术必需能够高效地管理大量的数据。云计算系统中的数据管理技术主要是Google的BT(BigTable)数据管理技术和Hadoop团队开发的开源数据管理模块Hbase。BT是建立在 GFS, Scheduler, Lock Service。和MapReduce之上的一个大型的分布式数据库,与传统的关系数据库不同,它把所有数据都作为对象来处理,形成一个巨大的表格,用来分布存储大规模结构化数据。Google的很多项目使用BT来存储数据,包括网页查询,Google earth和Google金融。这些应用程序对BT的要求各不相同:数据大小(从URL到网页到卫星图象)不同,反应速度不同(从后端的大批处理到实时数据服务)。对于不同的要求,BT都成功地提供了灵活高效的服务。
(4)虚拟化技术
通过虚拟化技术可实现软件应用与底层硬件相隔离,它包括将单个资源划分成多个虚拟资源的裂分模式,也包括将多个资源整合成一个虚拟资源的聚合模式。虚拟化技术根据对象可分成存储虚拟化、计算虚拟化、网络虚拟化等.计算虚拟化又分为系统级虚拟化、应用级虚拟化和桌面虚拟化。
(5)云计算平台管理技术
云计算资源规模庞大,服务器数量众多并分布在不同的地点,同时运行着数百种应用,如何有效地管理这些服务器,保证整个系统提供不间断的服务是巨大的挑战。云计算系统的平合管理技术能够使大量的服务器协同工作,方便地进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。
3、云计算环境中DAI概念的提出
数字化数据在科学研究中扮演着重要角色.对商业和政府的决策工程给予了有力的支持。随着时间的推移.越来越多的数据被组织为数据库中的共享和结构化数据集,XML文档、结构化的二进制文件集等形式。在模拟和传感器技术发展的推动下。数据集的大小已经增长到TB数量级。这些数据集的飞速增长,使得访问任一数据集中的数据都成为一项挑战。为了有效地访问、处理和使用这些大规模的分布式数据资源,需要构建一种基础架构,在这种基础架构中,共享数据、存储、计算资源等能以一种标准的访问接口进行访问,并以统一的数据格式交付给数据分析任务使用。
另外,随着网络连接的普遍存在以及现代科技中问题规模的扩大,建立、管理和利用这些结构化数据集需要进行广泛集成。尽管单一的数据集只包含特定组织感兴趣的数据,但通过集成来自多个数据资源的信息可取得某些实质性进步。比如夭文学家通过虚拟天文台.将不同频率和不同时间内收集的数据融合在一起以发现宇宙的新特性;基因功能组的研究需要在物种之间进行比较,它要求综合蛋白质生物化学、结晶学数据、实验室数据和人口学方面的数据来发现新的基因组合口。因此数据分析必须能够处理在大规模计算和数据移动中所涉及的问题,并且提供能融合多种结构化数据集的机制。这些数据集可以驻留在不同平台,依据不同的策略进行管理,并且在地理上分布。
随着数据密集型计算的飞速发展,对信息处理能力的要求也越来越高,从科学研究到军事决策、战场仿真,从分子生物学到核模拟,从数字地球计划到海湾战争,人们迫切需要缩短从原始数据提取高层信息并进一步完成高层信息处理的时间。通过用户与数据资源直接交互的模式进行数据访问和集成变得很不现实,当访问和集成这些数据时,进行数据发现、访问、分析和集成就会变得相当萦琐。这就豁要扩充网格的数据管理能力,建立一种有效的、开放的、可扩展的数据访问和集成(Data Access and Integration, DAI)体系结构,将超级计算机的数值计算能力和数字图书馆的数据处理及发布能力有机结合起来,为科学应用在网络中实施数据资源发现,并进行高效的数据访问和集成提供有力支持。
4、云计算环境中DAI需求
云计算作为一种全新的计算模式,可以动态地定位和访问网络环境中各种数据资源,解决那些需要许多组织共同协作才能解决的问题。在云计算环境中,数据资源广泛存储在各种分布、异构的数据库之中,数据资源的动态性、异构性为云计算研究带来新的机遇和挑战,需要使用网格技术对分布、异类、异构的网格数据资源提供无缝的共享和集成支持川。而且,随着云计算技术变得越来越复杂和自动化,就会增加这些数据资源的数量、容量以及多样性。因此,对于云计算自身来说,系统化的数据访问和集成方法同样变得相当重要。
在云计算环境中,一个应用往往由查询一个或更多的数据库以及对得到的数据进行分析来实现,而现有的数据库管理系统并不支持网络数据集成。一方面,如果每一种数据库都独立地访问网格接口,那将会出现两个负面的影响:首先要对数据库提供的网络接口代码进行重写;其次,为了便于访问,应用程序和数据集成服务将不得不为每一种网络环境中的数据库编写接口代码,这无形中提高了编写应用程序的代价。另一方面,数据库管理系统是成千上万人多年努力工作的产物,它们提供了广泛的功能、有价值的编程接口和工具,同时也提供了诸如安全、性能和依赖性等重要特性。由于网络应用也需要这些属性,从头编写全新网络集成的数据库管理系统是不现实的.而且是极大的浪费。因此,必须考虑如何将现有的数据库管理系统集成到网络中去。但这种方法也有一定的局限性,因为网络集成数据库有一些必需的属性不能通过这种方式获得,必须集成在相应的数据库管理系统本身之中。针对这些问题,可以开发一种DAI网络中间件来完成对云计算环境中流行的数据库管理系统的集成,实现分布的、不同种类的数据库数据访问和集成操作。随着云计算商业地位的提高,数据库的出版商也可把中间件的功能直接嵌人到产品当中,提供诸如“out-of-box"来支持网络数据集成,以此来支持OGSA(Qpen Grid Services Arcbitecnire)网格标准。同样在云计算环境中,嵌人许多特殊功能的网络中间件设计标准也是至关重要的,DAI中间件的目的之一就是揭示和表达这种需要。
5、云计算环境中DAI应解决的几个问题
云计算环境中DAI中间件在其开发过程中,必然会涉及到大量的技术问题,这些问题主要体现在以下六个方面:
(1)系统体系结构的设计:随着技术的发展,多层分布式应用体系结构越来越流行,在体系结构的设计中,应按照系统的功能和网格服务系统的需求,设计多层系统体系结构,合理划分层次,分配各层功能。
(2)数据库连接:网络中存在多种异构数据库,要求用户在访问它们时,DAI中间件应提供一种通用的数据库连接方式,实现数据库动态定位,完成云计算环境中分布的、异构的、不同种类的数据库连接。同时应针对不同数据库用户采用合适的连接机制,提高系统的响应速度,降低数据库连接时的时间消耗。
(3)数据传输:数据访同和集成离不开数据传输,在现有的网络基础上,如何高效、安全地解决大规模数据传输问题是提高中间件系统效率的关键。
(4)数据格式:在网络环境中,各种异构数据库存储的数据格式不尽相同,同一种类型的数据库中存储的数据格式也有不同的定义。因此,中间件应采用统一的数据格式解决数据异构问题,方便用户对数据资源的访问和集成。
(5)数据库集成:用户对网络环境中广泛分布的、异构的数据库进行访间时,考虑的是访问效果,而不关心数据库的具体位置。DAI中间件应采用合理的机制,把网络环境中各种异构数据库集成到服务器端,使得各种异构数据库对用户透明。
6、结论
在云计算环境中,数据资源广泛存储在各种分布、异构的数据库之中.需要使用网格技术对分布、异类、异构的网格数据资源提供无缝的共享和集成支持,因此建立一个通用的中间件是必要的。
本文提出了建立一种有效的、开放的、可扩展的数据访同和集成( DAI)的概念,通过DAI中间件提供的标准访问接口及统一数据格式对云计算环境中各种分布的、异构的、不同种类的信息资源进行动态访问和集成,以此来提高信息的可访性、可用性、时效性、安全性。
12/8/2012
|