(计算机软件与理论专业论文)基于soa的分布式软件开发的研究与实施.pdf_第1页
(计算机软件与理论专业论文)基于soa的分布式软件开发的研究与实施.pdf_第2页
(计算机软件与理论专业论文)基于soa的分布式软件开发的研究与实施.pdf_第3页
(计算机软件与理论专业论文)基于soa的分布式软件开发的研究与实施.pdf_第4页
(计算机软件与理论专业论文)基于soa的分布式软件开发的研究与实施.pdf_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

长春理工大学硕士学位论文原创性声明 嗍 y 17 4 0 8 6 9 本人郑重声明:所呈交的硕士学位论文,基于s o a 的分布式软件开发的研 究与实施是本人在指导教师的指导下,独立进行研究工作所取得的成果。除文 中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过 的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式 标明。本人完全意识到本声明的法律结果由本人承担。 作者签名: 驰年丘月监日 长春理工大学学位论文扳:汉使用授仪书 本学位论文作者及指导教师完全了解“长春理工大学硕士、博士学位论文版 权使用规定”,同意长春理工大学保留并向中国科学信息研究所、中国优秀博硕 士学位论文全文数据库和c n k i 系列数据库及其它国家有关部门或机构送交学位 论文的复印件和电子版,允许论文被查阅和借阅。本人授权长春理工大学可以将 本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或 扫描等复制手段保存和汇编学位论文。 作者签名: 导师签名: 竺! ! 年j 月j l 日 趋f 竺年五月且日 牟,辱 ,吖,一 一钐珍i、蝴墨 摘要 面向服务的体系结构( s e r v i c e o r i e n t e da r c h i t e c t u r e ,s o a ) 是一个组件 模型,它的主要作用就是将应用程序的不同业务功能( 即服务) 通过服务之间定 义良好的接口联系起来,然后通过流程控制形成一个功能强大的分布式系统。 s o a 是近几年在分布式软件开发领域备受追捧的软件体系结构。s o a 的出现促使企 业能够充分利用现有服务资源而不用重新撰写新逻辑,很好的解决了现有分布式应用 体系结构存在的问题。 本文首先分析了当前企业分布式应用体系结构的发展、特点和局限性,然后引入了 s o a ,详细介绍了s o a 及其相关技术,分析了s o a 的系统架构接着提出了s o a 系统的开 发模型,并结合实例给出了在h d e a m 系统中部署s o a 的方法,给出了部分实现,文章 最后分析了s o a 的未来发展趋势。 基于s o a 的分布式软件开发能够充分体现应用s o a 框架对企业应用集成的有效性, 也能够发挥s o a 分析设计方法的敏捷性和高效性,具有很强的实用价值。 关键词:s o ae a m 系统集成分布式系统 a b s t r a c t s e r v i c e 0 r i e n t e da r c h i t e c t u r ei sa d i f f e r e n tf u n c t i o n a lu n i t s ( c a l l e ds e r v i c e s ) s e r v i c e sa n dc o n t r a c t u a ll i n k t h e nf o r ma c o n t r 0 1 c o m p o n e n tm o d e l ,i tw i l l b e a p p l i e d i nt h e t h r o u g ht h e s ew e l l - d e f i n e di n t e r f a c e sb e t w e e n p o w e r f u ld i s t r i b u t e ds y s t e mb ym e a n so ff l o w i nr e c e n ty e a r ss o aa sai n d u s t r yo fs o f t w a r ea r c h i t e c t u r ei sf a v o r e di nt h ef i e l do f e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n t h ee m e r g e n c eo fs o ae n c o u r a g eb u s i n e s s e st or e - u s e e x i s t i n gs e r v i c e s ,r e s o u r c e sr a t h e rt h a nr e - w r i t i n gan e wl o g i c ,t os o l v et h ee x i s t i n g d i s t r i b u t e da p p l i c a t i o na r c h i t e c t u r ep r o b l e m s i nt h i sp a p e r , a n a l y s i so ft h ec u r r e n te n t e r p r i s ed i s t r i b u t e da p p l i c a t i o na r c h i t e c t u r e d e v e l o p m e n t ,c h a r a c t e r i s t i c sa n dl i m i t a t i o n s ,a n dt h e nt h ei n t r o d u c t i o no fs o a ,d e t a i l e d i n f o r m a t i o no ns o aa n dr e l a t e dt e c h n o l o g i e s ,a n a l y z e dt h es y s t e ma r c h i t e c t u r es o a ,t h e n s o as y s t e md e v e l o p m e n tp r o p o s e dm o d e l ,c o m b i n e dw i t he x a m p l e sa r eg i v e ni nt h e h d e a ms y s t e mt od e p l o ys o aa p p r o a c h ,a n dg i v e ns o m eo ft h ei m p l e m e n t a t i o n ,a tt h e e n do ft h ea r t i c l ew ea n a l y z et h ed e v e l o p m e n tt r e n do ft h ef u t u r eo fs o a s o a - b a s e dd i s t r i b u t e ds o f t w a r ed e v e l o p m e n tt of u l l yr e f l e c tt h ea p p l i c a t i o no fs o a f r a m e w o r kf o rt h ee f f e c t i v e n e s so fe n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n ,b u ta l s oc a np l a ya s o aa n a l y s i sa n dd e s i g nm e t h o d so fa g i l i t ya n de f f i c i e n c y , h a sas t r o n gp r a c t i c a lv a l u e k e yw o r d s :s o ae a ms y s t e mi n t e g r a t i o n d i s t r i b u t i o n a ls y s t e m 摘要 a b s t r a c t 目录 第一章绪论1 1 1研究背景与意义1 1 2s o a 国内外研究现状1 1 3本文的主要内容及结构2 第二章s o a 及其相关技术3 2 1s o a 3 2 1 1s o a 概述3 2 1 2s o a 的特点与优势4 2 2其他相关技术6 2 2 1 分布式系统6 2 2 2w e bs e r v i c e 8 2 2 3s o a p 9 2 2 4w s d l 1 0 2 2 5u d d i 1 0 第三章基于s o a 的分布式软件开发模型1 2 3 1s o a 的多种实现模式1 2 3 1 1服务代理实现模式1 2 3 1 2 包装服务实现模式1 2 3 1 3 虚拟服务实现模式1 3 3 1 4 服务整合实现模式1 3 3 1 5e s b 实现模式1 4 3 2s o a 系统开发模型组件1 4 3 2 1 模型组件概述1 4 3 2 2 服务架构组件s c a 1 5 3 2 3 业务流程执行组件b p e l 1 6 3 2 4 服务数据对象组件s d o 1 7 3 3s o a 系统开发模型1 8 第四章s o a 系统设计2 0 4 1s o a 系统构成2 0 4 2s o a 系统设计原则2 1 4 3s o a 系统设计方法2 2 4 3 1自底向上的设计方法2 2 4 3 2自顶向下的设计方法2 2 4 3 3 混合的设计方法2 3 第五章s o a 在e a m 系统中的应用2 4 5 1e a m 系统2 4 5 3 系统设计与实现2 6 5 3 1 系统框架2 6 5 3 2 实施系统集成2 6 5 3 3 系统的安全性2 9 5 4实现s o a 的e a m 系统的优点3 0 5 5 小结3 0 第六章结论3 1 6 1 本文工作总结3 1 6 2s o a 未来展望3 l 参考文献3 2 1 1 研究背景与意义 第一章绪论弟一早瑁t 匕 随着分布式技术应用的发展和现代软件开发方法研究的深入,基于多种开发平台和 开发语言的软件系统往往交织在一起,这使得企业中的软件系统变得日益复杂和庞大。 自然而然的重复开发就成了企业系统之中经常会遇到的一种情况,这种重复开发的出 现使得各个系统之间很难进行通信和信息共享,而且浪费资源,并最终形成了所谓的 “信息孤岛 。而在市场竞争日益激烈、信息技术的不断革新的今天,现代企业为了适 应迅速改变的客户需求,通常都迫切的需要了解各部门的信息并且能够及时通讯,而 由于信息孤岛的存在通常情况下要获取各部门的信息是一个非常繁复的工作。这就要 求当今企业必须能够打破信息孤岛的限制有效地重用现有系统,并及时开发新功能, 以减轻成本压力,满足不断更新的业务需求。在这种情况下,软件系统的开发方法正 由面向功能的开发方法转向面向服务的、面向流程的开发方法,也就是s o a 。 s o a 以服务为核心,主要目标是在s o l ( s e r v i c eo r i e n ti n t e g r a t e ) 即面向服务集 成) 领域完成跨系统、跨平台的业务功能的整合。s o a 进行中立的接口定义,而这种中 立的接口定义带来的最直接的好处就是功能之间的松耦合。松耦合能够方便的实现系 统集成和降低系统开发成本,而且局部的变动不会对整体结构造成破坏,即当组成整 个应用程序的某个服务的内部结构和实现发生改变时,不会对系统的整体框架造成任 何影响。总而言之,通过s o a 可以很好的满足分布式软件开发的要求,实现敏捷开发。 1 2 s o a 国内外研究现状 s o a 作为未来企业集成技术的主流发展方向,得到了众多软件提供商的青睐。目前, 全球主要的商业软件提供商o r a c l e 、微软、b e a 、i b m 等都纷纷提供了自己的s o a 解决 方案。 ( 1 ) b e a 公司的b e aa q u a l o g i c 的最大优势就是能够帮助企业获取应用级的s o a , 是一种快捷有效的s o a 实施手段。b e a 公司的产品提供了一种有效的方式进行基础架构 服务的重用并且为可交互操作提供了一种基础架构,这使得管理s o a 和组装复合应用 程序变得非常容易,无须再考虑底层的应用技术。b e a 产品具有如下四个方面的优势: 首先,极大地降低了系统环境的复杂性。其次,有效的提高了业务响应的能力、效率 以及敏捷性。再次,它还能有效地降低应用程序的生命周期成本。最后,产品还能有 效的增加业务功能的重用性。作为一个完全基于s o a 而搭建起来的服务产品, 它为消息的传递处理、服务操作、安全要求以及数据的一 用统一的模式来进行管理n 。 ( 2 ) h p 产品的宗旨就是为用户提供一个敏捷的软件开发平台,使用户可以按照不 同的需求实现自己的业务流程。该产品还能够开发和提供针对于s o a 的业务功能,这 可以支持用户集成不同的数据和应用,同时把现有应用添加到其业务流程中,充分发 挥s o a 的优势。 ( 3 ) 复旦协达推出的基于s o a 的协同软件是目前国内较为成熟的基于s o a 设计理念 的产品。 ( 4 ) i b m 公司在s o a 及其相关产品的研发上向来都是不遗余力的,i b mw e b s p h e r e 在i b m 中间件的基础上强化了很多应用接口。正像i b m 所强调的“总线”概念一样它 所关注的领域正是系统领域,目标是为企业用户提供全套的架构服务1 2 l o 目前i b m 已 经投入超过1 0 亿美元建立起s o a 研发中心。 1 3 本文的主要内容及结构 本文的研究思路是通过s o a 的方式满足现代企业软件的集成需要。主要包括了技术 研究,模型分析,组件分析,系统设计,开发实例等模块。 本文共分为以下六章: 第一章主要介绍本文的整体结构,研究背景,及主要研究内容。 第二章的前半部分详细介绍了什么是s o a 以及s o a 系统的优势,接下来介绍了分布 式系统,w e bs e r v i c e ,s o a p ,w s d l 等s o a 的相关技术。 第三章首先介绍了现在流行的几种s o a 的实现模式,然后着重提出了自己的基于 s o a 的分布式软件开发模型。 第四章介绍了s o a 的系统组成,并给出了s o a 系统的三种设计方法。 第五章则是分析了现有的e a m 系统,并针对现有e a m 系统中的不足,以实例的方式 把e a m 系统与s o a 相整合,实际展示了一个基于s o a 的分布式软件开发系统的开发方 式。 第六章对全文进行了总结,并对s o a 的未来发展趋势做了展望。 2 2 1s o a 2 1 1s o a 概述 s o a 及其相关技术 s o a ( s e r v i c e o r i e n t e da r c h i t e c t u r e ,面向服务的体系结构) 实质上是一个标准 的组件模型。s o a 的概念虽然是一个新名词但是实质上s o a 并不是什么新鲜事物,s o a 的体系结构是作为传统的面向对象的模型的替代模型出现的。s o a 被称为是一个面向服 务的体系结构,那么究竟什么才是面向服务呢? 与面向对象相比面向服务是个更宏观 的概念,面向服务就是以服务为构建系统的基本单位,另外通过部署s o a ,企业中已存 在的各个逻辑单元也可以被定义为服务并对外发布 3 1 0 由于s o a 是采用中立的方式定 义接口的,所以采用s o a 的方式可以无视各个服务的运行平台与编程语言的差异,真 正的实现了跨平台开发。s o a 的这种与平台无关的特性可以使得构建在各种系统中的服 务以一种统一和通用的方式进行交互,所以基于s o a 的分布式系统既可以充分利用现 有系统的功能,又可以准备在未来做一些改变来满足与现有系统之间进行交互的需要。 松耦合、粗粒度和异步是s o a 最为突出的三个基本准则。s o a 的松耦合是指服务接 口的定义完全独立于实现服务的硬件平台、操作系统和编程语言。系统的各个服务组 件之间的松耦合能够降低某一组件发生更改时对系统中其它组件的影响,这就降低了 耦合程度。粗粒度就是指要在相对较粗的粒度上对应用功能或业务模块进行封装与重 用,s o a 以服务为单位,关注的是业务功能,而不是方法,对象等更细微的概念。异步 的意思是指业务流程可以满足异步执行的需求,这就能大大提升系统的效率。 s o a 可以将遗留系统包装为服务,通过这种包装的方式就可以把现有的资源提供给 其它系统,这能够使企业资源得到充分利用,也充分体现了敏捷开发的思想。通过这 种方式跨平台开发在s o a 体系中将变得轻而易举,服务提供者和服务消费者只需要专 心于实现自己的业务功能而完全没有必要知道各自的开发环境,因此通常情况下s o a 适用于较为复杂的业务环境,比如企业应用系统集成,而事实上应用集成也可以说就 是s o a 技术向前发展的主要推动力。利用s o a 的开发模式企业的i t 系统将变得更加灵 活,既可以充分利用现有服务的功能,又可以在未来遇到问题时做一些改变来灵活应 对。在一个企业内部,s o a 服务所扮演的就是一个目录列表的角色,当应用程序要寻找 或调用某一个服务的时候可以通过目录列表进行分配“。 在分布式系统日趋完善的今天,原有的系统设计模式已经远远适应不了现代业务 的要求,而s o a 这种以业务为中心的特点正是现代企业分布式开发的必然趋势。虽然 s o a 的实施是个长期的过程,但是作为一种未来软件开发的发展趋势,s o a 必将在未来 的软件发展中发挥更为重要的作用。 2 1 2s o a 的特点与优势 s o a 的特点集中体现在以下方面: ( 1 ) 以服务为对象: 服务是s o a 的一个核心概念,s o a 支持面向服务的设计方法,面向服务的方法是对 其前续的面向过程、面向消息、面向数据库以及面向对象开发方法的延伸与扩充。服 务着眼于一个更高的抽象层次,直接与功能相对应,并且服务的实现也可以采用面向 过程、面向消息、面向数据库和面向对象等不同的开发方法。面向服务的接口定义是 比面向服务的接口定义更粗粒度的接口,会接收更多的数据,同时也会消耗更多的计 算资源。面向服务要解决的问题是应用间相互操作的服务通讯,以及如何将服务组合 成新的应用系统,而不是为应用创建具体的业务逻辑,从这一层面来说面向服务是一 个更为宏观的概念。 s o a 的服务具有平台独立的自我描述文档,以及用于描述服务的标准语言。s o a 服 务是使用消息进行通信的,而消息通常是使用x m ls c h e m a 来定义的( 也叫做x s d ,x m l s c h e m ad e f i n i t i o n ) 。除此之外每项s o a 服务还都要有一个与之相关的服务品质( q o s , q u a l i t yo fs e r v i c e ) 。q o s 包括安全需求,可靠通信,以及谁能调用服务的策略等元 素。通过应用s o a ,可以围绕服务来构建i t 系统,这不仅可以使应用系统更靠近实际 业务要求,而且也可以使系统更容易扩充,也就是说通过部署s o a ,企业的应用系统更 容易适应业务变化的要求。另外,对于已经存在的应用系统,通过服务化封装,可以 使这些系统得到更好的重用,能更有效的利用现有资源,方便系统集成。 ( 2 ) 对标准的支持5 1 : s o a 系统具有很好的可移植性,原因就在于在s o a 系统中采用了大量的开放标准。 与服务相关的技术几乎都存于相应的标准之中,通过对标准的使用可以得到很多好处, 包括: 1 ) 方便引用外部服务,有利于系统集成; 2 ) 减少了对特定生产商的依赖; 3 ) 为服务请求者增加了使用不同服务提供者的机会,同时也为服务提供者增加了被更 多服务请求者所使用的机会; ( 3 ) 松耦合: 松耦合是现代软件设计中的一个非常重要的概念,在这方面s o a 无疑更能体现自己 的优势,因为s o a 所强调的就是服务间的松耦合。在s o a 中松耦合主要包括以下三个 方面: 1 ) 接口松耦合: 4 接口耦合是指服务消费者与服务提供者之间联系的依赖关系。接口耦合主要度量的 是服务请求者与服务提供者的紧密程度。s o a 的接口松耦合主要是强调在任何时候服务 的请求者都不需要关心服务提供者内部的具体实现信息,而仅需要根据自己的需要和 已发布的服务协议就可以请求一个服务,即服务接口封装了服务实现的所有细节,服 务提供者对服务请求者而言完全透明。 2 ) 流程松耦合: 流程耦合所度量的是服务与特定业务流程的依赖程度。流程松耦合强调的是服务 的可重用性,服务应该与具体的业务流程解耦,服务应该能够被重复利用于不同系统 的不同的业务流程之中。在一个s o a 系统中可以通过对业务流程的重新规划使得一个 业务服务能够在多个业务流程中重复利用。在不同的业务环境中,一个服务甚至可以 在不同的业务流程中充当不同的角色。 3 ) 技术松耦合: 技术耦合度量的是服务对特定技术,产品或者开发环境的依赖程度。技术松耦合强 调的是服务的具体实现和运行不应该依赖于特定的某种技术或者某个生产商的具体解 决方案或产品。技术松耦合能够以通用的方式减少对某个厂商的依赖。在s o a 系统中 服务请求者和服务提供者之间是完全透明的,服务请求者和服务提供者可以使用不同 的技术实现,当然也就可以有各自独立的运行环境。 ( 4 ) 方便系统集成6 1 : 在s o a 系统构建中,最基本的单位就是实现业务功能的服务,而不是用于实现具 体业务逻辑的对象,过程,函数等这些更小的技术单位,这就从更高层次体现了s o a 系统的灵活性。服务是由明确的中立接1 3 定义的,并且是与实际业务功能相关的,这 就使得对于服务的访问只需按其接口要求进行访问即可,而服务实现的细节则被屏蔽 了。服务实现的改动对服务访问方的逻辑不会产生任何影响,这样就大大提高了业务 流程的通用性。另一方面,一旦业务流程需要发生变更,也仅需对服务进行重新编排, 并不需要修改服务本身,这样也就提高了业务流程实现的灵活性。通过s o a 实现系统 集成不仅可以使业务服务具有更好的重用性,也使得业务流程更容易重构,使企业系 统更加灵活。 正因为s o a 的这些特性所以实施s o a 可以带来的主要优势有以下四点: ( 1 ) 由于s o a 系统具有低耦合性的特点,所以降低了业务伙伴对整个业务系统的 影响。尤其是在各业务伙伴关系不断发生变化的情况下,s o a 系统的优势就体现的愈加 明显。 ( 2 ) s o a 与平台无关的特性,有效的减少了系统集成过程中对业务应用实现的限 制。在系统集成的过程中对其业务伙伴具体采用什么技术没有任何的限制。 ( 3 ) s o a 的各个业务功能可以通过互联网服务器以服务的形式发布出来,这就突 破了企业内网的限制,实现了服务请求者与服务提供者的无缝结合。通过s o a 架构, 企业可以与其业务伙伴直接通讯,无需重新开发,极大的降低了开发成本。 ( 4 ) s o a 系统拥有可按模块分阶段的进行实施的优势。也就是说s o a 可以成功一 步再做下一步,这就将实施对企业的冲击减少到最小,同时这也是未来软件开发的趋 势所在。 2 2其他相关技术 2 2 1 分布式系统 分布式软件系统( d i s t r i b u t e ds o f t w a r es y s t e m s ) 是指支持分布式处理的软件系统, 是在通信网络互联的多处理机体系结构上能够联合操作的系统,简单的说分布式系统 就是事先将系统所需要的数据与信息分别存放在不同的物理位置上,然后借助于计算 机网络把分散的数据连接起来,进行统一操作的信息系统。分布式系统包括分布式操 作系统、分布式程序设计语言及其编译( 解释) 系统、分布式文件系统以及分布式数据 库系统等1 7 1 。 分布式系统的程序是由分布在各个计算机系统上的分布式程序组成的。一个分布式 程序可以由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的 多台计算机上被同时执行。分布式的程序设计与集中式的程序设计语言相比有分布性、 稳健性和通信性的特点。 分布式系统的数据库是由分布于多个计算机结点上的若干个独立数据库系统组成 的分布式数据库,它提供一种有效的存取手段来操纵这些结点上的子数据库。分布式数 据库在使用上可以看做是一个完整的数据库,而实际上它是分布在地理分散的各个结 点上的。当然,分布在各个结点上的子数据库在逻辑上是相关的。 准确的说分布式系统是一种分层结构,它的发展也经历了两层到n 层的过程,下 面介绍一下分布式系统的两种主要分层结构: ( 1 ) 两层结构( 客户端服务器结构) : 顾名思义客户端服务器( c l i e n t s e r v e r ,c s ) 结构将整个系统分为两个层次,第 一层就是我们常说的客户端,这一层的主要作用就是根据用户的操作命令执行相应的 业务逻辑满足用户需求,而且把从服务端反馈回来的结果返回给用户。第二层就是服 务器端,通常是用于运行一个基于关系型数据库的管理系统。在两层的体系结构中服 务器端的工作相对简单,只需要完成相应的数据存储和检索即可,客户端则将负责主 要的功能逻辑以及界面操作。为了优化服务器的性能,在客户端服务器结构中也有可 能会将部分的逻辑功能存储在服务器端以加速系统响应速度。两层结构的结构如图2 1 所示。 6 图2 1两层结构 通常情况下两层结构的数据库能够支持开放性并且要求整个系统也具有一定的开 放性,这种开放性包括用户界面、软硬件平台以及网络协议。总的来说客户机服务器 结构是一个开放的体系结构,在这个开放的平台上可以充分发挥开放性的特点在客户 机上提供应用程序接口以及网络接口,这样就使得用户可以按照他们所熟悉的、流行 的方式开发客户机的应用。 ( 2 ) 三层结构阳l : 三层结构的最大特点就是将表示层、业务逻辑层、数据层层次分明的彻底剥离,使 每一层独立出来,因此被称为三层结构。其中表示层的主要功能就是负责外部接口与 用户界面的交互;业务逻辑层的工作就是负责管理核心的逻辑操作及功能服务:顾名 思义数据层的主要工作就是负责数据处理,数据的读取与存储都在该层完成。与两层 结构相比三层结构中多出了一个业务逻辑层,正是这个业务逻辑层的出现充分弥补了 两层结构的不足,三层结构使企业应用系统的灵活性和可扩展性都得到了极大提高, 使用三层结构可以有效降低各层之间的耦合度,即某个层次的内部修改不会对其他层 产生任何的影响,确切的说三层结构特别适用于结构经常变化的系统。三层结构的结 构图如图2 2 所示。 7 团圆团团 2 2 2w e bs e r vic e 图2 2三层结构 w e bs e r v i c e 是由各个企业发布的用于完成某种特定功能的在线应用程序,其他应用软 件或者企业能够通过网络来访问并使用这些在线服务,w e bs e r v i c e 是一个应用组件, 它的逻辑功能是为其他的应用程序提供数据或服务支持。1 。简单来说w e bs e r v i c e 是 一种搭建应用程序的统一模型,可以执行从简单的访问请求到复杂的业务处理的任何 功能,w e bs e r v i c e 可以在任何支持网络通信的操作系统中实施运行,它是一种新的 w e b 应用程序分支,是自包含自描述、模块化的应用。企业应用程序可以通过网络协议 和规定的一些标准数据格式( h t t p ,x m l ,s o a p ) 来访问w e bs e r v i c e ,并通过w e bs e r v i c e 得到所需的执行结果。一旦部署以后,其他w e bs e r v i c e 应用程序可以发现并调用它 所部署的服务。 实际上w e bs e r v i c e 最主要的目标是实现跨平台的可互操作性。为了达到这一目 标,w e bs e r v i c e 采用了完全基于x m l ( 可扩展标记语言) 、x s d ( x m ls c h e m a ) 等独 立于平台、独立于软件供应商的标准。w e bs e r v i c e 是一个可互操作的、分布式应用程 序的新平台。作为最为成熟的s o a 实现形式w e bs e r v i c e 具有以下优点: ( 1 ) 便于应用程序集成: 作为企业级的应用程序开发者都应该知道,企业里经常都要把用不同语言写成的、 在不同平台上运行的各种程序集成起来,而这种集成通常会花费很大的开发精力。尤 其是对于跨平台的情况,应用程序经常需要从运行在主机上的程序中获取数据;或者 把数据发送到主机应用程序中去都会相当困难。即使在同一个平台上,不同软件厂商 生产的各种软件也常常需要集成起来,这往往是一件非常复杂的事情。而通过使用w e b s e r v i c e 应用程序就可以用标准的方法把功能和数据“暴露 出来,供其它应用程序使 用,这就能大大简化系统集成的复杂程度。 ( 2 ) 实现软件和数据重用1 阳: 软件重用是一个很热门的话题,而重用的形式也是多种多样的,重用的程度也是有 大有小。总的来说重用主要包括两种实现形式其中最基本的形式是源代码模块或者方 法一级的重用,另一种形式是二进制形式的组件的重用。w e bs e r v i c e 在允许代码重用 的同时,还支持代码背后数据的重用。由于w e bs e r v i c e 的存在,我们就再也不必像 以前一样需要借助第三方的组件来访问应用,而只需要直接调用远端的w e bs e r v i c e 就可以了。 ( 3 ) 方便系统的集成: 使用w e bs e r v i c e 来实现系统集成的最大好处就在于可以轻而易举的实现信息共 享。w e bs e r v i c e 通过把业务逻辑定义为接口的方式可以让任何指定的合作伙伴调用这 些业务逻辑,而不管他们原来的系统是在什么平台上运行的,使用的是什么开发语言。 这样就能够大大减少降低在系统集成上的时间和成本。 ( 4 ) 实现跨防火墙的通信“: 如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间 通常会用到防火墙或者代理服务,这种情况下客户端和服务器之间的通信将会是一个 十分棘手的问题。在这种情况下如果中间层组件换成w e bs e r v i c e 的话,就可以从用 户界面直接调用中间层组件,大大节省服务访问时间。 2 2 3s o a p s o a p 的全称是s i m p l eo b j e c ta c c e s sp r o t o c o l ,即简单对象访问协议。简单的说 s o a p 也是一种因特网访问协议,是一种基于x m l 的在因特网上传递消息的中间载体, 是作为h t t p 在应用程序之间传递消息的补充出现的。以往的远程调用通常会产生兼容 性,安全性等方面的问题,而且效率低下,s o a p 的出现很好的解决了这些问题,s o a p 提供了一套标准化的方法可以使得运行在不同平台上,使用不同编程语言的应用程序 进行自由的消息传递。s o a p 并不排斥现有的网络协议,而是可以很好的与h t t p ,s m t p 等常用协议结合使用,取长补短,充分发挥各自的优势“钉。一条s o a p 消息实质上就 是一个x m l 文档,包括头信息,调用信息以及相应的响应信息等内容,事实上所有的 s o a p 消息都必需通过x m l 编码,未经x m l 编码的消息是不被允许的。s o a p 的消息传 输基本上都是从发送端到接收端的单向传输,s o a p 的传输方式是一种类似于请求应 答的模式。 s o a p 包括封装,编码规则,远程调用以及信息绑定四个部分,虽然这四部分在定 义上相互独立,但是实质上他们在功能上是相互联系的,作为一个整体实现的。其中 9 封装用于包装消息的实现细节与消息传输的方式以及目的地;编码规则的主要作用则 是用于表示应用程序需要使用的数据类型的编码方式;远程调用定义的是远程调用的 响应协议;绑定的功能是使用底层的协议绑定交换信息。 2 2 4w s d l w s d l 的全称是w e bs e r v i c e sd e s c r i p t i o nl a n g u a g e ,是一种使用x m l 编写的网络 描述语言,其作用就是用来描述w e b 服务。使用w s d l 我们可以用抽象的方式定义w e b 服务以及与该服务有关的具体信息,而无需考虑服务的具体实现语言,这一点与s o a p 很类似,实际上w s d l 与s o a p 是密不可分的,虽然w s d l 保持协议的中立但是实际上w s d l 内部已经绑定了s o a p 1 朝。总的来说一个w s d l 文件所要完成的任务有两点:一是定义 服务,其中要包括服务所提供的功能与该服务的细节描述;二是服务的使用,也就是 要访问定义服务时所需要的协议定义与消息格式。 从结构上说w s d l 文件的元素主要包括t y p e s 、m e s s a g e 、p o r t t y p e 、b i n d i n g 等, 他们在文档中所起的作用分别为: t y p e s :t y p e s 的主要作用就是为w e b 服务定义其所使用的数据类型以及消息的数据结 构,w s d l 文件中使用的数据必须是要在t y p e s 中定义的数据类型。 m e s s a g e :一个m e s s a g e 元素就是一个w s d l 消息,每个m e s s a g e 元素都要由多个部件 组成,其中就包括由t y p e s 所定义的数据元素。 p o r t t y p e :p o r t t y p e 元素是最为重要的w s d l 元素,它用于描述一个具体的w e bs e r v i c e , p o r tt y p e 的作用类似于传统编程语言中的函数,其中包括了w e bs e r v i c e 可被执行的 相关操作与消息。 b i n d i n g :b i n d i n g 元素为每个端口定义了相关的消息格式和协议细节。绑定的作用就 是将抽象的接口定义与具体的实现与相应数据相结合。 2 2 5o d d i u d d i 的全称是u n i v e r s a ld e s c r i p t i o nd i s c o v e r ya n di n t e g r a t i o n ,即一种统 一描述、发现和集成协议n 钉。我们知道w e bs e r v i c e s 可以发布服务,并被其他应用 程序使用,那么这里就有几个问题:w e bs e r v i c e s 是如何发布的? 外部应用程序又是 如何发现,并且引用w e bs e r v i c e s 的? 其实答案就只有一个,那就是u d d i 。对于上面 的第一个问题u d d i 的做法是注册,通过注册w e bs e r v i c e s 的身份就得到了认可,也 就可以被其他w e bs e r v i c e s 所使用。至于w e bs e r v i c e s 的发现和使用也很好理解, 只要到u d d i 的注册中心去查找相关服务即可。 u d d i 是一个以h t t p ,x m l 等标准为基础,以s o a p 为传输载体的统一的、开放的行 业标准。u d d i 定义了w e bs e r v i c e s 的描述与发现规范,提供了统一的方式来管理w e b l o s e r v i c e s ,以及他们之间的相互关联,并在全球范围内提供了信息共享n 钉。w e bs e r v i c e s 的发展离不开u d d i ,尤其是在跨平台开发方面企业可以通过u d d i 可以迅速找到自己需 要的业务实体。总之,u d d i 的主要作用就是为w e bs e r v i c e s 解决诸如w h o ,w h a t ,w h e r e , h o w 之类的问题。 提供者直接联系,对于服务的选取是借助于代理的方式进行的 1 6 1 。如图3 1 所示: 图3 1服务代理实现模式 3 1 2 包装服务实现模式 包装服务模式是通过把现有功能包装成为服务的方法把现有的系统转化为s o a 系 统。通过这种方式,我们不必再担心s o a 系统与原非s o a 系统的集成问题。包装以后 的服务可以与s o a 系统自由通讯,充分体现s o a 在跨平台,跨系统的业务集成方面的 优势1 1 7 1 。如图3 2 所示t 图3 2 包装服务实现模式 1 2 3 1 3 虚拟服务实现模式 在现实的应用开发中经常会遇到这样的情况,那就是我们想要使用的某种功能并没 有被作为现有的服务提供出来,在这种情况之下虚拟的服务模式就可以充分发挥自己 的价值了。简单来说虚拟服务模式就是上面两种模式的结合,准确的说就是先通过包 装服务的方式将现有系统的功能转化为服务,然后再借助一个服务代理描述转化的服 务,最后还可以利用f a c a d e 的模式统一两个服务之间的差别n 钉。如图3 3 所示。 3 1 4 服务整合实现模式 图3 3 虚拟服务实现模式 s o a 之所以倍受青睐,其根本原因就是基于s o a 的设计理念可以将企业的i t 架构 建立在一系列可执行业务功能的服务基础之上,业务流程与业务模式也可以通过服务 的重新组合变得更加灵活n 9 1 。服务整合模式是最能体现s o a 这方面特点的实现模式, 这种实现模式最大的特点就是充分融合了工作流的概念,现有服务可以借助于工作流 被重新组合并按不同的功能需求组成一个功能上全新的服务。此外,这种设计模式还 能带来的好处就是可以提高系统效率,降低服务端压力。简单的说这种设计模式的设 计思路就是通过流程控制重新排列服务,从而实现我们的需求。此种模式的客户端可 以根据自己的需要对服务流程提出请求,而流程又能访问多个服务。如图3 4 所示。 - s i n h t | e 啦 一- - - - - - - - i - _ 图3 4 服务整合实现模式 1 3 3 1 5e s b 实现模式 e s b 模式是目前的s o a 系统最为常用的一种模式。e s b 实现模式的结构图如图3 5 所示。 s o a 的e s b 实现模式之所以能够成为最受企业欢迎的s o a 设计模式,是因为e s b 实 现模式能够很好的满足现代企业系统灵活多变的情况。基于e s b 的s o a 设计模式拥有 以下特点:e s b 模式很好的解决了服务之间交互通讯的问题,支持可管理的分布式整合 底层框架,并且拥有满足高级服务间互通信息的能力2 盯。e s b 模式的交互方式多种多 样,包括:同步处理、异步处理、事件、消息等。此外e s b 模式还支持服务路由转换 和协议转换,支持w e b 服务和其它传统的e a i 通信标准的转换处理。 图3 5e s b 实现模式 上面介绍了几种常用的s o a 开发模式,但是各种实现模式并不是彼此孤立的,他们 可以相互联系,充分发挥各自的优势。事实上一个真正的s o a 开发系统往往都要用到 多种不同模式的组合。 3 2s o a 系统开发模型组件 3 2 1 模型组件概述 要想构建一个s o a 系统服务架构组件,业务流程执行组件,服务数据对象组件这三 者是必不可少的。如果把整个s o a 系统作为一个大厦的话,那么大厦的设计图纸就是 服务流程引擎业务流程执行组件,流程组件用于将已有的服务组装起来定义真正的业 务流程。服务架构组件就是搭建大厦的基石。服务组件用于整合外部服务,和对外发 布服务接口,通过服务架构组件可实现服务要求的标准化,可以自描述,可组装等功 能,并能隔离业务功能与具体实现。服务数据对象组件作为数据消息模型就是大厦电 路中的电流,水管中的水流,可以方便数据在各个服务之间快速准确的传输。既然服 1 4 务架构组件,业务流程执行组件和服务数据对象组件在s o a 系统中起着如此重要的作 用,那么在实际搭建s o a 系统的时候这三种组件究竟是如何实现的呢,本文这里结合 以i b m 的s o a 解决方案采用s c a ,b p f , l ,s d o 相结合的方式来实现s o a 系统的搭建。 s c a ,b p e l ,s d o 这三者就是本文中s o a 编程模式的铁三角,分别对应上面的服务架构 组件,业务流程执行组件,服务数据对象组件,下面将对这三种技术加以详细介绍。 3 2 2 服务架构组件s o a 通常在开发服务时需要仔细考虑下面的设计问题: ( 1 ) 如何创建一个新的服务以及对新的服务请求者开放服务的可行性需求。 ( 2 ) 原来的代码在新的流程体系中的应用问题。 ( 3 ) 服务集成以后可能会带来的对性能影响的问题。 ( 4 ) 增加一个新服务后对安全性的影响。 很明显我们需要一个能够开发自己的服务,并且能够很好集成外部服务的中间载体来 同时满足以上要求,在本文中这个集成中间件就是s c a 。 s c a 全称s

温馨提示

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

评论

0/150

提交评论