收藏 分享(赏)

基于服务架构的云计算研究及其实现.doc

上传人:dreamzhangning 文档编号:2249893 上传时间:2018-09-07 格式:DOC 页数:11 大小:114.50KB
下载 相关 举报
基于服务架构的云计算研究及其实现.doc_第1页
第1页 / 共11页
基于服务架构的云计算研究及其实现.doc_第2页
第2页 / 共11页
基于服务架构的云计算研究及其实现.doc_第3页
第3页 / 共11页
基于服务架构的云计算研究及其实现.doc_第4页
第4页 / 共11页
基于服务架构的云计算研究及其实现.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、基于服务架构的云计算研究及其实现摘 要: 云计算是一种将计算和存储任务分配到由大量计算机构成的云中的计算模式。在介绍了云计算和基于服务架构的概念和特征之后,提出了一种现实可行的基于服务架构的云计算四层结构。最后描述了基于服务架构的云计算实现过程,并证明基于服务架构的云计算在扩展性和用户透明性方面比网格计算更优。关键词: 云计算 基于服务的架构 终端用户 网格计算 用户透明 扩展性Research on Service-oriented ArchitectureCloud Computing and its ImplementationAbstract :Cloud computing is a

2、 computing paradigm that it assigns the computing and storing task to the cloud whichis composed by a large number of computersAfter the introduction of the concepts and characteristics of the cloud computing and the service-oriented architecture in this paper,it proposes a realistic service-oriente

3、d architecture cloud computing framework with four layersIn the end,it describes the implementation of this serviceoriented architecture cloud computing,and proves that service-oriented architecture cloud computing is batter than grid computing in the aspect of sealability and users-transparencyKey

4、words:dond computing,SOA,end-user,grid computing,users-transparency,sealability1 引言随着网络的飞速发展,业务量、数据量以爆炸式的速度增长,导致数据存储中心的成本上升。在这个计算速度要求极高和数据海量爆发的年代,对大部分企业来说,自身计算机设备的性能也许永远无法满足需求,因为企业内部信息的扩张速度远比想象的要快。简单的办法便是采购更多、更先进的设备来保证计算速度和存储容量,但这对于一些本身IT预算就少的企业,不停的更换设备也并不是万全之策,更何况这些越来越多的设备所带来的越来越多的附加费用也是个麻烦。而且就算有足够

5、的资金来购买更多的设备,但随着设备数量的增加,各种存储体系结构之间的差异不断增加,可融合性变差,网络中存储资源难以管理和充分使用。云计算是一种计算模式,它主要是用来解决服务器以及个人计算机之间存储资源共享和数据共享问题,使网络中的存储资源得到充分利用和方便管理,云计算应运而生。2 概念介绍2.1 云计算定义云是由一系列相互联系并且虚拟化的计算机组成的并行和分布式系统模式。这些虚拟化的计算机动态地提供一种或多种统一化的计算和存储资源。这些资源通过服务提供者和服务消费者之间的协商来流通。基于这样云的计算称为云计算。简单地说,云计算就是指基于互联网络的超级计算模式。即把存储于个人电脑、服务器和其他设

6、备上的大量存储器容量和处理器资源集中在一起,统一管理并且协同工作。2.2 云计算主要技术特征各个企业或者研究机构所提出的云计算解决方案共同构成了一个生态系统,从各种已有的云计算技术形态来看,各家的云计算平台虽然各有不同,但是都满足以下技术特征:1) 以服务的形式提供计算资源和计算能力。各种计算资源或计算能力通过网络以服务的形式提供给用户使用,这些资源具有不同的类型,处于不同的系统层次,从最底层的CPU、磁盘、网络连接等硬件资源,到整个部署平台或运行环境,再到各种特定于领域的或业务的应用系统。2) 支持多租户(multi-tenancy)的网络访问和使用不管所提供的资源处于哪个系统层次,用户都可

7、以通过网络访问和使用,由于是面向多用户的,系统必须提供相应的机制为多个用户分配、维护和管理所需要的资源,这通常在虚拟化、分布式计算、分布式存储等技术的基础上实现。3) 按需使用的弹性架构根据需要为用户分配资源,当用户的资源需求增加或者减少时,能以足够快的速度为用户重新分配或释放相应资源,从而提高资源利用率,减小用户的成本。这通常需要某种形式的负载均衡技术实现。4) 最小化的管理负担用户只需要很少的配置就可以使用各种计算资源和计算能力,而不需要参与对所使用资源的管理和维护,这需要实现自动的动态资源配置和管理。5) 按使用量支付用户根据对资源的使用量支付相应费用,因而需要云计算系统可以对资源的使用

