(计算机软件与理论专业论文)web服务事务的研究与应用.pdf_第1页
(计算机软件与理论专业论文)web服务事务的研究与应用.pdf_第2页
(计算机软件与理论专业论文)web服务事务的研究与应用.pdf_第3页
(计算机软件与理论专业论文)web服务事务的研究与应用.pdf_第4页
(计算机软件与理论专业论文)web服务事务的研究与应用.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

(计算机软件与理论专业论文)web服务事务的研究与应用.pdf.pdf 免费下载

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

文档简介

摘要 随着电子商务的迅速崛起,一种新的开发基于w e b 的应用模式应运而生,这 就是w e b 服务技术。它的出现改变了以往分布式系统间的集成方式,它以x m l 作为数据交换标准,使用s o a p ,w s d l 以及u d d i 等协议来描述、发布、发现和 调用服务,使得运用不同分布式集成架构的系统之| d j 可以容易地相互沟通。 事务处理作为w e b 服务的关键技术之一,决定着w e b 服务是否能被企业广泛 地采用。事务在w e b 服务中可能跨几个小时,跨多个企业,与传统事务处理系统 有很大的差别。i b m 、微软等公司在近几年连续推出了有关w e b 服务的事务规范, 包括w e b 服务原子事务规范、w e b 服务业务活动规范等,但是这些规范中制定的 规则是泛化的,实现起来比较困难。本文详细分析了这些协议,并且设计了w e b 服务原子事务和业务活动的原型架构,给出了具体的实现。最后介绍了这些w e b 服务事务的原型架构在邮政业务系统中的应用。 关键字:w e b 服务分布式事务原子事务业务活动 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fb 2 be c o m m e r c e ,an e ww e b b a s e da p p l i c a t i o n p a t t e r n w e b s e r v i c e sa r i s e i tp r o v i d e sau n i f i e dp r o g r a m m i n gm o d e ls ot h a tt h e a p p l i c a t i o n s i n s i d ea n do u t s i d et h e e n t e r p r i s e s c a l lc o m m u n i c a t em o r ee a s i l y w e b s e r v i c e sb u i l do ne x i s t i n ga n de m e r g i n gs t a n d a r d ss u c ha s h r l7 r p , e x t e n s i b l em a r k u p l a n g u a g e ( x m l ) 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 ) ,w e bs e r v i c e sd e s c r i p t i o n l a n g u a g e ( w s d l ) a n d 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 ya n di n t e g r a t j o n ( u d d i ) , t h et r a n s a c t i o np r o c e s s i n ga so n eo ft h ek e yt e c h n i q u e so fw e bs e r v i c e s ,d e c i d e s w h e t h e rw e bs e r v i c e sc a nb ea d o p t e db r o a d l yb yt h ee n t e r p r i s e s t h et r a n s a c t i o ni nw e b s e r v i c e sm a yg ot h r o u g haf e wh o u r so rs e v e r a le n t e r p r i s e sa n di th a sg r e a td i f f e r e n c e w i t h t h a ti nt h et r a d i t i o n a lt r a n s a c t i o n p r o c e s s i n gs y s t e m s s o m e t r a n s a c t i o n s p e c i f i c a t i o n sc o n c e r n i n gw e bs e r v i c e s ,i n c l u d i n gw e bs e r v i c e sa t o m i ct r a n s a c t i o na n d b u s i n e s sa c t i v i t ys p e c i f i c a t i o n ,w e r er e l e a s e di nr e c e n ty e a r sb yi b m a n dm i c r o s o f te t c b u ti ti sd i f f i c u l tt or e a l i z ea l lt h er u l e si nt h e s es p e c i l i c a t i o n s i nt h i sp a p e ct h ea u t h o r a n a l y z e s t h e s e s p e c i f i c a t i o n s i n d e t a i l ,d e s i g n sp r o t o t y p e a n df r a m e w o r k sf o rw e b s e r v i c e sa t o m i ct r a n s a c t i o na n db u s i n e s sa c t i v i t ya n dp r o v i d e sc o n c r e t ei m p l e m e n t a t i o n f i n a l l y ,t h ea p p l i c a t i o no f t h ep r o t o t y p ea n df r a m e w o r k so ft r a n s a c t i o np r o c e s s i n gi n w e bs e r v i c e st ot h ep o s t a lb u s i n e s ss y s t e m sa r ei n t r o d u c e d k e y w o r d :w e b s e n , i c e sd i s t r i b u t e dt r a n s a c t i o na t o m i ct r a n s a c t i o n b u s i n e s sa c t i v i t y 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担切相关责任。 本人签名 到! 车 f i 期矽d f ,2 移 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技人学。本人保证毕 业离校后,发表论文或使用论文丁作成果时并名单位仍然为西安电予科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公却论文的全 部或部分内容,可咀允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 摘解密后遵守此规定) 本学位论文属于保密,在年解密后适用本授权书。 本人签名 导师签名 星i j 馑 幽 只期坦! :兰兰 日期o b - r - z t 第一章绪论 第一章绪论 1 1 课题研究背景 随着互联网应用的发展,业界人士引入了诸如r p c c o m c o r b a 等技术,但 这些技术在实际的应用中,存在很多不足和局限。它们特定的协议也难以通过防 火墙,因而不适于在w e b 上的应用开发。为了进一步丌发基于w e b 的应用,提高 不同技术之间的互操作性,w e b 服务此时就呼之而出了。 这种基于x m l 的w e b 服务是当今i t 业界的焦点所在,它的主要目标是在现 有的各种异构平台的基础上构筑一个通用的与平台无关、语言无关的技术层,各 种不同平台之上的应用依靠这个技术层来实施彼此的连接和集成。要实现这目 标需要提供可靠的消息机制、完整的事务处理的保证。 事务处理作为w e b 服务的关键技术之一,决定着它是否能被广泛地采用。事 务在w e b 服务中可能跨几个小时,跨多个企业,与传统事务处理系统有很大的差 别。i b m 、微软等公司在近两年连续推出了有关w 曲服务的事务规范,包括w e b 服务原子事务规范、w e b 服务业务活动规范等,但是这些规范中制定的规则是泛 化的,实现起来比较困难,本文将重点讨论针对邮政业务特点抽取一个简单的事 务原型进行实现。 1 2 课题研究内容 本文在对已有成果的深入分析研究基础上,理清了w e b 服务的关键技术的发 展脉络,对分布式事务处理和w e b 服务服务原子事务和业务活动规范作了详细分 析,提出了实现原子事务和业务活动的原型,并给出了相应的实现。本人研究的 主要内容包括以下几个要点: 1 、w e b 服务技术:通过阅读x m l 、w s d l 、s o a p 、w s c o o r d i n a t i o n 等规范, 对w e b 服务的整体结构有了全面的理解。 2 、事务服务:深刻理解了事务的基本概念和事务服务框架,研究了分书式事 务的模型规范d t p 和o t s ,w e b 服务事务的实现参照了这两个规范。阅读并理解 了w e b 服务原子事务和业务活动实现的规范,分析了它的构成和各个组成部分的 功用。 3 、基于w e b 服务原子事务规范和业务活动规范,提出了实现w e b 服务原子 事务和业务事务的原型,具体分析了w e b 服务事务实现的架构并给出了相应的实 !坠! 竖堑皇堑盟婴塑兰垄型 现。 1 。3 论文章节安排 本文共分六章。 第一章:绪论。简要介绍了课题当前发展情况,和本人所作的研究,最后概 要地讲述了各章节的内容。 第二章:w e b 服务简介。介绍w e b 服务的基本技术和体系结构,并对实现 w e b 服务的安全性、可靠性和事务化的有关技术作了初步的介绍。 第三章:事务介绍。介绍事务的基本特性以及高缴事务的特点,最后介绍了 分布式事务的处理机制和事务模型。 第四章:w e b 服务事务分析。在对w e b 服务原子事务和业务活动事务规范分 析的基础上,对w e b 服务业务流程中的原子事务和业务活动的特性和处理机割作 了详细的说明。 第五章:w e b 服务事务设计与实现。在对w e b 服务事务分析的基础上,本章 为w e b 服务原子事务和业务活动分别提出了一个的原型,为这两个原型设计了实 现架构,并给出了具体实现。 第六章:在陕西邮政系统中的应用。讲述了w e b 服务实现架构在邮政系统中 的应用,并且分析了其实际运行效果。 第七章:结束语。本章对本论文的工作做了一个总结,并给出了进一步的研 究内容和方向。 蔓三差竖! 望堑堕坌 第二章w e b 服务简介 2 1w e b 服务的基本技术 w e b 服务是由u r i 标识的软件应用程序,其接口和绑定可以通过x m l 构 件进行定义、描述和发现,w e b 服务支持通过基于因特网的协议使用基于x m l 的 消息与其他软件应用程序直接交互。从表面上看,w e b 服务就是一个应用程序, 它向外界暴露出一个能够通过w e b 进行调用的a p i 。从深层次上看,w e b 服务是 一种新的w e b 应用程序分支,它们是自包含、自描述、模块化的应用,可以在网 络( 通常为w e b ) 中被描述、发布、查找以及通过w e b 来调用。 w e b 服务是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具 体的技术规范,这些规范使得w e b 服务能与其他兼容的组件进行互操作。它可以 使用标准的互联网协议,像超文本传输协议h t t p 和x m l ,将功能体现在互联网 和企业内部网上。w e b 服务平台是一套标准,它定义了应用程序如何在w e b 上实 现互操作性。 2 1 1w e b 服务描述语言( w s d l 2 1 ) w s d l t m 是基于x m l 的描述w e b 服务属性的语言。它为描述w e b 服务提供 了一个模型和一种x m l 格式。w s d l 可以分丌描述一个服务提供的抽象功能和这 个服务描述的具体细节。w s d l 文档可以包含以下内容:w e b 服务做什么;w e b 服务位于哪里:怎样调用。如果将w e b 服务作为一个分布式对象来看,w s d l 就 是w e b 服务的接口描述语言( i d l ) 。w s d l 定义了一套基于x m l 的语法,将 w e b 服务描述为能够进行消息交换的服务访问点的集合。 在w s d l 中,由于服务访问点和消息的抽象定义己从具体的服务部署或数据 格式绑定中分离出来,因此可以对抽象定义进行再次使用。消息,指对交换数据 的抽象描述;而端口类型,指操作的抽象集合。用于特定端口类型的具体协议和 数据格式规范构成了可以再次使用的绑定。将w e b 访问地址与可再次使用的绑定 相关联,可以定义一个端口,而端口的集合则定义为服务。w s d l 中定义的元素 有: t y p e s :数据类型定义的容器,它使用某种类型系统( 一般地使用x m ls c h e m a 中的类型系统) 。 m e s s a g e :通信消息的数据结构的抽象类型化定义。使用t y p e s 所定义的类型 来定义整个消息的数据结构。 4w e b 服务事务的研究与应用 o p e r a t i o n :对服务中所支持的操作的抽象描述,一般单个o p e r a t i o n 描述了一 个访问入口的请求n l - j 应消息对。 p o r t t y p e :对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以 由一个或多个服务访问点来支持。 b i n d i n g :特定端口类型的具体协议和数据格式规范的绑定。 p o r t :定义为协议数据格式绑定与具体w e b 访问地址组合的单个服务访问点。 s e r v i c e :相关服务访问点的集合。 w s d l 支持四种访问入口调用的模式:单请求:单响应;请求n l ;j 应;响应 请求。在这里请求指的是从客户端到w e b 服务端,而响应指的是从w e b 服务端到 客户端。p o r t t y p e 的定义中会引用消息定义部分的一个到两个消息,作为请求或响 应消息的格式。比如,一个股票查询的访问入口可能就会支持两种请求消息,一 种请求消息中指明股票代码,而另一种请求消息中则会指明股票的名称,响应消 息可能都是股票的价格等等。s e r v i c e 描述的是一个具体的被部署的w e b 服务所提 供的所有访问入口的部署细节,一个s e r v i c e 往往会包含多个服务访问入口,而每 个访问入1 3 都会使用一个p o r t 元素来描述。p o r t 描述的是一个服务访问入口的部 署细节,包括通过哪个w e b 地址( u r l ) 来访问,应当使用怎样的消息调用模式来 访问等。其中消息调用模式则是使用b i n d i n g 结构来表示。绑定结构定义了某个 p o r t t y p e 与某一种具体的网络传输协议或消息传输协议相绑定,从这一层次开始, 描述的内容就与具体服务的部署相关了。比如可以将p o r t t y p e 与s o a p h t t p 绑 定,也可以将p o r t t y p e 与m i m e s m t p 相绑定等。 w s d l 的设计理念完全继承了以x m l 为基础的当代w e b 技术标准的贯设 计理念:开放。w s d l 允许通过扩展使用其他的类型定义语言( 不光是x m l s c h e m a ) ,允许使用多种网络传输协议和消息格式( 不光是在舰范中定义的这些: s o a p h t t p ,h r t p g e t p o s t 以及m i m e 等) 。同时w s d l 也应用了当代软件 工程中的复用理念,分离了抽象定义层和具体部署层,使得抽象定义层的复用性 火犬增加。比如我们可以先使用抽象定义层为一类w e b 服务进行抽象定义( 比如 u d d i r e g i s t r y ,抽象定义肯定是完全一致的遵循了u d d i 规范) ,而不同的运营公 司可以采用不同的具体部署层的描述结合抽象定义完成其自身的w e b 服务的描 述。 w e b 服务描述语言w s d l就是用机器能阅读的方式提供的一个正式描述文 档而基于x m l 的语言,用于描述w e b 服务及其函数、参数和返回值。w s d l 是 基于x m l 的服务描述的真正标准。这是支持可互操作的w e b 服务所需的最小 标准服务描述。w s d l 定义了服务交互的接口和结构。要指定业务环境、服务质 量和服务之闻的关系,还需要另外的描述。w s d l 文档可以由其它服务描述文档 来补充,从而描述w e b 服务的这些更高级的方面。例如,描述业务环境除了使用 第二章w e b 服务简介 5 w s d l 文档,还要使用u d d i l 4 l 数据结构。 2 1 2 简单对象传输协议( s o a p ) s o a p l 3 1 是用于在松散的、分布式环境中交换x m l 编码信息的轻量级协议。 它使用x m l 技术定义了一个能够在各种各样的底层协议之上交换消息的可扩展 的消息框架,该框架独立于任何特殊的编程模型和特定语义的实现口j 。 s o a p 包括四个部分:s o a p 封装( e n v e l o p ) ,封装定义了一个描述消息中的内 容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架:s o a p 编 码规则,用于表示应用程序需要使用的数据类型的实例;s o a pr p c 表示远程过 程调用和应答的协定;s o a p 绑定( b i n d i n g ) ,使用底层协议交换信息。虽然这四 个部分都作为s o a p 的一部分,作为一个整体定义的,但他们在功能上是相交的、 彼此独立的。特别的,信封和编码规则是被定义在不同的x m l 命名空间( n a m e s p a c e 、 中,这样使得定义更加简单。s o a p 可以运行在任何其他传输协议上。从某种意义 上讲,s o a p 可以简单理解为:h t t p + x m l + r p c 。h t t p 作为底层通信协议, r p c 作为一致性的调用途径,x m l 作为数据传输的格式。s o a p 并没有定义信息 的语义, 图2 1 使_ i _ js o a p 的x m l 消息传递 而是采用x m l 进行消息编码,正确的处理需要服务器和客户端本身来执行,理解 和执行彼此使用的信息格式,应用程序本身在语义解析中扮演者十分重要的角色, 可以很好的实现互操作性。 s o a p 消息是出一个强制的s o a p e n v e l o p e 、一个可选的s o a p 头和一个强制 的s o a p 体组成的x m l 文档。s o a p e n v e l o p e 是s o a p 规范中定义的s o a p 消息 在文法上的最外层结构,它包含了所有其它的元素。s o a p 头是为了支持在松散环 境下在通信方之间尚未与先达成一致的情况下为s o a p 的消息增加特性的通用机 制。s o a p 体为该消息的最终接受着想要得到的那些强制信息提供了一个容器。此 w e b 服务事务的研究与应用 外,s o a p 为s o a p 体定义了一个子元素f a u l t 用于报告错误。 s o a p 的两个主要设计目标是简单性和可扩展性。这就意味着有一些传统消息 系统或分布式对象系统中的某些性质将不是s o a p 规范的一部分。比如:分布式 垃圾收集、成批传送消息、对象引用、对象激活。 2 1 3 统一描述发现和整合( l 肪d 1 1 4 1 ) u d d i l 4 1 是一套基于w e b 的w e b 服务注册中心的实现标准规范。注册中心维护 了一个w 曲服务的全球目录,其中的信息描述格式是基于通用的x m l 格式的。 u d d i 计划的核心组件是u d d i 商业注跚,它使用x m l 文档来描述企业及其提供 的w e b 服务,从概念上讲,u d d i 商业注册所提供的信息包含三部分:白页,包 含地址、联系方法、已知的企业标识;黄页,包含基于标准分类法的行业类别: 绿页,包含关于该企业所提供的w e b 服务的技术信息,其形式可能是指向文件或 u r l 的指针,而这些文件或u r l 是为服务发现机制服务的。 u d d i 注册中包含了四类信息:商业实体信息,包含发布w e b 服务的企业的 信息,企业信息可以按照n a i c s 工业分类法、u n s p s c 产品分类法、以及地理位 置分类法进行分类;商业服务信息,包含企业发靠的w e b 服务的描述,服务信息 也可以按照类似的分类方法组织;绑定模板信息,指向一个安装的w e b 服务( 目 标地址) 和个相关的w s d l 文件,一个商业服务条目可以有多个绑定模板信息; 技术规范信息月臣务类型,指向相应的w e b 服务绑定文件。 u d d i 的目的是为电子商务建立标准:u d d i 是一套基于w e b 的、分布式的、 为w e b 服务提供信息注册中心的实现标准规范,同时也包含一组使企业能将自身 提供的w e b 服务注册,以使别的企业能够发现的访问协议的实现标准。 从根据x m l 与s o a p 、u d d i 为标准的基础平台上独立的解决,为了发现企 业内部的服务进行查询,提供公开服务被构造化的机械装置。u d d i 与x m l 基础 的w e b 服务同样,被设计为支持象遗赠应用程序那样的程序,因为i t 部门在企业 全体内对服务进行构造化使成为目录化变为可能,所以在必要的时候能够发现恰 当的服务。内部u d d i 服务器的引进在几个部署上带来了开发者与i t 的效率性的 向上。如果企业制定标准协议的公式包,开发者能够在附加价值功能上集中劳力, 能够减少作为基础的i n f r a s t r u c t u r e 与通信的o v e rh e a d 。u d d i 因为正是根据o p e n 规格,对应u d d i 的开发工具所以能够利用不管哪个的类似功能。 第一,u d d i 服务器提供登记服务单一的地点。这服务对于公司来说因为能够 发现分类有意义的方法、部门或制品、技术、地域等越过应用软件的记述。公司 的开发者因为能够利用u d d i 服务,所以在搜索服务替换既存的应用程序时,能 够集中新的必要的应用程序的编写程序。第二,u d d i 作为基础的工具或与技术并 笙三童竺! 里丝堕坌 一一一j 无特定的连接,支持对部门的系统进行连接的公司全体协议的重新利用催促与规 格索引机能。这个结果削减了企业水平和协力合作部门间系统的统一费用。另外 有关这个协议的知识,开发者在同别处的系统进行信息交换的同时,那个学习曲 线会变为平缓。第三,u d d i 从开发工具与被统一化的开发环境( i d e ) 提供能够直 接连接共享资源。譬如v i s u a ls t u d i o n e t 功能在利用w s d l ( w e b 服务记述语言) 文件的时候支持u d d i 。 2 2 面向服务的架构( s o a ) 面向服务的体系结构( s o a ) 的核心概念之一就是灵活地绑定服务。更传统 的过程性模型、组件模型和对象模型通过引用( 指针) 或名称绑定组件。s o a 支 持更动态地发现服务实例来提供请求者所期望的接口、语义和服务保证。 面向服务的体系结构通过s c h e m a 和合同而非类型描述服务。与以前的系统 不同,w e b 服务模型没有使用共享类型( 需要通用的实现) 的概念。相反,服务 的交互是完全根据合同( 用于消息处理行为的w s d l b p e l 4 w s ) 和s c h e m a ( 用 于消息结构的w s d 呶s d ) 。这使得服务能够描述它可以发送和或接收的消息的 结构以及对这些消息的顺序约束。结构和行为之间的分离以及对这些特征进行的 显式和机器可验证的描述,可以简化异质环境中的集成。此外,这种信息充分地 描述了服务接口的特征,这样应用程序集成就不需要共享的执行环境来创建消息 结构或行为。面向服务的模型假定一个完全分布式的环境,在这种环境中,将 s c h e m a 和,或合同中的改变 传送到与服务交互的所有各方是非常困难的,如果不是不可能的话。面向服 务意味着s c h e m a 和合同应该保持向后兼容,并且可以包含不完全为特定处理系 统理解的信息。由于这个原因,为用在面向服务的设计中而设计的合同和s c h e m a 能够比面向对象的接口更灵活。特别是,服务可使用像x m l 元素通配符( 例如, x s d :a n y ) 、s c h e m a 扩展和可选的s o a p 头部来以不中断部署的应用程序的方式发 展服务。这些特征对于w e b 服务的可组合形式非常关键的。 面向服务的体系结构的服务兼容性多于类型兼容性。过程性设计和面向对象 设计一般把类型兼容与语义兼容等同起来。面向服务为决定兼容性提供了更加丰 富的模型。结构兼容性是基于合同( w s d l 和b p e l 4 w s ( 可选) ) 和s c h e m a ( x s d ) 的,并且可以进行验证。此外,w s p o l i c y 的出现使得可以对服务之间服务保证的 兼容性进行附加的自动分析。这是根据w s p o l i c y 语句形式的能力和需求显式断 言完成的。使用w s - p o l i c y ,服务可以以机器可读的策略表达式( 包含断言组合) 的形式描述它们的服务保证能力和需求。这允许服务根据它们“如何”或“以什 么样的质量”提供它们的合同来相互选择。策略断言通过稳定的且全局惟一的名 !翌! 竖墨皇墨笪塑窒兰生旦 称进行标识,不管把策略断言应用到哪一种服务,这种名称的含义在时间和空间 上都是一致的。策略断言也可以带有参数来限定断言的确切解释。 面向服务假定坏的事情可以并且必将发生。以前的一些用于分布式应用程序 的方法显式地假定通用的类型空间、执行模型和过程对象引用模型。其实,“记忆 中”的编程模型都可称为分布式系统模型。面向服务仅仅假定服务自动执行,而 没有本地执行或通用的操作环境的观念。由于这个原因,s o a 显式地假定通信、 可用性和类型错误都是共同的。为了维护系统的完整性,面向服务的设计显式地 依赖于各种技术来处理异步和部分失败模式。诸如异步消息传递、事务处理、可 靠消息传递和冗余部署都是面向服务的系统中的标准。此外,与以前的模型不同 的是。面向服务假定传入消息不仅可以是结构不良的,而且它可以出于恶意或完 全意想不到的目的进行传递。所以面向服务的系统通过把提供证据的责任放到所 有的消息发送者身上来保护自己,它们需要应用程序证明已经授予发送者所需的 权限。与服务自治的观念相一致,面向服务的体系结构一般依赖于行政管理的信 任关系,从而避免了使用传统的w e b 应用程序中常见的通过服务验证的机制。 面向服务使得能够灵活地绑定服务,服务实现的松散绑定使选择行为的实现 成为可能,这可以用于解决各种各样的需求问题。例如,可供选择的实现可能对 应于供应链上可供选择的厂商。这些厂商使得服务能够更快地响应改变的市场条 件。同样,从地理上讲,可供选择的实现可能是分布式数据中心,这些数据中心 使得服务能够容许灾难的出现。 w e b s e r v i c e 架构是一种三角形设计模式,被称为面向服务的体系结构: 服务提供者:负责使用w s d l 描述和定义w e bs e r v i c e 的功能,在u d d i 注册 库( 位于服务代理) 中发布这些服务的信息,使得它们可以被服务请求者访问和 调用。 服务代理:负责宣传服务提供者发布的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 b s e r v i c e 的w s d l 文档,根据服务描述来绑定和调用服务提供者提供的。 这种体系结构包括了下面三个标准操作。 发布:由服务提供者执行来宣传和注册一个服务的存在和功能,是服务提供 者和服务代理之间的操作。 查找:由服务请求者执行来查找符合特定需求或技术特征的服务,是服务请 求者和服务代理之间的操作。 绑定:由服务请求者执行来调用服务提供者提供的服务,是服务请求者和服 务提供者之间的操作。 这些角色和操作一起作用于w e b 服务构件:w 曲服务软件模块及其描述。 塑三里! ! ! 壁堑堕坌 在典型情况下,服务提供者托管可通过网络访问的软件模块( w e b 服务的一个实 现) 。服务提供者定义w e b 服务的服务描述并把它发稚到服务请求者或服务注册 中心。服务请求者使用查找操作来从本地或服务注册中心检索服务描述,然后使 用服务描述与服务提供者进行绑定并调用w e b 服务实现或同它交互。服务提供者 和服务请求者角色是逻辑结构,因而服务可以表现两种特性。图3 显示了这些操 作、提供这些操作的组件及它们之划的交互。 图2 2 面向服务的软件体系结构 2 3 实现安全、可靠、事务化的w e b 服务 在当今不断变化的市场中,企业承受着巨大的压力,需要采用新的功能、提 高现有业务的效率、降低现有i t 基础架构的复杂性并在资源不断减少的情况下保 证业务的连续性。 提高运行效率的关键在于开发更有效的新方法来连接涉及不同企业利技术的 应用、信息和人员。近些年来,w e b 服务作为可以进行这样的集成的框梨脱颖而 出。随着这种新方法的采用不断地增加,用户将越来越多地需要有价值受高的功 能,比如在w e b 服务基础架构中内在提供的安全性、事务支持和可靠的践领域的 消息传递,以淘汰现在昂贵、复杂和脆弱的一次性解决方案。 为了解决这些问题,i b m 、m i c r o s o f t 和业界其他一些公司已经合作j i 发了有 关w e b 服务安全、事务实现的规范。这些规范可以使w e b 服务更安全、91 可靠、 更好地支持事务处理。 下图显示了安全、可靠、事务w e b 服务协议在w e b 协议栈中的地位。 ow e b 服务事务的研究与应用 圈2 3w e b 服务协议层次结构 2 3 1 w e b 服务的安全性 传统的安全性机制往往依赖于使用特定的应用程序,但是使用w s 安全性 ( w s s e c u r i t y ) 及其相关的规范族,使得用户i d 和密码以及安全性令牌可以独 立于网络传输、操作系统或开发工具而使用。此外,因为w e b 服务根植在现有的 安全性基础架构中并且有意简化这样的基础架构的使用,所以先前在构建和维护 现有系统上的投资可以继续发挥作用。这种方法带来的好处包括:大大降低了复 杂性、减少了开发、维护和支持方面的人力投入、改进了终端用户的体验、增加 了服务的灵活性和可组合性,从而提供了一个新的机会,可以以效率更高收益更 大的新方法来利用现有的投资。 与安全往相关的协议有w s s e c u r i t y p j 、w s - t r u s t 垆】、w s f e d e r a t i o n p j 、 w s s e c u r e c o n v e r s a t i o n 辟1 等。 w s s e c u r i t y 5 1 是安全w 曲服务的基本构件。现在。大多数分布式w e b 服务 依赖于安全性功能的传输级别支持。例如h t t w s 和b a s i c a u t h 验证。这些方 法提供了最低限度的安全通信。然而,它们提供的功能级别大大低于现有中间件 和分布式环境所提供的。w s - s e c u r i t y 解决了h t t p s 等的安全缺陷。它支持安全 性令牌。a 可以生成一个令牌,c 可以将此令牌作为来自a 的令牌加以验证。 b 不能伪造该令牌。a 可以签署已选择的元素或整个消息。这允许b 和c 确认 该消息自a 发送它以来没有更改过。a 可以密封该消息或已选的元素。这确保了 只有为这些元素预定的服务才可以使用该信息。这阻止了b 看到为c 预定的信 息,反之亦然。w s s e c u r i t y 使用现有的安金性模型( k e r b e r o s 、x 5 0 9 等等) 。 这些具体地定义了如何以可互操作的方式使用现有的模型。没有w s s e c u r i t y ,多 跳( m u l t i h o p ) 、多方的w e b 服务计算就不可能是安全的。 w s t r u s t 6 】定义了建立和验证信任关系的可扩展模型。安全性依赖于预先确定 的信任关系。w s t r u s t 中的密钥概念是安全性令牌服务( s t s ) 。s t s 是著名的 国圈 第二章w e b 服务简介 l l 一一 w e b 服务,它签发、交换安全性令牌,并且检查安全性令牌的有效性。w s t r u s t 允 许w e b 服务建- c r o p 约定它们“信任”哪些安全性服务器,并且允许它们依赖于这 些服务器。s t s 之所以得到了广泛的应用,是因为它可以用于签发安全性令牌柬 作出各种各样的断言。在许多情况下,它将用于签发相同的断言( 不过格式不同) 。 例如,s t s 可能签发k e r b e r o s 令牌,断言密钥持有者是s u s a n ,并且它可能是根 据信任的证书机构签署的x 5 0 9 证书来这样做的。这使得组织能够使用不同的安 全性技术来结成联盟。s t s 也可能根据传入的断言标识声明的安全性令牌,来签 署安全性令牌,断言密钥持有者是组b a n k t e l l e r s 中的某个成员。 一些w e b 服务场景只需要简短零星的少数消息的交换。w s s e c u r i t y 很容易 支持这种模型。还有一些场景需要在w e b 服务之间进行长期的多消息交谈。 w s s e c u r i t y 也支持这种模型,但是解决方案不是最佳的。在这些场景中,有两种 次优的w s s e c u r i t y 的用法:重复使用计算上昂贵的加密操作,比如公共密钥有 效性检查:使用相同的加密钥发送和接收许多消息,提供更多允许强力攻击以“破 坏代码”的信息。由于这些原因,诸如h t t p s 之类的协议就使用公共密钥进行 简单的商议,以定义交谈专用密钥( c o n v e r s a t i o ns p e c i f i ck e y s ) 。这种密钥交换提 供了更有效的安全性实现。并且减少了使用一些特定的密钥进行加密的信息的数 量。 w s s e c u r e c o n v e r s a t i o n 婵j 对w s - s e c u r i t y 提供了类似的支持。参与者常常使 用带有公共密钥的w s s e c u r i t y 来开始“交谈”或“会话”,并且使用w s s e c u r e c o n v e r s a t i o n 约定签署和加密信息的会话专用密钥。 w s - f e d e r a t i o n j 允许些组织建立一个虚拟的安全性区域。例如,旅行代理、 航空公司和旅馆链可以建立这样的联盟。“进入”联盟中任一成员的终端用户可以 有效地进入所有的成员。w s f e d e r a t i o n 通过w s t r u s t 和w s s e c u r e c o n v e r s a t i o n 拓扑之间的协议为给定的安全性定义了几种模型。另外,顾客在与企 业打交道时常常有“特性”。例如,优先选择靠窗或过道旁的座位或中型汽车。 w s f e d e r a t i o n 允许成员建立联合的特性空i i 白j 。这允许参与者在安全控制的条件r 访问每个成员关于终端用户的特性信息。关于个人的特性和信息可能秘密存放, 因为需要保护人们的隐私,或者因为这些信息给某个成员提供了竞争优势。为了 支持这些需求,w s f e d e r a t i o n 支持假名模型。经过旅行代理验证的用户在与航空 公司或旅馆交互的过程中使用代理生成的“别名”。这保护了终端用户的隐私和旅 行代理因知道用户特性而赢得的竞争优势。 2 3 ,2w e b 服务的可靠性 在i n t e m e t 世界几乎所有的信息通道都是不可靠的a 消息会丢失。连接会 ! !翌! 堡箜至箜堕塑窒望堕型一 中断。如果没有可靠的消息传递标准,w e b 服务应用程序开发人员就必须将这些 功能构建在他们自己的应用程序中。实现消息传递可靠性的基本方法和技术是确 保消息有惟一的标识荷,提供顺序号,并且在消息丢失时使用重发。 w s r e l i a b l e m e s s a g i n g 唧协议定义了一些机制,使w e b 服务能够确保w e b 服 务在不可靠的通信网络上确保消息的传递。w s r e l i a b l e m e s s a g i n g 不仅确保服务实 现互操作方法,而且通过提供实现协议的服务使运行时厂商能够更容易地进行应 用程序的丌发。这大大简化了应用程序_ 丌发的任务。因此,业务逻辑有极少的错 误情况需要处理。最后,业界有很多面向消息的中洲件,可以用于可靠地路由和 分布消息。每个实现都使用专有的协议。 操作系统和中间件系统可靠地交换消息。 构跨接成一个逻辑上完整的端对端模型。 w s - r e l i a b l em e s s a g i n g 协议允许不同的 因而,它支持把两个不同的基础体系结 2 3 3 w e b 服务的事务化 与实务相关的协议有w s c o o r d i n a t i o n 1 m ,w s a t o m i c t r a n s a c t i o n i ,w s b u s i n e s s a c t i v i t y l l 2 】等。 w s c o o r d i n a t i o n 【l 叫规范了个可扩展框架,提供了协调分稀式应用程序的操 作的协议。这样的协调协议用于支持大量应用程序,包括那些需要对分布式事务 的输出结果达成一致的应用程序。w s c o o r d i n a t i o n 规范定义的框架使应用程序服 务能够创建上下文,将活动传播给其它服务或者注册协调协议时需要该上下文。 此框架使现有的事务处理、工作流以及其它的协调系统能够隐藏它们的专有仂、议 并能够在异构环境中运行。 w s - c o o r d i n a t i o n 是一个通用的规范,具有通用的功能。w s a t o m i ct r a n s a c t i o n 和w s b u s i n e s s a c t i v i t y 扩展了此规范,以使分南式计算中的参与者能够 稳固地决定结果。 w s a t o m i c t r a n s a c t i o n 【i ”定义了一组特定的协议,这组协议可以插入w s c o o r d i n a t i o n 模型,以实现传统的两阶段原子事务处理协议。注意到原予的两阶段 模型只是就涉及的服务而言的非常重要。提供服务的站点或基础体系结构可能大 肆宣传两阶段提交,但是却使用一些其他的企业内部模型,比如补偿模型或版本 模型。这种自由使简单的两阶段提交模型对于长期运行的i n t e m e t 计算更有用。 w s b u s i n e s s a e t i v i t y l 训定义了一组特定的协议,这组协议可以插入 w s c o o r d i n a t i o n 模型,以实现长期运行的、基于补偿的事务处理协议。虽然 b p e l 4 w s 为业务处理定义了个事务处理模型,但是指定对应的协议翻译的是 w s b u s i n e s s a e t i v i t y 。 墨三至翌箜坌型旦 第三章事务介绍 3 1 经典事务 事务的概念最早是在数据库领域中提出的。事务是由一系列操作序列构成的 程序执行单元。这些操作要么都做,要么都不做,是一个不可分割的工作单位。 设想网上购物的一次交易,其付款过程至少包括以下儿步数据库操作: ( 1 ) 更新客户所购商品的库存信息 ( 2 ) 保存客户付款信息一可能包括与银行系统的交互 ( 3 ) 订单并且保存到数据库中 ( 4 ) 更新用户相关信息,例如购物数量等等 正常的情况下,这些操作将顺利进行,最终交易成功,与交易相关的所有数 据库信息也成功地更新。但是,如果在这一系列过程中任何一个环节出了差错, 例如在更新商品库存信息时发生异常、该顾客银行账户存款不足等,都将导致交 易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变,比如 最后一步更新用户信息时失败而导致交易失败,那么必须保证这笔失败的交易不 影响数据库的状态一库存信息没有被更新、用户也没有付款,订单也没有生成。 否则,数据库的信息将会一片混乱而不可预测。 数据库事务正是用来保证这种情况下交易的平稳性和可预测性的技术。 3 1 1 事务的状态 一个事务丌始运行后,其结果如何是难以预测的。为了保障系统

温馨提示

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

最新文档

评论

0/150

提交评论