(计算数学专业论文)一种支持qos的web服务事务中间件研究与实现.pdf_第1页
(计算数学专业论文)一种支持qos的web服务事务中间件研究与实现.pdf_第2页
(计算数学专业论文)一种支持qos的web服务事务中间件研究与实现.pdf_第3页
(计算数学专业论文)一种支持qos的web服务事务中间件研究与实现.pdf_第4页
(计算数学专业论文)一种支持qos的web服务事务中间件研究与实现.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

摘要 可信的w e b 服务需要引入w e b 服务事务来保证。学术界和工业 界借鉴了传统事务的一些技术和经验,提出了w e b 服务事务的规范 和协议来解决w e b 服务的事务问题。但w e b 服务事务和传统事务的 差异比较大,出现了很多新的问题。现有规范和协议不是很完善,不 能很好的解决w e b 服务事务应用中存在的问题。 本文通过对传统事务和w 曲服务事务的协调模型以及协调协议 的研究,发现w e b 服务事务参与各方存在紧耦合的问题。为解决这 个问题,本文提出了一个解耦的w e b 服务事务中间件模型的架构以 及具体实现。本文的主要工作包括以下几个方面: 1 ) 提出了w e b 服务事务中间件模型的架构设计,对参与w e b 服务事务的各部分( 应用程序、协调器、服务提供方) 进行 了解耦,使应用程序与协调器不再紧耦合,提高了协调器的 通用性,使之能够作为独立的第三方软件出现,成为w e b 服 务事务中间件;事务中间件各模块的功能接口都发布为w e b 服务,从而提高了系统的灵活性,可扩展性。 2 ) 在事务中间件模型的基础上,引入了q o s 管理器。本文根据 事务处理的需要给出了w e b 服务q o s 属性定义,应用程序根 据业务需求选择q o s 值最优的w e b 服务进行调用。基于服务 提供者对服务调用者有q o s 的偏好选择,给出了事务中q o s 属性值的标准化方法及其q o s 综合评价的计算模型,体现了 服务提供方的自治性,保证了服务提供方的利益。服务提供 者使用q o s 管理器来对应用程序的q o s 属性值进行计算,从 而决定服务提供方是否响应此次调用。本文采用能自动修正 不满足一致性的判断矩阵的层次分析法来计算q o s 属性的权 重,使事务处理保证完全自动性和连续性; 3 ) 对w e b 服务原子事务模型和协调协议进行了设计与实现,对 w e b 服务业务活动的协调协议进行了扩展,并对业务活动的 补偿进行了研究,提出了配置文件的形式来确定补偿操作的 尝试。 关键词:w e b 服务,原子事务,业务活动,服务质量 i i a b s t r a c t t oe n s u r et h ec r e d i b l eo fw e bs e r v i c e s ,i tn e e dw e bs e r v i c e t r a n s a c t i o n s o m et e c h n o l o g yo f c o n v e n t i o nt r a n s a c t i o na n d e x p e r i e n c eisu s e df o rr e f e r e n c eb ya c a d e m ea n din d u s t r yt o p r o p o s es p e c i f i c a t i o no ft r a n s a c t i o nf o rw e bs e r v i c e s , s oa s t os o l v e t h e p r o b l e m o ft h et r a n s a c ti o nf o rw e b s e r v i c e s h o w e v e r ,t h es p e c i f i c a t i o ni sn o ts om u c hp e r f e c t , f o rt h e r ei sm u c hd i f f e r e n c eb e t w e e nt r a d i t i o n a lt r a n s a c t i o n a n d w e bs e r v i c e st r a n s a c t i o n ,a n ds o m en e wp r o b l e m sa p p e a r ,i t c a n ts o l v et h ep r o b l e m si na p p l i c a t i o no fw e bs e r v i c e s t r a n s a c t i o n s os t i l ll o t so ft h i n g ss h o u l db es t u d i e d i nt h i sp a p e r ,t h em o d e la n ds p e c i f i c a t i o no ft r a n s a c t i o n w e r ed is c u s s e d ,b a s e do nt h et r a d i ti o n a lt r a n s a c ti o na n dw e b s e r v i c et r a n s a c t i o n w ef o u n dt h a tt i g h tc o u p li n ge x i s t e di n e a c hp a r t i c i p a n to ft r a n s a c t i o n ,w h i c hi sd i s o b e yt h ep r i n c i p l e o fl o o s ec o u p li n g s ow ep r e s e n t e da r c h it e c t u r eo fd e c o u p l e d w e bs e r v i c et r a n s a c t i o nm i d d l e w a r e ,a n dr e a l i z e di t o u rw o r k i n c l u d es e v e r a la s p e c tb e ll o w s : 1 ) d e s i g n e d t h ea r c h i t e c t u r eo ft h ew e bs e r v i c e t r a n s a c ti o nm i d d l e w a r e :d e c o u p l e de a c hp a r to fw e b s e r v i c et r a n s a c t i o n( s u c ha s a p p l i c a t i o n p r o g r a m,c o o r d i n a t i o n a n ds e r v i c e p r o v i d e r ) ,s o d e c o u p l e dt h ea p p l i c a t i o np r o g r a ma n dc o o r d i n a t i o n , a n di m p r o v e dt h eu n i v e r s a li t yo fc o o r d i n a t i o n ,m a d ei t a p p e a r si n d e p e n d e n t1 ya sat h i r dp a r ts o f t w a r e ,t ob e aw e bs e r v i c e st r a n s a c t i o nm i d d l e w a r e e v e r ym o d u l eo f i i i t r a n s a c t i o nm i d d l e w a r e w e r e p u b l i s h e d t ow e b s e r v i c e s oo u rs y s t e mg e tb e t t e rf l e x i b i l i t ya n d e x p a n d a b ili t y 2 ) o nt h eb a s i so ft h et r a n s a c t i o nm i d d l e w a r em o d e l ,w e p r o p o s e d t h eq o sm a n a g e r w eh a v ed e sig n e dq o s a t t r i b u t e so fw e bs e r v i c e sd e f i n i t i o n a c c o r d i n gt ot h e s e r v i c ep r o v i d e r sq o sp r e f e r e n c et os e r v i c ei n v o k e r , w ep r e s e n taw a yt os t a n d a r dt h ev a l u eo fq o sa t t r i b u t e a n dt h ec o m p u t i n gm o d e lf o rt h es y n t h e t i ce v a l u a t i o nf o r q o s ,e m b o d ya u t o n o m yo fs e r v i c ep r o v i d e ra n de n s u r ei t s b e n i f i t i nt h i sp a p e r ,w eu s e dl a y e ra n a l y s i sm e t h o d , t h a tc a na u t o m a t ec o r r e c ti n gt h ej u d g em a t r i xw h ic his n o ts a t i s f yt h ec o n s i s t e n c y ,t oc o m p u t et h ew e i g h to f q o sa t t r i b u t e ,s oa st om a k et h et r a n s a c t i o np r o c e s s t oe n s u r et h ea u t o m a t i c i t ya n dc o n t i n u i t y 3 ) w eh a v ed e s i g n e da n di m p l e m e n t e dw e bs e r v i c e sa t o m i c t r a n s a c t i o nm o d e la n dc o o r d i n a t i o np r o t o c 0 1 e x t e n d e d t h ec o o r d i n a t i o n s p e c i f i c a t i o n f o rw e bs e r v i c e s b u s i n e s s a c t i v i t y ,s t u d y t h e c o m p e n s a t i o n o ft h e b u s i n e s sa c t i v i t y ,a n dc h o o s et h ew a yo fc o m p e n s a t e a c t i o nb yc o n f i gf i l e k e yw o r d s :w e bs e r v i c e s ,a 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 , o o s i v 湖南师范大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论 文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的 研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人 完全意识到本声明的法律结果由本人承担。 学位论文作者签名:j 志j 志。封妇6 年 月岁日 湖南师范大学学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 研究生在校攻读学位期间论文工作的知识产权单位属湖南师范大学。 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权湖南师范大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。 本学位论文属于 1 、保密口,在年解密后适用本授权书。 2 、不保密口。 一 ( 请在以上相应方框内打“ ”) 作者签名:j 薏1r 己t 效日期:如口彦年6 月 日 导师签名:蔼春岛 日期:加8 年6 月6 日 一种支持q o s 的w e b 服务事务中间件研究与实现 1 1 课题背景 1绪论 在9 0 年代后期,随着互联网和调子商务的发展,人们对基于w e b 的分布式计算技术的需求越来越大,但当时的技术都无法满足人们的 需求。为满足应用的需求,w e b 服务( w e bs e r v i c e s ) 应运而生。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 曲s e r v i c e s 环境,主要是因为对于w e b s e r v i c e s 环境,原子性要求过于严格。w e b 服务基于x m l 进行互操 作,其合成具有动态性,参与的服务数量众多,环境更为松散复杂。 处于这种环境中的事务更加复杂、灵活,且通常运行时间较长,传统 的锁机制和恢复机制不再适用。因此,w e b 服务事务模型应该放松对 原子性和隔离性的要求。工业界和学术界都非常关注w e bs e r v i c e s 中 事务的研究。2 0 0 1 年惠普公司、甲骨文公司及b e a 公司组成的联盟 开始着手创建o a s i sb u s i n e s st r a n s a c t i o np r o t o c o l ( b t p ) 1 2 1 标准,它 主要针对松散耦合领域中的企业到企业的事务处理,比如w e b 服 硕士学位论文 务。2 0 0 2 年i b m 、m i c r o s o f t 等共同制定了w e b 服务协调( w e bs e r v i c e s c o o r d i n a t i o n ,w s c ) 【3 】及w r e b 服务事务处理( w e bs e r v i c e s t r a n s a c t i o n s ,w s t ) 【4 j ,w s t 之后被分为w s a t o r n i c t r a n s a c t i o n ( w s a t ) 嘲和w s b u s i n e s s a c t i v i t y ( w s b a ) 旧。w s a t 是针对原子 事务的协议。w s b a 是针对长期运行的事务,放松了原子性和隔离 性,但对出现异常的补偿机制没有提出具体有效的方法。 w s c o o r d i n a t i o n 描述了可以容纳多种协调协议的w e b 服务事务处理 框架,使用w s c o o r d i n a t i o n 和w s t 组建的w e b 服务事务处理模型 大多存在参与事务的各实体紧耦合的问题,这违反了面向服务架构 ( 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 s o a ) 原则。 针对这些问题,本文中提出了一个w e b 服务事务模型,该模型 能够处理原子事务和业务活动。通过配置文件提供了有效的补偿技 术,既不需要在整个事务过程中锁定资源,也不会由于取消某个子事 务而撤销整个事务,提高了应用的并发度和系统效率。并对参与事务 的各部分进行了解耦。同时,本文还对w e b 服务事务的协调协议进 行了扩展,引入了q o s 机制体现了参与者的自主意识。 1 2 研究现状 当前w e b 服务事务规范还存在不少问题,面临不少困难。例如 传统事务的a c i d 特性,w e b 服务事务里怎么处理;w e b 服务事务参 与者分散于互联网上,w e b 服务事务需要更高的可靠性和可用性等 等。研究人员把事务研究的重点放在了事务模型,协调协议、调度算 法以及补偿算法上。 , 参考文献【7 】提出了一个事务保障参考框架,该框架提出了事务特 性注册环境来注册w e b 服务的事务特性。整个业务过程的运行分为预 处理阶段和正式处理阶段。通过预处理阶段试探性操作减少加锁时间 和补偿的可能性来支持业务流程的可靠运行。+ 一种支持q o s 的w e b 服务事务中间件研究与实现 参考文献 8 】分析了补偿事务后,提出了补偿事务的产生策略以及 执行方法。在其事务架构中引入了代理机制,其优点是可以减少对系 统资源的消耗;此外还能够使用多线程技术。 参考文献 9 提出一个扩展的两阶段提交协议。主要扩展部分是: 当参与者收到“准备提交消息后,它检查是否能提交本地事务,并 发送接受或拒绝的消息给协调者。只要有一个参与者拒绝协调者则通 知所有参与者回滚。 在经典分布式事务环境中,所有的资源都被动地、无条件地服从 事务协调者的安排。在w 曲服务事务环境中,每一个资源提供者都各 自寻求自身利益最大的事务管理策略。参考文献 1 0 提出,在w 曲服 务事务处理阶段之前引入一个独立的资源协商过程,通过一种基于整 数规划的增量式动态优化模型,确保了资源的合理分配和利用。 常见的w e b 服务都是根据互联网的尽力而为的服务模型平等地 处理所有到来的请求;大多数的w r e b 服务采用f i f o 的调度策略,在负 载较重的情况下不加区别地丢弃请求,使通过网络q o s 机制实现的性 能改进受到严重损害。参考文献【1 1 】提出了w r e b 服务事务q o s 管理的 计算模型和基于q o s 的两阶段主动提交协议。 现有的事务规范并不完善,规范有些模糊不清,缺少精确和详尽 的标准,没有提供一个协议参与者行为的详尽描述,总之还存在不少 缺陷。针对这些情况,有人提出了事务中间件的概念,试图把协调从 业务逻辑隔离开。事务中间件的主要功能就是管理协调上下文和协调 协议的执行。 从近期事务研究的文章中可以发现,研究人员提出了不少的事务 模型、协调调度算法,扩展了许多协调协议,试图找出解决w e b 服务 事务的途径,但是这些协议定义得比较泛泛,实施起来很困难,因此 依然存在不少问题等待解决。现在有少数公司或团体找到了一些解决 的办法。i b m 的w e b s p h e r ea p p l i c a t i o ns e r v e r v 2 从v e r s i o n 6 0 开始支持 硕士学位论文 w s c 和w s a t ,到最近的v e r s i o n 6 1 开始支持w s b a 。实现了对 w s t r a n s a c t i o n 族的完全支持。在开源软件方面有a p a c h e 的k a n d u l a t l 3 1 处于领先水平,对w s t 实现了一些支持。 1 3 事务处理技术及相关研究 1 3 1 事务的模型 随着计算机技术特别是数据库技术的发展,事务概念也在飞速的 变化中。在数据库事务模型的基础上提出了高级事务模型 a t m ( a d v a n c e dt r a n s a c t i o nm o d e l ) ,主要是为了解决长事务问题,包 括s a g a s 0 4 1 、多层事务模型、嵌套事务模型【1 5 1 、分支汇合事务模型、 柔性事务模型、a c t a 等。高级事务模型通常把一系列的操作分组成 为层次化结构,并且放宽了经典事务模型对a c i d 特性的要求,以便 适应不同性质的实际问题,因此又被称为扩展事务模型( e x t e n d e d t r a n s a c t i o nm o d e l ) 川。 1 3 1 1 平面事务模型 平面事务模型事务是作为单个工作单元处理的一系列操作,不可 划分为子事务。工作单元只有两种结果:要么成功,要么失败。如果 事务中的所有步骤都成功完成,则事务获得提交,并且该操作执行的 所有持久存储数据更改都将永久化。如果事务中某一步骤失败,则事 务将回滚( r o l l b a c k ) ,并反转事务中步骤受影响的所有数据。因此, 平坦事务模型是一种简单的事务模型,其事务性应用控制只有一层, 事务的a c i d 特性得到保证,适用于短事务和较为简单的应用。 1 3 1 2 扩展事务模型 虽然平坦事务模型在理论和商业应用都取得了重要成果,但是它 本身的性质限制了其应用范围,所以又发展出扩展事务模型。 4 一种支持q o s 的w e b 服务事务中间件研究与实现 嵌套事务模型:事务模型发展中最重要的一步是将普通事务模型 的单层结构扩展为多层。嵌套事务模型是把一个事务分解为多个子事 务,事务可以递归包含子事务,形成一棵事务树。子事务只有在父事 务开始之后开始,而父事务只有在所有的事务全部结束后才能结束。 如果父事务取消,子事务全部取消,包括己经提交的子事务也必须撤 销。如果某个子事务失败,父事务可以选择自己的恢复方法,比如执 行一个替换操作等。 s a g a s 事务模型:线性s a g a s 事务模型最初是由g a r c i a - m o l i n a 和 s a l e m 提出的,目的为了解决有关长事务的问题。s a g a s 的基本思想 是允许事务在提交之前释放某些占用的资源,这一点对于持续时间很 长的事务而言是很有意义的。一个长事务,或者称作一个s a g a 是一 个预先定义好执行顺序的子事务集合,子事务之间以某种方式交互。 每一个子事务是一个具有a c i d 特性的事务。s a g a s 中首次引入了补 偿的概念,即通过应用语义取消已产生的结果,如果s a g a 撤销,已 经提交的子事务必须被补偿。每个子事务都要有一个与之对应的补偿 事务。补偿事务的作用是取消子事务产生的影响,但不需要数据库恢 复到未提交的时刻。 1 3 2 分布式事务 分布式事务是指两个或更多事务资源( 比如,两个单独的数据库) 之间的a c i d 事务 1 6 1 。为使事务成功提交,所有的独立资源必须全部 成功提交。如果其中的任何一个没有成功提交,则事务必须在所有的 资源中回滚。 在分布式事务处理领域里,也己经出现了不少标准和模型,广泛 应用的有x o p e n t l7 】分布式事务处理参考模型( d i s t r i b u t e dt r a n s a c t i o n p r o c e s s i n g ,d t p ) 等。 两阶段提交协议与x o p e n 分布式事务处理模型: 硕士学位论文 两阶段提交协议通常用来保证所有操作涉及到的数据库被锁定 然后被正确地更新。两阶段提交协议简单过程:操作管理器在一台计 算机上,它处于中心结点的位置,以操作发起者的身份开始工作,它 首先在日志文件中写入一条“开始操作的记录,然后发送相应的请 求到相关的计算机上。每个参与操作的计算机也将此操作写在它自己 的日志上,然后锁定数据库资源仅供此操作使用,在这完成以后向操 作管理器所在的计算机发送“准备好”消息。当操作管理器所在计算 机接收到所有的“准备好”消息后,它在日志上记录此操作己经完成, 并通知其它计算机,当其它计算机接收到此通知后,这些计算机将完 成记录在日志上,并解除对资源的锁定。如果在执行操作时,任何一 台计算机失败,操作管理器所在计算机将通知所有相关的计算机执行 “回滚”操作,恢复为操作开始之前的状态。 x o p e n ( 最l j 现在的o p e ng r o u p ) 分布式事务处理模型是一个通用 的分布式事务处理模型。该模型和一系列a p i 规范被作为分布式事务 处理系统的标准。x o p e nd t p 模型如图: 图1 - 1x 0 p e nd t p 模型 由图我们可以看见该模型主要由三部分组成: 1 事务管理器( t m ) :事务管理器管理整个的事务,协调启动 事务的决定,并决定是提交或回滚事务,这确保了事务的原子性。 一种支持q o s 的w e b 服务事务中间件研究与实现 在某一资源操作失败后,事务管理和资源管理器一同协调了资源 的恢复性操作。 2 资源管理器( r m ) :资源管理器管理了所有要参加事务的共 享资源。通过资源管理器的服务,这些资源被访问利用,如关系 。 型数据库。在d t p 模型中,资源管理器将参与事务的资源的所 有变化组织成可恢复的原子性事务,并由事务管理器协调这些事 务的完成。 3 应用程序( a p ) :应用程序实现了需求的实现功能。它定义 了一系列的操作,这些操作中有对数据库的操作。应用程序定义 了全局事务的开始和结束,它可以访问事务的资源,并决定每个 事务的提交或回滚。 x o p e nd t p 模型的最大特点是接v i 标准化。模块与接1 2 1 标准化 的概念使得可以容易地扩充或者替换模型中的部件。目前有很多厂家 的产品都支持x o p e nd t p 模型。 1 4 本文工作 本文从应用实际出发,在现有w e b 服务事务研究的基础上,提 出了彻底解耦的w e b 服务事务中间件模型的设计,并对事务中间件 原子事务的实现进行了详细的阐述。对事务中间件架构引入q o s 管 理机制,满足应用程序与参与者对q o s 的实际需要。在此基础上, 对w e b 服务事务的协调协议进行了扩展,使之在新的架构下w e b 服 务事务的参与者各方( 应用程序、协调器、服务提供方) 能够有效的 高效的正确的执行事务操作。主要工作体现如下: 1 ) 提出了w e b 服务事务中间件模型架构的设计,对参与w e b 服务事务的各部分( 应用程序、协调器、服务提供方) 进行 了解耦,使应用程序与协调器不再是紧耦合,提高了协调器 的通用性,能够作为独立的第三方软件出现,成为w e b 服务 硕士学位论文 事务中间件; 2 ) 在事务中间件模型的基础上,引入了q o s 管理器。首先结合 事务处理的需要给出了w e b 服务q o s 属性定义。然后,应用 程序根据业务需要选出q o s 值优的w e b 服务集合来参与事 务。鉴于考虑了服务提供者的自主性以及服务提供者对应用 程序基于q o s 的偏好选择,因此给出了事务中q o s 属性值的 标准化方法及其q o s 综合评价的计算模型。本文采用能自动 修正不满足一致性的判断矩阵的层次分析法来计算q o s 属性 的权重,使事务处理保证完全自动性和连续性; 3 ) 对w e b 服务原子事务的设计与实现。提出了一个w e b 服务事 。务中间件原子事务的模型详细设计,并对其进行了实施。同 时考虑到服务提供方的自主性,增加了一个协商阶段,通过 对服务请求方q o s 属性的计算,服务提供方可以决定是否响 应此次调用,从而提高服务提供方资源分配的有效性。 4 ) 对w e b 服务业务活动的协调协议进行了扩展,对业务活动的 补偿进行了研究,提出了配置文件的形式来确定补偿操作的 尝试。 1 5 论文结构 本文共分为6 章 ? 第l 章,绪论。主要介绍课题的背景、研究现状、w e b 服务、事 务的基本概念,本课题的研究内容与目标、及论文的组织情况。 第2 章,w e b 服务事务中间件架构设计。首先介绍w e b 服务协 调器,在分析w e b 服务事务模型的基础上,提出了我们的w e b 服务 事务中间的架构设计以及消息设计;然后介绍q o s 的研究现状,给 出了w e b 服务事务q o s 综合评价的计算模型和计算方法。 第3 章,w e b 服务原子事务的实现。分析了原子事务w s a t 规 一种支持q o s 的w e b 服务事务中间件研究与实现 范并对规范进行了扩展,然后详细阐述了对原子事务的具体实现; 第4 章,w e b 服务业务活动的实现。分析了支持q o s 的扩展业 务活动规范,详细阐述了业务活动的实现,并采用配置文件的形式 来确定补偿活动; 第5 章,结合工作流引擎w e b j e t f l o w ,使用银行借贷实例讲述 w 曲服务事务中间件的应用。 第6 章,下一步工作和结束语,对现有工作的总结和下一步工作 的展望。 一种支持q o s 的w e b 服务事务中间件研究与实现 2w e b 服务事务中间件架构设计 2 1w e b 服务协调器介绍 w s c o o r d i n a t o r 是一个通用的规范,具有通用的功能。 w s c o o r d i n a t o r 规范的一个重要特点就是它提供一个开放的协调框 架,每个具体的应用都可以在他的基础上设计自己的协调协议以控制 整个协调过程,来达到各自应用的目的。现在已经有w s a t 、w s b a 规范和w s c o o r d i n a t o r 规范一起使用来实施w e b 服务事务。本文扩 展了原子事务和业务活动的协议与协调器一起来工作。 w s c o o r d i n a t o r 中的概念: 活动:由一系列w e bs e r v i c e s 为实现某个功能组合而成的单元。 参与者:活动中的某个w e bs e r v i c e 。 协调者:与活动参与者发生协调行为的实体。 协调类型:根据协调过程的目的划分的类型。w s a t o m i c t r a n s a c t i o n 规范中定义的协调类型为a t o m i c t r a n s a c t i o n 。 协调协议:协调过程中协调者与参与者消息交互过程( 状态图) 。如 w s a t 规范中定义的c o m p l e t i o n 和2 p c ( 2p h r a s ec o m m i t ) 两套协议。 协调协议服务:根据协调协议创建的服务,用于协调消息的传递。服 务以w e bs e r v i c e 的形式存在。如w s a t 规范中为c o m p l e t i o n 和2 p c 协 议,分别在协调者和参与者之间创建的服务,服务中定义了协调消息 交换的具体格式。 协调服务:包含组成协调框架的激活服务,注册服务和特定的协调协 议服务。 协调上下文:协调上下文的消息元素在w e b 服务计算时交换的所有消 息中传送。协调上下文包含对协调服务的w s a d d r e s s i n g t 埔】端点引用, 而本身又包含用于标识正在协调的特定任务的信息。 硕士学位论文 2 2w 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 服务事务机制【1 9 1 。 为了能够在w e bs e r v i c e s 的环境下拥有一个通用的协调框架,解 决各种需要使用协调功能的应用。w s c o o r d i n a t i o n 提供了一个通过 共享上下文协调分布应用活动、允许w e bs e r v i c e s 指定协调协议的通 用框架,其描述了三个不同的角色:事务发起者、协调器、参与者。 事务发起者就是需要事务支持的应用程序。协调器负责协调各通信实 体达到一致。参与者提供了一些w e b 服务,在被调用期间需要被协 调。协调器与应用程序是紧耦合的或者是其一部分。v o g t 在【2 0 】中对 此进行了分析,认为参加事务的各个实体( 协调器、发起者、参与者) 之间是紧耦合的。他提出了一个事务中间件来隔离客户端的业务逻辑 和协调逻辑,见图2 1 。 图2 - 1 紧耦合事务模型 1 2 一种支持q o s 的w e b 服务事务中间件研究与实现 该事务中间件主要由t r a n s a c t o r 和c o o r d i n a t o r 组成。c o o r d i n a t o r 负责协调协议的执行,当需要业务逻辑时,由t r a n s a c t o r 接收事务发 起者的业务消息后转给c o o r d i n a t o r 。而c o o r d i n a t o r 和t r a n s a c t o r 是个 整体,事务中间件还是需要处理业务消息,没有彻底隔离他们之间的 联系。所以事务中间件只是一定程度上的对应用程序和协调器进行了 解耦。 2 3 实现解耦的事务中间件模型 上文提到的模型,协调者与应用程序的紧耦合,违反了普通软件 的架构原则。一个完全地隔离能够极大的加强软件的模块化和重用 性。为了把应用程序的业务逻辑和事务处理逻辑进行彻底的隔离,我 们对参与事务的各个实体进行解耦,并提出一个事务模型,见下图。 图2 2w e b 服务事务模型结构图 该模型适用于原子事务和业务活动。 应用程序:需要得到事务性支持的程序如b p e l 流程,由它发起 事务以及提交事务。 t 发起者( i n i t i a t o r ) :属于客户端,发起者包含了原子事务的发 起者和业务活动的发起者。原子事务发起者:负责与应用程序和协调 硕士学位论文 器交互,执行事务操作。业务活动发起者:应用程序请求开始事务时 系统自动创建。负责与应用程序交互,了解其业务逻辑。当邀请参与 者参加事务时,通知协调者,要协调者发送消息给参与者。通过发送 查询参与者状态决定事务的整体目标是否达成。在业务事务m i x e d o u t c o m e s 】时,负责引导每个参与者关闭、取消或补偿。在业务事务 a t o m i co u t c o m e 6 】时,决定关闭或取消i l l , 偿所有工作。 事务协调器:根据i n i t i a t o r 的指令,提供事务协调服务。创建和 管理协调上下文以及协调协议的执行,并记录收发的消息以及相应状 态等以方便后面的回滚或补偿操作,以确保多个执行结果的一致。还 包含了一个q o s 属性过滤器,当收到应用程序调用w e b 服务的消息, 如果其q o s 属性值不在设置的q o s 值范围之内,则直接抛弃该调用 请求。 参与者:参与者属于服务提供方,当服务提供方收到调用消息时 自动生成的对象。负责与事务中间件交互,进行事务性操作。 图2 2 中的模型对应用程序和协调器进行了解耦,分离了事务逻 辑和业务逻辑,简化了应用程序端的实现。原来应用程序中大量的指 导协调器工作的业务逻辑代码被作为配置文件来实现,大大减少了代 码开发工作。由于事务逻辑与业务逻辑的分离,协调器不用混合着管 理业务逻辑事务逻辑,只要专心处理事务逻辑。从而精简了协调器结 构,简化了其实现,使得协调器可以作为独立的第三方软件来提供协 调服务。当然协调器也可以作为工作流引擎的一部分。 w s b u s i n e s s a c t i v i t y 规范允许嵌套的业务活动。因此一个业务活 动可以被另一个业务活动包含,组成父子关系。嵌套的事务允许截取 和处理错误,使得错误不会导致父事务的失败。子活动在父活动看来 可以抽象成一个w e b 服务,在子活动内部又是一个完整的事务域, 拥有自己的业务逻辑。上面提出的模型中,参与者可以是一个原子的 w e b 服务,也可以是一个服务组合。 一种支持q o s 的w 曲服务事务中间件研究与实现 2 3 1 系统消息设计 2 3 1 1 w s a d d r e s s i n g 规范介绍 w s a d d r e s s i n g 规范就是把原来处于传输层的寻址信息提升到更 高层的消息层面,直接在s o a p 消息中包含这些信息,这样就可以摆 脱对特定传输协议的约束,从而使得s o a p 消息的传输与具体传输协 议无关,这也是松耦合的体现之一。 r e q u e s t r e s p o n s e 消息交换模式( m e s s a g ee x c h a n g ep a t t c m ) 是最 经典也是最常用的消息交换模式。在r e q u e s t r e p l y 消息交换模式中 涉及两个消息- - r e q u e s tm e s s a g e 与r e s p o n s em e s s a g e 。通常我们使用 h t t p 协议访问某个w e bs e r v i c e 时,就是采用的这个消息交互模式。 w s a d d r e s s i n g 规范中规定了一些m e s s a g ea d d r e s s i n g p r o p e r t i e s ,下面结合请求响应消息交换模式对它们进行介绍。 在请求消息中: 用于标识一个消息 表示该消息与另一消息关联,元素值是另一消息 的m e s s a g e l d 。 表示该消息所请求的w e b 服务的端点引用。 表示该消息到达请求的w e b 服务时,触发服务中的 哪个方法完成对消息的处理。 表示发送该消息的地址。 指定了该请求消息的响应消息将去往的地址。 $ i j 定了当该消息处理出错时错误消息将去的地址。 2 3 1 2s o a p 消息扩展 本文的s o a p 环境由a p a c h e 的开源软件a x i s t 2 1 】来提供。本系统 的s o a p 消息的s o a ph e a d e r 中,使用 属性唯一标 硕士学位论文 识了这个消息,还使用了 、 、 等属 性来表明此消息的目的,此消息的发送者以及发送对象的标识。本系 统的s o a p 消息的s o a pb o a y 中,包含了具体的操作方法和参数。 本系统发送的消息中都包含了必须的事务i d 、参与者i d 以及协调器 i d ,因此在事务处理中,事务参与的各方不论是执行业务操作还是事 务操作,都能根据消息中的事务i d 找到对应的事务实例,在同一个 事务中再根据指定的参与者i d 或协调器i d 来找到各自的目标。因此 本系统能够很好地支持并发,本事务中间件中可以同时运行几个事务 实例而不会冲突。 2 4 基于o o s 的事务管理 目前在w e b 服务器超载的情况下,具备网络q o s 控制的高级流 可能仍会遭受服务拒绝,或者服务响应时间比期望高出多个量级,造 成事实上的“服务拒绝”。所以仅靠网络q o s 机制并不能完全解决端 到端的q o s 控制问题。w e b 服务作为端到端网络中不可缺少的一个 重要环节,同样必须具备建立和支持q o s 的机制与策略。因此,w e b 服务事务需要引入q o s 机制,在动态环境下使得应用程序端能按照自 己的主观愿望根据q o s 属性更灵活的选择服务,使业务目标达到最 优;服务提供方则使用q o s 机制优化资源分配。 2 4 1w e b 服务o o s 相关研究 近年来,q o s 在互联网的技术领域的研究十分活跃。在网络层, 有区分服务模型( ) 和集成服务模型。在实时系统、中间件、高负载服 务器和工作流中,q o s 都得到了深入的研究。随着互联网技术的应用, 特别是关键领域的应用,质量管理就变得愈发重要。 在具体的应用领域,w e b 服务的q o s 模型中可能只有有限的几 个q o s 标准,但q o s 模型必须是可扩展的,并且新q o s 标准的加入 一种支持q o s 的w e b 服务事务中间件研究与实现 不能对服务选择技术进行根本的改动。 对w e b 服务的服务质量进行建模可以从多种不同的角度来进行。 目前,研究人员根据其自身对服务质量的理解,已经在较大的范围内 定义了许多种不同的服务质量属性。 在文献【2 2 ,2 3 1 ,作者简单定义了若干种w e b 服务的服务质量 属性,主要包括可用性、可访问性、可靠性、规范性、安全性、响应 时间、吞吐率、延迟、价格、网络带宽和信誉度等等。 文献【2 4 】中,作者提出了更多的w e b 服务质量属性,并将它们分 成了若干种类别,包括: 运行时相关的服务质量属性 事务支持( t r a n s a c t i o ns u p p o r t ) 相关的服务质量属性 配置管理( c o n f i g u r a t i o nm a n a g e m e n t ) s 1 开销( c o s t ) 相关服务质 量属性 安全( s e c u r i t y ) 相关的服务质量属性 在文献 2 5 中,作者将w e b 服务的服务质量属性分成了两大类: 一类是与w e b 服务所处的服务环境无关,而与w e b 服务自身的实现 相关的内部属性,另一类则是与w e b 服务所处的服务环境存在联系 的外部属性。比如可靠性属性的内部属性表现为正确性( c o r r e c m e s s ) , 包括准确度( a c c u r a c y ) 和精度( p r e c i s i o n ) ,外部属性表现为可用性 ( a v a i l a b i l i t y ) 和一致。i 生( c o n s i s t e n c y ) 。 在文献 2 6 中,作者将q o s 属性分为通用质量度量( 如价格、执 行时间、声誉) 和业务相关的度量( 如电话通信业务中的u s a b i l i t y ) 。 在文献 2 7 中,作者根据质量度量的值的特征及其获取方式将 w e

温馨提示

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

最新文档

评论

0/150

提交评论