8、情况进行实时的监控和度量。2.3 云计算基础技术云计算的一个核心思路是,不管所提供的资源处于哪个系统层次,隐藏系统内部的复杂性,为用户提供尽量便捷的使用接口,减小用户对所用资源的管理和配置负担。用户不需要了解或参与管理云平台的内部机制,只需要关注云平台提供的服务及其使用方式。云计算通常建立在大规模的服务器集群之上,需要针对其所提供的服务形式在服务器集群所构成的分布式计算环境中,充分地组织和管理计算和存储资源,提供面向多租户(Multi-tenancy)的动态资源配置、释放、监控和负载均衡,这主要通过虚拟化、分布式存储和并行计算模型等技术来实现。1)虚拟化技术虚拟化(virtualization

9、)并不是一种新技术,单机版的虚拟化技术已经使用了数十年。传统的虚拟化技术用于将底层物理资源进行抽象,可以通过一个虚拟控制层(VMM,Virtual Monitor Machine)为单个物理机建立多个逻辑映像,以虚拟机(Virtual Machine)的形式提供给上层,各个虚拟机中可以互不干扰地运行不同的操作系统,因而虚拟化技术为云计算提供了一种高效的资源分配机制。在云计算环境中,虚拟化被当做一个意义更加宽泛的核心概念来使用。通过在不同系统层次上对各种资源进行抽象,实现分布式环境下的服务器、存储设备和其他各种硬件资源的封装,当做统一的资源池来提供,从而实现对各种计算资源的灵活配置和管理。这种抽

10、象有两种不同的形式,一种利用传统的虚拟化技术,可以将单个服务器作为多个虚拟化的服务器使用;一种使用集群(Clustering)技术,可以将多个服务器作为单个服务器环境来使用。1.平台虚拟化平台虚拟化允许操作系统或者平台相关的应用运行在给定虚拟系统中。主要有两种类型的系统虚拟化技术:全虚拟化(full virtualization),对底层硬件系统进行全模拟,客户机操作系统觉察不到运行在一个虚拟环境中,无需对现有的操作系统做任何修改,例如Type 1 hypervisors,直接运行在硬件系统之上;类虚拟化(paravirtualization),提供的虚拟化环境与底层硬件系统不完全相同,需要对

11、客户机操作系统进行修改使之适应虚拟环境,例如Type 2 hypervisors,需要运行在某种传统操作系统之中。2.操作系统虚拟化操作系统级别的虚拟化或分割技术(Partitioning)有助于提高云计算环境的核心安全性,例如Sun Solaris Containers技术可以实现为每个应用程序分配一个服务器实例(one-application-per-server),同时在多个应用之间共享物理资源。Solaris Container允许在单个Solaris OS实例中,为多个应用分配私有的运行环境。3.网络虚拟化云计算要提供弹性的按需使用的架构,在云环境中,当物理设备或虚拟系统的数量增加时

12、,相应的资源分配以及管理的复杂性也会不断增加,因此负载均衡技术变得非常重要。通过网络虚拟化,可以更好地实现动态的资源分配和负载均衡。在服务器集群环境中,负载均衡技术可以在虚拟网络环境下(虚拟的IP地址下)将服务器分组,提供基于资源的服务请求规划和失效恢复(failover)。负载均衡可以在硬件或者软件上实现,基于硬件的负载均衡器(load-balancer)性能更好,但是灵活性比较差,基于软件的负载均衡器则恰恰相反。实际上,通常在硬件基础上编写软件接口来平衡软硬件性能和灵活性上的差别,或者直接使用更多的硬件设备来弥补软件负载均衡的性能不足。4.应用虚拟化应用虚拟化在更高的系统层次进行抽象,典型

13、的例如WEB容器,为WEB应用提供了一个抽象化的运行环境。5.云计算中常用的虚拟化技术有VMware、Xen、KVM等。VMware公司提供了VMware vSphere、VMware View、VMware vCenter、VMware Workstation以及VMware ESX Server等多款产品。VMware使用一种叫做二进制翻译(BT,Binary Translation)的技术来完成全虚拟。这个技术能让那些非常普通的指令直接执行,不干涉,并提供接近物理机的速度,但会扫描并修改那些有嫌疑的代码,使其无法对虚拟机造成错误的影响。KVM全称是Kernel-based Virtual

