




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SOA概论一、SOA发展史(从XML到Web服务再到SOA)a. XML简史扩展标记语言(XML)系W3C所创建,源自流行的标准通用标记语言(SGML),它在60年代后期就已存在。这是广泛使用的元语言,允许组织增加原始文档数据。XML在90年代后期的电子商务运动中声名鹊起,服务器端脚本语言可以经由互联网而处理业务。通过XML的使用,开发者能够给任何片段附加上意义和上下文,再跨越互联网协议传输XML表达架构代表了SOA的基础层。在其内部,XML建立了在服务各处流动的消息格式与结构。XSD schemas保持消息数据的完整与有效性,而且XSLT使得不同的数据表达间通过schema映射而能够互相通信
2、。换句话说,没有XML你在SOA内寸步难行。b. Web服务简史 在2000年,W3C接受了一项关于简单对象访问协议(SOAP)规范的提案。这个规范本来设计用于专有RPC通信。想法是对于在构件间传输参数数据可以序列化成XML传送,然后支序列化成其原生格式。很快,公司及软件厂商开始看到,对于推进通过构建于专有-免费的互联网通信框架之上的电子商务技术,存在日益巨大的潜力。这最后导致了创建一个纯粹的、基于Web的分布式技术能充分利用概念标准化的通信框架,来桥接组织之间和组织内部所存在的巨大差异。这个概念被称为Web服务。Web服务最重要的部分是其公共接口。它是分配服务识别并使其激活的核心信息块。为了
3、进一步的开放协同性的愿景,Web服务需要一个互联网友好的、XML兼容的通信格式,以便能够建立一个标准化的通讯框架。最终SOAP胜出,并保留了最初的通讯标准用于Web服务。开发定制的Web服务可适应变化的业务需求,并且第三方市场出现了促进各种实用服务的销售或租赁。现存的通讯平台,譬如面向消息的中间件(MOM)产品,结合Web服务可支持SOAP之外的其他消息协议。一些组织可迅速合并Web服务,以促进B2B数据交换经常要转变为EDI替代品的需求。c. SOA简史不久前组织才开始意识到只需要缓和地替代现存的分布式应用,Web服务可成为独立的架构平台-可使用Web服务技术集的效益来实现企业中服务概念的平
4、台。这样,面向服务架构开始进入IT的主流。在这一点SOA频繁地以不同的方式被分类,经常依赖于构建服务所用的实现技术。早期的模型,主要从Web服务标准初始系列中得到灵感,将SOA定义为一个围绕三个基本的构件的架构模型:服务请求者,服务服务提供者与服务注册。从物理架构的角度,基于Web服务的SOA第一次变异实际上超越了原始SOA模型。作为替代,发现被归类为当代SOA的一个特征,通过面向服务原则在服务层面被提倡。当代SOA的诸多特征,大都是过分主动的开发与协作的结果,已经产生了一系列第一代Web服务平台的扩展。通过面向服务,业务逻辑能够清晰地被封装,并从根本的自动化技术中抽象。这个愿景藉由业务流程定
5、义语言的提升而得到进一步支持,最知名的是WS-BPEL。这不仅考虑到将传统的业务流程管理(BPM)模型解决成一系列的服务,更进一步提供具体的和可执行的格式充分表达业务逻辑的语言能力,填补了分析与实现间的空隙。这些及其他工业影响已经扩大了SOA的潜在范围。二、什么是SOA?Service-将SOA定义为:“本质上是服务的集合。服务间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务间需要某些方法进行连接。”L将SOA定义为:“按需连接资源的系统。在SOA中,资源被作为可通过标准方式访问的独立服务,提供给网络中的其他成员。与传统的系统结构相比,SOA规定了资源间
6、更为灵活的松散耦合关系。”所谓服务就是精确定义、封装完善、独立于其他服务所处环境和状态的函数。” Gartner则将SOA描述为:“客户端/服务端的软件设计方法,一项应用由软件服务和软件服务使用者组成。SOA与大多数通用的客户端/服务器模型的不同之处,在于它着重强调软件组件的松散耦合,并使用独立的标准接口。”Gartner相信BPM(即业务流程管理)和SOA的结合对所有类型的应用集成大有助益。综上,不难看出SOA是一种架构模型,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,使用独立的标准接口,根据服务端的请求提供相应的独立服务,它可以直接被应
7、用调用,从而有效控制系统中与软件代理交互的人为依赖性。我们可以从上述的定义中看到SOA的几个关键特性:一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。需要注意的是SOA并不是一种现成的技术,而是一种架构和组织IT基础结构及业务功能的方法。SOA是一种在计算环境中设计、开发、部署和管理离散逻辑单元(服务)的模型。这一定义阐明了SOA的范围。在现阶段SOA要求开发人员将应用设计为服务的集合。SOA要求开发人员考虑现有服务的重用,或者服务如何被其他项目重用。“单独的”、“独立的”、“封装完善的”服务所具有的一个关键的好处是,可以采用多种不同方法将它们
8、组合成较大型的服务,由此来实现重用。三、SOA的基本特征SOA具有以下几个特征:1、可从企业外部访问;2、随时可用; 3、粗粒度的服务接口;4、分级;5、松散耦合;6、可重用的服务;7、服务接口设计管理;8、标准化的服务接口;9、支持各种消息模式;10、精确定义的服务契约。 以下是关于SOA特征的具体说明。1、可从企业外部访问通常被称为业务伙伴的外部用户也能像企业内部用户一样访问相同的服务。业务伙伴采用先进的B2B协议相互合作。当业务伙伴基于业务目的交换业务信息时,他们就参与了一次会话。会话是业务伙伴间一系列的一条或多条业务信息的交换。会话类型取决于业务目的。除了B2B协议外,外部用户还可以访
9、问以Web服务方式提供的企业服务。2、随时可用当有服务使用者请求服务时,SOA要求必须有服务提供者能够响应。大多数SOA都能够为门户应用之类的同步应用和B2B之类的异步应用提供服务。同步应用对于其所使用的服务具有很强的依赖性。许多同步应用通常部署在前台,其最终用户很容易受到服务提供者短缺的影响。很多情况下,同步应用利用分布式服务提供者,这样可以响应更多的用户请求。但是,随着提供特定服务功能的服务器数量的增长,出现短缺的可能性也呈指数级上升。当相比之下,异步应用要更为稳健,因为其采用队列请求设计,因此可以容许出现服务提供者短缺或迟滞的情况。异步应用大多数情况下部署在后台,用户通常不会觉察到短暂的
10、短缺。大部分情况下异步应用能够稳健应对短时间短缺,但是长时间短缺则会引发严重问题。在服务短缺解决、队列引擎将罕见的大量工作推到共享的应用资源中时,可能会出现队列溢出甚至服务死锁。服务使用者要求提供同步服务时,通常是基于其自身理解或使用习惯。在多数情况下,采用异步模型可以达到同样的效果,但更能够体现SOA的最佳特性。当然,并不是所有情况下都应当采用异步设计模式。但大多数情况下,异步消息可以确保系统在不同负荷下的伸缩性,在接口响应时间不是很短时尤其如此。3、粗粒度服务接口采用粗粒度服务接口的优点在于使用者和服务层之间不必再进行多次的往复,一次往复就足够。Internet环境中有保障的TCP/IP会
11、话已不再占据主导、建立连接的成本也过高,因此在该环境中进行应用开发时粗粒度服务接口的优点更为明显。除去基本的往复效率,事务稳定性问题也很重要。在一个单独事务中包含的多段细粒度请求可能使事务处理时间过长、导致后台服务超时,从而中止。与此相反,从事务的角度来看,向后台服务请求大块数据可能是获取反馈的唯一途径。4、分级一个关于粗粒度服务的争论是此类服务比细粒度服务的重用性差,因为粗粒度服务倾向于解决专门的业务问题,因此通用性差、重用性设计困难。解决该争论的方法之一就是允许采用不同的粗粒度等级来创建服务。这种服务分级包含了粒度较细、重用性较高的服务,也包含粒度较粗、重用性较差的服务。在服务分级方面,须
12、注意服务层的公开服务通常由后台系统或SOA平台中现有的本地服务组成。因此允许在服务层创建私有服务是非常重要的。正确的文档、配置管理和私有服务的重用对于IT部门在SOA服务层快速开发新的公开服务的能力具有重要影响。5、松散耦合SOA具有“松散耦合”组件服务,这一点区别于大多数其他的组件架构。该方法旨在将服务使用者和服务提供者在服务实现和客户如何使用服务方面隔离开来。服务提供者和服务使用者间松散耦合背后的关键点是服务接口作为与服务实现分离的实体而存在。这是服务实现能够在完全不影响服务使用者的情况下进行修改。大多数松散耦合方法都依靠基于服务接口的消息。基于消息的接口能够兼容多种传输方式(如HTTP、
13、JMS、TCP/IP、MOM等)。基于消息的接口可以采用同步和异步协议实现,Web服务对于SOA服务接口来讲是一个重要的标准。当使用者调用一个Web服务时,被调用的对象可以是CICS事务、DCOM或CORBA对象、J2EE EJB或TUXEDO服务等,但这与服务使用者无关。底层实现并不重要。消息类Web服务通常是松散耦合和文档驱动的,这要优于与服务特定接口的连接。当客户调用消息类Web服务时,客户通常会发送的是一个完整的文档(如采购订单),而非一组离散的参数。Web服务接收整个文档、进行处理、而后可能或者不会返回结果信息。由于客户和Web服务间不存在紧密耦合请求响应,消息类Web服务在客户和服
14、务器间提供了更为松散的耦合。6、可重用的服务及服务接口设计管理如果完全按照可重用的原则设计服务,SOA将可以使应用变得更为灵活。可重用服务采用通用格式提供重要的业务功能,为开发人员节约了大量时间。设计可重用服务是与数据库设计或通用数据建模类似的最有价值的工作。由于服务设计是成功的关键因此,因此SOA实施者应当寻找一种适当的方法进行服务设计过程管理。服务设计管理根本上讲是服务设计问题,服务设计需要在两点间折衷。走捷径的项目战术与企业构建可重用通用服务的长期目标。超越项目短期目标进行服务接口的开发和评估是迈向精确定义服务接口的重要一步,同时还需要为接口文档、服务实现文档及所有重要的非功能性特征设立
15、标准。在大型组织中实现重用的一个先决条件是建立通用(设计阶段)服务库和开发流程,以保证重用的正确性和通用性。此外,对记述服务设计和开发的服务文档进行评估也是成功利用服务库的关键。简言之,不按规则编写服务将无法保证可提供重用性的SOA的成功实施。在执行规则的过程中会产生财务费用,需要在制定SOA实施计划时加以考虑。7、标准化的接口近年来出现的两个重要标准XML和Web服务增加了全新的重要功能,将SOA推向更高的层面,并大大提升了SOA的价值。尽管以往的SOA产品都是专有的、并且要求IT部门在其特定环境中开发所有应用,但XML和Web服务标准化的开放性使企业能够在所部署的所有技术和应用中采用SOA
16、。Web服务使应用功能得以通过标准化接口(WSDL)提供,并可基于标准化传输方式(HTTP和JMS)、采用标准化协议(SOAP)进行调用。你也可以不采用Web服务或XML来创建SOA应用,但是这两种标准的重要性日益增加、应用日趋普遍。尽管目前只有几种服务使用者支持该标准,但未来大多数的服务使用者都会将其作为企业的服务访问方法。8、支持各种消息模式SOA中可能存在以下消息模式。在一个SOA实现中,常会出现混合采用不同消息模式的服务。a.无状态的消息:使用者向提供者发送的每条消息都必须包含提供者处理该消息所需的全部信息。这一限定使服务提供者无须存储使用者的状态信息,从而更易扩展。b.有状态的消息:
17、使用者与提供者共享使用者的特定环境信息,此信息包含在提供者和使用者交换的消息中。这一限定使提供者与使用者间的通信更加灵活,但由于服务提供者必须存储每个使用者的共享环境信息,因此其整体可扩展性明显减弱。该限定增强了服务提供者和使用者的耦合关系,提高了交换服务提供者的服务难度。c.等幂消息:向软件代理发送多次重复消息的效果和发送单条消息相同。这一限定使提供者和消费者能够在出现故障时简单的复制消息,从而改进服务可靠性。9、精确定义的服务契约服务是由提供者和使用者间的契约定义的。契约规定了服务使用方法及使用者期望的最终结果。此外,还可以在其中规定服务质量。此处需要注意的关键点是,服务契约必须进行精确定
18、义。META将SOA定义为:“一种以通用为目的、可扩展、具有联合协作性的架构,所有流程都被定义为服务,服务通过基于类封装的服务接口委托给服务提供者,服务接口根据可扩展标识符、格式和协议单独描述。”该定义的最后部分表明在服务接口和其实现之间有明确的分界。四、SOA的优势SOA不同于现有的分布式技术之处在于大多数软件商接受它并有可以实现SOA的平台或应用程序。SOA伴随着无处不在的标准,为企业的现有资产或投资带来了更好的重用性。SOA能够在最新的和现有的应用之上创建应用;SOA能够使客户或服务消费者免予服务实现的改变所带来的影响;SOA能够升级单个服务或服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。总而言之,SOA以借助现有的应用来组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序和业务流程。 SOA发展出来的效益a.平衡最初的旧系统投资:组织过去所投资的系统、软硬体,如果能再利用等於赋予其新的价值,这也替组织降低成本并增加竞争力。b. 基础建设的便利性:让所有的应用程式能相互沟通(互通性)。c. 快速的接近市场:服务的重复使用(再利用),来缩短过去的组织流程,更快速的提供服务来接近市场。d. 减少支出:服务的重
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电子美容仪合作协议书
- 2025年磁卡宽片项目建议书
- 葡萄酒产业生态链投资与窖藏仓储合作合同
- 氢燃料电池系统环境适应性测试员协议
- 红筹架构下合资企业股权合作与收益分配协议
- 装载机司机培训课程大纲
- 医疗查房车租赁及远程医疗诊断服务合同
- Web前端开发技术项目教程(HTML5 CSS3 JavaScript)(微课版) 课件 6.2.4知识点3:CSS3图片边框属性
- 电商商品上架与用户隐私保护服务合同
- 国际旅行者数据加密海外医疗保险租赁合同
- 中国糖尿病防治指南(2024版)图文完整版
- 第四批四川省高校重点实验室名单
- 《糖尿病酮症酸中毒》课件
- 2024年南昌市公安局招聘省级留置看护辅警考试真题
- 脾破裂的应急处理流程
- 《毕节,我的家乡》课件
- 2023医院全员绩效考核实施方案(详细版)
- 新闻记者职业资格《新闻采编实务》考试题库(含答案)
- 【MOOC】人工智能:模型与算法-浙江大学 中国大学慕课MOOC答案
- 《物理化学》第二章-热力学第一定律课件
- 电力工程监理规划
评论
0/150
提交评论