




已阅读5页,还剩55页未读, 继续免费阅读
(计算机系统结构专业论文)spring架构在web服务中的应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硕士论文 s p r i n g 架构在w e b 服务中的应用研究 摘要 w e b 服务技术是为解决在i n t e m e t 环境下,松散耦合的w e b 服务之间进行相互调 用、相互集成而设计的技术框架。它的出现改变了以往分布式系统间的集成方式,使 得运用不同分布式集成架构的系统之间可以容易地相互沟通,这无疑极大地促进各种 商务系统、企业系统的集成,降低成本,提高效益。 s 砸n g 是优秀的为开发者设计的实用框架,它通过i o c 管理所有组成应用系统的 组件,这使它成为一种无侵入式的高度可扩展框架。 目前构建w e b 服务应用的主流方法是将单个的w e b 服务操作与单个企业商业服 务结合在一起,这种传统构建w e b 服务应用的方法存在一系列的弊端。本文试图通 过运用s p r i n g 框架的优势,将s p m 毽架构用于构建w e b 服务应用来解决上述问题。 本文主要围绕两个主要方面展开研究工作,一是使用s p r i n g 框架从整体上对简 单w e b 服务体系结构进行改进,以消除传统方法的弊端;二是对其中调用w e b 服务 的模块进行了改进,实现了不同服务的无差别访问,使调用w e b 服务变得简单、清 晰。在以上改进的基础上,提出了结合s p r i n g 框架和w e b 服务的开发模型:a s w s 模型,并且详细讨论了模型中各个模块的组合、作用及实现方法。最后介绍了a s w s 模型在j 2 e e 项目a a m s 系统中的应用,结果表明a s w s 模型可以解决传统构建w e b 服务应用方法带来的弊端,并且有较好的性能。 关键词:w e b 服务,s p r i n g 架构,i o c ,m v c ,j 2 e e 硕士论文 s p r i n g 架构在w e b 服务中的应用里究 a b s t r a c t w e bs e r v i c e si sat e c h n o l o g yt or e s o l v ec o o p e r a t i o n , i n t e r c o n n e c t i o n a m o n g l o o s e l y - c o u p l e dw e bs e r v i c e s i tc h a n g e sm o d e so fi n t e g r a t i o nb e t w t 地, 3 1 1d i s t r i b u t e ds y s t e m s , a n dm a k e se a s yt oi n t e r c o m m u u i c a t eb c l 、 ,e e nh e t e r o g e n e o u sp l a t f o r m s w i t h o u td o u b t , i t w i l la c c e l e r a t ei n t e g r a t i o no f d i f f e r e n tk i n d so f b u s i n e s sa n de n t e r p r i s es y s t e m s ,w i l lr e d u c e c o s ta n di m p r o v eb e n e f i t s p r i n gi sa l le x c e l l e n t , p r a c t i c a lf r a m e w o r kd e s i g n e df o rd e v e l o p e r i tm a n a g e sa i l t h ec o m p o n e n t sb u i l du pa p p l i c a t i o ns y s t e mw i t hi o c 融m a k e si tb e c a m ean o n i n t r u s i v e a n d h i g h l ye x t e u s i b l ef r a m e w o r k w h e nc o n s m a o j n ga ne n t e r p r i s ea p p l i c a t i o no fw e b $ e r v i g c s ,i ti sp o p u l a t et o c o m b i n eas i n g l eo l x r a t i o nw i t has i n g l ee n t e r p r i s es e r v i c e 1 1 l i sc o m b i n a t i o nc a l l s e ss o m e d i s a d v a n t a g e s ,e v e ns o m ep r o b l e m s i no r d e rt or e s o l v et h e s ep r o b l e m s ,s p r i n gf r a m e w o r k i si n t r o d u c e dt oc o u s t r u e tw e bs e r v i c e sa p p l i c a t i o n 1 1 圮a u t h o rw a n t st os o l v et h e s e d i s a d v a n t a g e sa n dp r o b l e m su s i n gs 砸n gf r a m e w o r k i nt h i sp a p e r , r e s e a r c hw i l lb ed e p l o y e dm a i n l yi nt w oa s p e c t s o n ei si m p r o v i n g s i m p l ew 曲s e r v i c e sa r c h i t e c t u r ew i t hs p r i n gf r a m e w o r ki no r d e rt oe l i m i n a t et h el a c ko f t r a d i t i o n a lo p e r a t i o n a n o t h c ri si m p r o v i n gt h em o d u l eo fi n v o k i n gw e bs e r v i c e s t h i s i m p r o v e m e n ta c h i e v e si n d i s e r i m i n a t i n gi n v o k i n g f o rw 色bs e r v i c e s , a n di n f l k e $ t h e i n v o k i n ge a s i e r , c l e a r e r t h e r e o n , c o m b i n i n gs p r i n gf r a m e w o r ka n d1 j i ,c bs e r v i c e s , a d e v e l o p m e n tm o d e ln a m e ds p r i n g w e bs e r v i c e sm o d e li sp r e s e n t e d t h e nt h em o d u l e so f t h em o d e la r ed i s c u s s e di nt h ec o m b i n a t i o n , f u n c t i o na n di m p l e m e n t f i n a l l yt h ec a s es t u d y i na a m sp m j e e ti si n t r o d u c e d mr e s u l ti n d i c a t e st h a ts p r i n g - w e bs e r v i c e sm o d e lc a n r e s o l v et h el a c ko ft r a d i t i o n a lc o n s t r u c t i n ga p p l i c a t i o no fw e bs e r v i c e s ,a n dh a v eag o o d p e r f o r m a n c e k e y w o r d s :w e bs e r v i c e s ,s p r i n gf r a m e w o r k , i o c ,m v c ,j 2 e e v 工1 0 0 0 7 1 6 声明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在 本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发 表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学 历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均 已在论文中作了明确的说明。 研究生签名:互金攫驴6 年目6 月明日 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅 或上网公布本学位论文的全部或部分内容,可以向有关部门或机构送 交并授权其保存、借阅或上网公布本学位论文的全部或部分内容。对 于保密论文,按保密的有关规定和程序处理。 研究生签名:猃整 口6 年嘭月? 日 堡主碧蔓s p r i n g 架构在w e b 服务中的应用研究 1 绪论 1 1 研究背景 网络时代的兴起推动了电子商务的发展,给企业带来了新的机遇。i n t e m e t 为各种 类型的商业实体提供了发现新客户、供应流、新服务的各种机会,这使他们获得了空 前的安全的经济回报,体现了i m e m e t 的巨大价值。但是大多数企业在实现各自的电 子商务系统时采取的是“各自独立”的解决方案,形成了各自独立的应用系统。由于 一直没有统一的标准来规范企业间的合作行为,使得异构应用系统的交互成本对于许 多企业而言仍然过高,而且只能适用于特定的环境企业间不能轻易发现、定位和调 用应用程序,因此电子商务的潜能未能得到充分发挥。早期出现了一些电子商务技术, 如:e d i ,e a i ,w e b e d i 等可以实现应用集成,但都是通过编写代码来实现复杂应用连 接,使用起来非常复杂。c o r b a ,r m i 等技术提出了将应用系统抽象并包装成组件、 服务的思想,然而这两种技术不能很好地解决防火墙问题,主要用于企业内部。而且 c o r b a ,r m i 要求在对等体系结构间才能进行通信。但在电子商务中,要求所有参与 者都采用同一种体系架构是不现实的【l p 闭 由于上述原因及应用的推动,具有松散藕合、基于国际标准、与平台和语言无关、 跨越i n t r a n e t 和i n t e r a c t 、使用已有网络通讯协议等特性的w e b 服务技术应运而生。 w e b 服务的主要目标就是在现有的各种异构平台的基础上构筑一个通用的与平台无 关,与语言无关的技术层,各种不同平台之上的应用依靠这个技术层实施彼此的连接 和集成。这无疑将极大地促进各种商务系统、企业系统的集成,降低成本,提高效益, 从而为动态电子商务等w e b 服务的应用的发展奠定了坚实的基础 4 1 为了满足w e b 服务技术的应用,w 3 c 等国际标准组织制定了一系列的w e b 服务 技术标准:如可扩展标记语言( x m l ) ,w e b 服务描述语言( w s d l ) ,通用描述、 发现和集成( u d d i ) ,简单对象访问协议( s o a p ) 等。只有基于标准,所有的开放 厂商才有相同的准则,才能在各自的平台上开发出具有跨平台互操作能力的软件产品 和解决方案。标准是w e b 服务的灵魂。 简单w e b 服务是当今w e b 服务的主流,但是传统构建简单w e b 服务应用的方法 有着一定的弊端,s p r i n g 是无侵入式的轻量级高度可重用框架,本文主要讨论s p r i n g 框架运用在构建w e b 服务应用中这方面的内容。 1 2 课题来源 论文的研究以为某研究所检测中心做的a a m s ( 仪器分析管理系统) 项目为背 硕士论芝 一 s p r i n g 架构在w e b 服务中的应用研究 景,由于该检测中心有多个实验基地,并且分布在不同的地域,各个基地除了管理内 部的业务功能,还要互相协作,而且检测中心也需要了解各个实验基地的业务情况, 所以需要在a a m s 系统中引入w e b 服务。 本人自从2 0 0 4 年下半年参与该课题以来,查阅了大量相关文献,系统学习了 w e b 服务及s p r i n g 框架相关知识。同时,在实际设计开发过程中,积极认真地开展 工作,构建一个结合s p r i n g 架构与w e b 服务的模型:a s w s 模型,并在a a m s 项目 中加以运用。 1 3 研究内容 本课题首先研究w e b 服务的概念、体系机构和关键技术,提供w e b 服务平台的 基础设施,解决w e b 服务的描述、发布、查找和调用问题;同时对s p r i n g 框架,尤 其是s p r i n gi o c 进行相应的研究工作。在对已有研究成果的深入研究基础之上,探讨 目前构建w 曲服务应用的常见方法,并对其做出评判,思考运用s p r i n g 架构的优势来 改进w e b 服务体系结构,改进目标是构建一个适用于w e b 服务领域的、结合s p r i n g 框架和w e b 服务的模型;a s w s 模型。具体研究内容如下: 1 研究w e b 服务的概念、体系结构及关键技术。 2 研究s p r i n g 框架的特点、优势以及组成的模块,并对其灵魂s p r i n gi o c 的原 理进行深入研究,接着介绍s p r i n gm v c 的原理。 3 指出当前w e b 服务的主流是简单w e b 服务,对其体系结构的优点和存在的 缺点进行分析,并运用s p r i n g 架构对其进行改进。首先使用s p r i n g 框架从整 体上对简单w 曲服务体系结构进行改进,以消除传统方法的弊端。接着对其 中调用w e b 服务的模块进行改进,实现不同服务的无差别访问,使调用w e b 服务变得简单、清晰、易扩展。最后,在以上改进的基础上,提出结合s p r i n g 框架和w e b 服务的开发模型:a s w s 模型,并且深入探讨该模型的体系结构、 工作流程以及各个模块的设计及实现方法。 4 从项目背景出发,介绍a s w s 模型在j 2 e e 项目a a m s 项目中的应用,实践 表明a s w s 模型可以解决传统构建w e b 服务应用方法带来的弊端,并且有较 好的性能。 1 4 论文结构 本文共分为六章,各章节主要内容安排如下: 第一章:绪论。介绍本课题的研究背景、课题来源、研究内容以及论文各个章节 的组织结构。 2 硕士论文 s p r i l l g 架构在w e b 服务中的应用研究 第二章:w e b 服务技术。讨论w e b 服务的概念和体系结构,以及当前w e b 服务 使用的关键技术。 第三章:s p r i g 架构。研究s p r i n g 框架的整体概念以及组成的各个模块,重点研 究s p r m g 框架的灵魂:s p r i n gm c 的原理,最后介绍s p m gm v c 的原理。 第四章:s p r i n g 架构应用于w e b 服务。先从体系结构的角度对简单w e b 服务进 行改进,然后对其中的w e b 服务实现控制模块进行改进。最后在上述改进的基础上 提出a s w s 模型,介绍该模型的体系架构、工作流程及实现 第五章:a s w s 模型在a a m s 项目中的应用。介绍a a m s 项目背景,a s w s 模 型在a a m s 项目中的应用,以及整个系统的结构和流程。 第六章:总结本部分总结论文的研究工作,肯定模型的实用性,接着分析该模 型存在的不足,并对不足提出进一步的研究期望。 硕士论文s 研n g 架构在w e b 服务中的应用碲寞 2w e b 服务技术 2 1w e b 服务概念 w e b 服务被业界称为1 1 r 技术继p c 和i l 】_ 魄n 既之后的第三次革命它的主要目标 就是在现有的各种异构平台的基础上构筑一个通用的与平台无关,与语言无关的技术 层,各种不同平台之上的应用依靠这个技术层实施彼此的连接和集成【l 】。 目前关于什么是w e b 服务有着广泛的一致的认识,但不同的公司、组织定义w e b 服务的方式不一样。w 3 cw e bs e r v i c e s r c h j t e 锄】佗小组达成一致意见的w e b 服务的 暂行定义如下: w e b 服务是由u r i 标识的软件应用程序,其接口和绑定可以通过x m l 构件进 行定义,描述和发现,w e b 服务支持通过基于因特网的协议使用基于x m l 的消息 与其他软件应用程序直接交互。 总的来说,w e b 服务是独立于平台和实现的软件构件,它能【1 4 】: 1 用服务描述语言来描述; 2 在服务注册处发布; 3 通过标准的机制,在运行或设计时被发现; 4 通过声明a p i 调用,通常跨越网络; 5 与其他服务组合。 从外部使用者的角度而言,w e b 服务是一种部署在w e b 上的对象或组件,它具 有如下特性: l 松散耦合性 w e b 服务的应用是由松散耦合的组件构成的,并且非常容易与其他平台和标准技 术进行集成【卯。即对服务中一个组件的实现进行修改不会影响服务中的其他部分,这 些组件是高度可重用的。 2 完好的封装性 w e bs e r v i c e s 作为部署在w e b 上的对象组件,必然具备良好的封装性。对于使 用者而言,仅能看到w e b 服务提供的功能列表。 3 使用标准协议规范 使用x m l 来描述w e b 服务的标准,使用s o a p 来指定应用程序通信所使用的消 息格式,使用w s d l 来描述w e b 服务能提供的功能,使用u d d i 来发布和查找w e b 服务所有的公共协约使用开放的标准协议进行描述、传输和交换。这些标准协议具 有完全免费的规范,可以由任意方进行实现。 4 高度可集成性 4 堡主塑s p r i n g 架构在w e b 服务中的应用研究 w e b 服务采用简单的、易理解的标准w e b 协议作为组件界面描述和协同描述规 范,完全屏蔽了不同软件平台的差异,实现了异构平台之间的连接和集成。 2 2w e b 服务体系结构 2 2 1w e b 服务体系结构模型 w e b 服务体系结构基于三种角色( 服务提供者、服务请求者和服务注册表) 之 间的交互,交互涉及到多种具体操作。在典型情况下,服务提供者提供可通过网络访 问的软件模块即是w e b 服务的一个实现。服务提供者定义w e b 服务的服务描述并把 它发布到服务请求者或服务注册中心。服务请求者使用查找操作来从本地或服务注册 中心检索服务描述,然后使用服务描述与服务提供者进行绑定并调用w e b 服务实现 或同它交互。图2 2 1 1 展示了角色及其交互的操作,从中可以很清楚地了解w 曲服 务到底是如何工作的。 绑 l 服务提供者 o 黼 厂 图2 2 1 1w e b 服务体系架构模型 下面对w e b 服务体系结构中的角色进行说明。 服务提供者 服务提供者是创建该w e b 服务的实体他作为生产者角色,向消费者提供服务。 为了使提供的服务能被请求者发现和使用,服务提供者需要把他们提供的w e b 服务 描述发布到公共的注册中心。 服务请求者 任何使用服务提供者建立的w e b 服务的机构都叫做服务请求者,它根据服务注 册表查找所需要的服务。为了检索w e b 服务的细节,服务请求者要在注册表查找, 而服务提供者已经把他的服务描述发布到了注册表。更重要的是,服务请求者能够从 服务提供者的描述中获得一种机制,这种机制可以绑定服务提供者的w e b 服务,反 过来又调用该服务l l ”。服务请求者角色可以由浏览器来担当,由人或无用户界面的程 序( 例如,另外一个w e b 服务) 来控制它。 ! 里主算文s p r i n g 榘构在w e b 服务中的应用研究 服务注册表 服务注册表是一个中心位置,服务提供者可以在那里发布他们的服务描述,服务 消费者可以在那里搜索w e b 服务。在静态绑定开发或动态绑定执行期间,服务请求 者查找服务并获得服务的绑定信息( 在服务描述中) 。对于静态绑定的服务请求者,服 务注册中心是体系结构中的可选角色,因为服务提供者可以把描述直接发送给服务请 求者。同样,服务请求者可以从服务注册中,t l , 以外的其它来源得到服务描述,例如本 地文件、f t p 站点、w e b 站点等等。 任何程序或网络节点都可以承担某一种角色的作用,在某些情况下,单一的程序 可以充当多个角色,譬如,某个网络节点既可以是向其他服务请求者提供w e b 服务 的服务提供者,自身也可以作为服务请求者,请求由其他服务提供者提供的w e b 服 务。 角色之间的交互则通过以下这些具体操作: 服务发布 指使用标准的接口描述( 例如w s d l ) 将业务服务发布给服务注册表为了使服 务可访问,需要发布服务描述以使服务请求者可以查找它。发布服务描述的位置可以 根据应用程序的要求而变化。 服务查找 指用预定义的标准( 例如u r l ) 查询服务,查找操作的结果,即服务信息,是 与查找标准相匹配的一组服务描述对于服务请求者,可能会在两个不同的生命周期 阶段中牵涉到查找操作:在设计时为了程序开发而检索服务的接口描述,而在运行时 为了调用而检索服务的绑定和位置描述【1 1 。 服务绑定 服务运行时将服务名、端节点和实际的u r l 进行绑定,体现了服务消费者和服 务提供者之间的“客户一服务器”关系绑定操作可以是十分复杂和动态的,如基于 服务描述,动态生成客户方代理,用于调用w e b 服务;也可以是非常静态的模型, 开发者对客户应用程序调用w e b 服务的方式,进行手工编码【1 4 】。 2 2 2w e b 服务栈 w e b 服务中的服务提供者、服务使用者、服务注册中心之间互操作所需要的绑定、 查找、发布三个操作要求一个包含每一层标准的w e b 服务协议栈,表2 2 2 1 显示了 w e b 服务栈中的不同层次川。 6 硕士论文 s p r i n g 架构在w e b 服务中的应用研究 表2 2 2 1w e b 服务技术栈 服务协商b p e l 4 w s 服务发现与集成u d d i 可 服安开 服务描述w s d l 管务 全 放 理质性标 传输层 s o a po v e rh r r p 性量准 互联网层t c p ,p 从表2 2 2 1 中可以看出,互联网层指名服务基于的网络是基于t c p i p 的公共互 联网;传输层可以是h t l v 之上的s o a _ p ;服务描述层使用w s d l 来描述服务类型和 作用;服务发现和集成层通过u d d i 来从注册表中搜索和定位所需的服务;服务协商 层使用b p e l 4 w s 来讨论在服务请求者和服务提供者之间交换的信息,以及互操作性 问题【5 】由此可知,w e bs e r v i c e s 采用了分层的思想,协议栈中上层必须要依靠下层 提供的功能,而可管理性,服务质量,安全性和开放标准则是每一层必须要考虑的。 2 3w e b 服务的关键技术 2 3 1x m l 技术 x m l ( e x t e n s i b l em a r k u pl a n g u a g e ,可扩展标记语言) 起源于s g m l ( s t a n d a r d g e n e r a l i z e dm a r k u pl a n g u a g e ,标准通用标记语言) ,是w 3 c 认可的文档标记标准嗍。 x m l 以人们易于理解的形式描述业务数据,用于实现i n t e m e t 上机器与机器之间、 系统与系统之间的通信。组成w e b 服务的相关技术基本上都是基于x m l 技术定义 或是相互作用的。 x m l 文档具有一个简单而且格式正规的层次树结构,每个文档都有一个而且只 有一个根节点,该节点被称为文档实体或文档根,它是树中其他所有元素的父元素, 并且它不可能被包含它其他任何元素当中。 一个x m l 有三个组成部分:p r o l o g ,b o d y 和e p i l o g 。p m l o g ( 序言) 包括x m l 声明,文档类型说明,注释,处理指令,空白等。b o d y ( 主体) 即文档元素,每个 文档都仅有一个根元素,根元素可以包含任意多个子元素,元素可以嵌套。e p i l o g ( 尾声) 包含各混合项。 x m l 数据的组成i s 可以由以下方式( 利用x m l 解剖器) 进行定义和验证: x m l l 0 的语法 d t d ( d o c u m e n tt y p ed e f i n i t i o n ,文档类型定义) 定义了标记的名称、数据结 构( 如字符串) 、可允许的元素( 如可重复的元素) d t d 列出了所有合法标记,并 且指定文档在什么位置以及如何包含该标记,与d t d 相匹配的文档称为有效的,否 则称为无效的。d t d 可以是单独的文档,或者是融合于x m l 文档中。 7 雯士论文s p r i n g 架构在w e b 服务中的应用研究 在x m l 中,d t d 是可选的。另一方面,由于d t d 起源子s g m l 及其相应的 文档或文件处理,所以在对数据类型的支持上存在很大的局限性而x m l 的应用已 经扩展到业务应用领域,数据类型对业务交易的数据验证非常重要。所以,w 3 c 宣 布将用x m ls c h e m a ( 儿模式) 来替代d t d 。 ) m i l 名空间 x m l 名空间通过在x m l 元素和属性名称之前添加前缀,来达到区分具有相同名 称的元素和属性的目的。x m l 名空间可以保证) q m 。元素的唯一性,从而可以解决与 对方交换x m l 文档是可能出现的命名冲突问题。名空间通常用u m ( 1 j n i 细叻r e s o u r c e i d e n t i f i e r s ,统一资源标识符) 表示,事实上任何唯一的字符串都能用来作为x m l 名 空间。 x m l 模式 为了解决d t d 的局限性,w 3 c 创建了一种用于描述标记语言的新方法,即x m l 模式刚,它是用于定义x m l 文档中数据结构的描述规则。它由两部分组成,一部分 指定结构关系,另一部分则通过为每种元素制定某个数据类型,来指定用于验证x m l 元素内容的机制旧。 2 3 2s o a p 规范 s o a p ( s i m p l e o b j e c t a c c e s s p r o t o c o l ,简单对象访问协议) 是一个轻型的分布式 计算协议,它允许在一个分散、分布式的环境中交换信息。s o a p 规范定义了在分布 式系统中传送消息的框架和支持远程过程调用和响应的惯例。但是,s o a p 并没有详 细说明消息的语义,其他规范利用s o a p 作为传输机制,可自行定义消息的语义嘲, s o a p 建立在开放式标准的顶部,它使用基于文本的x m l 协议与分布式系统通 信,可以在m 1 p ,s m t p 和j m s 上进行传输。这些使得它既能易于被开发者领会, 又能得到各种硬件、软件平台的支持。 s o a p 规范包括两部分:消息( m e s s a g i n g ) 和远程过程调用( r e m o t ep r o c e d u r ec a l l i 心c ) 封装。消息部分定义在分布式系统之间传输消息的消息框架,p r c 部分定义了 怎样把远程过程调用和响应嵌入到消息中。 1 消息 s o a p 消息是一个x m l 文档,它最多包含三个组成部分;s o a p 封装( 强制性 的) ,s o a p 标题( 选择性的) 和s o a p 主体( 强制性的) ,图2 3 2 1 表示了s o a p 消息的组成。 s o a p 封装是一个s o a p 消息的顶层元素,它包含了可选择的s o a p 标题和一个 必选的s o a p 主体。在s o a p 消息中,所有的元素都以s o a p e n v 命名空间标志符 作为前缀,以保证s o a p 元素不会与定义的其他元素互相冲突。 窖 耍士论塞 s p r i n g 架构在w e b 服务中的应用研究 图2 3 2 1s o a p 消息的组成 s o a p 标题是在s o a p 消息中增加特性的一种常用的灵活的方法在s o a p 消 息中,用s o a p - e n v :h e a d e r 元素来指定s o a p 标题。s o a p 标题不是强制必须使用 的,但是如果要用,必须紧接着放在s o a p 封装元素之后。 s o a p 主体中包含有消息的接收者必须收到的有效载荷( 信息) 。典型的载荷是 由一个r p c 调用、一个r p c 响应或者错误报告组成。s o a p 主体用 元素来 定义如果有标题元素的话,则 元素一定要紧跟在 元素之后。 2 s o a p r p c s o a pr p c 使得s o a p 能给w 曲服务提供一个协议层的抽象,这个抽象给远程 系统提供了跨各种不兼容平台、操作系统和环境的对象访问。本质上就是利用s o a p 将r p c 封装,通过将s o a p 消息绑定在底层传输协议( 如h t r p ,s m t p 等) 上实 现r p c 的交换调用。最常用的是s o a p 但r r p 绑定,r p c 调用或响应自然会映射到 对应的h 丌p 请求或响应上。 无论s o a p 是与哪种协议绑定,消息都可以通过消息路径来指定路线发送,消 息路径机制使消息在到达最终目的地之前可以在一个或多个中间件上处理。这是一 个非常有用、且极其适合分布式计算环境的一个机制。这样一种机制可以实现基于 模块化服务设计基础的b 2 b 商务流程实现,通过低藕合模块的统一集成获得良好的 系统体系和功能实现。 2 3 3w s d l 规范 w s d l ( w e bs e r v i c e sd e f i n i t i o nl a n g u a g e ,w e b 服务描述语言) 是一个建议性 的标准,用来定义一个描述服务的系统【i 们。w s d l 是由i b m 、m i c r o s o f t :和a r i b a 几家公司联合开发并提交给w 3 c 的。w s d l 是到w e b 服务的外部接口,它描述说 明的是w e b 服务的以下三个基本属性【4 j : ( 1 ) 服务做些什么:服务所提供的操作( 方法) : ( 2 ) 如何访问服务:数据格式详情以及访问服务操作的必要协议: ( 3 ) 服务位于何处:由特定协议决定的网络地址,如u r l 。 9 坠堡生s p r i n g 架构在w e b 服务中的应用研究 每一个w s d l 文档都是一个x m l 文档,文档中的很多元素都可以引用其他元 素的属性,图2 3 3 1 显示了w s d l 文档的结构【1 1 1 。 图2 3 3 1w s d l 文档结构 对文档结构图中各主要元素分析如下 1 1 】: ( 1 ) t y p e w s d l 中的数据类型称为t y p e ( 类型) ,其中有s t r i n g ,i n t 和o b j e c t 等。 ( 2 ) m e s s a g e 服务的输入和输出调用的参数口q 做m e s s a g e ( 消息) ,包含方法参数或消息文档说 明,使用t y p e 所定义的类型来定义整个消息的数据结构。 ( 3 ) o p e r a t i o n o p e r a t i o n ( 操作) 代表一组服务执行的抽象任务,它由一组抽象消息组成。 ( 4 ) p o r tt y p e 操作的逻辑分组称为p o r tt y p e ( 端口类型) ,它是一组由一个或多个端1 :3 支持的 1 0 硕士论文 s p r i n g 架构在w e b 服务中的应用研究 抽象操作。 ( 5 ) b i n d i n g 每个端口都与特定b i n d i n g ( 绑定) 相链接,绑定定义根据特定协议将一组抽象 的操作和消息链接到端口。 ( 6 ) s e r v i c e 服务的地址定义了s e r v i c e ( 服务) ,它是一个或多个网络端点或接口。 构造w s d l 文档的过程可以描述为:首先,定义w 曲s e r v i c e s 支持的各种操作 所要求的类型;其次,使用这些类型来构建必须被这些操作使用的消息,把消息和具 体操作相关联;然后,将这些操作和端点绑定,以固定使用这些操作所要求的数据格 式和被指向的端点地址;最后,一个服务元素将绑定定义和一个具体的端口连接起来, 这个端口提供了服务的最终u r l 地址。 2 3 4u 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 n ,d i s c o v e r y ,a n di n t e g r a t i o n ,统一描述、发现和集 成) 是一种全局性的描述、检索与服务集成机制,它实现了一组可公开访问的接口, 可供网络服务向u d d i 的网络服务信息库注册他们的服务信息【1 2 1 u d d i 的核心是网络服务的业务注册机制,w e b 服务可以通过该机制进行行销和 推广,使得服务消费者能找到分散在世界各地的w e b 服务。目前存在几个公用的u d d i 注册表,由h e w l e t t - p a e k a r d ( h t t p :u d d i h p c o m u d d i i n d e x j s p ) 、i b m 0 a t t p :w w w - 3 i b m e o m s e r v i e e s u d d i ) 和m i e r o s o p t ( h t t p :u d d i m i e r o s o f t e o m d e f a u l l a s p x ) 提供。 u d d i 包括许多规范,这些规范描述注册表如何存储数据和如何被访问,其中有 四个主要规范i l i 】: ( 1 ) 数据结构规范 描述被存储在u d d i 里的数据类型。u d d i 数据结构是以x m l 为基础,通过x m l 模式来描述的,该模式在u d d i 的w 曲站点上作为一个单独文档发布。 ( 2 ) 程序员的a p i 规范 包含访问u d d i 注册表的方法。有两种类型的a p i ,一种是发布函数,另一种是 请求函数。发布函数创建并且更新现有的注册表入口,请求函数允许现有的入口被查 询,请求函数都是只读的。 ( 3 ) 复制规范 描述注册表之间如何复制信息,用于运行新的注册表或与其他注册表集成。 ( 4 ) 操作员的规范 规定了安全性和数据管理的方针政策,它的对象仅是执行或者运行u d d i 注册表 的人。当规范没有要求时,操作遵循确定的方法,要求每个操作员发布哪些政策是可 1 l 硕士越s p r i n g 架构在w e b 服务中豹应用研究 用的,哪些是要强制执行的。 u d d i 封装了商业组织和服务细节等业务信息,它的数据结构类似于电话簿,主 要由三类信息构成: ( 1 ) 白页 包含关于商业名称,描述和联系信息等。 ( 2 ) 黄页 包含基于某些商业类型的商业体列表,即按某种标准代码( 如u n s p s c ,联合 国标准产品和服务分类) 进行商业分类以及地理分类,按此分类结果提供接口。 ( 3 ) 绿页 包含所有服务的信息、服务的技术描述以及绑定信息等。 2 4 本章小结 本章主要围绕w e b 服务的概念、体系结构和关键技术展开论述,以加深对w e b 服务的理解。本章首先给出了w 曲服务的概念,接着介绍了w e b 服务体系结构, 从该体系结构的模型、w e b 服务栈等方面来进行讨论。最后分析了w e b 服务的关键 技术,明确了这些技术在w e b 服务技术中所发挥的重要作用,阐明了w e b 服务在 互联网环境下的交互模式 硕士论文 s p r i n g 架构在w e b 服务中的应用研究 3s p r i n g 架构 1 2 e e 作为j a v a 建立企业系统的标准平台和环境,是当前和未来j a v a 企业开发的 核心【3 2 】。但是,其常用的业务逻辑层解决方案e j b ( e n t e r p r ij a v a b e 趾) 技术是一 种重晕级的容器:必须实现e j b 的接口,具有侵略性;依赖于e j b 容器,不能单独 运行;固定了应用功能,不能加以配置。 为了克服f _ 2 b 机制的不足,很多基于j 2 e e 的开源框架应运而生,包括s t r u t s , t a p e s t r y ,s p r i n g 等但是,只有s p r i n g 是专注于典型的j 2 e e 应用程序所有架构层 面的框架,它解决了许多在j 2 e e 开发中常见问题,是能够替代e j b 技术的强大框架 并且,它不依赖于任何的组件,是一种轻量级的容器。 而今,架构级的s p r i n g 已成为主流,它主导着整个j 2 e e 开发w e b 应用的方向。 3 1s p r i n g 概述 s p r i n g 框架是一个2 0 0 3 年2 月才出现的开源框架,该框架起源自r o dj o h n s o n 在2 0 0 2 年末出版的( e x p e r to n e - o n - o n e :j 2 e ed e s i g na n dd e v e l o p m e n t ) 一书中的基 础性代码,在该书中,r o dj o h n s o n 倡导j 2 e e 实用主义的设计思想,而s p r i n g 框架正 是这一思想的更全面和具体的实现。 s p r i n g 是为简化企业级应用开发而诞生的,它使用简单的j a v a b e a n 来实现以前 那些只有e y 8 才能实现的功能,它是一个从实际项目开发经验中抽取的、可高度重用 的应用框架。 简单地说,s p r i n g 是一个轻量级的i o c ( i n v e r s i o no f c o n t r o l ,控制反转) 和a o p ( a s p e c t - o r i e n t e dp r o g r a m m i n g ,面向方面编程) 容器框架【埒】。这句话概括了s p r i n g 的重要特点,说明如下1 1 5 】: 轻量级 从大小和系统开支上说s p r i n g 都算是轻量级的。完整的s p r i n g 框架可以在一个 大小只有i m b 多的j a r 文件里发布并且s 呻g 所需的处理开销也是微不足道的。 s p r i n g 的设计哲学是提供一种无侵入式的高度可扩展框架,基于s p r i n g 开发的系统中 的对象一般不依赖于s p r i l l g 的类,即无需代码中涉及s p r i n g 专有类,就可将其纳入 s p r i n g 容器进行管理。 i o c 即反转控制,s p 血g 提倡使用i o c 来实现松耦合,由容器控制对象之间的依赖关 系,这样就减轻了组件之间的依赖关系,提高了组件的可移植性。i o c 是s p 血g 框架 的基础和精髓,在后面的章节会对其进行详细讨论。 堡主堡皇 s p r i n g 架构在w e b 服务中的应用研究 a o p 即面向方面编程,s p 血g 对面向方面编程提供了强大支持,通过将业务逻辑从系 统服务( 如监控和事物管理) 中分离出来,实现了内聚开发 容器 s p r i n g 是一个容器,它包含并且管理系统对象的生命周期和配置。s p r i n g 容器使 用i o c 管理所有组成应用系统的组件,这使得它有别于传统的重量级e j b 容器。 框架 s p r i n g 实现了使用简单的组件配置组合成一个复杂的系统,在s p 血g 中,系统中 的对象是通过x m l 文件配置组合起来的。并且s p r i n g 提供了很多基础功功能( 事物 管理、持久层集成等) ,这使得开发人员能够专注于开发应用逻辑 s p r i n g 的所有这些特性使应用系统的开发更为简单,代码更为清晰,更易于管理, 更易于测试。 3 2s p r i n g 框架的组成模块 s p r i n g 框架由7 个模块组成,如图3 2 1 所示【1 6 】。从整体上看,这7 个模块提供 了开发企业级系统所需要的一切并且,s p r i n g 使应用系统不必建立在整个s p r i n g 框 架之上,只需选择适合本系统的模块,而不用附加其他多余的模块。 , r 钒lw 曲e o - t 耽t 和 l ;。v,i 驶封警 l 姆攥舞 l : o 擎援蜓。 艋v c 糕粲 , 。 舯国镶撬 目 ,目cpp豢lleaflee,l c 镕目 ,撬魄 ,l 日e a e 自口日日t g 目龋 口日t 口_ 目鼬i - r : 。7。箍心罄嚣秘戈埒王袋 。 、p , 仉_ 图3 2 1s p r i l l g 的组成模块 下面对这几个组成模块进行简要说明。 核心容器 s p r i n g 框架中最基础、最重要的模块,s p r i n g 的所有模块都是建立在核心容器之 上的这个模块中的b e a n f a c t o r y 类是所有基于s p r i n g 框架系统的核心,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互联网教育的智慧生态环境
- 荆州理工职业学院《二外法四》2023-2024学年第二学期期末试卷
- 广西中医药大学赛恩斯新医药学院《暖通空调综合课程设计》2023-2024学年第二学期期末试卷
- 武汉信息传播职业技术学院《英语诗歌欣赏》2023-2024学年第二学期期末试卷
- 桂林航天工业学院《建筑设计原理》2023-2024学年第二学期期末试卷
- 辽宁经济职业技术学院《小学数学研究》2023-2024学年第二学期期末试卷
- 白城师范学院《机电设备故障诊断与维修技术》2023-2024学年第二学期期末试卷
- 玉溪农业职业技术学院《证券投资顾问业务》2023-2024学年第二学期期末试卷
- 广西建设职业技术学院《数字信号处理C》2023-2024学年第二学期期末试卷
- 石家庄经济职业学院《机械工程综合实验》2023-2024学年第二学期期末试卷
- 白酒酿造工艺课件
- 雷霆传奇亲测-h5修改汇总
- 关节镜技术在骨科的应用
- 2023年版-肿瘤内科临床路径
- 《中国传统文化心理学》课件第五章 传统文化与心理治疗(修)
- Q∕GDW 11445-2015 国家电网公司管理信息系统安全基线要求
- java考试管理系统源代码开题报告外文翻译英文文献计001
- 机械创新设计技术结课论文
- 人教版九年级历史中考【政治经济专题复习课件44张】(共44张)
- T∕CSEA 6-2018 锌镍合金电镀技术条件
- 湘教版初中地理会考重点图复习汇集
评论
0/150
提交评论