14、 Machine,2007年问世,并于当年被集成进Linux内核,成为内核的一部分。KVM只支持全虚拟化,而且需要intel-VT或者AMD-V的支持。KVM使用经过修改的QEMU程序来创建虚拟机。 一旦运行后, 虚拟机是一个标准的进程,可以使用top、kill、taskset以及类似的工具来管理虚拟机。因为KVM和QEMU的密切关系,所以KVM从QEMU那里继承丰富的磁盘格式支持,包括裸映像(raw images)、原始QEMU格式(qcow)、qcow2以及VMware格式等。实际上QEMU也是一种虚拟机,KVM只是借用了它的用户空间工具而已。Xen是由剑桥大学计算机实验室开发的一个开源项

15、目。与KVM相比,Xen历史更悠久,发展也更成熟。目前,Xen支持半虚拟和全虚拟两种工作模式,既能工作在32位CPU上也能工作在64位CPU上。Xen在半虚拟工作模式时,客户操作系统需要经过修改才能运行,在CPU有intel-VT或者AMD-V支持的情况下, Xen可以实现全虚拟,客户操作系统便可以不经任何修改运行其上。Xen在工作时将整个系统分成几个部分:Xen Hypervisor、Domain 0、Domain Management and Control、Domain U PV Guest以及Domain U HVM Guest。Xen hypervisor是对这个软件的最基本的抽象层

16、,向上层提供抽象的硬件。它主要负责针对运行在该硬件设备之上的多个虚拟机的CPU轮转,内存划分的工作。Hypervisor不仅仅对底层硬件设备进行了抽象,而且同时控制着虚拟机的执行。XEN有如下优点: 虚拟重新定位:支持云管理系统在几秒钟内动态重新定位虚拟机(外来操作系统),并且不会造成当机。 瞬间归档:使“ 云” 能够将未使用的服务器脱机,并且无任何不良影响。随后可以在几秒钟内复原同一虚拟机并使其联机。 瞬间重新平衡:使“ 云 ”能够将过度使用的虚拟机转移到具有未使用资源(内存、CPU、磁盘)的物理机器上。 瞬间部署:使“ 云” 能够在几秒钟内将虚拟服务器联机。根据实施情况,更多的配置或中间件

17、与应用程序供应可能需要更多时间2) 分布式存储分布式存储技术用于对分布式环境下的大规模存储空间进行管理,以支持海量数据的存储和使用。用在云计算中的分布式存储技术主要有三种形式,存储非结构化数据的分布式文件系统,和分布式对象存储系统。1. 分布式文件系统分布式文件系统将树状文件结构组织在分布式环境中,有如下特征: 系统中的错误不再被当做很少发生的异常来处理,而是将其作为常见的情况加以处理。GFS针对由大量的廉价机器组成的系统,在设计时就考虑到系统中总有一些机器会出现错误甚至崩溃,所以实时监控、错误检测、容错以及自动恢复机制被充分考虑; 文件块的大小与传统文件系统不同。传统文件系统中,文件块在KB

18、级,当文件非常大的时候文件块太多不容易管理,所以可以适当放大文件块以便提高效率。 大部分文件对文件的写操作是追加新数据而不是修改已有数据。 系统工作量主要由两种读操作组成,一种是对大量数据的流式读操作,另一种是对少量数据的随机读操作。 系统工作量还包括对大量数据进行的向文件追加数据的写操作。 系统可以高效地处理大量客户并发地对同一文件的追加写操作。2. 分布式对象存储云计算环境下需要处理海量的数据,并且大部分应用不需要支持完整的SQL语义,而只需要Key-Value形式或略复杂的查询语义,因此针对对象存储的key-value模式以及建立在此模式之上的NoSQL分布式存储系统成为云计算中重要的技

