2008年(8065)
分类: 服务器与存储
2008-11-19 14:39:52
摘 要:在Web Service 等网络自治系统中,依照云计算模型来设计具有更好通讯能力,鲁棒性和安全性的系统。该模型主要由数量动态可控的子中间件和统一的管理平台组成,通过对子中间件的动态管理和分配,来满足不同类型和规模的需求,并且屏蔽了底层实现的功能,从而达到提升Web Service 系统性能的目的。本文主要描述了模拟自然界中云的生命周期和形态而建立的云计算模型,并介绍了云计算模型的生命周期模型和工作模型,最后介绍应用云计算模型的最新成果:Amazon Elastic Computing Cloud 系统
关键词:云计算模型,Web Service,自治系统
1. 概述
计算机网络自从其诞生起,其主要的作用就是信息的共享和交流,网络的最大价值就在 于可以让使用者真正的管理业务和分享信息,而不是单纯的使用网络本身。通过多年的发展,网络也从最初的简单文件共享发展到现在的多媒体内容共享,计算资源共享。计算机网络的规模和作用都随着时间的推移不断扩张。
在这种需求的推动下,不断有新的技术被应用在网络当中,而新技术带来的效率和易用性的提高又进一步促使网络向前发展。更高的服务要求在很大程度上取决于网络计算的有效性[1]。更为有效的组织方法和计算方法的不断出现总是让人们震惊,并且开始重新思考处理事情的基本原则。
面向服务的框架(SOA , Service-Oriented Architecture)就是当前网络组织方法的发展趋势之一[2],使用SOA 方法构建的网络系统(下简称为SOA 系统)通过提供统一的中间件产品来为越来越丰富的网络产品提供服务,同时依托系统的规模化和集成化,使得系统能够支撑的服务规模成倍提升,从而满足越来越发达的网络服务的要求。
但是,网络服务的多样性也给SOA 和Web Service 带来了极大的挑战[1,3],为了能够为 不同规模和种类的服务提供支持,SOA 系统需要根据需求的不断改变来动态分配系统资源[4],满足这种要求的SOA 系统称之为动态自治SOA 系统。为了满足这种要求,动态自治SOA 系统必须具备以下特性[5]:
本文中介绍的云计算模型就具备这样的特点,其结构和生命周期类似于自然界中的云,在使用云模型结构设计的SOA 系统中,组件化的子中间件在不提供服务时,具有时间和空间的独立性(类似于自然界中的水分子)。通过整合这些子中间件(类似于自然界中云的形成过程),云计算模型能够对外提供统一的,规模化的服务(类似于云),而服务的大小则和云的规模成正比,并可动态调整。这就是云计算模型的概念来源。
2. 云计算模型
云模型是参照自然界中云的生成方式和形态,将其应用于计算机网络设计而得出的模型概念,本章将通过介绍自然云的生命周期和形态,进而得出云计算模型。
2.1 工作模型
为了在SOA 系统设计过程中使系统具备动态调整能力和自治能力,SOA 系统必须在系统纵向和横向具备模块化的能力 [5],纵向的模块化使得系统能够在任何层次上实现抽象化,从而当系统不适应新的需求时,可以通过最小的代价重定义[5,6]。在纵向抽象化的基础上,横向模块化通过将分布的服务组件化,也就是将系统设计为许多相同功能模块的组合,根据用户的需求动态分配使用模块的数量,这样系统便具备了动态调整能力和自治能力。最终的系统示意图如图1 所示。
从图中所示系统可以看出,云计算模型具备以下几个特点:
对比云计算模型和自然界中真实的云(图2)可以看出,上述的特点也是云所具有的特点[7]:对外的统一外观;屏蔽内部水分子的形态;由许多独立的小水滴构成;在一定的条件下形成降雨。这些属性上的类似,是云计算模型的命名来图2 自然云形态示意图源。
2.2 2 生命周期模型
在具备了结构上具备纵向和横向组件化的特点之后,云计算模型具备了满足动态自治SOA 系统需要的可能性,同时为了获得动态调整的特性,系统还必须具备从系统构成,系统调整和系统分解的一整套合理的生命周期模型。在这一点上,云计算模型和自然云仍然具备很好的吻合性。在介绍计算云的模型之前,先介绍一下自然界中云的生命周期模型[7]。首先,陆地上的水在太阳的照射下,水分子会互相摆脱其他水分子的吸引力而进入大气中,这个过程就是我们通常所说的蒸发。
水汽从地球表面进入低层大气后,这里的温度高,所容纳的水汽较多,如果这些湿热的空气被抬升,温度就会逐渐降低,到了一定高度,空气中的水汽就会达到饱和。这个阶段可以称为结合阶段。
如果空气继续被抬升,就会有多余的水汽析出。如果那里的温度高于0°C,则多余的水汽就凝结成小水滴;如果温度低于0°C,则多余的水汽就凝化为小冰晶。在这些小水滴和小冰晶逐渐增多并达到人眼能辨认的程度时,云就形成了。
最后,当云中的水滴发展到足够大时,大气不能使它继续上升,于是它开始下落变成雨或者落在其他的云中。云就结束了他的一个生命周期。
以上就是自然界中的云的生命周期的整个过程,可以看出,它包含着如图3 所示的四个重要的步骤:蒸发,结合,凝结,成雨[3,7]。
和自然云的生命周期类似,计算云的生命周期模型中也包含着四个重要的步骤[3]:
从整个系统中分解出来——分解阶段。
对比前面介绍的自然云的形成过程和云计算模型可以发现,自然云的形成过程包含四个
步骤:蒸发,结合,凝结和成雨,而云计算模型的实例化也包括四个步骤:发现,组合,成
型,分解,如图4 所示,各个步骤之间也存在着处理方式和处理内容的相似:
因此,从工作模型和生命周期模型两个角度来看,云计算模型在模拟自然云的构成方式和特性的基础上,通过这种低耦合的系统设计方式,为SOA 系统的设计提供了一种易于理解的,有效的解决方案[3]。
2.3 系统分析
对比图5 和图6 可以发现,采用云计算模型的SOA 系统的主要优势在于,利用子中间 件的独立性和可复用性,所有的中间件服务都作为子中间件的组合——“云”,对外提供服务,因此当系统需要为新服务而重新部署时,添加的主要过程是添加或查找可用的子中间件(如图4 所示),进而组成新的中间件提供服务。而一般SOA 系统在添加新的服务时,需要添加的基本单位是整个中间件[1,2,4]。
因此从“云”的角度上来看,采用云计算模型的SOA 系统在系统动态改变时,只需要对计算云内部进行必要的修改,而在对外接口和系统层次上保持一致性,同时并不对其他的组件发生干扰,这种特性称之为云计算模型的动态特性。
同时,组成单位的小型化,也带来了故障单元的小型化。通过设计相应的策略,当某个子中间件出现故障时,系统可以寻找相同功能单元进行替换,而不影响到中间件层次的服务。
同时,也可以设置相信的轮休或备份策略,这些健全机制称为云计算模型的自治能力。
因此,我们说采用云计算模型的SOA 系统是具有动态自治能力的系统。
2.4 Amazon Elastic Computing Cloud
根据云计算模型的设计思路,很多优秀的网络自治系统被设计出来,并在一定程度上推动了云计算模型的完善和发展。Amazon Elastic Compute Cloud(Amzon EC2),或者称为Amazon 弹性计算云,就是当前云计算模型应用的先驱[8,10]。Amzon EC2 提供了可动态调整大小的云计算的能力,通过Web Service 向用户提供了网络虚拟计算环境。它的设计使得网络计算对于开发者来说变得更加容易。例如,Kettle 集群基于 Amazon Elastic Computing Cloud 做了一次测试,单台服务器输出4000 rows/sec ,数据库为MySQL. 获得了很好的集群效果[9]。
它的设计创新在于允许用户在Amazon 提供的数据中心快速建立一个虚拟的机器AMI1,同时在这个虚拟机器中可以安装任意的操作系统,并且可以将此机器用于提供各种业务。这种服务可以让用户按照自己的需求自由的控制应用的规模,从而避免了因为业务变动而购买,安装,维持额外的服务器,以及因此而产生的各种兼容问题和系统调整所需的额外工作量,同时还为系统带来了分布式网络计算的规模优势和相对稳定性。Amazon EC2 是Amazon 继简单存储服务(Amazon Simple Storage Service,Amazon S3)利用云计算模型提供存储服务之后,利用云计算模型开发的第二个SOA 系统,它使得计算可以在云计算模型中进行。Amazon 的简单网络服务可以使你很容易拥有获取和配置的能力,它使你在能够完全控制计算资源的情况下,在Amazon 的计算环境中运行计算。Amazon EC2 使获取和配置新的服务器实例的时间缩短为几分钟,并且可以根据计算需求的改变,随时扩大或者缩小服务器实例的规模。
2.4.1 Amazon EC2 的功能
Amazon EC2 描述了一个真实的虚拟计算环境,在这个环境中,你可以使用它的网络服务接口申请你所需要的虚拟机,然后就可以在这个虚拟机中下载你的应用程序,配置你的网络接入许可,并根据你的需要使用一个或多个组件来提供服务。
使用Amazon EC2 ,你可以[8]:
2.4.2 Amazon EC2 云计算模型及其特点
从上面的叙述可以看出Amazon EC2 在实现上,充分使用了云计算模型的设计要素: Amazon EC2 系统由分布的计算单元所组成,根据具体的用户需求组合成完整的虚拟机向用户提供服务。在用户端表现为虚拟主机AMI。同时,用户还可以根据自己的需求,动态的改变所需要的服务能力的配给。可以说Amazon EC2 具有完整的云计算模型特点:
2.4.3 Amazon EC2 的优势
由于Amazon EC2 的云计算模型特点,使得Amazon EC2 具有了以下几点优势:
3. 展望
我们现在正在步入“计算云”的时代。计算云通过将中间件组件化,为SOA 系统的开发提供了一种动态组成系统的有效机制,使复杂的问题可以简单快速的解决。同时增强了系统的自治性。Amazon EC2 的成功就是一个很好的证明,同时促使了计算环境的虚拟化成为很多中小企业和企业管理软件发展的趋势[8,10]。
当然,计算云并不完美,还有很多有待解决的问题,例如这种网络服务在离线状态下就不能使用[11]。但是,计算云为我们提供了一条正确的道路:动态的组成系统,简单的处理方式,更大程度的资源共享。云计算模型已经引起了很多重要的业界领先企业的关注,被认为是2007 年重要的计算机技术发展方向之一[12]。可以说,云计算模型的成功使用将使网络应用进入一个新的篇章。