云计算体系结构_第1页
云计算体系结构_第2页
云计算体系结构_第3页
云计算体系结构_第4页
云计算体系结构_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云计算体系结构云计算基本原理 云计算是对分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)及分布式数据库的改进处理,其前身是利用并行计算解决大型问题的网格计算和将计算资源作为可计量的服务提供的公用计算,在互联网宽带技术和虚拟化技术高速发展后萌生出云计算。 许多云计算公司和研究人员对云计算采用各种方式进行描述和定义,基于云计算的发展和我们对云计算的理解,概括性给出云计算的基本原理为:利用非本地或远程服务器(集群)的分布式计算机为互联网用户提供服务(计算、存储、软硬件等服务)。这使得用户可以将资源切换到需要的应用上,根据需求访问计算机和存储系统。云计算可以把普通的服务器或者PC连接起来以获得超级计算机计算机的计算和存储等功能,但是成本更低。云计算真正实现了按需计算,从而有效地提高了对软硬件资源的利用效率。云计算的出现使高性并行计算不再是科学家和专业人士的专利,普通的用户也能通过云计算享受高性能并行计算所带来的便利,使人人都有机会使用并行机,从而大大提高了工作效率和计算资源的利用率。云计算模式中用户不需要了解服务器在哪里,不用关心内部如何运作,通过高速互联网就可以透明地使用各种资源。云计算体系结构云计算是全新的基于互联网的超级计算理念和模式,实现云计算需要多种技术结合,并且需要用软件实现将硬件资源进行虚拟化管理和调度,形成一个巨大的虚拟化资源池,把存储于个人电脑、移动设备和其他设备上的大量信息和处理器资源集中在一起,协同工作。按照最大众化、最通俗理解云计算就是把计算资源都放到互联网上,互联网即是云计算时代的云。计算资源则包括了计算机硬件资源(如计算机设备、存储设备、服务器集群、硬件服务等)和软件资源(如应用软件、集成开发环境、软件服务)。云计算体系结构 云计算平台是一个强大的“云”网络,连接了大量并发的网络计算和服务,可利用虚拟化技术扩展每一个服务器的能力,将各自的资源通过云计算平台结合起来,提供超级计算和存储能力。通用的云计算体系结构如下图所示:云计算体系结构云用户端:提供云用户请求服务的交互界面,也是用户使用云的入口,用户通过Web浏览器可以注册、登录及定制服务、配置和管理用户。打开应用实例与本地操作桌面系统一样。服务目录:云用户在取得相应权限(付费或其他限制)后可以选择或定制的服务列表,也可以对已有服务进行退订的操作,在云用户端界面生成相应的图标或列表的形式展示相关的服务。云计算体系结构管理系统和部署工具:提供管理和服务,能管理云用户,能对用户授权、认证、登录进行管理,并可以管理可用计算资源和服务,接收用户发送的请求,根据用户请求并转发到相应的相应程序,调度资源智能地部署资源和应用,动态地部署、配置和回收资源。监控:监控和计量云系统资源的使用情况,以便做出迅速反应,完成节点同步配置、负载均衡配置和资源监控,确保资源能顺利分配给合适的用户。服务器集群:虚拟的或物理的服务器,由管理系统管理,负责高并发量的用户请求处理、大运算量计算处理、用户Web应用服务,云数据存储时采用相应数据切割算法采用并行方式上传和下载大容量数据。用户可通过云用户端从列表中选择所需的服务,其请求通过管理系统调度相应的资源,并通过部署工具分发请求、配置Web应用。云计算体系结构云计算服务层次在云计算中,根据其服务集合所提供的服务类型,整个云计算服务集合被划分成4个层次:应用层、平台层、基础设施层和虚拟化层。这4个层次每一层都对应着一个子服务集合,为云计算服务层次如下图所示:云计算体系结构云计算的服务层次是根据服务类型即服务集合来划分,与大家熟悉的计算机网络体系结构中层次的划分不同。在计算机网络中每个层次都实现一定的功能,层与层之间有一定关联。而云计算体系结构中的层次是可以分割的,即某一层次可以单独完成一项用户的请求而不需要其他层次为其提供必要的服务和支持。在云计算服务体系结构中各层次与相关云产品对应。应用层对应SaaS软件即服务如:Google APPS、SoftWare+Services;平台层对应PaaS平台即服务如:IBM IT Factory、Google APPEngine、F;基础设施层对应IaaS基础设施即服务如:Amazo Ec2、IBM Blue Cloud、Sun Grid;虚拟化层对应硬件即服务结合Paas提供硬件服务,包括服务器集群及硬件检测等服务。云计算体系结构云计算技术层次云计算技术层次和云计算服务层次不是一个概念,后者从服务的角度来划分云的层次,主要突出了云服务能给我带来什么。而云计算的技术层次主要从系统属性和设计思想角度来说明云,是对软硬件资源在云计算技术中所充当角色的说明。从云计算技术角度来分,云计算大约有4部分构成:物理资源、虚拟化资源、中间件管理部分和服务接口,如下图所示:服务接口:统一规定了在云计算时代使用计算机的各种规范、云计算服务的各种标准等,用户端与云端交互操作的入口,可以完成用户或服务注册,对服务的定制和使用。云计算体系结构云计算体系结构服务管理中间件:在云计算技术中,中间件位于服务和服务器集群之间,提供管理和服务即云计算体系结构中的管理系统。对标识、认证、授权、目录、安全性等服务进行标准化和操作,为应用提供统一的标准化程序接口和协议,隐藏底层硬件、操作系统和网络的异构性,统一管理网络资源。其用户管理包括用户身份验证、用户许可、用户定制管理;资源管理包括负载均衡、资源监控、故障检测等;安全管理包括身份验证、访问授权、安全审计、综合防护等;映像管理包括映像创建、部署、管理等。虚拟化资源:指一些可以实现一定操作具有一定功能,但其本身是虚拟而不是真实的资源,如计算池,存储池和网络池、数据库资源等,通过软件技术来实现相关的虚拟化功能包括虚拟环境、虚拟系统、虚拟平台。物理资源:主要指能支持计算机正常运行的一些硬件设备及技术,可以是价格低廉的PC,也可以是价格昂贵的服务器及磁盘阵列等设备,可以通过现有网络技术和并行技术、分布式技术将分散的计算机组成一个能提供超强功能的集群用于计算和存储等云计算操作。在云计算时代,本地计算机可能不再像传统计算机那样需要空间足够的硬盘、大功率的处理器和大容量的内存,只需要一些必要的硬件设备如网络设备和基本的输入输出设备等。云计算体系结构典型云计算平台云计算的研究吸引了不同技术领域巨头,因此对云计算理论及实现架构也有所不同。如亚马逊利用虚拟化技术提供云计算服务,推出S3(Simple Storage Service)提供可靠、快速、可扩展的网络存储服务,而弹性可扩展的云计算服务器EC2(Elastic Compute Cloud)采用Xen虚拟化技术,提供一个虚拟的执行环境(虚拟机器),让用户通过互联网来执行自己的应用程序。IBM将包括Xen和PowerVM虚拟的Linux 操作系统镜像与Hadoop并行工作负载调度。下面以Google公司的云计算核心技术和架构作基本讲解。云计算的先行者Google的云计算平台能实现大规模分布式计算和应用服务程序,平台包括MapReduce分布式处理技术、Hadoop框架、分布式的文件系统GFS、结构化的BigTable存储系统以及Google其他的云计算支撑要素。现有的云计算通过对资源层、平台层和应用层的虚拟化以及物理上的分布式集成,将庞大的IT资源整合在一起。更重要的是,云计算不仅仅是资源的简单汇集,它为我们提供了一种管理机制,让整个体系作为一个虚拟的资源池对外提供服务,并赋予开发者透明获取资源、使用资源的自由。云计算体系结构MapReduce分布式处理技术MapReduce是Google开发的Java、Python、C+编程工具,用于大规模数据集(大于1TB)的并行运算,也是云计算的核心技术,一种分布式运算技术,也是简化的分布式编程模式,适合用来处理大量数据的分布式运算,用于解决问题的程序开发模型,也是开发人员拆解问题的方法。MapReduce模式的思想是将要执行的问题拆解成Map(映射)和Reduce(化简)的方式,先通过Map程序将数据切割成不相关的区块,分配(调度)给大量计算机处理达到分布运算的效果,再通过Reduce程序将结果汇整,输出开发者需要的结果。MapReduce的软件实现是指定一个Map(映射)函数,把键值对(key/value)映射成新的键值对(key/value),形成一系列中间形式的key/value对,然后把它们传给Reduce(化简)函数,把具有相同中间形式key的value合并在一起. map和reduce函数具有一定的关联性1. map(k1,v1)-list(k2,v2) 2. reduce(k2,list(v2)-list(v2) 云计算体系结构其中v1、v2可以是简单数据,也可以是一组数据,对应不同的映射函数规则。在 Map过程中将数据并行,即把数据用映射函数规则分开,而Reduce则把分开的数据用化简函数规则合在一起,也就是说Map是一个分的过程,Reduce则对应着合。MapReduce应用广泛,包括简单计算任务、海量输入数据、集群计算环境等,如分布grep、分布排序、单词计数、Web连接图反转、每台机器的词矢量、Web访问日志分析、反向索引构建、文档聚类、机器学习、基于统计的机器翻译等。 云计算体系结构Hadoop架构在Google发表MapReduce后,2004年开源社群用Java搭建出一套Hadoop框架,用于实现MapReduce 算法,能够把应用程序分割成许多很小的工作单元,每个单元可以在任何集群节点上执行或重复执行。此外,Hadoop 还提供一个分布式文件系统GFS(Google file system),是一个可扩展、结构化、具备日志的分布式文件系统,支持大型、分布式大数据量的读写操作,其容错性较强。而分布式数据库(BigTable)是一个有序、稀疏、多维度的映射表,有良好的伸缩性和高可用性,用来将数据存储或部署到各个计算节点上。 Hadoop 框架具有高容错性及对数据读写的高吞吐率,能自动处理失败节点,如图3-5所示为Google Hadoop架构。云计算体系结构Google云计算执行过程云计算服务方式多种多样,通过对Google云计算架构及技术的理解,在此我们给出用户将要执行的程序或处理的问题提交云计算的平台Hadoop,其执行过程如下图所示:云计算体系结构如图所示的Google云计算执行过程包括以下步骤。(1)将要执行的MPI程序复制到Hadoop框架中的Master和每一台Worker机器中。(2)Master选择由哪些Worker机器来执行Map程序与Reduce程序。(3)分配所有的数据区块到执行Map程序的Worker机器中进行Map(切割成小块数据)。(4)将Map后的结果存入Worker机器。 (5)执行Reduce程序的Worker机器,远程读取每一份Map结果,进行混合、汇整与排序,同时执行Reduce程序。(6)将结果输出给用户(开发者)。在云计算中为了保证计算和存储等操作的完整性,充分利用MapReduce的分布和可靠特性,在数据上传和下载过程中根据各Worker节点在指定时间内反馈的信息判断节点的状态是正常还是死亡,若节点死亡则将其负责的任务分配给别的节点,确保文件数据的完整性。云计算体系结构云计算应用云计算的表现形式多种多样,简单的云计算在人们日常网络应用中随处可见,如腾讯QQ空间提供在线制作Flash图片,彩字秀提供的个性文字图片的处理,Google Doc和Google Apps、zoho、用远程软件进行Office处理。对于众多的服务,可以将云计算提供的服务细分为以下7个类型。(1)SaaS(软件即服务)。软件厂商将应用软件统一部署在服务器或服务器集群上,通过互联网提供软件给用户。用户也可以根据自己实际需要向软件厂商定制或租用适合自己的应用软件,通过租用方式使用基于Web的软件来管理企业经营活动。软件厂商负责管理和维护软件,对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要,近年来,SaaS的兴起已经给传统软件企业带来强劲的压力。在这种模式下,客户不再像传统模式那样花费大量投资用于硬件、软件、人员,而只需要支出一定的租赁服务费用,通过互联网便可以享受到相应的硬件、软件和维护服务,享有软件使用权和不断升级,这是网络应用最具效益的营运模式。云计算体系结构SaaS通常被用在企业管理软件领域、产品技术和市场,国内的厂商以八百客、沃利森为主,主要开发CRM、ERP等在线应用。用友、金蝶等老牌管理软件厂商也推出在线财务SaaS产品。国际上其他大型软件企业中,微软提出了Software+SaaS的模式,谷歌推出了与微软Office竞争的Google Apps,Oracle在收购Sieble升级Sieble on-demand后推出Oracle On-demand,SAP推出了传统和SaaS的杂交(Hybrid)模式。(2)平台即服务。平台即服务PaaS(Platform as a service)是提供开发环境、服务器平台、硬件资源等服务给用户,用户可以在服务提供商的基础架构基础上开发开发程序并通过互联网和其服务器传给其他用户。PaaS能够提供企业或个人定制研发的中间件平台,提供应用软件开发、数据库、应用服务器、试验、托管及应用服务,为个人用户或企业的团队协作。在云计算服务中,平台即服务包括以下类型服务。 提供集成开发环境。云服务提供商开发、测试、部署、维护应用程序等服务,满足不同用户需要的不同开发周期和集成开发环境,多用户互动测试,版本控制,部署和回滚。云计算体系结构 集成Web服务和数据库。支持SOAP和REST的接口,组成多个网络服务,支持多用户使用不同数据库的平台,协作用户实现云计算设计。 支持团队协作。平台服务通过共享代码和预定义方式,可以界定、更新和跟踪设计人员,开发、测试、质量控制完成团队协作。 提供实用设备。以租用方式提供相应设备(如大型集群系统,存储系统等)以端到端方式给用户。平台系统比应用软件系统复杂,是一系列的软件硬件协议的系统集合。把平台独立于软件之外来另立为单独的服务项目,能够让服务更具有目的化,易于管理和维护。PaaS能给客户带来更高性能、更个性化的服务,也是SaaS今后发展的趋势,一个SaaS软件也能给客户在互联网上提供开发(自定义)、测试、在线部署应用程序的功能,那么这就叫提供平台服务PaaS。Salesforce的平台和八百客的800APP是PaaS的代表产品。PaaS厂商也吸引软件开发商在PaaS平台上开发、运行并销售在线软件。云计算体系结构(3)按需计算(Utility Computing)。按需计算,是将多台服务器组成的云端计算资源包括计算和存储,作为计量服务提供给用户,由IT领域巨头如IBM的蓝云、Amazon的AWS及提供存储服务的虚拟技术厂商的参与应用与云计算结合的一种商业模式,它将内存、I/O设备、存储和计算能力整合成一个虚拟的资源池为整个业界提供所需要的存储资源和虚拟化服务器等服务。按需计算用于提供数据中心创建的解决方案,帮助企业用户创建虚拟的数据中心,诸如3Tera的AppLogic,Cohesive Flexible Technologies的按需实现弹性扩展的服务器。Liquid Computing公司的LiquidQ提供类似的服务,能帮助企业将内存、I/0、存储和计算容量通过网络集成为一个虚拟的资源池提供服务。按需计算方式的优点在于用户只需要低成本硬件,按需租用相应计算能力或存储能力,大大降低了用户在硬件上的开销。(4)MSP(管理服务提供商)。管理服务是面向IT厂商的一种应用软件,常用于应用程序监控服务、桌面管理系统、邮件病毒扫描、反垃圾邮件服务等。目前瑞星杀毒软件早已推出云杀毒的方式,而SecureWorks、IBM提供的管理安全服务属于应用软件监控服务类。云计算体系结构(5)商业服务平台。商业服务平台是SaaS和MSP的混合应用,提供一种与用户结合的服务采集器,是用户和提供商之间的互动平台,如费用管理系统中用户可以订购其设定范围的服务与价格相符的产品或服务。(6)网络集成。网络集成是云计算的基础服务的集成,采用通用的云计算总线,整合互联网服务类似的云计算公司,方便用户对服务供应商的比较和选择,为客户提供完整的服务。软件服务供应商OpSource推出了OpSource Services Bus,使用的就是被成为Boomi的云集成技术。(7)云端网络服务。网络服务供应商提供API能帮助开发者开发基于互联网的应用,通过网络拓展功能性。服务范围从提供分散的商业服务(诸如Strike Iron和Xignite)到涉及Google Maps、ADP薪资处理流程、美国邮电服务、Bloomberg和常规的信用卡处理服务等的全套API服务。云计算在工作和生活中最重要的体现就是计算、存储与服务,当然计算和存储从某种意义上讲同属于云计算提供的服务,因此也印证了云计算即是提供的一种服务,是一种网络服务。SOA-SOA简介 面向服务的体系结构(Service-OrientedArchitecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。SOA技术已存在超过20年的时间,但一直未得到广泛的应用。随着Web服务的出现逐渐被人们接纳,SOA终于迎来了自己的“春天”。对SOA的需要来源于需要使业务IT系统变得更加灵活,以适应业务中的改变。通过允许强定义的关系和依然灵活的特定实现,IT系统既可以利用现有系统的功能,又可以准备在以后做一些改变来满足它们之间交互的需要。就开发体系结构方面而言,SOA是将来的一个发展趋势。SOA将数据和信息作为服务公开的模型使其成为了一个非常强大的概念,与当前的应用程序构建块范例截然不同。SOA定义SOA是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。从这个定义中前提有下面两点:)软件系统架构: SOA不是一种语言,也不是一种具体的技术而是一种软件系统架构,它尝试给出在特定环境下推荐采用的一种架构,从这个角度上来说,它更像一种模式(Pattern)。因此它与很多已有的软件技术比如面向对象技术,是互补的而非互斥的。它们分别面向不同的应用场景,用来满足不同的特定需求。)SOA的使用范围:需求决定同时也限制功能。SOA并不是包治百病的万灵单,它最主要的应用场合在于解决在Internet环境下的不同商业应用之间的业务集成问题。在下面我们会详细讨论Internet的各种特点是如何决定了SOA的特点,这里我们只需要先简单回顾一下Internet环境区别于Intranet环境的几个特点:)大量异构系统并存,计算机硬件工作方式不同,操作系统不同、编程语言也不同;)大量、频繁的数据传输仍然速度缓慢并且不稳定;)版本升级无法完成,我们根本就无法知道互联网上有哪些机器直接或者间接的使用某个服务。基于上面的前提,下面就让我们一起看一下SOA的3个基本特征:1.独立的功能实体在Internet这样松散的使用环境中,任何访问请求都有可能出错,因此任何企图通过Internet进行控制的结构都会面临严重的稳定性问题。SOA非常强调架构中提供服务的功能实体的完全独立自主的能力。传统的组件技术,如.NET Remoting, EJB,COM或者CORBA,都需要有一个宿主(Host或者Server)来存放和管理这些功能实体;当这些宿主运行结束时这些组件的寿命也随之结束。这样当宿主本身或者其它功能部分出现问题的时候,在该宿主上运行的其它应用服务就会受到影响。SOA架构中非常强调实体自我管理和恢复能力。常见的用来进行自我恢复的技术,比如事务处理(Transaction),消息队列(Message Queue),冗余部署(Redundant Deployment)和集群系统(Cluster)在SOA中都起到至关重要的作用。2.大数据量低频率访问对于.NET Remoting,EJB或者XML-RPC这些传统的分布式计算模型而言,他们的服务提供都是通过函数调用的方式进行的,一个功能的完成往往需要通过客户端和服务器来回很多次函数调用才能完成。在Intranet的环境下,这些调用给系统的响应速度和稳定性带来的影响都可以忽略不计,但是在Internet环境下这些因素往往是决定整个系统是否能正常工作的一个关键决定因素。因此SOA系统推荐采用大数据量的方式一次性进行信息交换。3.基于文本的消息传递由于Internet中大量异构系统的存在决定了SOA系统必须采用基于文本而非二进制的消息传递方式。在COM、CORBA这些传统的组件模型中,从服务器端传往客户端的是一个二进制编码的对象,在客户端通过调用这个对象的方法来完成某些功能;但是在Internet环境下,不同语言,不同平台对数据、甚至是一些基本数据类型定义不同,给不同的服务之间传递对象带来的很大困难。由于基于文本的消息本身是不包含任何处理逻辑和数据类型的,因此服务间只传递文本,对数据的处理依赖于接收端的方式可以帮忙绕过兼容性这个的大泥坑。此外,对于一个服务来说,Internet与局域网最大的一个区别就是在Internet上的版本管理极其困难,传统软件采用的升级方式在这种松散的分布式环境中几乎无法进行。采用基于文本的消息传递方式,数据处理端可以只选择性的处理自己理解的那部分数据,而忽略其它的数据,从而得到的非常理想的兼容性。每一项新技术都是在一些旧的技术基础上发展出来的。正如XML根本思想来自于在60年代就已经出现的早期标记性语言一样,SOA虽然这两年才出现,但是它所表达的观念应该说在网络这种分布式系统结构出现不久就已经广泛应用了。例如我们最熟悉的HTTP协议就是一个非常典型的SOA架构设计。HTTP协议的工作过程简单叙述如下:)客户端,通常是通过浏览器,向服务器端以文本的方式发送一个请求,索取一个Web页面;)服务器端接收到这个请求之后,根据请求的内容进行处理并且返回一个符合HTML语法的文本;)客户端接收到服务器端的响应文本后调用本地的程序,通常还是浏览器,把返回的HTML文本的内容展现出来。下面来看一下HTTP协议如何满足了SOA的特点:独立的功能实体:作为服务器端的Web服务器是绝对不会因为客户端的状况变化而改变的,它总是非常稳定的按照自己的内在逻辑运行,响应外部的请求,管理自己的资源和数据。这里一个非常好的例子就是Web服务器对缓存(Cache)的处理,很多Web服务器为了提高性能都或多或少的对数据进行缓存,但是缓存数据、刷新数据这些于客户端完全无关的操作完全由服务器端独立完成,完全不受客户端的影响。大数据量低频率访问:对于一个HTTP请求来说,客户端与服务器之间访问的边界非常简单:就是一个请求,一个响应,没有任何其它的信息往返。无论客户端申请的网页上除了文字之外还有什么信息,对于客户端来说,它发出的请求只是简单的告诉Web服务器它所需要的网页的位置;至于为了生成这个网页,服务器端是否需要访问数据库,执行Servlet或者其它的CGI程序对客户端而言,都是完全透明的。基于文本的消息传递:迄今为止兼容性最好的系统可能就是HTTP协议支撑的大部分的web应用了,我们可以在Windows平台下用IE查看互联网上一个LinuxApache服务器上的由Perl脚本自动生成的网页。这里的关键就是所有内容都是以格式化的文本方式传递的,不管Perl脚本如何执行,只要它的输出是符合HTML规范的网页,就可以被客户端的浏览器解释。而由于不同的操作系统上对于相同的HTML的解释遵循相同的规范,因此不同操作系统下仍然能够看到一致的用户界面。我们上面基本描述了SOA作为一种软件架构有哪些特点,下面让我们一起看看Web Service与SOA的关系。SOA与Web ServiceWeb Service是就现在而言最适合实现SOA的一些技术的集合,事实上最近SOA的火爆在很大程度上归功于Web Service标准的成熟和应用的普及为广泛的实现SOA架构提供了基础。下面让我们看看Web Service中的各种协议是如何互相工作来满足SOA所需的特点的:独立的功能实体:通过UDDI的目录查找,我们可以动态改变一个服务的提供方而无需影响客户端的应用程序配置。所有的访问都通过SOAP访问进行,只要WSDL接口封装良好,外界客户端是根本没有办法直接访问服务器端的数据的。大数据量低频率访问:通过使用WSDL和基于文本(Literal)的SOAP请求,我们可以实现能一次性接收大量数据的接口。这里需要着重指出的是SOAP请求分文本方式和远程调用(RPC)两种方式,正如上文已经提到的,采用远程调用方式的SOAP请求并不符合这点要求。但是令人遗憾的是现有的大多数SOAP请求采用的仍然是远程调用(RPC)方式,在某些平台上,例如IBM WebSphere的早期版本,甚至没有提供文本方式的SOAP支持。基于文本的消息传递:Web Service所有的通讯是通过SOAP进行的,而SOAP是基于XML的,不同版本之间可以使用不同的DTD或者XML Schema加以辨别和区分。因此只需要我们为不同的版本提供不同的处理就可以轻松实现版本控制的目标。SOA对于软件架构设计的影响无论您现在的系统是否牵涉到基于Internet的业务集成,采用SOA推荐的架构都对提高您系统的扩展性有很大帮助,下面是在系统中引入SOA后需要在软件架构方面做出的改变:使用基于文本方式的SOAP调用,摆脱远程调用中出现的函数参数类型等与数据无关的信息,保证所有SOAP传递的都是有意义的商业数据。依赖于Schema,而不是类定义对这些数据进行解释。传统的三层Web应用将可能变成四层结构:传统意义上的商业逻辑层将被进一步划分为存放每个会话(Session)信息的客户逻辑层和与状态无关Sateless的SOA层。SOA-为什么选择SOA? 不同种类的操作系统,应用软件,系统软件和应用基础结构(application infrastructure)相互交织,这便是IT企业的现状。一些现存的应用程序被用来处理当前的业务流程(business processes),因此从头建立一个新的基础环境是不可能的。企业应该能对业务的变化做出快速的反应,利用对现有的应用程序和应用基础结构(application infrastructure)的投资来解决新的业务需求,为客户,商业伙伴以及供应商提供新的互动渠道,并呈现一个可以支持有机业务(organic business)的构架。SOA凭借其松耦合的特性,使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,提供选择从而可以通过不同的渠道提供服务,并可以把企业现有的或已有的应用作为服务, 从而保护了现有的IT基础建设投资。如图1的例子所示,一个使用SOA的企业,可以使用一组现有的应用来创建一个供应链复合应用(supply chain composite application),这些现有的应用通过标准接口来提供功能。服务架构服务架构为了实现SOA,企业需要一个服务架构,图2显示了一个例子:图2在图2中, 服务消费者(service consumer)可以通过发送消息来调用服务。这些消息由一个服务总线(service bus)转换后发送给适当的服务实现。这种服务架构可以提供一个业务规则引擎(business rules engine),该引擎容许业务规则被合并在一个服务里或多个服务里。这种架构也提供了一个服务管理基础(service management infrastructure),用来管理服务,类似审核,列表(billing),日志等功能。此外,该架构给企业提供了灵活的业务流程,更好地处理控制请求(regulatory requirement),例如Sarbanes Oxley(SOX),并且可以在不影响其他服务的情况下更改某项服务。SOA基础结构要运行,管理SOA应用程序,企业需要SOA基础,这是SOA平台的一个部分。SOA基础必须支持所有的相关标准,和需要的运行时容器。图3所示的是一个典型的SOA基础结构。SOAP, WSDL, UDDIWSDL,UDDI和SOAP是SOA基础的基础部件。WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。WS-I Basic ProfileWS-I Basic Profile,由Web服务互用性组织(Web Services Interoperability Organization)提供,是SOA服务测试与互用性所需要的核心构件。服务提供者可以使用Basic Profile测试程序来测试服务在不同平台和技术上的互用性。J2EE 和 .Net尽管J2EE和。NET平台是开发SOA应用程序常用的平台,但SOA不仅限于此。像J2EE这类平台,不仅为开发者自然而然地参与到SOA中来提供了一个平台,还通过他们内在的特性,将可扩展性,可靠性,可用性以及性能引入了SOA世界。新的规范,例如 JAXB(Java API for XML Binding),用于将XML文档定位到Java类;JAXR(Java API for XML Registry)用来规范对UDDI注册表(registry)的操作;XML-RPC(Java API for XML-based Remote Procedure Call)在J2EE1.4中用来调用远程服务,这使得开发和部署可移植于标准J2EE容器的Web服务变得容易,与此同时,实现了跨平台(如。NET)的服务互用。服务品质在企业中,关键任务系统(mission-critical system,译注:关键任务系统是指如果一个系统的可靠性对于一个组织是至关重要的,那么该系统就是该企业的关键任务系统。比如,电话系统对于一个电话促销企业来说就是关键任务系统,而文字处理系统就不那么关键了。)用来解决高级需求,例如安全性,可靠性,事物。当一个企业开始采用服务架构作为工具来进行开发和部署应用的时候,基本的Web服务规范,像WSDL,SOAP,以及UDDI就不能满足这些高级需求。正如前面所提到的,这些需求也称作服务品质(QoS,quality of services)。与QoS相关的众多规范已经由一些标准化组织(standards bodies)提出,像W3C(World Wide Web Consortium)和OASIS(the Organization for the Advancement of Structured Information Standards)。下面的部分将会讨论一些QoS服务和相关标准。安全Web服务安全规范用来保证消息的安全性。该规范主要包括认证交换, 消息完整性和消息保密。该规范吸引人的地方在于它借助现有的安全标准,例如,SAML(as Security Assertion Markup Language)来实现web服务消息的安全。OASIS正致力于Web服务安全规范的制定。可靠在典型的SOA 环境中,服务消费者和服务提供者之间会有几种不同的文档在进行交换。具有诸如“仅且仅仅传送一次”( once-and-only-once delivery),“最多传送一次”( at-most-once delivery),“重复消息过滤”(duplicate message elimination),“保证消息传送”(guaranteed message delivery)等特性消息的发送和确认,在关键任务系统(mission-critical systems)中变得十分重要。WS-Reliability 和 WS-ReliableMessaging是两个用来解决此类问题的标准。这些标准现在都由OASIS负责。策略服务提供者有时候会要求服务消费者与某种策略通信。比如,服务提供商可能会要求消费者提供Kerberos安全标示,才能取得某项服务。这些要求被定义为策略断言(policy assertions)。一项策略可能会包含多个断言。WS-Policy用来标准化服务消费者和服务提供者之间的策略通信。控制当企业着手于服务架构时,服务可以用来整合数据仓库(silos of data),应用程序,以及组件。整合应用意味着例如异步通信,并行处理,数据转换,以及校正等进程请求必须被标准化。在SOA中,进程是使用一组离散的服务创建的。BPEL4WS 或者 WSBPEL(Web Service Business Process Execution Language)是用来控制这些服务的语言。WSBPEL目前也由OASIS负责。管理随着企业服务的增长,所使用的服务和业务进程的数量也随之增加,一个用来让系统管理员管理所有运行在多相环境下的服务的管理系统就显得尤为重要。WSDM(Web Services for Distributed Management)规定了任何根据WSDM实现的服务都可以由一个WSDM适应(WSDM-compliant)的管理方案来管理。其它的qos特性,比如合作方之间的沟通和通讯,多个服务之间的事务处理,都在WS-Coordination 和 WS-Transaction 标准中描述, 这些都是OASIS 的工作。SOA 不是Web服务在理解SOA和Web服务的关系上,经常发生混淆。根据2003年4月的Gartner报道,Yefim V. Natis就这个问题是这样解释的:“Web服务是技术规范,而SOA是设计原则。特别是Web服务中的WSDL,是一个SOA配套的接口定义标准:这是Web服务和SOA的根本联系。”从本质上来说,SOA是一种架构模式,而Web服务是利用一组标准实现的服务。Web服务是实现SOA的方式之一。用Web服务来实现SOA的好处是你可以实现一个中立平台,来获得服务,而且随着越来越多的软件商支持越来越多的Web服务规范,你会取得更好的通用性。SOA-SOA的优势 SOA的概念并非什么新东西,SOA不同于现有的分布式技术之处在于大多数软件商接受它并有可以实现SOA的平台或应用程序。SOA伴随着无处不在的标准,为企业的现有资产或投资带来了更好的重用性。SOA能够在最新的和现有的应用之上创建应用;SOA能够使客户或服务消费者免予服务实现的改变所带来的影响;SOA能够升级单个服务或服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。总而言之,SOA以借助现有的应用来组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序和业务流程。 SOA发展出来的效益A. 平衡最初的旧系统投资(Leverage initial investment):组织过去所投资的系统、软硬体,如果能再利用等於赋予其新的价值,这也替组织降低成本并增加竞争力。B. 基础建设的便利性(Infrastructure Commoditization):让所有的应用程式能相互沟通(互通性)。C. 快速的接近市场(Faster time-to-market):服务的重复使用(再利用),来缩短过去的组织流程,更快速的提供服务来接近市场。D. 减少支出(Reduce Cost):服务的重复使用,可降低开发成本。因为开发新系统的成本,大部份比更新旧有系统来的花费大。E. 减低风险(Risk mitigation):开发新系统的风险远大於更新旧系统。F. 持续改善商业流程的循环(Continuous improvement cycle for business process)G. 中心流程处理(Process-centric processing)实施SOA可能带来的主要优势有5点: 一,SOA可通过互联网服务器发布,从而突破企业内网的限制,实现与供应链上下游伙伴业务的紧密结合。通过SOA架构,企业可以与其业务伙伴直接建立新渠道,建立新伙伴的成本得以降低。 二,SOA与平台无关,减少了业务应用实现的限制。要将企业的业务伙伴整合到企业的“大”业务系统中,对其业务伙伴具体采用什么技术没有限制。 三, SOA具有低耦合性特点,增加和减少业务伙伴对整个业务系统的影响较低。在企业与各业务伙伴关系不断发生变化的情况下,节省的费用会越来越多。 四, SOA具有可按模块分阶段进行实施的优势。可以成功一步再做下一步,将实施对企业的冲击减少到最小。 五, SOA的实施可能并不具有成本显著性。这要分三种情况加以讨论: l 当企业从零开始构建业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。 l 当企业业务发展或发生企业重组等变化而原有系统不能满足需要,而需要重构业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。 l 当企业业务发生缓慢变化并可预见到将来需要重构业务系统时,由于可以按模块分阶段逐步实施SOA以适应变化的需要,这样企业不需一下投入一大笔经费进行系统改造,而是根据企业业务发展情况和资金情况逐步投入,缓解了信息投入的压力。 另指 半导体光放大器 (Semiconductor Optical Amplifer)一般有行波放大和谐振放大两种,行波SOA的材料和一般半导体激光器相同,光纤通讯领域多为InP材料,放大波段1550nm附近,毅力简单的理解为一个没有反馈腔的激光器,一般端面反射率小于千分之五。ETLData Integrator 的主要解决方案:ETL 的技术的介绍摘要:数据集成是把不同来源、格式和特点的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享,是企业商务智能、数据仓库系统的重要组成部分。ETL是企业数据集成的主要解决方案。文章从ETL的概念出发,简要分析了当前ETL中用到的一些基本技术,为ETL系统的开发和ETL技术的应用提供一些参考。1.ETL简介随着企业信息化建设的发展,巨大的投资为企业建立了众多的信息系统,以帮助企业进行内外部业务的处理和管理工作。但是随着信息系统的增加,各自孤立工作的信息系统将会造成大量的冗余数据和业务人员的重复劳动。企业应用集成(EAI,Enterprise Application Integration)应运而生。EAI通过建立底层数据交换平台来联系横贯整个企业的异构系统、应用、数据源等,完成在企业内部的ERP、CRM、SCM、数据库、数据仓库,以及其它重要的内部系统之间无缝地共享和交换数据的需要。数据集成是企业应用集成的重要环节,企业实现数据集成,可以使更多的人更充分地使用已有数据资源,减少资料收集、数据采集等重复劳动和相应费用。但是,在实施数据集成的过程中,由于不同用户提供的数据可能来自不同的途径,其数据内容、数据格式和数据质量千差万别,有时甚至会遇到数据格式不能转换或数据转换格式后丢失信息等棘手问题,严重阻碍了数据在各部门和各应用系统中的流动与共享。因此,如何对数据进行有效的集成管理已成为增强企业商业竞争力的必然选择。ETL是实现数据集成的主要技术。ETL中三个字母分别代表的是Extract、Transform、Load,即抽取、转换、加载。(1)数据抽取:从源数据源系统抽取目的数据源系统需要的数据;(2)数据转换:将从源数据源获取的数据按照业务需求,转换成目的数据源要求的形式,并对错误、不一致的数据进行清洗和加工。(3)数据加载:将转换后的数据装载到目的数据源。ETL原本是作为构建数据仓库的一个环节,负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。现在也越来越多地将ETL应用于一般信息系统中数据的迁移、交换和同步。一个简单的ETL体系结构如图1.1所示。2.ETL中的关键技术ETL过程中的主要环节就是数据抽取、数据转换和加工、数据装载。为了实现这些功能,各个ETL工具一般会进行一些功能上的扩充,例如工作流、调度引擎、规则引擎、脚本支持、统计信息等。2.1 数据抽取数据抽取是从数据源中抽取数据的过程。实际应用中,数据源较多采用的是关系数据库。从数据库中抽取数据一般有以下几种方式。(1)全量抽取全量抽取类似于数据迁移或数据复制,它将数据源中的表或视图的数据原封不动的从数据库中抽取出来,并转换成自己的ETL工具可以识别的格式。全量抽取比较简单。(2)增量抽取增量抽取只抽取自上次抽取以来数据库中要抽取的表中新增或修改的数据。在ETL使用过程中。增量抽取较全量抽取应用更广。如何捕获变化的数据是增量抽取的关键。对捕获方法一般有两点要求:准确性,能够将业务系统中的变化数据按一定的频率准确地捕获到;性能,不能对业务系统造成太大的压力,影响现有业务。目前增量数据抽取中常用的捕获变化数据的方法有:a.触发器:在要抽取的表上建立需要的触发器,一般要建立插入、修改、删除三个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个临时表,抽取线程从临时表中抽取数据,临时表中抽取过的数据被标记或删除。触发器方式的优点是数据抽取的性能较高,缺点是要求业务表建立触发器,对业务系统有一定的影响。 b.时间戳:它是一种基于快照比较的变化数据捕获方式,在源

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论