19、术。与分布式文件系统不同,分布式对象存储不包含树状结构,摒弃了传统的关系模式,查询速度快、存放数据量大、支持高并发。具有如下特点: 分布式多层映射 支持容错和持久化 弹性可扩展的规模:大规模服务器集群,TB 级内存数据,PB 级磁盘数据,每秒百万次读写操作。 自管理:支持动态增加或减少服务器,支持负载均衡。3)并行计算模型云计算处理的数据是海量的,针对的是Internet环境下的大规模应用密集型计算,并且采用分布式存储,并行计算模型可以为云计算提供最有效的大规模数据处理能力,最有代表性的是Google的MapReduce。MapReduce是Google为了支持自己的核心业务而设计的一种并行计

20、算模型,面向大规模的分布式数据系统,在这样的环境中,数据分别存放在各个服务器节点中,针对多个存储节点,MapReduce将对数据的处理过程(例如对某个关键词的统计)抽象为两个简单操作,Map和Reduce。一个复杂的计算任务被转化为一系列单一的Map/Reduce操作对,并分配到各个节点中去处理,由于需要处理所需的数据就存储在各个节点,因而计算过程被自然的并行化。这种计算方式等于优先把计算任务调度到数据所在的节点或者就近的节点,这样在进行计算时,大部分的输入数据都能从本地读取,好处是减少了网络带宽的消耗,提高了整个系统的吞吐量。但是这种简单的根据存储位置进行任务划分的方式,只适用于不存在数据依

21、赖关系的计算。传统的网格计算和SOA相关技术也被用于云计算环境,进行大规模分布式环境中的数据处理,构成云计算的技术基础。2.4 基于服务的架构2.4.1 定义SOA(service-oriented architecture,也叫面向服务的体系结构或面向服务架构)是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务

22、可以以一种统一和通用的方式进行交互。2.4.2 SOA三大基本特征1)独立的功能实体SOA中提供服务的功能实体具有完全独立自主的能力。同时SOA中的实体必须自我管理和恢复能力。比如事务处理,消息队列,冗余部署和集群系统。2)大数据量低频率访问SOA系统推荐采用大数据量的方式一次性进行信息交换,来提高系统的响应速度和稳定性。3)基于文本的消息传递因为Internet中存在大量的异构系统,所以SOA系统必须采用基于文本而非二进制的消息传递方式以便所有异构系统都能够正确辨认和读写的此消息。2.4.3 SOA设计原则要满足这种业务敏捷性,SOA 的实践必须遵循以下原则:* 业务驱动服务,服务驱动技术从

23、本质上说,在抽象层次上,服务位于业务和技术中间。面向服务的架构设计师一方面必须理解在业务需求和可以提供的服务之间的动态关系,另一方面,同样要理解服务与提供这些服务的底层技术之间的关系。* 业务敏捷是基本的业务需求SOA 考虑的是下一个抽象层次:提供响应变化需求的能力是新的“元需求”,而不是处理一些业务上的固定不变的需求。从硬件系统而上的整个架构都必须满足业务敏捷的需求,因为,在 SOA 中任何的瓶颈都会影响到整个 IT 环境的灵活性。* 一个成功的 SOA 总在变化之中SOA 工作的场景,更象是一个活的生物体,而不是象传统所说的“盖一栋房子”。IT环境唯一不变的就是变化,因此面向服务架构设计师

24、的工作永远不会结束。对于习惯于盖房子的设计师来说,要转向设计一个活的生物体要求崭新的思维方式。如下文所写的,SOA 的基础还是一些类似的架构准则。SOA也是一门方法论,类似于面向对象的设计,它也有自己的一些原则。SOA的服务设计原则有:规范化的服务契约,松散耦合性,服务抽象性,服务重用性,服务自治性。这些原则是不可或缺的,自治性、松散耦合、抽象以及规范化的契约视为形成SOA根本基础的核心原则。3 结构分析基于服务的云计算结构可以分为四层:云计算服务应用层、云计算服务调度层、云计算服务解析层和云计算服务物理层。云计算服务应用层是云计算和终端用户的接口层。云计算服务的最终目的是通过云计算服务应用层

25、给用户提供其所需的云计算服务。云计算服务物理层是云计算服务结构模型的最底层,是云计算结构的核心层,是给上层提供云计算服务的基础设施层。基于云计算的结构如图1所示。云计算服务应用层云计算服务调度层云计算服务解析层云计算服务物理层图1 基于服务架构的云计算结构下面详细介绍各层的特征及其功能。1)云计算服务应用层云计算服务应用层的作用是为终端用户消费云计算服务提供统一规范的接口。终端用户通过专用入口通道进入云计算服务中心,订制和消费其所需的服务。通过云计算服务应用层,终端用户可以在不投入大量资金来改善本地机器性能的情况下进行远远超过其机器性能上限的高强度计算和大存储容量的工作。云计算服务应用层中的云

