(计算机软件与理论专业论文)soa架构研究及其在智能化科技评审中的应用.pdf_第1页
(计算机软件与理论专业论文)soa架构研究及其在智能化科技评审中的应用.pdf_第2页
(计算机软件与理论专业论文)soa架构研究及其在智能化科技评审中的应用.pdf_第3页
(计算机软件与理论专业论文)soa架构研究及其在智能化科技评审中的应用.pdf_第4页
(计算机软件与理论专业论文)soa架构研究及其在智能化科技评审中的应用.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机软件与理论专业论文)soa架构研究及其在智能化科技评审中的应用.pdf.pdf 免费下载

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

文档简介

摘要 s o a 对现代软件开发模式产生了深远的影响,它通过服务的发布、发现以及绑定等机 制为其他的应用程序提供服务。s o a 具有松散耦合、粗粒度、互操作性等优点。通过采用 s o a 架构的设计思路,可以最大程度地减少系统间的耦合,提高可重用性,因此它能够较 好地整合遗留系统,提高了系统的灵活性和可扩展性。 w e bs e r v i c e 是实现s o a 的最佳方式。但是目前大多数对w e bs e n ,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 的s o a 架构设计方法方面的研究还缺乏关注。 论文从s o a 架构和w e bs e r v i c e 技术理论知识入手,阐述了两者间的关系,以科技成 果评价系统的研究开发为背景,研究了面向服务的软件开发的体系结构、原理和方法。提 出了适应层次划分思想的面向服务软件开发的体系结构,阐述相应的设计模式:进而结合实 例深入讨论了系统分析、设计和实现;最后对于系统中所应用的关键技术进行了详细的分 析。其中,主要阐述了用w e bs e r v i c e 实现s o a 的详细方法及相关技术。 概括起来,文中的研究关注于四个方面: 0 ) s o a 体系结构的研究 ( 2 ) s o a 体系结构的应用 ( 3 ) 面向服务的分析与设计 在这些基本理论的指导下,论文结合经典的面向对象的分析与设计方法和传统的软件 体系结构的分层思想,在实践的基础上构建了基于s o a 的应用开发的模型体系结构,该模 型共分为四层:表示层、业务逻辑层、数据访问层和数据层。 论文最后,结合科技成果评价系统实例,根据该系统自身的特点,在n e t 开发平台下, 实践了基于s o a 的应用开发。 关键字:软件架构,w e bs e r v i c e s ,s o a ,n e t a b s t r a c t s o ah a sb r o u g h tp r o f o u n di m p a c to nt h ed e v e l o p i n gm o d u l eo fm o d e r ns o f t w a r e ,a si t p r o 、,i d 髓s e r 啊c e s f o ro t h e r a p p l i c a t i o np r o g r a m st h r o u g h m e c h a n i s m ss u c ha st h e p u b l i s h i n g f m d i n ga n dt h eb i n d i n ge t c o fs e r v i c e s o ap r o s s e s s e st h es o u n df e a t u r e ss u c h 勰 b e i n gl o o s e n e dc o u p l i n g ,r o u g hg r a i n - s i z ea n dr e t r o - o p e r a t i v ee t c t h r o u g ht h em e a n so ft h e d e s i g ns c h e m ea d o p t i n gt h es o af r a m e w o r k ,t h ec o u p l i n ga m o n gs y s t e m sc a nb er e d u c e dt ot h e m a x i m u me x t e n ta n dt h es o f t w a r em u s i n gc a l lb ei m p r o v e d ,他r e f o r et h er e m a i n i n gs y s t e mc 距 a c h i e v eab e t t e ri n t e g r a t i o nt ou p g r a d ei t sf l e x i b i l i t ya n de x p a n d a b i l i t y w e bs e r v i c ei st h eb e s tm e t h o do fi m p l e m e n t i n gs o a a c c o r f m gt ot h a tt h er e s e a r c h e so n w e bs e r v i c e sa r em o s t l yf o c u s i n go nt h es t a n d a r de x t e n s i o n ,s p o t i n t e g r a t i o na p p l i c a t i o na n d d e v e l o p i n gt o o l sr a t h e rt h a nd e s i g nm e t h o d sa n dt h et r a d i t i o n a ls o a b a s e do nw e bs e r v i c e sh a s s h o w e dm a n yi n s u f f i c i e n c i e s t h i st h e s i ss t a r t e dw i t hi n t r o d u c t i o no ft h e o r i e so ns o aa n dw e bs l v i c c sa n dt h e r a l a t i o n s h i p sb e t w e e nt h e m t h i st h e s i su s e dt h ed e v e l o p m e n to ft h ep r o j c c tm a n a g e m e n ts y s t e m a st h eb a c k g r o u n da n dr e s e a r c h e dt h ea r c h i t e c t u r e ,t h e o r i e sa n dm e t l l o d so ft h es e r v i c e o r i e n d e d t e c h n o l o g y i nt h ef a s t , a u t h o rp u t sf o r w a r dt oa na r c h i t e c t u r e w h i c hn l e e t st ot h ei d e ao ft i r e s a n dt h et h e o r i e so ft h es e r v i c e - o r i e n t e d a n dd e s c r i b e st h ed e s i g np a t t e r n sa sw e l l n e x t ,c o m b i n e d 诵t ha na p p l i c a t i o ns y s t e me x a m p l e ,t h ea n a l y s i s ,d e s i g na n di m p l e m e n t a t i o no ft h es ) ,s t e ma r ea n d e e p l yd i s c u s s e di n tt h e s i s a tl a s t ,a u t h o ra n a l y z e st h ep r i m a r yt e c h n o l o g i e si nd e t a i l a m o n g t h e m , t h ei m p l e m e n t a t i o no fs o ab a s e do nw 曲s e r v i c e si st h em a i n i ng e n e r a l ,t h i st h e s i si sf o c u s e do nf o u rp o i n t s : ( 1 ) r e e s a r c ha p p l i c a t i o na b o u ts o a ; ( 2 ) a p p l i c a t i o no fs o a ; ( 3 ) s 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 f o l l o w i n gt h e s ep r i n c i p l e ,t h i st h e s i ss e t u p s a l la r c h i t e c t u r eb a s e do ns o a ,w h i c hi s c o m p o s e do fc l i e n tt i e r , b u s i n e s so u t w a r da p p e m a n c et i e r , b u s i n e s sl o g i cl a y e r , d a t aa c c e s sl a y e r a n dd a t al a y e r , b a s e do nt h eo o a da n dt h et h o u g h to fs o f t w a r ed e l a m i n a t i n g a tl a s t ,r e a l i z i n ga ne x a m p l e ,w h i c hi sb a s e do nt h ep l a t f o r mo f n e ta c c o r d i n gt h ep r i n c i l e s o f s o a k e yw o r d s :s o f t w a r ea r c h i t e c t u r e ,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 ,w e bs e r v i c e s ,n e t l i 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得宁夏大学或其它教育机构的学位或证书而使 用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示了谢意。 研究生签名: 狱艨铭 时间: 刎年苦月砷日 关于论文使用授权的说明 本人完全了解宁夏大学有关保留、使用学位论文的规定,即:学校有权保留送交 论文的复印件和磁盘,允许论文被查阅和借阅,可以采用影印、缩印或扫描等复制手 段保存、汇编学位论文。同意宁夏大学可以用不同方式在不同媒体上发表、传播学位 论文的全部或部分内容。 ( 保密的学位论文在解密后应遵守此协议) 研究生躲锹7 关铭 帆细年f 月彳日 导师签名: 沈它释 j 时间:歹矽客年5 月可 宁夏人学硕l + 学位论文第一章, - j f 占 1 1 研究背景 第一章引言 伴随信息技术的发展,不同种类的操作系统、应用软件、系统软件和应用基础结构相 互交织,构成了企业i t 系统的现状。一些现存的应用程序被用来处理当前的业务流程,因 此从头建立一个新的基础环境是不可能的。当企业需要升级或扩展其中任意一个系统时, 所要增加的不仅仅是r r 方面的投资,还需要增强对这些系统的管理。随着各个系统的不断 扩展,系统数量的增加,系统结构的复杂化,系统之间的很多功能属于重复开发,但是信 息很难实现共享,因此对于系统的管理往往会越来越困难,最终形成一个个信息孤岛。 要消除这些不利于企业信息化发展的因素,一方面需要将现有的多个应用系统进行集 成和整合,建立统一的系统平台;另一方面随着应用的快速变化,企业应该能对业务的变 化做出快速的反应,利用对现有的应用程序和应用基础结构的投资来解决新的业务需求, 不断更新业务流程和模式,建设新的应用系统。而s o a ( 面向服务的架构) 软件架构是解 决这些问题的方法之一。 1 2 研究目的 s o a 是一种架构模型,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行 分布式部署、组合和使用。s o a 凭借其松散耦合的特性,使得企业可以按照模块化的方式 来添加新服务或更新现有服务,以解决新的业务需要,并可以把企业现有的或已有的应用 作为服务,从而保证了现有的1 1 r 基础建设投资。 近几年来,随着科学技术的发展,申报的科技成果项目逐年增加。由于申报单位和科 技成果评审单位的工作人员双方都需要手工填写大量的书面材料,致使审批和评审工作任 务量大、时间紧迫。这就难以对科技成果项目中各类大量数据进行有效的汇总、分析和统 计,也不便于最终的授奖工作。由于目前的科技成果评审工作主要是以专家手工评议的结 果作为评奖依据,尚未采用相对科学评价方法和计算机信息化管理的评审方式,致使人为 因素过多,难以公平合理地体现出科技成果的真实价值。所以,评审单位急需利用现代化 的信息技术,建立一套拥有科学评价方法的科技成果评审系统来替代原有的工作方式,从 而满足当前评审工作科学性、公平性、合理性的要求。由于该系统基于s o a 使用w e bs e r v i c c 技术实现,因此具有了开放性和可扩展性,提供了与其他应用系统集成的接口,并实现了 资源的横向共享。同时,该系统中提供的w e bs e r v i c e 可被其他系统访问,使r r 资产达到 了最大化的重用。 宁夏人学硕 :学位论文第一章引言 1 3 研究意义 s o a 对软件体系结构的研究有重要的意义。它是对现有体系结构的继承和发展。较 好的解决了面向对象和面向组件分析与设计方法无法解决可重用和可维护性的问题,并消 除了不同协议和软硬件平台带来的整合问题。 s o a 对分布式的企业级应用开发有很强的现实指导意义。s o a 架构使i t 环境可以更 加灵活且更快地响应不断改变的业务需求,同时使异构系统和应用程序尽可能无逢地进行 通信,达到消减成本和r r 资产的最大化重用。 s o a 对企业r r 标准体系的建立和完善具有重要的支撑作用。采用s o a 技术为信息系 统的沟通提供了技术基础,且随着s o a 在商业企业的应用,必将促进统一的商业领域电子 商务行业标准的发展和制趔1 1 。 1 4 国内外研究发展现状 1 4 1 国外研究发展现状 在国外,面向服务的架构早在1 9 9 6 年就提出来了,但是当时计算机技术并不发达,因 此也没有引起广泛的关注度。随着w e b 技术的发展,以及w e bs e r v i c e 技术的逐渐成熟, s o a 开始受到更多专业厂商的支持。最初m m 和b e a 是该理念的主要推动者,后来有越 来越多的企业加入,并且开始宣称支持s o a 。这其中包括o r a c l e ,s a p ,m i c r o s o f t 等。有 此可见,s o a 正在成为一个主流的趋势。 2 0 0 5 年,o a s i s 开始组织为s o a 和它的各种组件创建一些标准术语。接着,它成立 专门的小组来构建s o a 适配器的蓝图。各大企业如i b m ,b e a ,s a p ,o r a c l e ,s y b a s e 等 在2 0 0 5 年1 1 月底组织了团队建立了新的s o a 编程模型。 但是到目前为止,s o a 并没有形成统一的规范,各大厂商对s o a 的实现也不尽相同。 当前j a v a 平台下的s o a 主要存在着两大阵营:j b i 以及s c a 。j b i ( j a v ab u s i n e s si n t e g r a t i o n ) 的提出是基于s o a 提倡的方法和原则,为了解决e a i 和b 2 b 若干问题的j a v a 标准。s c a ( s e 州c ec o m p o n e n ta r c h i t e c h t u r e ) 是被很多厂商推荐的标准,为不同平台不同语言解决 组装问题的更广泛的方法,但是s c a 还没有推出非常系统的规范。目前;s u n 和t i b c o 公司支持j b i ,而b e a ,1 1 3 m ,o r a c l e 和s y b a s e 公司支持s c a 。 m i c r o s o f t 推出的构建基于s o a 应用程序的平台为i n d i g o 平台,使得专门用于构建s o a 应用程序的技术得到广泛应用。i n d i g o 允许目前创建面向对象应用程序的开发人员采用n e t f r a m e w o r k 以相似的方式来创建面向服务的应用程序。同时为了让这些应用程序能够与运 行在w i n d o w s 和其他平台上的软件有效地进行交互,i n d i g o 基于n e tf r a m 创v o r k 2 0 并对其 进行了扩展( n e tf r a m e w o r k 3 0 之后在i n d i g o 基础上发展为w i n d o w sc o m m u c a t i o n f u d a t i o n ) ,提供了创建由客户端访问的服务的基础,这一基础主要由一组运行于公共语 言运行库( c l r ) 上的类来实现。客户端与服务通过i n d i g o 的内置协议s o a p 进行交互。 2 宁夏尺学硕 学f 节论文第一带引言 i n d i g o 采用了一些更新的w e bs e r v i c e 技术,这些技术统称为w s 一事规范。这些文档定义了 用于添加可靠消息传输、安全性、事务以及更多基于s o a p 的w e bs e r v i c e 的多供应商方 式。 1 4 2 国内研究发展现状 在国内最近的软件发展中,s o a 也逐渐成为了时下的热门话题,但是对比国外s o a 是不可抵挡的架势,国内的厂商对s o a 并不狂热,科研机构和学术著作也不多见。为了在 中国进一步推进s o a 的发展,促进国内s o a 架构的不断完善,刑成中国s o a 架构模型和 规则规范,长风联盟s o a r a t f 组( 成员企业包括中科红旗,人大金仓,东方通等) 在 中国的成立,致力于推动中国s o a 的发展。新中大国内发布了国内首款基于s o a 的管理 软件,用友从2 0 0 3 年开始研发的下一代产品u 9 也是基于s o a 的技术架构。 虽然在国内尚处于早期部署阶段,但企业对s o a 的投入却在快速增加。埃森哲的调查 显示,一些国内企业出于业务需要,期望通过部署,获得更大的商业价值。调查显示,四 分之一的企业已经针对s o a 采取行动,包括进行内部s o a 相关培训、规划s o a 系统架构 蓝图、测试s o a 应用以及把s o a 作为主要流程架构在企业内部署。另有6 7 8 的企业虽尚 未采取行动,但他们表示正在了解和研究s o a 。上述中国企业中,有8 0 9 的公司表示将 采取积极态度部署s o a ,7 3 7 9 6 的公司表示在未来两年内有s o a 项目的部署计划。可以预 计未来一两年内,s o a 在中国将进入快速发展期曙1 。 1 5 论文主旨与创新点 论文是在s o a 研究蓬勃发展的形势下提出的。论文主旨是将s o a 理论应用于实际的 信息系统的设计与开发中,使得在信息系统的生命周期中特别是设计与实现阶段,以一种 全新的模式展开。论文主要阐述了s 0 i a 架构思想及其实现技术w :c ;bs c l v i c e ,重点阐 述面向服务的系统分析与设计的思想及方法,以科技成果智能化评审系统作为研究的主体, 主要以系统中的用户管理、项目管理、项目评审等作为设计和实现的主要对象。论文有很 强的可操作性和实际应用价值。 论文的独特之处在于对面向服务的系统分析与设计进行了重点的阐述,并提出了自顶 向下领域分解、自底向上的现有系统分析和中间向外的目标服务建模三种分析方法与服务 注册、服务总线和服务编排三种设计方法,以一个信息系统实例来阐述s o a 如何为信息系 统实现的进一步发展和应用提供新的途径和方法。进而为今后s o a 架构的广泛应用提供初 步经验。 3 宁夏人学硕 :学位论文第:帝面向服务的架构f s o a ) 曼皇曼i 一; 一 一i 曼曼曼曼曼曼曼皇曼曼曼曼曼! 曼曼皇曼曼曼! 曼曼曼曼曼! 曼曼曼曼曼曼曼曼曼曼! ! 曼曼曼曼! 曼曼曼曼曼皇苎曼皇 第二章面向服务的架构( s o a ) 2 1 软件体系结构概述 六十年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重 点放在数据结构和算法的选择上,随着软件系统规模越来越大、越来越复杂,整个系统的 结构和规格说明显得越来越重要,现有的软件工程方法对此显得力不从心。经过一段时期 的探索,人们认识到软件体系结构作为软件开发中的设计思想和指导方针,对软件开发有 重要的作用,并认为对软件体系结构进行系统深入的研究,将会成为提高软件生产率和解 决软件维护问题的新的最有希望的途经。 软件体系结构尚处在发展期,对于其定义,目前学术界尚未形成统一意见,不同学者 有不同看法。软件体系结构又常被称为构架,下面是一个较典型的定义:b a s s 等人在 ( s o f t w a r ea r c h i t e c t u r ei np r a c t i c e ) 一书中提到,程序或计算系统的软件体系结构是系统的 一个或多个结构,包括软件构件、构件的外部可视属性和构件之间的关系。其中外部可 视属性是指软件构件提供的服务、性能、特性、错误处理机制、共享资源使用等。构件可 以是对象、进程、函数库或者数据库。 软件体系结构是软件系统的高级抽象,往往体现了系统开发中最早做出的决策。它体 现了根本性的系统设计思路,对系统起着最为深远的影响。体系结构在明确了系统的各个 组成部分的同时,也限定了各部分间的交互方式。这将进一步影响到开发资源的配置和开 发团队的组织等其他方面的开发活动,并影响最终的软件产品质量。在大型软件系统中, 软件体系结构是决定系统能否顺利实现的关键因素之一,不当的体系结构会给整个系统带 来灾难性的后果。 软件体系结构贯穿于软件开发和维护的全过程。开发过程中它能够帮助软件设计者全 面而深刻的理解系统各层次之间的关系,从而更好的分析系统的性能。同时,软件体系结 构是软件设计者之间以及设计者和用户之间快速高效交流的工具,提高需求分析和软件设 计的效率,能够将用户提供的业务信息和设计者的设计思想更好的融合在一起。维护过程 中,参照原有的软件体系结构,能够保证在不破坏完整性的前提下,对系统进行维护、扩 充和升级。软件体系结构是应付复杂需求、提高开发效率、改善系统易维护性的有效措施。 在系统分析阶段,借助于软件体系结构进行描述,可以使问题得以进一步抽象,使整 个系统更易于被系统分析设计人员把握,完善对系统的理解。软件体系结构决定了开发和 维护项目的组织结构婚。体系结构良好的软件系统中,不仅构件库能够复用,还可以在更 高层次上实现软件子系统乃至软件系统框架的复用。软件体系结构级的复用意味着体系结 构的决策能在具有相似需求的多个系统中发生影响,这比代码级的复用要有更大的好处。 4 宁夏大学硕l j 学位论文第一:章面向服务的架构( s o a ) 2 2 软件体系结构的演变 在软件应用规模和应用领域迅速扩大的同时,软件开发技术也在发生根本性的变革, 在此过程中,软件体系结构也经历了与之相对应的一系列变革。软件体系结构的演变历史 及发展趋势如图2 - 1 所示。 分面 槿结 o 甾 囊 布 舞 向 萋鍪 c 办 霪 对服 体 象 囊 务 系 累 系 体体 绪结 链 结 练 系系 梅 构 构 结 绪 宝砉 丰笥构 榭 构 梅 图p 1 体系结构发展历史与趋势 软件体系结构的发展阶段如下啼1 : ( 1 ) 面向过程:在此阶段,软件体系结构已经是系统开发中的一个明确概念。此阶段系 统规模较小,主要采用结构化软件开发技术,在结构化程序中,由语句构成模块,模块的 聚集和嵌套又构成层层调用的高层结构。采用结构化程序设计方法进行自项向下逐步求精 的设计,模块之间高耦合,通常适用于针对一个具体的应用实现,因此造成了软件可重用 性差、代码不易读、系统可维护性差等问题。 ( 2 ) 面向对象:面向对象开发技术以对象作为最基本的元素,将软件系统看成是离散的 对象的集合,这样可以让分析者、设计者和用户更清楚地表述概念,面向对象技术中的封 装、继承和多态性等机制降低了模块之间的耦合,提高了软件重用性。 当一个对象通过过程调用与其他对象交互时,必须知道其他对象的标志。当一个对象 的标志改变时,需要对所有调用这一方法的对象进行修改,这种相关性是一种紧藕合的模 式。与面向过程相比,这种模式在一般的小型系统中充分体现了它的优越性,但是对于一 个大系统来说,这样的抽象级别太低了。面向对象技术阶段的软件复用主要是源代码形式 的复用,这要求设计者在复用软件时必须理解其设计思路和编程风格,因此给跨应用系统 重用造成了困难。 ( 3 ) 基于组件:基于组件的设计并不是一种新技术,它是从对象范例中自然发展而来的。 在面向对象的分析和设计的早期,细粒度的对象被标榜为提供“重用”的机制,但是这样 的对象的粒度级别太低了,没有适当的标准可以用来使重用广泛应用于实践之中。在应用 程序开发和系统集成中,粗粒度组件越来越成为重用的目标。这些粗粒度对象通过内聚一 些更细粒度的对象来提供定义良好的功能。通过这种方式,还可以将打包的解决方案套件 封装成这样的“组件”。 基于组件的软件体系结构中的组件是指可插入到语言、工具、操作系统、网络系统中 的二进制代码和数据h 。一个组件由一组对象构成,它们共同工作来提供一种系统功能。 组件提供接口来公开其定义的关键部分,通过接口技术将一些相关对象有机地组合在一起, 5 宁夏大学硕 j 学位论文第j 章面向服务的架构( s o a ) 接口是组件的开发者和使用者之间的契约,接口的确定使得组件的开发者和使用者得以分 开。组件封装的所有对象都被隐藏起来,基于组件的软件体系结构为设计大型应用软件系 统给予了强有力的支持,它是大型系统中比对象的结构粒度更高的封装体。但是在基于组 件的软件体系结构中组件开发周期长,而且由于异质组件的兼容性问题,难以实现跨防火 墙调用,直接影响了在大型分布式系统中的应用。因此需要新的软件体系结构解决异构系 统之间的信息共享问题。 ( 4 ) 面向服务:面向服务的体系架构( 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 ,s o a ) 以服务为中心, 它不是一个新鲜事物,而是更传统的面向对象的模型的替代模型,它们之间有一定的内在 联系嗡1 ,如图2 2 所示。 图2 - 2 面向服务的设计层次 形成s o a 的基本元素是服务,它是组件的封装体,相对于组件来说,服务是更高一级 的抽象级别。如下所图所示粒度的级别,服务的粒度级别通常会比对象或者组件的粒度级 别更粗。在典型状况下,服务会公开一个单一的、离散的业务流程。服务粒度与业务价值 之间的变化关系如图2 - 3 所示。 “嚣b 憾衲e 啦v t l mm o r eb u l h 粥sv a l u e i i i 啪 c o 唧嘲 & m 嘲l i 秭n e - g 髓l 嘲c o m e - c a r d 图2 3 服务粒度级别和业务价值联系图 虽然基于s o a 的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计 却是面向服务的。由于它考虑到了系统内的对象,所以虽然s o a 是基于对象的,但是作为 一个整体,它却不是面向对象的,主要原冈在于接口本身,在设计中采用了一些更新的技 术。 s o a 是一种松散耦合的体系结构,这使得各服务在交互过程中无需考虑双方的内部实 现细节、部署在何种平台之上,解决了组织内部的所有异构系统中共用业务逻辑,实现了 跨防火墙和外部合作伙伴的信息共享。 6 宁夏人学硕i 。学位论史第二章面向服务的架构( s o a ) 2 3s o a ( 面向服务的架构) 的基本概念 目前,面向服务体系架构( s o a ) j 丕没有一个公认的定义。许多组织从不同角度和不同 侧面对s o a 进行了描述。 s o a 是一种组件模型,它通过应用程序功能单元( 称为服务) 之间定义完善的接口和 契约,来联系应用程序中的不同服列6 j 。 s o a 是一个软件架构,它包含四个关键概念:应用程序前端、服务、服务库和服务总 线。一个服务包含一个合约、一个或多个接口以及一个实现 7 1 。 g a r t n e r 认为:“s o a 是一种客户端服务器的软件设计方法,一项应用由软件服务和 软件服务使用者组成,s o a 与大多数通用的客户端服务器模型的不同之处,在于它着重 强调软件组件的松散耦合,并使用独立的标准接口。” 而w 3 c 则将s o a 定义为:“一种应用程序体系结构,在这种体系结构中,所有功能 都定义为独立的服务,这些服务带有定义明确的可调用接口,能以定义好的顺序调用这些 服务来形成业务流程。” s e r v i c e - a r c h i t e c t u r e c o r n 将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 0 1 认为所谓 服务就是精确定义、封装完善、独立于其他服务所处环境和状态的函数。w 3 c 将服务定义 为:“服务提供者完成一组工作,为服务使用者交付所需的最终结果。” 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 来说是非常重要的: 服务:逻辑实体,由一个或多个已发布接口定义的契约。 服务提供者:实现服务规范软件实体。 服务使用者( 或请求者) :调用服务提供者的软件实体。传统上,它称为“客户端”。 服务使用者可以是终端用户应用程序或另一个服务。 服务定位器:一种特殊类型的服务提供者,它作为一个注册中心,允许查找服务 提供者接口和服务位置。 服务代理:一种特殊类型的服务提供者,它可以将服务请求传送到一个或多个其 他的服务提供者。 图2 - 4 表示了这些术语之间的关系。 宁夏大学硕f 学位论史第二章面向服务的絮构( s o a ) 2 4s o a 的计算环境 图2 - 4 面向服务的术语 在面向服务的计算环境中,系统可以是高度分布、异构的。它一般包括服务运行时环 境( s e r v i c er u n t i m e ) 、服务总线( s e r v i c ei n t e g r a t i o ni n f r a s t r u c t u r e ) 、服务网关( s e r v i c e g a t e w a y ) 、服务注册库( s e r v i c cr e 西s t i y ) 和服务组装引擎( s e r v i c ec i l o 啪g 阻p h ye n g i n e ) 等嘲, 如图2 - 5 所示。 图2 - 5s o a 计算环境 服务运行时环境提供服务( 和服务组件) 的部署、运行和管理能力,支持服务编程模 型,保证系统的安全和性能等质量要素;服务总线提供服务中介的能力,使得服务使用者 能够以技术透明和位置透明的方式来访问服务;服务注册库支持存储和访问服务的描述信 息,是实现服务中介、管理服务的重要基础;而服务组装引擎,则将服务组装为服务流程, 完成一个业务过程:服务网关用于在不同服务计算环境的边界进行服务翻译,比如安全怕1 。 8 宁夏大学硕l 学位论文第二:章面向服务的架构( s o a 持。 面向服务的计算环境是开放的、标准的。由图2 - 6 所示的技术标准协议栈所定义和支 图2 - 6s o a 技术标准协议栈 s o a 标准协议栈分成两部分,左边的一半集中于体系结构的功能性方面,而右边的一 半集中于体系结构的服务质量方面睁1 。这些元素详细描述如下: 功能性方面包括: 传输是一种机制,用于将来自服务使用者的服务请求传送给服务提供者,并且将 来自服务提供者的响应传送给服务使用者。 服务通信协议是一种经过协商的机制,通过这种机制,服务提供者和服务使用者 可以就将要请求的内容和将要返回的内容进行沟通。 服务描述是一种经过协商的模式,用于描述服务是什么、应该如何调用服务以及 成功地调用服务需要什么数据。 服务描述实际可供使用的服务。 业务流程是一个服务的集合,可以按照特定的顺序并使用一组特定的规则进行调 用,以满足业务要求。注意,可以将业务流程本身看作是服务,这样就产生了业 务流程可以由不同粒度的服务组成的观念。 服务注册中心是一个服务和数据描述的存储库,服务提供者可以通过服务注册中 心发布它们的服务,而服务使用者可以通过服务注册中心发现或查找可用的服务。 服务注册中心可以给需要集中式存储库的服务提供其他的功能。 服务质量方面包括: 策略是一组条件和规则,在这些条件和规则之下,服务提供者可以使服务可用于 使用者。策略既有功能性方面,也有与服务质量有关的方面:因此,我们在功能 和服务质量两个区中都有策略功能。 安全性是规则集,可以应用于调用服务的服务使用者的身份验证、授权和访问控 制。 传输是属性集,可以应用于一组服务,以提供一致的结果。例如,如果要使用一 组服务来完成一项业务功能,则所有的服务必须都完成,或者没有一个完成。 9 宁夏人学硕 :学位论文第二章面向服务的架构( s o a ) i i 管理是属性集,可以应用于管理提供的服务或使用的服务。 2 5s o a 协作 面向服务的体系结构中的协作遵循“查找、绑定和调用”范例。其中服务使用者执行 动态服务定位,方法是查询服务注册中心来查找与其标准匹配的服务训。如果服务存在, 注册中心就给使用者提供接口契约和服务的端点地址。图2 - 7 展示了面向服务的体系结构 中协作支持“查找、绑定和调用”范例的实体。 图2 - 7s o a 体系结构图 它包括四个基本的实体:服务提供者、服务注册中心、服务使用者以及绑定服务使用者 和提供者的服务协议哺_ 。 服务提供者:服务提供者是一个可通过网络寻址的实体,它接受和执行来自消费者 的请求。它将自己的服务和接口契约发布到服务注册中心,以便服务使用者可以 发现和访问该服务。 注册机制:服务注册机制是一个包含可用服务的网络可寻址的目录,它是接受并存 储服务契约的实体,供服务消费者定位服务之用 服务协议:服务契约是服务消费者和服务提供者间交互方式的规范,指明了服务请 求和响应的格式。 服务消费者:服务消费者可以是一个请求服务的应用、服务或者其它类型的软件模 块,它从注册机制中定位其需要的服务,并通过传输机制来绑定该服务,然后通 过传递契约规定的格式的请求来执行服务功能。 面向服务的体系架构中的每个实体都扮演着服务提供者、使用者和注册中心这三种角 色中的某一种( 或多种) 。向服务的体系架构中的操作包括: 发布:为了使服务可访问,需要发布服务描述以使服务使用者可以发现和调用它。 发现:服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。 绑定和调用:在检索完服务描述之后,服务使用者继续根据服务描述中的信息来 调用服务。 1 0 宁夏大学硕l :学位论文第二章面向服务的架构( s o a ) 面向服务的体系架构中的构件包括: 服务:可以通过已发布接口使用服务,并且允许服务使用者调用服务。 服务描述:服务描述指定服务使用者与服务提供者交互的方式。它指定来自服务 的请求和响应的格式。服务描述可以指定一组前提条件、后置条件和服务质量( q o s ) 级别。 除了动态服务发现和服务接口契约的定义之外,面向服务的体系结构还具有以下特征: 服务是自包含和模块化的。 服务支持互操作性。 服务是松散耦合的。 服务是位置透明的。 服务是由组件组成的组合模块。 一 2 6s o a 的生命周期 面向服务体系结构中的每一个服务的生命周期,对于三个角色主体即服务提供者、服 务请求者、服务注册者来讲都涉及到了设计实现、部署和运行、管理四个阶段。而这三个 阶段对于每个角色主体来说任务和需求都是不同的。s o a 生命周期图如2 8 所示。 治理和最f 安践 g o v a m 硇虬c e p 髓c t i s 图2 - 8s o a 生命周期 设计实现( d e s i g na n di m p l e m e n t a t i o n ) 在设计实现的阶段包括服务实现、服务的接口描述文件制定、服务接口定义的开发和 测试。 服务的实现可以通过以下的集中方式进行: 1 开发新的服务 2 将现有的应用转化为服务 3 将其它的服务和应用组合为新的服务 部署( d e p l o y ) 1 1 宁夏大学硕 + 学位论文第二章面向服务的架构( s o a ) _ 一一 i 1 一一一一 一1 i 一 一;l 量曼蔓曼曼曼曼曼曼曼曼曼皇! 曼! 曼曼鼍氅 服务的部署包括两个方面 1 服务描述信息的发布,把服务对应的描述文件发布给服务的请求者或者是服务的 注册表。 2 把服务的可执行体部署到一个可执行的环境中,通常情况下该可执行环境就是一 个应用服务器。 运行( r u n ) 运行阶段可以调用服务。在该阶段,服务已经部署完毕,可以通过传输媒介来调用, 服务请求者可以执行查找和绑定操作。 管理( m a n a g e ) 管理阶段涵盖了服务的各个方面,安全性、可用性、性能、服务质量( q o s ) 以及企 业流程,这些都是管理阶段所必须考虑的问题。 治理和最佳实践( g o v e r n a n c e b e s tp r a c t i c e s ) 这是用来监督s o a 生命周期中每个阶段中所有方面的全部原则。由于治理和最佳实践 对s o a 开发有着深远的正面影响,因此被视为强制性原则而加以制度化,使之成为一个正 规的s o a 实现中必需的一部分【。 2 7s o a 的优势 面向服务体系架构自身具备的松散耦合、粗粒度、与平台无关等特点为软件需求者、 软件开发者和软件使用者都提供了很大的益处。 对于软件需求者来说,希望在最短的时间内、利用最少的成本,开发出最高效的应用 系统,同时能够在保持原有系统能够正常使用的前提下,对新需求做出快速的响应。 ( 1 ) s o a 能够将企业或者合作伙伴的有用资源改造成服务,并结合企业和合作伙伴的 现有的服务,开发出功能更强大的服务,这样软件的开发不用从零开始,大大缩短了开发 周期、降低了开发成本 ( 2 ) 为了提高企业的竞争力,企业是在不断的发展之中。因为s o a 具有松散耦合的特 性,所以对于业务细节上的变化只需通过简单的修改某个相应的服务来实现。对于完全新 增的业务,可以开发新的服务,然后整合到已有系统中。 对于软件开发者来说,希望将软件开发的难度和风险降至最低,并且开发出可重用性 好、可扩展性高的系统。 ( 1 ) 通过标准接口,不同服务之间可以自由的调用,而不必考虑所要调用的服务位置、 开发平台,或者开发语言等。从而实现了真正意义上的远程、跨平台和跨语言的应用系统。 软件开发者也不需要根据软件公司的习惯去学习新的编程语言,完全可以运用自己熟悉的 编程语言开发出高效的服务。同时s o a 提供了良好的应用开发、运行时服务部属和服务管 理能力。 ( 2 ) 服务架构要求应用程序分层,业务流程组织人员只专注于高层的服务组织来实现业 务,服务开发人员只负责服务的实现,而客户端开发人员则只根据自己熟悉的平台去开发 1 2 宁夏大学硕i :学位论文第二章面向服务的架构( s o a ) 用户访问界面。因此在实际的软件开发过程中,不同层的开发小组进行分工,提高了开发 的效率,使得大规模流水线生产成为可能。 ( 3 ) 服务提供者可以通过独立调整服务以满足需求上的修改,通过独立开发新的服务以 满足新的需求,大大提高了系统的可扩展性。 ( 4 ) s o a 允许清晰地表示流程流,这些流程流通过在特定业务服务中使用的组件的顺 序来标识。这给商业用户提供了监视业务操作的理想环境。业务建模反映在业务服务中。 流程操纵是以一定的模式重组部件( 构成业务服务的组件来实现的) 。这将进一步允许更改 流程流,而同时监视产生的结果,因此促进了持续改进。重用现有的组件降低了在增强或 创建新的业务服务的过程中带来的风险,也减少了维护和管理支持服务的基础架构的风险。 对于软件使用者来说,无非想要以最简单、快捷的方式自由、安全的使用到高质量的 服务。 ( 1 ) 面向服务架构是松藕合的服务架构通过服务提供者和服务使用者的松散耦合关系, 屏蔽了系统内部复杂的业务逻辑。 ( 2 ) 服务是位置透明的,服务不必与特定的系统和特定的网络相连接。 ( 3 ) 对于业务需求变化,s o a 能够方便组合松散耦合的服务,以提供更为优质和快速 的响应,允许服务使用者自动发现和连接可用的服务。 ( 4 ) 只要遵循标准的协议,客户端的开发可以使用任何平台以及任何开发语言。通过精 确定义的服务接口和对x m l ,w

温馨提示

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

评论

0/150

提交评论