已阅读5页,还剩62页未读, 继续免费阅读
(计算机软件与理论专业论文)web服务自动封装和发布接口的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 摘要 随着信息技术和网络技术不断发展,w e b 服务已经迅速成长为网络信息集成 领域的关键技术之一。微软公司更是通过“一切都是服务”来概括w e b 服务将给当 前i t 业带来的冲击。于是,在现有的技术条件下,如何简化w e b 服务的开发过程, 最大程度上应用现有平台的特性以适应w c b 服务的变化,实现简便、动态的w e b 服务封装、发布以及部署过程,已经成为研究的热点。 本文首先介绍了j a v a 平台w e b 服务封装和发布的关键技术和编程模型。接着 在j 2 e e 平台上通过对比采用j a x r p c1 1 和w e b 服务元数据( j s r1 8 1 ) 编程模 型实现w e b 服务过程,从中得出引入a n n o t a t i o n 的编程模型的优势。然后基于 j a x w s2 0 的架构,研究如何分别采用“自低向上”和“自顶向下”的模式开发w e b 服务。为更好的对服务切面如权限、日志处理等进行控制,采用面向方面编程思 想,提出了采用j a x w s2 0 的h a n d l e r 框架实现灵活的拦截链模型。同时,为了 提高长生命周期w e b 服务的调用的性能和可靠性,结合j a v a 的并行处理包研究实 现异步的客户端调用。最后,通过详细对比最近兴起的r e s t 风格w e b 服务和传 统s o a p 风格w e b 服务的区别和使用场景,研究j a x w s2 0 中r e s t 风格w e b 服务的原理,阐述了在j a x w s2 0 中开发r e s t 风格w e b 服务的实现过程。综 合它的特性,提出了采用x m l h t t p r e q u e s t 在浏览器中的异步调用r e s t 风格 w e b 服务客户端调用模型。 关键词:w e b 服务;a x - w s2 0 ;a n n o t a t i o n ;j s r1 8 1 ;r f s t 风格w e b 服务 英文摘要 r e s e a r c ho na u t o m a t i cw e bs e r v i c ee n c a p s u l a t i o na n dp u b l i c a t i o n a b s t r a c t w i t ht h ep e r s i s t e n td e v e l o p m e n to fn e t w o r ka n di n f o r m a t i o nt e c h n i q u e ,w e b s e r v i c e sh a sq u i c k l ya so n eo ft h ek e yr o l e si nn e t w o r ki n f o r m a t i o ni n t e g r a t i o n l a n d s c a p e m i c r o s o f tb s e “e v e r y t h i n gi ss e r v i c e s g e n e r a l i z et h ew e bs e r v i c e s c o n c u s s i o nt oc u r r e n t si tr e a l m s oh o wt op r e d i g e s tt h ew e bs e r v i c e sd e v e l o p m e n t p r o c e s s ,f a r t h e s tu s ee x i s t i n gp l a t f o r mt oa d a p tt h ew e bs e r v i c e s c h a n g e ,i m p l e m e n t h a n d y ,d y n a m i cw e bs e r v i c e se n c a p s u l a t i o n ,d e p l o ya n dd e p l o yp r o c e s sb a s e do n c u r r e n tt e c h n o l o g yc o n d i t i o nh a sb e c a m et h er e s e a r c hh o t s p o t i nt h i sp a p e r ,f i r s t l y ,g i v ea s i m p l ei n t r o d u c t i o no f j a v ap l a t f o r mw e b s e r v i c e s sk e y t e c h n o l o g ya n dp r o g r a mm o d e l f o l l o w i n g ,b a s e do nj 2 e ep l a t f o r mc o m p a r ea d o p t j a x r p c1 1t oj s r1 8 1p r o g r a mm o d e li m p l e m e mas i m p l ew e bs e r v i c e s ,e x p a t i a t e t h ea d v a n t a g eo fa d o p t i n ga n n o t a t i o np r o g r a mm o d e l a n dt h e nb a s e do nj a x w s2 0 a r c h i t e c t u r er e s e a r c hh o wt oi m p l e m e n tw e bs e r v i c e su s e “b o t t o m u pp a t t e m ( s t a r t w i t hj a v at op r o d u c ew s d l ) a n d “t o p d o w np a t t e r n ( s t a r tw i t hw s d lt o p r o d u c e j a v a ) i n o r d e rt ob e t t e rc o n t r o lt h es e r v i c e s s a s p e c t ,a d o p to b j e c t o r i e n t e d p r o g r a m m i n gd e s i g n ,g i v et h es t r a t e g ya b o u tu s et h ej a x w s 2 0 sh a n d l e rf r a m e w o r k t od e s i g nf l e x i b l eh a n d l e rc h a i n m e a n w h i l e ,t oi m p r o v et h ep e r f o r m a n c ea n dr e l i a b i l i t y o fl o n g l i f e c y c l e si n v o k e ,c o m b i n ej a v a s c o n c u r r e n t p a c k a g et oi m p l e m e n tt h e a s y n c h r o n o u sc l i e n ti n v o k em o d e l f i n a l l y ,b yp a r t i c u l a rc o n t r a s tt h ed i f f e r e n c ea n du s e s c e n e ,r e s e a r c hj a x w s2 0r e s t f u lw e bs e r v i c e s sp r i n c i p l e ,e x p a t i a t et h ep r o c e s s o fd e v e l o p m e n tr e s t f u lw e bs e r v i c e sb a s e do nj a x - w s2 0 s y n t h e s i si t sf e a t u r e , g i v et h es t r a t e g ya b o u ta d o p tu s ex m l h t t p r e q u e s to b j e c tt oa s y n c h r o n o u si n v o k e r e s t f u lw e bs e r v i c e sb yb r o w e r k e yw o r d s :w e bs e r v i c e s ;j a x w s2 o ;a n n o t a t i o n ;j s r1 8 1 ;r e s t f u lw e b s e r v i c e s 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成博5 z 硕士学位论文:里业腿釜自动塾筮塑筮盘量目的婴宜:。除论文中 已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在文中 以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经公开 发表或未公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:,刁? 雳争噼j 月7 日 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位 论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将 本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或 扫描等复制手段保存和汇编学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于:保密口 不保密口请在以上方框内打“”) 伽| l 彬 ( 躲尹 师年 导 香八八 衙肌闲日 名7 签 口 耆怍艾沦 w e b 服务自动封装和发布接口的研究 第1 章引言 1 1 论文的研究背景 随着信息技术和网络技术不断发展,w c b 服务迅速成长为信息技术领域不可 忽视的关键技术之一。微软公司更是通过“一切都是服务”来概括w e b 服务将给 当前i t 业带来的冲击。 w e b 服务就是开发人员可以利用的一种技术标准。开发人员利用它封装现有 业务过程,作为服务发布这些业务过程,搜索和预订其它服务以及在企业内部与 外部交换信息,从而将各种不同系统灵活地连接在一起。w e b 服务使用很多以不 同编程语言开发的,由不同供应商提供的或运行在不同操作系统之上的企业软件 可以互相轻松地进行通信。到目前为止w e b 服务已经经历了很长一段时间的发展, 其主流技术和相关的规范也逐渐的走向了成熟。从理论方面来看,由于w c b 服务 的自身优势使得它成为了面向服务架构( 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 ) t 1 】中的 核心组成部分。围绕s o a 思想,w 3 c 等一系列的组织逐渐地更新了其核心规范, 弥补了w e b 服务最初的一些缺陷,形成了一套新的规范。并且w 3 c 的w e bs e r v i c e s a c t i v i t y 小组所维护的规范还以独立于供应商的方式将w e b 服务作为一组x m l 规范进行处理。从开发方面来看,有许多可供w e b 服务开发的平台,如i b m 的 w e b s p h e r e 、b e a 的w e b l o g i c 、m i c r o s o f t 的n e t 、s u no n e 、h p 的n e t , a c t i o n 等。 总的来说,m i c r o s o f l n e t 与s u nj 2 e e 是目前企业w e b 服务平台市场上两个最重 要的应用框架( a p p l i c a t i o nf r a m e w o r k ) ,两种平台都有各自的优势。比如,j a v a 平台的独立性和厂商灵活性、m i c r o s o t = 的性能好处和易用性等,因此,开发者面 临的问题不仅包含了w e b 服务的开发,另外很关键的问题就是选择哪种平台来进 行开发。 1 2w e b 服务封装和发布接口的研究现状 w e b 服务包含一个非常庞大的规范和系统,它包含了丰富的并不断发展中的 标准套件,例如x m l 、w e b 、w s d l 、s o a p 等。本质上,w e b 服务是一种自描 第1 章引言 述、模块化、由u r i 标示的应用程序,采用基于开放的标准,支持基于x m l 接 口定义、发布和发现。开放的标准的采用使得w e b 服务可以在任何平台上使用任 何编程语言开发松耦合的应用部件,而各主流开发平台也都提供了完善的开发工 具与运行环境相融合的w e b 服务解决方案。但是,随着w e b 服务规范的不断完善 和开发平台的不断发展,这两方面的变化又给w e b 服务的开发提出了新的挑战。 在基于j a v a 的w e b 服务平台中,为了更好的支持w e b 服务,从j 2 e e i 4 开始 加入了很多重要的a p i 。在j a v a 中支持w e b 服务的重要规范,例如:s o a p ( j a x r p c 、j a x m 、s a a j 、j m s ) ,w s d l ( j a v a a p if o rw s d l ) ,u d d i e b x m l ( j a x r ) ,x m l ( j a x p ,j a x b ) 等。继j 2 e e1 4 之后,作为主流中问件技术标 准的j 2 e e 推出了又一个新的版本j a v ae e5 。在j 2 e e1 4 依然占据主流开发地 位,并且除官方标准外,还拥有很多丰富的开源框架可供选择的现状下,j a v ae e5 的出现无疑给开发者带来了许多新的研究空间。 相比于j 2 e e1 4 ,j a v ae e5 融入了j a v a5 t 5 j 的新特性,简化了应用的开发过程, 这也是j a v ae e5 与之前j 2 e e 产品的最显著区别。j a v a 5 中最重要的一个新的特性 就是标注( a n n o t a t i o n ) 。a n n o t a t i o n 提供了一种机制,将程序的元素如:类,方 法,属性,参数,本地变量,包和元数据联系起来,这样编译器可以将元数据存 储在c l a s s 文件中。这样虚拟机和其它对象可以根据这些元数据来决定如何使用这 些程序元素或改变它们的行为。通过在源代码中使用w e b 服务注解,w e b 容器将 能够在无需满足任何其他开发要求的情况下发布w e b 服务。通过引入标注,很大 程度上降低了j a v ae e 开发成本。 此外,j a v a e e5 还提供了j a x r p c i 1 ( j a v a a p i f o r x m l b a s e d r p c1 1 ) 1 6 j 的后续版本j a x w s 2 0 ( j a v aa p if o rx m lw e bs e r v i c e s2 0 ) 【”,j s r2 2 4 ( j a v a s p e c i f i c a t i o nr e q u e s t2 2 4 ) s l 作为w e b 服务规范,简化了使用j a v a 技术开发w e b 服务的工作。并且通过对多种协议( 如s o a pi 1 、s o a p1 2 、x m li n f o s e t ) 的支 持,以及提供用于支持其他协议和h t t p 的工具,解决了j a x r p c1 1 中存在的 一些问题。j a x w s 作为j a x r p c 的后续替代者,具有更好的依托于j a v a5 的一 w e b 服务自动封装和发布接口的研究 些新的特性提供了更好的性能和更简单的服务器端和客户端开发模型,它同时支 持新的w s d l 和s o a p 规范,虽然当前大部分的供应商还没有提供良好的支持, 但是随着j a v ae e5 的深入,它必定会迅速的替代j a x r p c 成为一种新的w e b 服 务开发模型。 1 3 论文的研究内容及意义 一直以来w 3 c 和j c p 组织就试图简化构造和发布w e b 服务的过程,希望可 以采用一种简单明了的方式构建和部署w e b 服务应用,使开发人员可以更多关注 于业务逻辑的实现,而像数据转化绑定代码、w e b 服务描述语言、部署描述符等, 这些冗长的描述类型的部分可以自动的生成,使w e b 服务的封装和发布过程得到 最大程度的简化。目前j 2 e e 以其自身优势和不断发展,已经成为以j a v a 开发和部 署w e b 服务的默认平台。虽然j 2 e e1 4 平台提出了相对完善的运行环境、大量的 应用程序接口以及调度描述符号,但作为j 2 e e 框架来说它更主要的关注点是比较 抽象的底层业务逻辑代码;而且w c b 服务在开发和部署的过程中十分的复杂和繁 琐,在很多情况下,开发人员还需要掌握非生产性工作的管道工程。在现有的技 术条件下,如何简化w e b 服务的开发过程,最大程度上应用现有平台的特性以适 应w e b 服务的变化,实现简便、动态的w e b 服务封装、发布以及部署过程,已经 成为一个非常具有实际意义和研究价值的课题。 根据已有的研究成果和技术现状,本文主要研究了使用了j a v a e e5 新特性的 w e b 服务开发过程中,如何实现基于j a x w s 模型的w e b 服务开发,以及在引入 a n n o t a t i o n 后如何应用这一特性简化w e b 服务的服务端封装构建发布和客户端的 部署问题。在对基本理论的分析和理解的前提下,通过a n t 脚本实现w e b 服务的 自动发布。同时分析了最近兴起的r e s t 风格w e b 服务,提出了更方便快捷的异 步浏览器调用模型。 1 4 论文的组织安排 本文一共分为六章,各章内容组织安排如下: 第1 章引言 第一章是引言部分,主要介绍了w e b 服务开发方面的研究背景和现状,分析 了w e b 服务在封装和发布方面存在的不足,指出了本文的研究内容及研究意义。 第二章主要介绍了w e b 服务封装和发布方面的关键技术,主要研究了在j 2 e e 平台下的w e b 服务开发关键技术,并对j a v ae e5 平台下的w e b 服务新规范作了 简要介绍。 第三章对基于j 2 e e 的w e b 服务封装和发布的原理进行了研究,论述了采用 a n n o t a t i o n 开发w e b 服务的优势。 第四章首先研究j a v ae e5 平台上j a x w s 的架构,对w e b 服务的封装和发 布进行详细设计和分析。然后基于j a x w s 的h a n d l e r 提出了更加灵活的拦截器 模型。同时,为了提高长生命周期w e b 服务的调用的性能和可靠性,结合j a v a 的 并行处理包研究实现异步的客户端调用。 第五章是主要研究如何在j a x w s 中开发基于r e s t 风格的w e b 服务,然后 分析它的特性,采用客户端调用,提出了采用异步的浏览器调用模式。 第六章为总结和展望部分。对本文的工作做了总结,并提出了下一步的工作 展望。 发w e b 服务自动封装和发布接口的研究 第2 章w e b 服务封装和发布的关键技术研究 2 1j 2 e e 平台下w e b 服务开发关键技术 2 1 1j a x r p c j a x r p c ( j a v aa p if o rx m l b a s e dr e m o t ep r o c e d u r ec a l l s ) 代表基于x m l 的远程过程调用的j a v aa p i 。简单来说,它仅仅是一种机制,用于执行使用基于 x m l 协议的旧r m i 风格的r p c ,相对于r m i 中专用于j a v a 的协议。w e b 服务可 以通过服务端点接口( s e r v i c e e n d p o i n t i n t e r f a c e ) 映射到j a v a ,然后作为一种s e r v l e t 实现。客户端编程模型使w e b 服务标注看起来像一次普通的r p c 调用。为 j a x r p c 实现人员提供j a v ax m l w s d l 映射可以使这项工作无缝地进行。 实际上j a x r p c 的目的就是以一种可移植和互操作的方式在j a v a 平台构建和 访问w e b 服务,它主要包括以下三个部分: 服务器编程模型:w e b 服务如何作为无状态会话b e a n 或j a x r p c 形式的 s e r v l e t 实现; 客户端编程模型:客户端如何访问w e b 服务,就好像w e b 服务是一个普 通的远程对象一样; 部署模型:使用部署描述符来定义可以在所有符合j 2 e e 规范的应用程序 服务器之间移植的w e b 服务。 客户端调用的是j a x r p c 服务端点( s e r v i c ee n d p o i n t ) ,这个服务端点是通 过w s d l 语言描述的。在这个体系结构中,客户端可以是j s 2 e 、j 2 m e 或者j 2 e e 平台运行环境;服务端可以是j a v a e e 容器( s e r v l e t 容器或者e j b 容器) 。 基于j 2 e e 平台的w e b 服务主要包括有两种模型,从j a v a 开始开发j a x r p c 服务和从w s d l 开始生成基于j a x r p c 的w e b 服务,它们的基本步骤主要包括: 定义服务端点 描述w e b 服务 服务端点的实现 服务端点的部署 第2 章w e b 服务封装和发布的关键技术研究 w e b 服务的发布 2 1 2a n n o t a t i o n 的原理和作用 j a v a 5 的出现包含很多的新的特性,为j a v a 语言引进了许多变化。这些变化旨 在使j a v a 编程更有表现力、对开发人员更加友好且更安全,主要包括了自动装箱 与拆箱,更加优化的f o r 循环以及a n n o t a t i o n 等等。通过应用这些新特性可以使 j a v a 开发更为简化。本文中我们主要应用了j a v a 5 中的a n n o t a t i o n ”峙性。 编程的一个最新的趋势,尤其是在j a v a 编程方面,是使用元数据。简单地说, 元数据就是关于数据的数据。元数据可以用于创建文档,跟踪代码中的依赖性, 甚至执行基本编译时检查。许多元数据工具( 如x d o c l e t ) ,将这些功能添加到核 心j a v a 语言中,暂时成为j a v a 编程功能的一部分。 其实自1 0 版以来在j a v a 中一直存在对元数据的需求。j a v a 从来没有提供记 录元数据的标准机制,因而在实际编程过程中,开发者常找到了各种技巧、窍门 和工具来添加元数据。从j 2 s e1 4 至更低版本中使用元数据的有: + t r a n s i e n t 关键字 + s e r i a t i z a b l e 标记接口 + s i n g l e t h r e a d m o d e ls e r v l e t 接口 w e b x m l 部署描述符内部的元素 + m e t a i n f 倍4 n i f e s t m f 文件 + b e a n l n f o 接口 + d e p r e c a t e dj a v a d o c 注解 所有的x d o c l e tj a v a d o c 标记。 以前使用元数据的方法,具有很明显的局限性:使用关键字不能伸缩,不能 使用用户自己定义的关键字;标记接口没有提供除它们的存在性之外的任何信息 ( 即,它们没有带参数) ,并且它们只能处理类,不能处理字段或方法或包。目 前元数据的最新方法是j s r - 1 7 5 规范中的实现。 j a v a 5 通过a n n o t a t i o n ( 中文译为:注解) 新功能将一个更通用的元数据工具 发w e b 服务自动封装和发布接口的研究 合并到核心j a v a 语言中。注解是可以添加到代码中的修饰符,可以用于包声明、 类型声明、构造函数、方法、字段、参数和变量。t i g e r 包含内置注解,还支持您 自己编写的定制注解。它的基本定义为:不直接影响程序的语义,开发和部署工 具可以读取这些注解,并以某种形式处理这些注解,可能生成其他j a v a 编程语言 源文件、x m l 文档或要与包含注解的程序一起使用的其他构件。 它主要的优点包括:可以减少开发源代码和x m l 的烦恼,在使用注解以前我 们需要写完j a v a 源文件以后声明;还可以在编译j a v a 文件的时候发现问题所在而 不需要通过查询x m l ,减少出错的几率;同时可以和很多的开发工具i d e 结合。 元数据的主要功能分为三类:文档编制、编译器检查和代码分析。由于现在 j a v a 已经存在文档生成工具,所以说文档编制的意义并不大。 元数据更重要的优点是编译器可以使用它来执行基本的编译时检查。例如可 以通过o v e r r i d e 方法来声明注解。 o v e r r i d e覆盖对象的t o s t r i n g 方法 p u b l i cs t r i n gt o s t r i n 9 0 r e t u r ns u p e r t o s t r i n 9 0 + ” t h i si st h eo v e r r i d em e t h o d ”;) o v e r r i d e 覆盖h a s h c o d e 方法 p u b l i ci n th a s h c o d e 0 r e t u r nt o s t r i n g o h a s h c o d e 0 ; 元数据还提供了一种良好的机制进行定制,它提供了类似接口的实现方式, 通过 i n t e r f a c e 就可以定义一个简单的a n n o t a t i o n p u b l i c i n t e r f a c ea n n o t a t i o n d e f m e s t r i n gr e t u m v a l u e 0 ;) 然后通过以下声明使用一个元数据注解: a n n o t a t i o n d e f i n e ( ”t h i si sav a l u e ”) p u b l i cv o i dc a l c u l a t e i n t e r e s t ( f l o a ta m o u n t ,f l o a tr a t e ) n e e dt of i n i s ht h i sm e t h o dl a t e r ) 根据j s r 1 7 5 规范需要定义一个元数据工具,编写自定义批注类型的任务留 给了编程人员,而编写一组标准的批注类型的任务留给了其他j s r 来实现: + j s r 2 5 0 :j a v a 平台的公共注解 第2 章w e b 服务封装和发布的) 之键技术研究 + j s r2 2 4 :基于x m l 的j a v aa p iw e b s e r v i c e s ( j a x w s ) 2 0 + j s r2 2 0 :企业级j a v a b e a n s3 0 + j s r1 8 1 :j a v a 平台的w e bs e r v i c e sm e t a d a t a 大多数新的企业j s r ( 从s e r v l e t s2 5 到e j b3 0 到j d b c4 o ) 都已经采用了 元数据,例如在j d b c4 0 里面可以这样进行查询: i n t e r f a c el o a n a p p d e t a i l s q u e r ye x t e n d sb a s e q u e r y s e l e e t ( s q l = ”s e l e c t + f r o ml o a n d e t a i l s w h e r eb o r r o w e r f i r s t n a m e = 1a n d b o r r o w e r l a s t n a m e = 2 ”) d a t a s e t g e t l o a n d e t a i l s b y b o r r o w e r n a m e ( s t r i n gb o r r f i r s t n a m e , s t r i n gb o r r l a s t n a m e ) ; ) 关于自定义批注类型和使用j a v a 1 a n g a n n o t a t i o n 程序包中的内胃批注控制批注 的行为可以参阅s u n 的官方网站。 2 1 3w e b 服务元数据 j s r - 1 8 1 是由b e as y s t e m s 领导,基于w c b 服务标注开发工具,w e b 服务元 数据( w e bs e r v i c em e t a - d a t a ,w s m ) 主要是把j a v a 中新增的元数据功能应用到 j a v aw e b 服务中。j s r - 1 8 1 最初是构建在j 2 e e1 4 模型和j a x r p c 的基础上的, 后来成为新的j a v ae e5 和j a x w s 的重要组成部分。 j s r - 1 8 1 的j a v aw e b 服务仅仅是带有某些标注的普通j a v a 对象( p l a i no l dj a v a o b j e c t ,p o j o ) 。为了便于引用,将这样标注过的文件称为j w s 文件。标注被用 来描述w e b 服务名称、w e b 服务界面中公布的所有m e t h o d 、参数、参数类型、绑 定以及其它信息。实际上,与j a x r p c1 1 不同,j w s 文件不需要实现服务端点 界面,不需要特定的接口来实现j a v a r m i r e m o t e ,界面可以基于注解生成。 j s r - 1 8 1 中描述的规范依赖于j 2 s e5 0 的功能来对描述w e b 服务实现的w e b 服务元数据进行注解。通过在源代码中使用一些简单的w e b 服务注解,w e b 容器 将能够在无需满足任何其他开发要求的情况下发布w e b 服务。 如规范中所述,j s r 1 8 1 所涉及的范围如下: 发w e b 服务自动封装和发布接口的研究 定义用于进行w c b 服务应用程序编程的带注解j a v a 语法 提供可促进和加速开发的简化w e b 服务开发模型 提供可通过工具进行操作的语法 + 定义构建和部署w e b 服务的标准,而无需了解通用a p i 和部署描述符的知 识和使用相关实现。 j s r 一1 8 1 处理器基本就是一个工具,它把经过标注的j w s 文件和w e b 服务文 件( 例如,w s d l 和符合j 2 e e1 4 规范文件如部署描述符) 桥接起来。简单来说, 它是能够从j w s 文件生成w s d l 或者从w s d l 生成j w s 文件的工具,它还可以 生成完全符合j 2 e e l 4 规范的企业应用程序档案( e a r ) 文件,生成的e a r 文件 可以立即部署到托管w e b 服务的j 2 e e1 4 容器里。 需要提出的重要一点是:j s r 1 8 1 没有定义托管w e b 服务的运行环境或容器。 它只是提供了一个处理j w s 文件的模型和到j 2 e e1 4 运行期间的环境的映射。下 面定义了一个简单的使用元数据的w e b 服务: i m p o r t j a v a x j w s w e b s e r v i c e ; i m p o r t j a v a x j w s w e b m e t h o d ; w e b s e r v i e e 声明该类为w e b 服务终端实现类 p u b l i cc l a s sc a l c u l a t o r s e r v i c e w e b m e t h o d 暴露为w e b 服务的方法 p u b l i ci n ta d d ( i n ti ,i n t j ) ( i n t k 2 i + j ; r e t u r nk ;) ) 通过上面的元数据就可以生成相对应的w s d l 文件。上面的例子中标明 w e b s e r v i c e 标注用来在j w s 文件里对c l a s s 进行标注,标明这个c l a s s 实现了 w e b 服务。可以使用n a m e 标注成员来指定w e b 服务的名称( w s d l :p o r t t y p e ) , 用s e r v i c e n a m e 成员来指定w s d l :s e r v i c e 。同样,可以使用w s d l l o c a t i o n 标注成 员来指定j w s 映射到的w s d l 文件。 w e b m e t h o d 标注进行标注的m e t h o d , 第2 章w e b 服务封装和发布的关键技术研究 用它们生成服务端点界面。如果w e b 服务使用s o a p 绑定,还可以通过a c t i o n 标注成员指定s o a p a c t i o nh e a d e l 。 以下是j s r - 1 8 l 规范的模型( 见图2 1 ) : j a x - r p c11r u n t i m e d e p 哪 d a 副嚣卜c 厂赢磊丽、 险 氐 ! 竺 柏8 0 li ”7 b b e 斜啊j c e j 。,。i l r n e p p m g x r n l 图2 1j s r l 8 1 模型在j a x r p c 中 f i g 2 1j s r1 8 1m o d e li n j a x - r p c 处理器采用命令行工具的形式,来执行j a v a 到w s d l 和w s d l 到j a v a 的映 射工作,并可以报告不兼容问题。 处理器可以把w e b 服务直接部署在j 2 e e1 4 容器里,还可以生成标准的 j 2 e e l ge a r 文件。处理器可以和s e r v l e t 容器或e j b 容器紧密耦合,来运行j w s 文件中生成的w e b 服务。这对于j a v aw e b 服务的迭代开发来说非常有用。 j s r 1 8 1 最初是为了帮助生成基于j 2 e e1 4 的j a x r p c 的w e b 服务,它提供 了7 个非常有用的注解。现在这些注解同样可以在j a x w s 中使用。 w e b 服务: w e b s e r v i c e 对j a v a 类进行标注,标明这个类实现w e b 服务。可以使用n a m e 标注成员来 指定w e b 服务的名称( w s d l :p o r t t y p e ) ,用s e r v i c e n a m e 成员来指定w s d l :s e r v i c e 。同 样,可以使用w s d l l o c a t i o n 标注成员来指定映射到的w s d l 文件。当w e b s e r v i c e 注解位于接口声明前时,它将接口标识为w e b 服务接口,接口内的所有方法都被 视为w e b 服务端点的一部分。 服务端点: w e b m e t h o d 发w e b 服务自动封装和发布接口的研究 对j a v a 类中的方法进行声明,自定义作为w e b 服务操作公开的方法。用它来 生服务端点,如果w e b 服务使用s o a p 绑定,可以通过a c t i o n 标注成员指定 s o a p a c t i o nh e a d e r 。 参数o n e w a y : o n e w a y 这个注解表明w e b 服务为o n e w a y 操作。标明指定的 w e b m e t h o d 只有输入 信息没有输出信息。定义这个属性则不能发布经过检测的异常,而且显然也不能 有任何o u t i n o u t 参数。 参数: w e b p a r a m 在方法内声明,用于自定义w e b 服务操作内的参数。w e b p a r a m 最常与r p c 样式绑定一起使用,但也可以用于将元素名称的参数与采用d o c u m e n t 样式绑 定的命名空间关联。 参数: w e b r e s u l t 方法级别声明,用于自定义w e b 服务操作的返回值。 h a n d l e r c h a i n : h a n d l e r c h a i n 这个注解声明w e b 服务具有一个外表形态的关联链。具有两个属性,f i l e 指 定所关联文件的位置。n a m e 为h a n d l e rc h a i n 在配置文件中的名字。 s o a p b i n d i n g : s o a p b i n d i n g 这个注解位于j a v a 文件内的类或接口声明前。s o a p b i n d i n g 注解允许开发人 员控制w e b 服务在s o a p 消息协议上的映射。可以指定s o a p 的s t y l e 、u s e 和 p a r a m e t e r s t y l e 。s t y l e 可以为d o c u m e n t 或者r p c ,u s e 可以为l i t e r a l 或者e n c o d e d , p a r a m e t e r s t y l e 可以为w r a p p e d 或者b a r e 。 2 2j a v a e e5 平台w e b 服务开发 0 6 年5 月2 日经过多方的争吵和妥协,j a v ae e5 规范终于横空出世,通过了 j a v a 社区的投票。它的一个重要目的就使编程模型简单化,尤其对于w e b 服务而 言。虽然,在此之前的版本j 2 e e1 4 ,它能够支持简单对象访问协议( s o a p ) 和 基于w e b 服务描述语言( w s d l ) 的w e b 服务,但是,许多开发人员认为它过于 复杂。s u n 微系统公司w e b 服务部门的技术主管n i c kk a s s e m 甚至声称:“对于 第2 章w e b 服务封装和发布的关键技术研究 我们的许多客户而言,如果不通过使用j a v a e e5 作为过渡的话,他们就很难实现 s o a ! ”。为了避免重蹈类覆辙,j a v ae e5 中采用注解来替代j 2 e e1 4 中大量部 署描述符。 j a v ae e5 非常优秀的一点就是加强了w e b 服务并且使其支持简单化。它主要 包含了:基于x m l 的w e b 服务的j a v a a p i ( j a x w s ) 2 0 版、x m l 绑定的j a v a 架构( j a x b ) 2 0 版、j a v a 平台的w e b 服务元数据2 0 版以及包含用于j a v aa p i 附件的s o a p ( s a a j ) 1 3 版。 j a x w s 作为新的w e b 服务开发模型,提供了更多w e b 服务规范的支持: 支持s o a p1 2 , 更好的x m 堋t t p 支持,j a x i 冲c 实际上忽略了h t t p 绑定, 新的j a v a 5 特性的引入:如a n n o t a t i o n 、g e n e r i c s 等, 新的数据映射模型:j a x b2 , 新的接口映射类型, 面向消息的功能和动态的异步功能, m t o m ( m e s s a g et r a n s m i s s i o no p t i m i z a t i o nm e c h a n i s m ) 新的附件规范, 等很多新的特性。相比于j a x r p c 具有更好的性能更强大的x m l 绑定解析策略, j a x w s2 0 保留了自然的r p c 编程模型,同时在以下几个方面进行了改进:数据 绑定、协议和传输的独立性、对w e b 服务的r e s t 风格的支持以及易开发性。 在j a x w s 的开发模型中,开发人员只需要暴露服务器端端点,其余的工作可 以自动由j a x w s 带的工具和解析器来生成。在服务器端,只需要提供w e b 服务 所需要的实现,相关的j a v a b e a n 被a 口t 这个j a v a 5 中带的工具生成,暴露的s e r v i a 只是j a x w s 的一部分。客户端唯一需要开发人员编写的就是调用它的m a i n 方法 或者其它的实现方法。其余的接口和j a v a b e a n 自动通过带的w s i m p o r t 来生成。 类似于j a x r p c ,它允许开发人员实现由w s d l 描述的客户机和服务,但是 j a x w s 不需要部署描述符,这是由于它使用 w e b s e r v i c e 这样的标注来声明w e b 服务端点。j a x w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026核技术利用辐射安全与防护考试(X射线探伤)历年参考题库含答案详解3卷
- 湖南长沙市岳麓实验中学2026-2027学年高三上学期开学测试政治试题(含答案)
- 2025-2026华东师大版小学六年级语文下期末测试题含答案
- 2026年黎明职业大学外聘教师招聘模拟试卷附完整答案详解【必刷】
- 2026医院面试题的种类及答案
- 2026山东青岛食品股份有限公司招聘4人考前冲刺试卷及答案详解参考
- 2026广东肇庆市技师学院招聘高技能人才4人备考题库含答案详解(完整版)
- 2026内蒙古赤峰市宁城县事业单位引进急需紧缺人才25人笔试题库含完整答案详解【典优】
- 2026福建省南平司法强制隔离戒毒所招聘厨师1人考前冲刺密卷(网校专用)附答案详解
- 2026江苏苏州常熟市人力资源开发有限公司招聘1人考前冲刺试卷含完整答案详解(名校卷)
- 民宿员工聘用合同范本
- 企业级BOM培训课件
- 主井提升培训课件
- 浙江金石亚药医药科技有限公司迁扩建项目环评报告
- 酒店安全巡查日常检查记录表
- 招商岗位测试题及答案
- 医院后勤管理与设备职责
- 《左传》完整版本
- 周三多-管理学:原理与方法(第七版),第三章
- 无人机遥感图像融合
- 高考英语复习读后续写练习 善举篇 改变家乡为无法使用操场的孩子们带来福音 课件
评论
0/150
提交评论