26、计算服务可以是相互包含和被包含的关系。例如,对于云计算服务A和云计算服务B,其中云计算服务A是计算云,云计算服务B是存储云,A可以包含B,B也可以包含A。即计算云可以包括存储云,存储云中也可以包括计算云。同样,多个小计算云可以聚合成为大计算云;多个小存储云可以聚合为大存储云。2)云计算服务调度层云计算服务调度层是云计算服务请求和响应层。云计算服务调度层也可称为云计算服务决策层,其作用是检测和响应云计算服务应用层提交过来的云计算服务消费请求。云计算服务调度层一个最重要的特征是实时更新可用资源库,以便不会错误地处理终端用户的云计算服务请求。当接收到云计算服务应用层提交过来的云计算服务消费请求时,云

27、计算服务调度层先检测此请求是否合法,如若不合法则拒绝此请求;如若合法则再在其资源库中查询是否还有此请求所要消费的资源,如果已分配完毕则拒绝此请求;如还有此资源则将此请求转交到云计算服务解析层。调度过程如图2所示。图2 云计算服务调度过程3)云计算服务解析层云计算服务解析层也可称为云计算服务翻译层。其作用是将云计算服务调度层转发过来的云计算服务请求解析成云计算服务物理层能够正确理解的语言,并将解析之后的请求发送到云计算服务物理层。4)云计算服务物理层云计算服务物理层是云计算服务的基础设施层,是云计算服务结构的骨干层。其作用是为上层提供可供终端用户消费的云计算资源。云计算服务物理层提供的基本云计算

28、资源包括:CPU资源,数据存储器资源。CPU资源是可供终端用户进行数据计算和数据处理的基本单元,消费CPU资源的终端用户能够处理超过其微机CPU处理能力的数据计算和数据处理。数据存储器资源为终端用户提供了几乎无限的存储容量,终端用户可存储远远超过其微机硬盘容量的数据。4 实现根据前面提出的基于服务架构的云计算结构,下面给出一个现实可行的基于服务架构的云计算实现过程,如图3所图3 基于服务架构的云计算实现图例如,当终端用户1提交云计算服务请求到云计算服务器时,云计算服务首先判断此请求是否合法,如果不合法则拒绝此请求;如果合法则查询服务资源库是否有此请求所需的资源,如果没有此请求所需的剩余资源则拒

29、绝此请求;如果还有剩余此请求所需的资源则将此请求所需的资源分配给此请求提交者。终端用户2、终端用户3,终端用户N的实现过程和终端用户1的实现过程类似。虽然云计算是在网格计算的基础上发展起来的,但是如果用网格计算来实现同样的计算和存储操作,则需要用户自己去实现计算和存储操作的算法,而这些算法对大部分人来说是比较困难并且耗时的,而且对于用不同规模的网格来计算同一个问题的算法会有所区别;而对于基于服务架构的云计算来说,在云中进行计算和存储操作与在本地进行计算和存储操作一样,并且不需要用户去关心在云环境下实现的算法以及云规模和云结构问题。即云规模和云机构及云环境对用户来说是透明的。由此证明在扩展性和用

30、户透明性方面基于服务架构的云计算比网格计算更优。5 结语云计算是一个全新的、很有发展前景的计算模式。云计算以共享云中各节点的计算资源和存储资源为其根本目的,以提供给终端用户所需的计算机资源为其主要职能。本文首先描述了云计算的概念、原理及其特征,然后介绍了基于服务架构的特征及设计原则,然后提出了现实可行的基于服务架构的云计算四层结构,并详细分析了各层的特征及功能,最后描述了基于服务架构的云计算实现过程,并证明基于服务架构的云计算在扩展性和用户透明性方面比网格计算更优。参考文献1孟静云计算.中国信息化,20082林立宇,陈云海,张敏等云计算技术及运营可行性分析.通信热点,20083曹会敏,林碧英SOA服务设计原则的研究.中国电力教育,20074姜国华,李晓林,季英珍基于SOA的框架模型研究.电脑与信息技术,2007。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报