已阅读5页,还剩73页未读, 继续免费阅读
(计算机软件与理论专业论文)基于soa架构的软件开发研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理1 :大学硕士学位论文 摘要 本论文主要针对一种新型的软件体系架构一s o a ( s e r v i c eo r i e n t e d a r c h i t e c t u r e ,面向服务的体系架构) 进行了分析与应用研究。随着企业级应用的 不断发展,软件的复杂性急剧增加,面向对象技术已经无法解决重用和可维护 性的问题,于是设计者们提出了基于组件的设计思想,但遗憾的是这种思想并 没有很好地解决软件复杂性问题。今天我们面i 临的是诸如分布式软件、应用整 合、不同平台、各种各样协议和设备相互组合等等这样的系统,而采用s o a 可 以消除不同平台和协议带来的问题,实现应用之间的无缝整合。s o a 的一个重 要之处在于:它不再重点考虑以技术为中心的细颗粒度实体,如数据库类型或 j a v a 对象;s o a 专注于以业务为中心的服务,这些服务就有业务级的事务粒度。 s o a 表示的是一个架构蓝图,涵盖多种不同技术,不需要特定协议或连接技术, 因此s o a 能很好的帮助企业提高自己的i t 能力,随需而变,满足业务需求。 本文的研究工作围绕s o a 架构展开,通过深入研究分析与s o a 相关的理 论体系,提出了一种基于s o a 架构的企业应用设计流程和建模方法,并在此基 础之上通过一应用实例说明s o a 的实施过程。 首先,分析研究了s o a 架构在国内外的发展情况,对s o a 架构的理论体 系进行了深入研究,包括与s o a 开发模式相关的实现技术w e bs e r v i c e s 的 体系结构和组成;s o a 编程模型涉及的组件类型一企业服务总线( e n t e r p r i s e s e r v i c e b u s ,e s b ) 的工作原理和机制。 接着,结合s o a 架构的理论体系和w e bs e r v i c e s 以及e s b 的工作原理和 实现过程,分析了整个系统在s o a 模式下如何实现跨企业供应链协作方面的功 能。在此基础上设计了一种新的s o a 规j z l - - e s o a d ,给出了其总体设计和具体 实现,并对其关键技术作了详细介绍。 然后,通过一应用实例具体说明了s o a 实施的详细过程,证明了应用s o a 有效性,体现了s o a 分析设计方法的敏捷性和高效性。 最后,对全文进行了总结,并提出了进一步研究的方向和内容。 关键词:软件体系结构面向服务的体系结构企业服务总线面向服务的分 析与设计 武汉理工入学硕十学位论文 a b s t r a c t t h i st h e s i sf o ran e wt y p eo fs o f t w a r ea r c h i t e c t u r e - - s o a ( s e r v i c e - o r i e n t e d a r c h i t e c t u r e ) w a sa n a l y z e da n da p p l i e dr e s e a r c h w i t he n t e r p r i s e c l a s sa p p l i c a t i o n d e v e l o p m e n t ,s o f t w a r eg e t sm o r ea n dm o r ec o m p l e xa n do b j e c t o r i e n t e dt e c h n o l o g y h a sb e e nu n a b l et os o l v et h ei s s u eo fr e u s a b i l i t ya n dm a i n t a i n a b i l i t y ,s od e s i g n e r s m a d eac o m p o n e n t - b a s e dd e s i g ni d e a , b u tu n f o r t u n a t e l yt h i si st h et h i n k i n go fa g o o d s o l u t i o na n ds o f t w a r e c o m p l e x i t yo ft h ei s s u e t o d a y ,w ea r ef a c i n gs u c ha s d i s t r i b u t e ds o f t w a r e ,a p p l i c a t i o ni n t e g r a t i o n ,d i f f e r e n tp l a t f o r m s ,aw i d er a n g eo f m u t u a la g r e e m e n ta n de q u i p m e n tc o m b i n a t i o n s ,a n ds oo ns u c has y s t e m ,a n dc a nb e d i m i n a t e du s i n gs o ad i f f e r e n t p l a t f o r m sa n dp r o t o c o l so ft h ei s s u ea n dt h e r e a l i z a t i o no ft h ea p p l i c a t i o ns e a m l e s si n t e g r a t i o n s o aa ni m p o r t a n tp a r ti s :i ti sn o l o n g e rf o c u so nt e c h n o l o g ya st h ec e n t e ro f t h ef i n ep a r t i c l e se n t i t i e s ,s u c ha st h et y p e o fd a t a b a s eo rj a v ao b j e c t s ;s o at of o c u so nb u s i n e s s c e n t r i cs e r v i c e s ,t h e r ea r e b u s i n e s s c l a s ss i z em a t t e r s s o ai saf r a m e w o r kt h a tt h eb l u e p r i n tf o rab r o a dr a n g e o fd i f f e r e n tt e c h n o l o g i e sa n dd o e sn o tr e q u i r es p e c i f i ca g r e e m e n t so rc o n n e c t i v i t y s o g o o ds o ac a nh e l pe n t e r p r i s e si m p r o v et h e i ra b i l i t yt oi t ,a n dw i t ht h en e e dt o c h a n g et om e e tb u s i n e s sn e e d s t h em a i nw o r ko ft h i sd i s s e r t a t i o nw a sf o c u s e do nt h et h e o r y , d e s i g na n d i m p l e m e n t a t i o no fs o a b a s e do nt h et h o r o u g h l ya n a l y s i so f s o a ,ap r a c t i c a l d e s i g nw o r k f l o wa n dm o d e l i n gm e t h o da r ep r o m p t e d ,a n ds o m ec o r em o d u l e so fa l o g i s t i c si n f o r m a t i o ns y s t e ma r ei m p l e m e n t e dt oc o n f i r mt h ea b o v ec o n c l u s i o n f i r s t ,o nt h eb a s e o fd e e p l yr e s e a r c h i n go nt h es o at h e o r e t i c a lm o d e ,t h i sp a p e r g i v e su sa j lo v e r v i e wa b o u ts o aa n dt h er e l e v a n tt e c h n o l o g i e s :w e bs e r v i c e s e s b s e c o n d ,i ta n a l y z e st h ei n s t a n c es y s t e mh o wt or e a l i z et h e ,f u n c t i o n so f s u p p l y c h a i nc o l l a b o r a t i o na m o n ge n t e r p r i s e sa p p l y i n gw i t hs o am o d ea c c o r d i n gt o t h er e q u i r e m e n t s o nt h i sb a s i s ,an e ws o ap l a n n i n g e s o a d ,g i v e ni t so v e r a l l d e s i g na n dr e a l i z a t i o n ,a n di t sk e yt e c h n o l o g yi nd e t a i l , t h e n , t h r o u g h a s p e c i f i ce x a m p l e o ft h e a p p l i c a t i o n o ft h ed e t a i l e d 武汉理: 大学硕士学位论文 i m p l e m e n t a t i o no ft h es o ap r o c e s s ,t op r o v et h ee f f e c t i v e n e s so fs o a ,t h es o a a n a l y s i so ft h ed e s i g nm e t h o da g i l ea n de f f i c i e n t f i n a l l y ,t h ef u l lt e x to ft h es u m m a t i o n ,a n dt of u r t h e rs t u d yt h ed i r e c t i o na n d c o n t e n t k e yw o r d s :s o f t w a r e a r c h i t e c t u r es 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 e n t e r p r i s e s e r v i c eb u ss e r v i c e - o r i e n t e da n a l y s i sa n dd e s i g n 1 1 1 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均己在论文中作了明确的说明并表示了谢意。 签名: 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权 保留、送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部 或部分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名: 。,v d - vu l 比 i 文扉页)( 注:此页内 武汉理j r 大学硕士学位论文 1 1 研究背景和意义 第1 章绪论 1 1 1 传统的软件架构面临的问题 传统的软件架构一般是指面向功能和面向过程的软件架构。基于这两种架 构的企业系统从整体角度来看般是多阶段交错的复杂系统,是不同平台、不 同开发工具、不同管理规范、不同需求、不同时间研发的一个信息模块集。这 种信息模块集的复杂性极大的影响了企业系统的敏捷性和稳定性,影响了企业 领导者的决策和企业核心能力的发挥。 信息化走到今天,对于采用了多种管理系统的企业深有体会:系统越来越 不能适应日益增长的业务需求,在以前解决企业内部信息系统的“信息孤岛 的问题时通常采用企业应用整合( e a i ) 方式。即为了保证所有的应用系统能够 互通互用,每一个应用都需要一个e a i 服务者来对应。e a i 服务者就像一位“翻 译”,让每两个应用之间可以对话,互相调用。但是这种方式存在很大的问题。 从理论上讲,e a i 能够完成企业应用系统之间的整合。从逻辑上讲,e a i 是基于 点对点的整合方式,企业的应用系统越多,这种逻辑关系就会成指数级数上涨, 在实施过程中人们发现,对于这样庞大复杂的逻辑关系,e a i 的投入很高,实 施周期较长。 现有的解决方案( 如c o r b a 和d c o m ) 在解决企业系统的能力上也有一些不 足之处。首先,现有企业系统构架大都不是面向服务的构架,对客户服务需求 的变化难以做出敏捷反应。其次,现有企业系统构架所采用的技术基本上是紧 密藕合型的,这就要求企业在进行类似分布式计算的操作时系统两端都必须遵 循相同约束。当其中一个实体对象有了更改,那么访问该对象的所有实体都必 须做出相应更改,阻碍了企业敏捷服务和自由扩充的实现。第三,现有的一些 w e b 服务技术标准大都受个别厂商的约束与控制,没有统一性。 武汉理f :大学硕士学位论文 1 1 2s o a 价值 面对市场需求的快速变化,企业必须能够做出快速反应,具备敏捷生存的 能力,这就要求企业系统具有敏捷服务、快速重构、资源重用及自由扩充等特 点。面对新的挑战,企业需要从整体上变革企业系统布局,采用开放的技术标 准、规范与方法,建立新的构架。如何合理地把这些技术标准、规范和方法应 用到各类企业的应用系统和商业流程之中、并给企业带来直接的经济效益,一 直备受国内外企业管理者高度关注。面向服务的架构f s e r v i c eo r i e n t e d a r c h i t e c t u r e ,s o a ) 就是在这样的背景下产生了,s o a 被誉为下代w e b 服务的 基础框架,目前己经成为计算机信息领域的一个新的发展方向。 s o a 的中心思想是使企业应用摆脱面向技术解决方案的束缚,轻松应对企 业的业务变化和发展需要【l 】。s o a 把具体的功能封装成服务,通过对不同服务 的调用或组合构成业务流程,让应用系统更有弹性,更快的响应业务需求。将 注意力放在服务上,应用系统能够集中起来提供更加丰富、目的性更强的商业 流程。因此,基于s o a 的企业应用系统会更加真实地反映出与业务模型的结合。 s o a 架构为软件体系结构注入了新的活力,很大程度上解决了软件开发中存在 的互操作性和扩展性难的问题。 1 2 国内外研究现状 早在1 9 9 6 年,g a r t n e r 就提出s o a 的预言,后来在2 0 0 2 年1 2 月,g a r t n e r 又提出s o a 是“现代应用开发领域最重要的课题”,并预计到2 0 0 8 年,s o a 将成为占有绝对优势的软件工程实践方法。到2 0 1 0 年会有超过8 0 的企业采用 s o a 体系【2 1 。随着x m l ,w e b 服务等技术标准的出现,s o a 逐渐从理论阶段走 向了实践阶段。 1 2 1 国外研究现状 目自i 两大关键标准服务构件架n ( s e r v i c ec o m p o n e n ta r c h i t e c t u r e ,s c a ) 和服 务数据对象( s e r v i c ed a t ao b j e c t s ,s d o ) 的草案已经宣布完成,并正式提交给结 构信息标准化促进组织【”。s c a 简化了服务的创建和组合;s d o 制定了对不同 地方和格式的数据的统一存取标准。这两个标准无疑会推动原有应用系统向 2 武汉理【:大学硕士学位论文 s o a 进化,增强服务的重用能力,提高企业应用系统对业务需求变化的应变速 度。 随着各种标准的完善,国外许多大型公司都推出了自己的s o a 产品。s a p 公司于2 0 0 6 年发布了第一个面向服务架构的企业应用s a pe r p 2 0 0 5 。o r a c l e 公 司也正式推出了一套完整的用于创建、部署和管理s o a 服务的服务基础设施组 件一s o a 套件,该套件支持服务的创建和管理,并可将服务组合为复合应用和业 务流程。与此同时,许多公司在实现各种w e b 服务和将已有应用转换成面向服 务架构上也取得了重大的进展。已经有一些将s o a 设计思想应用到医疗、电信、 金融等行业的案例。如德国邮政系统和金融行业,著名的i b m 公司也在企业内 部进行s o a 应用,并取得了显著成效。 1 2 2 国内研究现状 国内对s o a 及w 曲服务相关技术的研究工作开展的要晚些,目前尚未取得 突出的研究成果。在s o a 方面,软件公司推出的产品也比较少,但很多公司已 经开始积极投入到这方面的研究中,新中大发布了国内首款基于s o a 的管理软 件,国内e r p 巨头用友集团从2 0 0 3 年开始研发的下一代产品u 9 也是基于最先 进的s o a 技术架构的。大多数企业已经意识到部署s o a 的作用和价值,并对 s o a 的发展前景抱有信心。在发展s o a 的过程中,中国和国外信息化发达国家 ( 如美国) 有着不同的发展机遇和条件。在大多数美国企业中已经具备完善的应用 系统,s o a 的实施只需要对已有系统中的功能进行提取和包装,形成标准的服 务,而非用高成本的标准方法全新构造服务。而在中国企业,信息化建设正由 生产系统转向营销服务系统,因此中国s o a 的首要任务是全新构造大量的服务。 赛迪顾问对中国5 3 6 家企业机构的问卷调查显示:2 5 左右的企业已经针对 s o a 采取行动,包括进行内部s o a 相关培训、规划s o a 系统架构蓝图以及s o a 应用【4 1 。 1 3 研究内容与组织结构 1 3 1 研究内容 论文的主要工作可分为以下几个点: 武汉理r 大学硕十学位论文 1 ) 深入学习了面向服务的体系架构理论知识,对s o a 相关技术和设计方法 进行了研究和探讨; 2 1 分析了w e b 服务关键技术,w e b 服务是目前比较适合实现面向服务架 构的技术,w e b 服务标准的成熟和应用普及为s o a 奠定了坚实基础; 3 ) 研究了企业服务总线,提出了基于企业服务总线的e s o a d 规划方案; 4 ) 运用s o a 的思想构建部署了一个网上图书系统,旨在说明如何在实际应 用中实施s o a 的具体过程。 1 3 2 组织结构 全文共分为5 章。各章节内容概括如下: 第1 章,绪论。论述了本文的研究背景和意义以及国内外的研究现状,介 绍了本文的研究内容与组织结构。 第2 章,面向服务体系架构( s o a ) 的理论研究。本章是s o a 研究的理论基 础。在本章中,讲述了s o a 架构的产生原因和发展,指出为了减少异构性、互 操作性和不断改变的系统的要求,构建系统的体系结构应具有松散耦合、位置 透明、协议独立的特征:详细讨论了s o a 体系结构中服务提供者、服务请求者和 服务注册中心之间的协作:接着分析了作为s o a 实现技术的w e bs e r v i c e s 的理论 体系及其组成,包括与w e bs e r v i c e s 相关的主要协议和技术x m l ,u d d i ,s o a p 和w s d l 。然后阐述了与s o a 编程模型相关的企业服务总线( e s b ) 的概念、工 作理和特点。 第3 章,基于e s b 的s o a 规划( e s o a d ) 。讲述了该规划的设计目的、 原则,方法以及实现的关键技术。针对目前企业1 1 r 系统存在的问题和客户的进 一步需求发现,系统目前要实现的功能需要跨平台、垮企业共亨数据和业务处 理流程,因此该系统采用s o a 架构利用w e bs e r v i c e s 技术在原系统中可以添加 服务层系统功能,实现跨企业供应链协作。 第4 章,采用e s o a d 结合w e b 服务,用s o a 思想实现了一个应用系统, 以此来说明部署s o a 的过程。本章是在上一章对系统分析和设计的基础上,就 具体实现过程展丌讨论的,旨在进一步说明s o a 的实施过程。 第5 章,总结与展望。对本文所做内容进行了的总结。针对本文的不足提 出了未来的研究方向。 4 武汉理。i :人学硕士学位论文 第2 章面向服务体系架构的理论研究 s o a 即面向服务的体系架构已经成为i t 业尤其是软件开发及系统集成领域 从业者的热门话题。很多的权威机构也纷纷预测s o a 的美好前景,比如g a r t n c r 就预言,到今年为止至少6 0 的企业将使用s o a 作为其r r 架构本章将对 面向服务体系架构的理论作系统阐述,并介绍与s o a 有关的w e bs e r v i c e s ,e s b 等技术。 2 1 软件体系结构的发展 软件体系结构是指具有一定形式的结构化元素,即构件的集合,包括处理 构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加 工的信息,连接构件把体系结构的不同部组合连接起来。体系结构较通用的定 义指:它由软件的粗粒度结构组成,它描述了系统的构件和构件间在高层次的 相互作用5 1 。 软件体系结构对于软件工程的发展具有非常重要的意义。软件体系结构是 当前软件工程领域的一个研究热点,是大型软件开发中必须解决的核心技术。 大量软件工程实践证明,一个成功的软件系统往往都有一个好的软件体系结构。 未来的软件工程设计会逐步发展成为如同机械和建筑领域的机械组装过程一 样,从而摆脱艰难的脑力劳动和无可靠质量保证的手工作业。这其中软件体系 结构将起到主导作用,也就是说,新一代的软件工程将是体系结构的工程【6 1 。软 件体系结构在此期问也大致经历了下面三个阶段的成长:原始的软件体系结构, 面向对象的软件体系结构,面向服务的软件体系结构。 2 1 1 原始的软件体系结构 早期的进行软件开发中,由于系统规模相对较小,并没有过多的考虑软件 体系结构的问题,以语句为基本单位,由语句组成模块,由模块聚集和嵌套调 用组成程序结构。它所强调的是结构化程序设计,并注意模块的藕合性,这个 阶段的应用系统将数据、用户接口以及所有对业务逻辑的处理混杂在一个可以 5 武汉理。丁:大学硕十学位论文 执行的包中。 这种软件设计方法只需要少量的开发队伍和较短的开发周期,在小规模、 低复杂度的系统中被大量使用。其不足主要体现在可重用性差、可维护性差和 系统集成性较差。 2 1 2 面向对象的软件体系结构 面向对象的软件体系结构是通过对象、对象问消息传递等语言机制,使软 件开发者直接模拟问题空间中的对象和行为,从而提供一种直观、自然的语言 支持和方法学。面向对象设计的基本操纵单位为对象,对象间通过消息传递机 制实现功能调用。它使用封装、继承和多态等方法实现数据的安全操作、代码 复用和方法重载。在面向对象体系结构的分布式系统中,所有的状态信息都放 在服务器端,对象的访问包含网络调用和往返通信。因为每个对象都是与事先 创建好了的对象进行通信,所以对象间的通信可以理解为有状态的,并且面向 对象的体系结构通常采用特定的协议,如i i o p d c o m 、r m i 等【7 1 。 但面向对象体系结构的一个明显的缺点是:当一个对象通过过程调用与其 他对象交互时,它必须知道其他对象的标志,而当一个对象的标志改变时,需 要对所有调用这一方法的对象进行修改。 2 1 3 面向服务的软件体系结构 面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元( 称为 服务) 通过定义良好的接口联系起来。接口采用中立的方式进行定义,独立于实 现服务的硬件平台、操作系统和编程语言。这使得构建在不同系统中的服务可 以采用一种统一和通用的方式进行交互。 面向服务的体系结构由一系列相互交互的服务组成,每种服务都能提供对 该定义功能集的访| :司【引。它在整体设计和实现上为一系列相互交互的服务,这种 将业务功能实现为服务的方法可以增强系统的灵活性,系统通过增加新的服务 来实现演化。同时定义了系统由哪些服务组成,如何描述了服务间交互,并将 服务映射到一个或多个具体技术上去。通过应用面向服务的体系结构,一个企 业可以使用一组分布式服务来构成并组织应用程序。这样,企业就能通过重用 自己和伙伴资源来构造新和组织的应用系统。 6 武汉理工人学硕七学位论文 在面向服务的体系结构中,应用端通过发送请求信息来与一个特定的应用 程序通信。所有的请求都被发送到同一个服务终端且通信是无状态的。只要请 求能被分发到不同的服务操作来处理,这种己描述的服务终端可以独立于一个 服务,也可以被多个服务所共享。 2 2s o a 概述 s o a 是一种架构模型,它可以根据需求通过网络对松散耦合的粗粒度应用 组件进行分布式部署、组合和使用。服务层是s o a 的基础,可以直接被应用调 用,从而有效控制系统中与软件代理交互的人为依赖性。 2 2 1s o a 定义 s o a 目前还没有确切统一的定义,但我们还是可以从下面几个角度来体会 s o a 的内涵。 s e r v i c e a r c h i t e c t u r e c o m 将s o a 定义为:“本质上是服务的集合。服务间彼 此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进 行某些活动。服务间需要某些方法进行连接。所谓服务就是精确定义、封装完 善、独立于其他服务所处环境和状态的函数。【9 】 l o o s e l y c o u p l e d c o m 将s o a 定义为: “按需连接资源的系统。在s o a 中, 资源被作为可通过标准方式访问的独立服务,提供给网络中的其他成员。与传 统的系统结构相比,s o a 规定了资源间更为灵活的松散耦合关系。一【l o 】 g a r t n e r 将s o a 描述为:“客户端朋艮务器的软件设计方法,一项应用由软 件服务和软件服务使用者组成s o a 与大多数通用的客户端服务器模型的不 同之处,在于它着重强调软件组件的松散耦合,并使用独立的标准接口。 【l l 】 g a r t n e r 相信b p m 和s o a 的结合对所有类型的应用集成都大有助益。“s o a 极大的得益于b p m 技术和方法论,但是s o a 面临的真正问题是确立正确的企 业意识,即:强化战略化的s o a 计划( 针对供应和使用) 并鼓励重用【l 2 1 。” 虽然不同厂商或个人对s o a 有着不同的理解,但是我们仍然可以从上述的 定义中看到s o a 的几个关键特性:种粗粒度、松耦合服务架构,服务之间通 过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。 需着重注意的是,s o a 并不是新生事物,大型i t 组织成功构建和部署s o a 7 武汉理工大学硕士学位论文 应用已有多年的历史,这要比现有的x m l 和w e b 服务长很多。i b mc i c s 和 b e at u x e d o 就是过去被用于构建s o a 应用的两种技术范例。 要说明的是s o a 并不是一种现成的技术,而是一种架构和组织1 1 r 基础结构 及业务功能的方法。s o a 是一种在计算环境中设计、开发、部署和管理离散逻 辑单元( 服务) 的模型。这一定义阐明了s o a 的范围。 s o a 要求开发人员将应用设计为服务的集合,s o a 希望开发人员跳出应用 本身进行思考,考虑现有服务的重用,或思索他们的服务如何能够被其他项目 重用。“单独的、“独立的”、“封装完善的服务所具有的一个关键的好 处是,可以采用多种不同方法将它们组合成较大型的服务,由此来实现重用。 但是,s o a 并不仅仅是一种开发方法,它还具有管理上的优点。例如,现 在管理员可直接管理开发人员所构建的相同服务,这远胜于以往管理单个应用 的方式。通过分析服务间的交互,s o a 可以帮助企业了解何时以及为什么业务 逻辑被切实执行了,这使得管理员或分析师能有针对性的优化业务流程。 2 2 2s o a 基本组成结构 s o a 的基本组成有服务请求者,服务提供者和服务注册中心。它们是构成 s o a 的基础,遵循“发布、查找、绑定和触发”,其中,服务请求者通过查询 服务注册中心来查找与其标准匹配的服务,从而执行动态服务定位。如果服务 存在,注册中心就给请求者提供接口协议和服务的端点地址。图2 1 展示了s o a 的基本组成关系。 图2 1s o a 基本组成结构图 1 ) 服务请求者:服务请求者是一个应用程序、一个软件模块或需要一个服 武汉理 大学硕十学位论文 务的另一个服务。它发起对注册中心中的服务查询,通过传输绑定服务,并且 执行服务功能。服务请求者根据接口契约来执行服务。 2 1 服务提供者:服务提供者是一个可通过网络寻址的实体,它接受和执行 来自请求者的请求。它将自己的服务和接口契约发布到服务注册中心,以便服 务请求者可以发现和访问该服务。 3 ) 服务注册中心:服务注册中心是服务发现的支持者。它包含一个可用服 务的存储库,并允许感兴趣的服务请求者查找服务提供者接口。 s o a 中的每个组成实体都扮演着服务提供者、请求者和注册中心这三种角 色中的一种或多种【1 3 1 ,其操作包括: 1 ) 发布:为使服务可访问,需要发布服务描述使服务请求者可以发现和调 用它。 2 ) 查找:服务请求者定位服务,方法是查询服务注册中心找到满足标准的 服务。 3 ) 绑定和触发:在检索完了服务描述后,服务请求者继续根据服务描述中 的信息来调用服务。 2 2 3s o a 服务 s o a 的关键是“服务”的概念,w 3 c 将服务定义为:“服务提供者完成一 组工作,为服务使用者交付所需的最终结果。最终结果通常会使使用者的状态 发生变化,但也可能使提供者的状态改变,或者双方都产生变化。服务必须 和潜在的服务使用者以一种可理解的方式进行通信。通过使用一些发布方法, 如即插即用,服务就可以做到。在“插”的方法中,潜在的服务使用者请求服 务提供者发布它们的服务描述。这种即插的方法可以由服务自己激活。在“用” 的方法中,服务提供者或它的代理向它的潜在用户发出服务描述。通过预定发 布方式的第三方,即插即用方法可以相互结合工作,这使得发布服务更加便利。 而当潜在的使用者获得了有关服务的存在信息,如它的可用参数和条件时,就 会有发现。 s o a 使用新的方法来构建分布式系统,它把应用的功能封装为服务,为最 终应用或者为其它服务提供服务。s o a 中的服务分为功能性服务和质量保证服 务两种。图2 2 是这两种服务分类的具体情况【1 4 】: 9 武汉理1 二大学硕士学位论文 2 2 4s o a 基本特征 图2 2s o a 服务分类情况 s o a 的实施具有几个鲜明的基本特征。实施s o a 的关键目标是实现企业r r 资产的最大化重用。要实现这一目标,就要在实施s o a 的过程中牢记以下特征: 1 ) 可从企业外部访问 通常被称为业务伙伴的外部用户也能像企业内部用户一样的访问相同服 务。业务伙伴采用先进的b 2 b 协议相互合作或者访问以w e b 服务方式提供的企 业服务。当业务伙伴基于业务目的交换业务信息时,他们就参与了一次会话。 会话是业务伙伴间一系列的一条或多条业务信息的交换。会话类型( 会话复杂 或简单、长或短等) 取决于业务目的【1 5 】。 2 ) 随时可用 当有服务使用者请求服务时,s o a 要求必须有服务提供者能够响应。大多 数s o a 都能够为企业门户( 就是一个联接企业内部和外部的网站,它可以为企 业提供一个单一的访问企业各种信息资源的入口) 应用之类的同步应用和b 2 b 之类的异步应用提供服务。同步应用对于其所使用的服务具有很强的依赖性。 许多同步应用通常部署在前台,其最终用户很容易受到服务提供者短缺的 影响。很多情况下,同步应用利用分布式服务提供者,这样可以响应更多的用 户请求。但是,随着提供特定服务功能的服务器数量的增长,出现短缺的可能 性也呈指数级数上升。 相比之下,异步应用要更为稳健,因为其采用队列请求设计,因此可以容 l o 武汉理【= 大学硕士学位论文 许出现服务提供者短缺或迟滞的情况。异步应用大多数情况下是部署在后台的, 用户通常不会觉察到短暂的短缺。大部分情况下异步应用能够稳健应对短时间 短缺,但是长时间短缺则会引发严重问题。在服务短缺的情况下、队列引擎将 罕见的大量工作推到共享的应用资源中时,可能会出现队列溢出甚至服务死锁。 服务使用者要求提供同步服务时,通常是基于其自身理解或使用习惯的。 在多数情况下,采用异步模型可以达到同样的效果,更能够体现s o a 的最佳特 性。当然,并不是所有情况下都应当采用异步设计模式。但大多数情况下,异 步消息可以确保系统在不同负荷下的伸缩性,在接口响应时间不是很短时尤其 如此。 3 ) 粗粒度服务接口 粗粒度服务提供一项特定的业务功能,而细粒度服务代表了技术组件方法。 他们的差异可以由下面的例子说明,假若存在某一计费系统,向其中添加一个 客户是典型的粗粒度服务,而你可以使用几个细粒度服务实现同一功能,如: 将客户名录入到计费系统中,添加详细的客户联系方式、添加计费信息等等。 采用粗粒度服务接口的优点在于使用者和服务层之间不必再进行多次的往 复,一次往复就足够。i n t e r n e t 环境中有保障的t c p i p 会话己不再占据主导、建 立连接的成本也过高,因此在该环境中进行应用开发时粗粒度服务接口的优点 更为明显。 除去基本的往复效率,事务稳定性问题也很重要。在一个单独事务中包含 的多段细粒度请求可能使事务处理时间过长、导致后台服务超时,从而中止。 与此相反,从事务的角度来看,向后台服务发送大块数据的粗粒度请求可能是 获取反馈的唯一途径。 4 ) 分级 一个关于粗粒度服务的争论是此类服务比细粒度服务的重用性差,因为粗 粒度服务倾向于解决专门的业务问题,因此通用性差、重用性设计困难。解决 该争论的方法之一就是允许采用不同的粗粒度等级来创建服务。这种服务分级 包含了粒度较细、重用性较高的服务,也包含粒度较粗、重用性较差的服务。 在服务分级方面,须注意服务层的公丌服务通常由后台系统或s o a 平台中 现有的本地服务组成。因此允许在服务层建立私有服务是非常重要的。正确的 文档、配置管理和私有服务的重用对于i t 部门在s o a 服务层快速丌发新的公开 服务能力具有重要的影响。 武汉理t 大学硕士学位论文 5 ) 松散耦合 s o a 具有“松散耦合组件服务,这一点区别于大多数其他的组件架构。 该方法旨在将服务使用者和服务提供者在服务实现和客户如何使用服务方面隔 离开来。 服务提供者和服务使用者问松散耦合背后的关键点是服务接口作为与服务 实现分离的实体而存在。这是服务实现能够在完全不影响服务使用者的情况下 进行修改。 大多数松散耦合都依靠基于服务消息的接口。基于消息的接口能够兼容多 种传输方式( 如h t t p 、j m s 、t c p i p 、m o m 等) 。基于消息的接口可以采用 同步和异步协议实现,w e b 服务对于s o a 服务接口来讲是一个重要的标准。 当使用者调用一个w e b 服务时,被调用的对象可以是c i c s 事务、d c o m 或c o r b a 对象、j 2 e ee j b 或t u x e d o 服务等,但这与服务使用者无关。底层 实现并不重要。 消息类w e b 服务通常是松散耦合和文档驱动的,这要优于与服务特定接口 的连接。当客户调用消息类w e b 服务时,客户通常发送的是一个完整的文档( 如 采购订单) ,面非一组离散的参数。w e b 服务接收整个文档、进行处理。由于 客户和w e b 服务间不存在紧密耦合请求响应,消息类w c b 服务在客户和服务器 间提供了更为松散的耦合。 6 ) 可重用的服务及服务接口设计管理 如果完全按照可重用的原则设计服务,s o a 将可以使应用变得更为灵活。 可重用服务采用通用格式提供重要的业务功能,为开发人员节约了大量时间。 设计可重用服务是与数据库设计或通用数据建模类似的最有价值的工作。由于 服务设计是成功的关键,因此s o a 实施者应当寻找一种适当的方法进行服务设 计过程管理。 服务设计管理根本上讲是服务设计问题,服务设计需要在两点间折衷,走 捷径的项目战术与企业构建可重用通用服务的长期目标。 超越项目短期目标进行服务接口的开发和评估是迈向精确定义服务接口的 重要一步,同时还需要为接口文档、服务实现文档及所有重要的非功能性特征 设立标准。 在大型组织中实现重用的个先决条件是建立通用( 设计阶段) 服务库和 开发流程,以保证重用的正确性和通用性。此外,对记述服务设计和开发的服 1 2 武汉理= 大学硕十学位论文 务文档进行评估也是成功利用服务库的关键。 简言之,不按规则编写服务将无法保证可提供重用性的s o a 的成功实施。 在执行规则的过程中会产生财务费用,需要在制定s o a 实施计划时加以考虑。 7 、i 标准化的接口 近年来出现的两个重要标准x m l 和w e b 服务增加了全新的重要功能,将 s o a 推向更高的层面,并大大提升了s o a 的价值。尽管以往的s o a 产品都是 专有的、并且要求1 1 r 部门在其特定环境中开发所有应用,但x m l 和w c b 服务 标准化的开放性使企业能够在所部署的所有技术和应用中采用s o a 。 w e b 服务使应用功能得以通过标准化接口( w s d l ) 提供,并可基于标准化 传输方式( h r r p 和j m s ) 、采用标准化协议( s o a p ) 进行调用。例如,开发 人员可以采用最适于门户开发的工具轻松创建一个新的门户应用,并可以重用 e r p 系统和定制j 2 e e 应用中的现有服务,而完全无须了解这些应用的内部工作 原理。采用x m l ,门户开发人员无须了解特定的数据表示格式,便能够在这些 应用间轻松地交换数据。 你也可以不采用w e b 服务或x m l 来创建s o a 应用,但是这两种标准的重 要性日益增加、应用只趋普遍。尽管目前只有几种服务使用者支持这两个标准, 但未来大多数的服务使用者都会将其作为企业的服务访问标准。 8 ) 支持各种消息模式 s o a 中可能存在以下消息模式。在一个s o a 实现中,常会出现混合采用不 同消息模式的服务。 ( 1 ) 无状态的消息。使用者向提供者发送的每条消息都必须包含提供者处理 该消息所需的全部信息。这一限定使服务提供者无须存储使用者的状态信息, 从而更易扩展。 ( 2 ) 有状态的消息。使用者与提供者共享使用者的特定环境信息,此信息包 含在提供者和使用者交换的消息中。这一限定使提供者与使用者间的通信更加 灵活,但由于服务提供者必须存储每个使用者的共享环境信息,因此其整体可 扩展性明显减弱。该限定增强t n 务提供者和使用者的耦合关系,提高了交换 服务提供者的服务难度。 ( 3 ) 等幂消息。向软件代理发送多次重复消息的效果和发送单条消息相同。 这一限定使提供者和消费者能够在出现故障时简单的复制消息,从而改进服务 可靠性。 武汉理丁= 大学硕十学位论文 9 ) 精确定义的服务接口 服务是由提供者和使用者间的契约定义的。契约规定了服务使用方法及使 用者期望的最终结果。此外,还可以在其中规定服务质量。需要注意的关键点 是,服务契约必须进行精确定义。 2 2 5s o a 优势 了解了s o a 的定义和基本特征后,将会对s o a 有一个粗略的印象,我们 再来看看s o a 潜在的优点【1 6 】: 1 ) 编码灵活性 可基于模块化的低层服务、采用不同组合方式创建高层服务,从而实现重 用,这些都体现了编码的灵活性。此外,由于服务使用者不直接访问服务提供 者,这种服务实现方式本身也可以灵活使用。 2 ) 明确开发人员角色 例如,熟悉b e s 的开发人员可以集中精力在重用访问层,协调层开发人员 则无须特别了解b e s 的实现,而将精力放在解决高价值的业务问题上。 3 ) 支持多种客户类型 借助精确定义的服务接口和对x m l 、w e b 服务标准的支持,可以支持多种 客户类型,包括p d a 、手机等新型访问渠道。 4 1 更易维护 服务提供者和服务使用者的松散耦合关系及对开放标准的采用确保了该特 性的实现。 5 ) 更好的伸缩性 依靠服务设计、开发和部署所采用的架构模型实现伸缩性。服务提供者可 以彼此独立调整,以满足服务需求。 6 ) 更高的可用性 该特性在服务提供者和服务使用者的松散耦合关系上得以体现。使用者无 须了解提供者的实现细节,这样服务提供者就可以在w e b l o g i c 集群环境中灵活 部署,使用者可以被转接到可用的例程上。 s o a 可以看作是b s 模型、x m l w e bs e r v i c e 技术之后的自然延伸。s o a 将能够帮助我们站在一个新的高度理解企业级架构中的各种组件的丌发、部署 形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务 1 4 武汉理下大学硕十学位论文 系统。较之以往,以s o a 架构的系统能够更加从容地面对业务的急剧变化【17 1 。 2 3s o a 方法与其他方法的比较 广义上讲,s o a 方法学贯穿于i t 生命周期的各个阶段和各个方面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小班美术春节烟火教案反思
- 大班电脑活动教案(2025-2026学年)
- 专题抛物线其性质年中职数学对口升学考试专题复习精讲教案
- 幼儿园小班综合《母亲节》教案
- 不等式不等式组经典教案(2025-2026学年)
- 名校联盟河南省洛阳市下峪镇初级中学八年级语文上册阿长与山海经第一课时教案
- 幼儿园小班环保教案我们的朋友水
- 苏教版六年级下册石灰吟语文教案
- 2025年超星尔雅学习通《数据可视化工具应用案例分享》考试备考题库及答案解析
- 2025年超星尔雅学习通《品牌推广成功案例分享》考试备考题库及答案解析
- 2025年甘肃省白银市靖远县石门乡人民政府选聘专业化管理村文书考试笔试备考题库及答案解析
- 2025云南山水物业服务有限公司招聘(6人)笔试考试参考试题及答案解析
- 2025年大学《马克思主义理论-马克思主义中国化研究》考试参考题库及答案解析
- (通讯维修工)理论知识考试题库
- 2025至2030中国大豆浓缩蛋白行业市场深度研究与战略咨询分析报告
- 码头雷电应急预案
- 《对世界的不断探索》教案
- 道路施工断交施工方案
- 2025年骨干教师招聘考试试题及答案
- 空调安全操作规程
- 部编版六年级上册语文9.《我的战友邱少云》同步练习(含答案)
评论
0/150
提交评论