(计算机软件与理论专业论文)web服务事务处理模型研究与实现.pdf_第1页
(计算机软件与理论专业论文)web服务事务处理模型研究与实现.pdf_第2页
(计算机软件与理论专业论文)web服务事务处理模型研究与实现.pdf_第3页
(计算机软件与理论专业论文)web服务事务处理模型研究与实现.pdf_第4页
(计算机软件与理论专业论文)web服务事务处理模型研究与实现.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机软件与理论专业论文)web服务事务处理模型研究与实现.pdf.pdf 免费下载

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

文档简介

河海大学硕士学位论文w e b 服务的事务机制及其模型研究 摘要 随着s o a v 等技术的发展与普及以及电子商务的迅速崛起,一种新的基于w c b 的 应用开发模式正在迅速发展,这就是w e 明务技术。它的出现改变了以往分布式系 统间的集成方式,它以m 作为数据交换标准,使用s o a p 、w s d l 以及u d d i 等协 议来描述,发布、发现和调用服务,使得运用不同分布式集成架构的系统之问可以 容易地相互沟通。 事务处理是w e b 服务能否用于电子商务的关键技术之。本文从研究传统的 a c i d 事务开始,分析了事务模型发展的过程,并对现在事务的主要模型作了一些深 入的描述,从平面事务到扩展的多个事务,包括嵌套事务,开放嵌套事务,s a g a s 等。同时,分布式环境下的事务处理技术是基于传统事务发展起来的,但是由于分 布式环境的资源管理方式完全不同于传统方式,所以对事务提出了更高的要求,所 以出现了分布式事务处理模型如:x o p e n 模型、c o r b a 的o t s 等。当然,当前已 经出现了几个可供w e b 服务使用的事务模型和协议,比如b t p 协议,w s - t r a n s a e t i o n 协议,o t s 的扩充协议a c t i v i t ys e r v i c e 等,但是经过深入的考察,发现这些协议都无 法为w e b 服务提供一个实用且相对完善的解决方案。 由于w 曲服务处于多变的 n t e m e t 3 吓境,w e b 服务事务处理必须提供协调短事务 和长事务的能力。本文提出了一个能够同时处理原子事务和聚合事务的模型,研究 了其协调算法、状态转换及恢复机制。聚合事务允许候选者独立提交,并使用补偿 事务来撤销已提交的子事务所带来的影响,可以较好地满足w e b 服务环境下对长事 务的要求,为w c b 服务投入商用提供了有力支持。 关键词:w e b 服务;事务模型;原子事务;聚合事务;补偿事务 河海大学硕士学位论文 w e b 服务的事务机制及其模型研究 a b s t r a c t w i t ht h ei a p i dd e v e l o p m e n to fb 2 b e - c o m m e r c e ,an e w w e b b a s e da p p l i c a t i o np a t t e r n w 曲s e r v i c ea r i s e i tp r o v i d e sa u n i f y i n gp r o g r a m m i n g m o d e lf o r a p p l i c a t i o ni n t e g r a t i o n b o t hi n s i d ea n do u t s i d et h ee n t e r p r i s e w 曲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 g s t a n d a r d ss u c ha se x t e n s i b l em a r k u pl 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 西s e r v i c e sd e s c r i p t i o nl a n g u a g e ( w s d l ) a n du 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 i o n ( u d d i ) t r a n s a c t i o ni so n eo ft h ek e yt e c h n o l o g i e sw h e t h e r k bs e r v i c e sc a nb ea p p l i e dt o e - b u s i n e s sa p p l i c a t i o n s t r a n s a c t i o nt e c h n o l o g i e sf o rw e bs e r v i c e sh a v et op r o v i d et h e a b i l i t i e st oc o o r d i n a t es h o r t - i i v e da n dl o n g l i v e dt r a n s a c t i o n s i nt h ep a p e r ,w es t a r to u r r e s e a r c hf r o mt h et r a d i t i o n a la c i dt r a n s a c t i o n ,w h i c hi sr e l a t i v es i m p l e rt h a no t h e r t r a n s a c t i o nm o d e ll a t e ra p w a l e ds n c ha sn e s t e dt r a n s a c t i o n ,o p e nn e s t e dt r a n s a c t i o n ,e t e m e a n w h i l et h et r a n s a c t i o np r o c e s st e c h n o l o g yh a sd e v e l o p e di n t ot h ea r e ao fd i s t r i b u t e c o m p u t i n g 1 h et w od i s t i n g u i s h e dm o d e lw e r ex o p e na n do t s w h e nt a k ead e e p o v e r v i e wo f e x i s t i n g w e bs e r v i c et r a n s a c t i o nm o d e la n dp r o t o c o l ,s u c ha sb t p , w s - t r a n s a c t i o na n d a c t i v i t ys e r v i c e ,w ef o u n do u tt h a tf r o mt h ec o n c e r t io fv a l i d a t i o n a n dc o o v e n i e n c e t h c ya l lh a ds o m e d i s a d v a n t a g e s t h i sp a p e rp r o p o s e saw e bs e r v i c e st r a n s a c t i o nm o d e l ,w h i c hc a nh e n d i ea t o m i c t r a n s a c t i o na n dc o h e s i o nt r a n s a c t i o n s i m u l t a n e o u s l y ,a n d r e s e a r c h e s c o r r e s p o n d i n g c o o r d i n a t i o n a l g o r i t h m s s t a t e c o n v e m i o na n d r e c o v e r y m e c h a n i s m s c o h e s i o n t r a n s a c t i o na l l o w sc a n d i d a t e st oc o m m i t i n d e p e n d e n t l y ,a n d u n d o e sc o m m i r e d s u b - t r a n s a c t i o n s t h r o u g h t h e c o m p e n s a t i o n t r a n s a c t i o n ss ot h a t i tc a n s a t i s f y t h e r e q u i r e m e n t s f o r l o n g l i v e d t r a n s a c t i o ni nw e bs e r v i c e se n v i r o n m e n t a n d p r o v i d e p o w e r f u ls u p p o r tf o rc o m m e r c i a lw e b s e r v i c e s k e y w o r d s :w e bs e r v i c e s ;t r a n s a c t i o nm o d e l ;a t o m i ct r a n s a c t i o n ;c o h e s i o nt r a n s a c t i o n ; c o m p e n s a t i o n t r a n s a c t i o n 河海大学硕= e 学位论文w e b 服务事务处理模型研究与实现 第一章引言 随着电子商务的迅速发展,b 2 b ( b u s i n e s s t ob u s i n e s s ) 应用模式的不断普 及,如何将w e b 服务高效、可靠地利用起来,从而实现大范围的跨企业实体的 商务应用系统对接成为一个亟待解决的问题。 当前关于w e b 服务合成应用的研究较少,已有的研究主要是为w e b 服务技 术制定基于x m l 的标准,为w e b 服务集成定义原语( p r i m i t i v e ) 并使各w e b 服务 间自动协作,未能给松散耦合的w e b 服务的集成提供好的事务支持。 尤其是在w e b 服务的事务支持方面,国际组织和商业团体也没能达成一致 的意见。甚至在w e b 服务事务究竟需不需要两段提交协议( 2 p c ) 这样的基本观 点上,还持续了相当长时间的争论。至今,对这个问题的不同理解造成了代表不 同技术的规范的出台。最典型的是w s i ( w e bs e r v i c e si n t e r o p e r a b i l i t y ) 组织的 w s c o o r d i i l a t i o n 例、w s - t r a n s a c t i o n t ”j 规范和w s c a 3 ( w e bs e r v i c e sc o m p o s i t e a p p l i c a t i o nf r a m e w o r k ) 【驯下的w s - t x m ( w e b s e r v i c e st r a n s a c t i o nm a n a g e m e n t 、 规范j ”。 前者在其框架下提出了相关性环境( d e p e n d e n c ys p h e r e s ,d s p h e r e ) t 3 0 的概 念,在这个w e b 服务事务环境下,允许原子事务有同步和异步两种分布式消息 传递风格。这样做的缺点是这样的w e b 服务事务框架无法支持与其他协议类型 的互操作。而后者试图在支持多协议的框架里面对w e b 服务的不同事务提供互 操作支持。当然,这里要做的事情无疑更为复杂,而可靠的消息传递机制这样的 困难问题也必须在这个框架里得到圆满解决,不然就无法得到一个稳定的事务执 行环境。本文就是在这样的一个大背景下完成的。 1 1 研究背景 w e b 服务正在成为基于i n t e r n e t 的新一代计算平台,它是一种以标准的工业 技术来描述( w s d l ) 、发布与发现( u d d d f l 5 l 以及通讯( s o a p ) f 2 7 】的自包含、自描 述、松散耦合的模块化软构件。由于w e b 服务平台的不可靠性,提供事务处理 能力是其能否投入商业应用的关键技术之一。 事务是容错系统故障,提高系统可靠性的有效手段。事务可以对应用编程人 员隐藏复杂的协调过程、异常处理和恢复细节,减轻应用编程人员的负担,使他 们不必关心复杂的底层活动。 传统的分布式事务具有a c i d 性质: ( 1 1 原子性( a t o m i c i t y ) :事务的所有参加者要么都提交,要么都撤销; 河海大学硕士学位论文w e b 服务事务处理模型研究与实现 ( 2 ) 一致。陛( c o n s i s t e n c y ) :事务不会破坏系统的恒定,事务执行的结果必须使 系统从一个一致性状态变化到另一个一致性状态; ( 3 ) 独立。陛( i s o l a t i o n ) :并发执行的各个事务间不会相互干扰; ( 4 ) 持久性( d u r a b i l i t y ) :事务一旦提交,它对系统的改变就是永久的。 为了实现严格的a c i d 性质,事务必须是短生命期的;系统必须是紧耦合的; 协调者必须对参加者拥有完全的控制权。因此,严格的a c i d 事务不适用于w e b 服务环境,因为w e b 服务系统具有以下特性: ( 1 ) 长事务:由于商务处理,网络延迟和用户的交互,一个w e b 服务事务处 理过程往往会持续较长的时间,使得锁定资源的策略不再适用。 ( 2 ) 自治性:w e b 服务提供者拥有对服务的控制权,其他的应用可能无法锁 定它需要的资源。 ( 3 ) 松耦合:w 曲服务之间是松散耦合的。 ( 4 ) 更多潜在的故障:不仅进程和机器可能崩溃,广域网络也比传统分布式系 统的内部网更加不可靠。 ( 5 ) 一次事务过程可能跨越多个组织。关于分布式事务处理,已经出现了不 少标准和模型,广泛应用的有x o p e n 的分布式事务处理参考模型( d i s t r i b u t e d t r a n s a c t i o np r o c e s s i n g ,d 硼、o m g 基- 3 = c o r b a 的对象事务服务( o b j e c tt r a n s a c t i o n s e r v i c e ,o t s ) 等。d t p 定义了三种角色( 应用程序、事务管理器和资源管理器) 和 二种接口( ,和x a 接口) 。事务管理器使用标准的2 p c 协议协调各个资源管理 器来完成全局事务。但是,它们都只能有效地应用在企业内部;无法满足w e b 服 务环境对长事务的要求。 w s c o o r d i n a t i o n 和w s t r a n s a c t i o n 是由i b m 、m i c r o s o f t 、和b e a 公司提出 的w e b j 强务事务处理模型,w s c o o r d i n a t i o n 描述了可以容纳多种协调协议的w e b 服务事务处理框架,定义了协调者的组成元素:激活服务( a c t i v a t i o ns e r v i c e , 主要用于创建事务上下文1 、注册服务( r e g i s t r a t i o ns e r v i c e ,参加者可以使用它注 册协调协议以参加到事务中) 和一组协调协议。 w s - t r a n s a c t i o n 定义了原子事务和商务活动两类不同的事务,但对后者没有 给出具体的协调方案,至今也没有实现产品。o a s i s 的b u s i n e s s t r a n s a c t i o n p r o t o c o l ( b t p ) f 1 2 】的主要工作是定义了一组在协调者与参加者之间传递的消息。 尽管h p 已经发布了其b t p 产品w 曲s e r v i c e st r a n s a c f i o n s ( m - w s t ) t 1 3 j ,但其复杂 的消息结构和工作流管理限制了其广泛应用。此外,b t p 缺乏灵活的恢复机制, 没有提供补偿能力。 可见,虽然业界已经有一些协议和模型,但是有的并不是针对w 曲服务事务 的特点提出,有的还不完善,有的无法大范围应用。所以,本文在已有工作的前 提下开展了深入的研究。 河海大学硕士学位论文w e b 服务事务处理模型研究与实现 1 2 研究内容 本文在对己有研究成果的深入研究基础上,理清了w e b 服务的关键技术的 发展脉络,并对w e b 服务事务处理作了详细分析,给出了基于w e b 服务的事务 管理模型w s t p m 。本人主要完成的工作有以下几方面: 1 、阐述了w e b 服务的概念、体系结构和相关技术,并对w e b 服务的优点 和存在的缺陷进行了分析; 2 、介绍了传统事务机制相关知识,详细分析了分布式事务及w e b 服务事务 处理的几种情况; 3 、设计了一个基于w e b 服务的事务管理模型w s - t p m ,并对这个模型的体 系结构、模块设计等方面进行了详细地说明; 4 、从w e b 服务及w s - t p m 应用的角度出发,介绍它们在现实情况中的应 用前景、并对框架的不足提出分析和期望。 1 3 本文结构 本文共分为六章: 第一章:前言。介绍了本课题的背景和课题来源,说明了本人在课题中所做 的实际工作和进行的理论研究,最后列出了论文的组织结构。 第二章:w e b 服务概述。介绍w e b 服务的概念和体系结构,并且分析当前 w e b 服务使用的关键技术。 第三章:w e b 服务的事务。介绍事务行为的基础,分布式事务处理以及w e b 服务事务处理过程中可能存在各种事务机制。 第四章:w e b 服务事务处理模型w s t p m 。定义了两类不同的w e b 服务事 务:原子和聚合事务。介绍了该模型的体系架构,并且对各模块的设计和工作流 程详细讨论。 第五章:实现了一个基于w s t p m 模型的原型系统,验证了模型系统的可 行性,讨论本文提出的w e b 服务事务模型在实际情况中的应用前景。 第六章:总结。在w e b 服务事务机制的协议方面以及本文所介绍的事务协 调框架方面说明不足之处,并对其前景做出展望。 河海大学硕士学位论文 w e b 服务事务处理模型研究与实现 第二章w e b 服务概述 w e b 服务的诞生不是偶然的,而是i n t e m e t 以及相关技术发展到一定程度 的产物。自从有了i n t e r a c t , r r r p 协议就广为使用,其简单性、可靠性、通用 性使得依靠它的网页可以流行在各个平台上。x m l 语言【1 】的诞生使得信息的传 输可以脱离平台和编程语言的限制,为网络上各种系统的“对话”提供了门“国 际化的语言”。s o a p 协议1 2 j 为服务的请求、消息的格式定义了简单的规则,并得 到各大系统软件提供商的支持。 2 1w 曲服务的定义与特征 在过去的许多年里,业务应用通常通过构建于i n t e m e t 的基础架构上的特殊 网络来实现互操作,现在由于w e b 服务的出现,可以实现系统级、可扩展的系 统框架来满足应用间的互操作,它架构于现有的w e b 协议之上,并且采用了x m l 的技术。 2 1 1 什么是w e b 服务 w e b 服务是松散耦合的、可复用的软件模块,从语义上看,它封装了离散的 功能,在i n t e r n e t 上发布后能够通过标准的i n t e m e t 协议在程序中访问。 具体来说,可以分为以下几点: 首先,w e b 服务是可复用的软件模块。w e b 服务是对软件开发中面向对象 设计的发展和升华。基于组件的模型允许开发者复用其他人创建的代码模块,组 成或者扩展它们,形成新的软件。 其次,这些软件模块是松散耦合的。传统的应用软件设计模式要求各个单元 之间紧密连接,这种连接形成的复杂性要求开发者必须对连接的两端元素有完全 的了解和控制能力,而且,这种连接一旦建立后,很难从中把一个元素取出,用 另外一个元素代替。相反,松散耦合的系统,只需要很简单的协调,并允许更加 自由地配置。 第三,从语义上看,w e b 服务封装了离散的功能。一个w e b 服务就是一个 自包含的叫、程序”,完成单个的任务。w e b 服务的模块使用其他软件可以理解 的方式描述输入和输出,其他软件知道它能做什么,如何调用它的共能以及会返 回什么结果。 第四,w e b 服务可以在程序中访问。和w e b 网站或桌面程序不同,w e b 服 4 河;每大学硕士学位论文w e b 服务事务处理模型研究与实现 务不是为了直接与人类交互设计的,它们不需要有图形化的用户界面。w e b 服 务是在代码级工作的,它们被其他软件调用,并与其他软件交换数据。不过w e b 服务的最终目的还是形成一个能够与用户交互的应用软件。 最后,w e b 服务是在i n t e r n e t 或者i n t r a n e t 上发布的。w e b 服务使用现有 的并广泛使用的传输协议,比如 盯r p 。使用与传输w e b 内容相同的、并广泛使 用的协议,不需要调整现有的i n t e r n e t 架构,w e b 服务就可以透过防火墙进行 通信。 w e b 服务技术组件是一套开放的规范,它们要么是现有的因特网标准,要 么是被广泛接受并正在通过正常步骤成为标准的规范。组件的基本部分包含 m 1 1 p 、x m l 、s o a p 、w s d l 、u d d i 以及w s f l t ”。最底层是h t r p ,它是一 个被广泛运用的、类似r p c 的简单协议,并且是防火墙友好的。接下来,是x m l 中的通用数表示法语言,它同样被广泛使用。s o a p 是一个基于x m l 的消息传 递协议,它不确定平台及语言。它同时支持消息传递和请求响应通信模型。与 c o r b a 和d c o m 一样,它需要一个i d l 。它所使用的w s d l 是一个基于x m l 的服务i d l ,定义了服务接口和其实现特征。在 唧中,请求和响应消息都能 包含任意的有效负载信息。帅报头( h t y ph e a d e r ) 只是纯文本,这使得一 般的因特网程序员便于使用。通常,这些报头包含内容长度和内容类型。并且 h t t p 使用t c p i p 作为其请求响应消息的网络通信协议。h t t p 客户机利用t c p 连接到m i 甲服务器。建立了t c p 连接以后,客户机可以向服务器发送h t t p 请求消息。然后服务器对请求进行处理后将h t y p 响应消息发送回客户机。简单 地说,h t y p 是一种出色的不确定有效负载的传输方式,它提供了c o r b a 和 d c o m 中所能找到的大部分连接管理功能。它还使用u r l 进行对象引用,它们 与分别在c o r b a 和d c o m 中找到的f o r 和o b j r e f 相一致。由于h t 砰是不 确定有效负载的,它确实缺少一个在r p c 消息中表示参数值的机制。这就需引 入x m l 了。x m l 是一种与平台无关的标记数据表示语言。它允许数据串行化 为一种消息格式,从而能轻易地在任何平台上进行解码。然而,与d c o m 的d r 和c o r b a 的c d r 不同,x m l 很容易使用,它提供了一种灵活的、易于扩展的 数据格式,并且能获得几乎所有计算平台的支持。不仅如此,它还是开放的,并 且被广泛采用。 w e b 服务技术组件提供了s o a p 作为映射应用程序对象到网络协议的开放 标准o r p c 。尽管s o a p 不受特定的传输协议的约束, h - 还是成为了早先在 s o a p 采纳者中最受欢迎的协议。使用耵t p 时,s o a p 信封使用x m l 作为请 求和响应参数的编码方案。s o a p 消息实质上是一个遵循s o a p 编码规则的 m t p 请求和响应。s o a p 端点就是一个基于h i t p 的、识别方法调用目标的 u r l 。与c o r b a 一样,s o a p 并不要求一个特定对象被连接到给定的端点上。 河海大学硕士学位论文w e b 服务事务处理模型研究与宴现 相反,需要由实现来决定如何将对象端点标识符映射到服务器端的对象上。在 s o a p 中检查方法名称的名称空间u r l 与在d c o m 或c o r b a 中检查方法名称 的接口i d 在功能上是相同的。 依靠开放的、被广泛采用的标准只是获得成功的第一步。我们还需确保该解 决方案能提供高度的互操作性并且协议的实现容易访问。这也是大家看好w e b 服务前景的原因。厂商们纷纷开始支持包含w e b 服务组件的标准。这也许是由 于时间选择和省钱的原因,或者也许是因为因特网对编程模型的影响。不同于由 d c o m 和c o r b a 解决方案所造成的单一厂商的实现要求,厂商们一致认为, 定义一个能让应用程序实现互操作性的分布式计算模型是每个人的最大利益所 在。 2 1 2w e b 服务的特点 w e b 服务组件的核心,即 r m 、w s d l 和s o a p 的实现可自由地通过 a p a c h e 开放源代码社区得到。w s d l 的免费实现可从m i c r o s o f t 和i b m 处获得。 因此一般的程序员能公开获取必需的工具以快速开发分布式应用程序。此外,为 这些应用程序部署的支持可以被应用程序用户简单、划算地解决。 几乎可以保证w e b 服务是跨企业信息集成应用系统的核心部分。其原因如 下: 互操作性。任何w e b 服务都可以与其它w e b 服务进订交互。应感谢 s o a p ,这是所有主要供应商( 以及大多数中小供应商) 都支持的新标准 协议,这样就避免了在c o r b a 、d c o m 和其它协议之间转换的麻烦。 还因为可以使用任何语言来编写w e b 服务( 甚至c o b o l ) ,开发者无 需更改他们的开发环境就可生产和使用w e b 服务。 普遍性。w e b 服务使用h t r p 和x m l 进行通信。因此,任何支持这些 技术的设备都可以拥有和访问w e b 服务。不久,它们将在电话、汽车 甚至汽水贩卖机中出现。 低进入壁垒。w e b 服务背后的概念易于理解,并且来自m m 和微软这 样的供应商的免费工具箱能够让开发者快速创建和部署w e b 服务。此外, 其中的某些工具箱还可以让己有的c o m 组件和j a v a b e a n 方便地成为 w e b 服务。 行业支持。所有主要的供应商都支持s o a p 和周边w e b 服务技术。例如, 微软的n e t 平台就基于w e b 服务,因此用v i s u a lb a s i c 编写的组件很 容易作为w e b 服务部署,并由用i b mv i s u a l a g e 编写的w e b 服务使用, 反之亦然。 河海大学硕士学位论文w e b 服务事务处理模型研究与实现 2 2w e b 服务体系结构 2 2 1w e b 服务模型 w e b 服务提供了在松耦合环境下完成应用之间互操作与集成的技术框架。以 x m l s o a p u d d i 为主干的技术赋予了w e b 服务与传统分布式技术所不同的架 构模型。w e b 服务的体系结构是基于三种角色( 服务提供者、服务请求者和服务 注册中心) 之间的交互,它是一种s o a 面向服务的体系结构( 服务o r i e n t e d a r c h i t e c t u r e ) 架构。 服务提供者 服务提供方主要是定义要提供给他人访问的服务,生成接口文件( w s d l 文件) ,并把这个服务接口和自己相关的一些信息( 都是x m l 的格式) 通过s o a p 注册到u d d i 上。总的来说,服务提供方主要执行了两个方面的操作: 新服务的生成 新服务的注册 图2 1 1 服务的生成和注册流程 图2 1 1 展示了这两个操作的流程。首先,服务提供者根据需要定义要生成 和发布的w e b 服务的功能和流程。按照需要编写w e b 服务代码,然后生成这 个服务的w s d l 文件。最后,用户把w s d l 文件和自己的相关信息通过s o a p 发布到u d d i 上,也就是注册到u d d i 的注册库中,如果成功,u d d i 通过s o a p 返回注册成功消息。服务提供者只是一个角色,它可以是一个程序,或者是一个 可重用的子系统的服务接口。企业和个人只用制定服务功能和流程等信息就可以 了。 服务中介者 河海大学硕士学位论文w e b 服务事务处理模型研究与实现 我们采用典型的服务中介者( 或者注册库) u d d i ,它是一套基于w e b 的、分布式的、为w e b 服务提供的信息注册中心实现标准规范,同时也包含一 组使企业能将自身提供的w e b 服务注册以便于别的企业能够发现的访问协议的 实现标准,所有的对u d d i 的访问都通过s o a p 进行。 对u d d i 的操作主要分成两种;查询和发布,主要由服务请求者和服务提供 者发出,u d d i 开发工具会针对用户的需要发出s o a p 请求,u d d i 接受s o a p 请求并对它处理,最后把结果打包成s o a p 响应消息返回给请求者。图2 2 2 是 u d d i 处理服务请求者或者服务提供者的请求的流程: 图2 2 2u d d i 处理流程 服务请求者 服务请求者就是通过u d d i 查询服务地址再调用服务的个体,和服务提供者 一样,服务请求者在动态电子商务模型中,是一个程序或者服务。在没有得到查 询结果以前,要调用的w e b 服务的精确的接口对于请求者来说是未知的,服务 请求者首先要根据需要确定一些查询条件,这个条件可以由请求者自己手工设 定,也可以由智能代理( a g e n t ) 根据用户的特点和当前的需要进行设定。然后, 把这些查询条件通过s o a p 开发工具打包成s o a p 请求消息并发送给u d d i 。 u d d i 根据查询处理流程进行处理,把用户需要的消息,也就是查询结果,比如 b u s i n e s s e n t i t y 、c o n t a c t 、p e r s o n n a m e 和p h o n e 或者更深入的服务信息,比如 b u s i n e s s 服务、b i n d i n g t e m p l a t e 和t m o d e l 打包成s o a p 响应消息并返回给服务 请求者。然后,服务请求者根据得到的服务接口信息通过s o a p 发出对服务的调 用,最后,被调用的服务把结果打包在s o a p 消息中返回给服务请求者。 图2 2 3 展示了服务请求者流程: 河海大学碗士学位论文 w e b 服务事务处理模型研究与实现 图2 2 3 服务请求流程 从这个模型,我们可以看到w e b 服务体系结构主要有三种不同的概念组件 组成,它们是服务调用,服务接v 1 定义和服务注册。下一节列出了w e b 服务技 术的协议堆栈。 2 2 2w e b 服务协议栈 为了实现发布、发现和绑定三个操作,必须要有一个w e b 服务堆栈来容纳 各层的标准。图2 2 4 示意了这个概念上的堆栈体系,图中上一层使用下层所 提供的功能,最右边的垂直的方框是每一层都必须考虑的内容,左边的文字表示 的是使用于堆栈中各层的标准化的技术。 整个w e b 服务堆栈( 2 s j 的基础是n e t w o r k 层( 网络层) ,因为w 曲服务必须 能够从网络上被服务请求者访问。由于唧在各个平台上的得到了很好的实 现,所以它己成为w e b 服务n e t w o r k 层所使用的实际上的标准协议,当然也可 以使用其它的一些协议,如s m t p 和f 】m 等。对于内部网来说还可以使用 m q s e r i e s 、c o r b a 等一些机制。 x m l - b a s e dm e s s a g e 层( 基于x m l 的消息层) 使用x m l 作为消息机制, 它选择s o a p 作为其消息协议,之所以这样做有以下几点原因: s o a p 是使用x m l 语法进行文档消息传送和远程过程调用( r p c ) 的标 准化的封装机制。 s o a p 很简单,只用了一个带有x m l 封装的h t l 甲p o s t 方法。 s o a p 很适合于在h t i pp o s t 方法进行x m l 消息传送中使用,因为 它定义了一个标准的机制( 使用s o a p 头和对操作的标准编码方法) 来 包含一些正交的扩展消息。 s o a p 消息支持w e b 服务架构中的发布、发现和绑定操作。 w 海大学硕士学位论文w e b 服务事务处理模型研究与实现 $ m t k 卜t m o i w s d l , s o a p h r i p lm ie - n 蚰 m q ,i l o p 日i e 岫v i 。f 妇啤孙脑洳n l 蕊糍登笺蠹瓣灞豁潞g 旃懑穗! i 辍觏瓣 s 目啼e 陬埔- 啦n ) 嘶b 酬脚:嚼,喂 n e 咖t k # ”7 一m # 图2 2 4w e b 服务协议堆栈 服务描述( 服务d e s c r i p t i o n ) 层实际上也是一个描述文档的堆栈。首先, w s d l 是基于x m l 的服务描述事实上的标准( 这也是w e b 服务能互操作的最 小的标准服务描述集合必须包括的协议) ,它定义了服务间互操作的接口和机制。 另外还需要一些附加的描述来确定诸如企业上下文信息( b u s i n e s sc o n t e x t ) 、服务 的品质、服务间的相互关系等内容。可以利用其它的一些服务描述文档作为补充 来描述这些高层次方而内容。例如可以利用u d d i 作为w s d l 的附加文档来描 述企业上下文信息,使用w s f l ( w e b s e r v i c e s f l o w l a n g u a g e ) 文档来描述服务 的组建和流程等内容。 由于w e b 服务是网络可访问的和由服务描述所描述的,所以图2 2 4 的堆栈 的头三层是必须要提供的。最简单的堆栈情况可以只包含三层:网络层中使用 i - l q t p x m l :消息层中使用s o a p ;服务描述层中使用w s d l 。这也是所有的企 业内部或公共w e b 服务进行互操作都必须支持的基本协议堆栈。w 曲服务( 特 别是企业内部和私有的w e b 服务) 还可以支持其它的网络协议和分布式计算技 术。 图中的最下而三层协议主要是确定一致性和互操作性的技术,丽它们下面的 两层即服务发布和发现层) 则有多种途径来实现。 在服务请求者的生命期内,任何使得服务请求者能够对w s d l 文档访问的 操作,就可以叫做服务发布。一个最简单的静态的例子是服务提供者将w s d l 文档直接送到服务请求者那里,这叫做直接发布。e m a i l 就是一种直接发布的工 具。对于静态绑定的应用程序来说,直接发布是有用的。当然,服务提供者也可 以将描述服务的w s d l 文档发布到其它的地方,如本地w s d l 注册处( 1 0 c a l w s d l r e g i s t r y ) 、私有u d d i 注册处( p r i v a t e u d d i r e g i s t r y ) 或一个u d d i 操作 者节点( t h eu d d i o p e r a t o rn o d e ) 处。 河坶大学硕士学位论文w e b 服务事务处理模型研究与实现 由于w e bs e r v i c e 在没有被发布之前是不能被发现的,所以服务的发现依赖 于服务的发布。任何使得服务描述可被服务请求者访问并可被应用程序在运行时 使用的机制都可以认为是服务发现。最简单的一个静态的服务发现的例子是从本 地文件中得到w s d l 服务描述文档,这些w s d l 文档通常是在直接发布中得到 的。 由于w e b 服务是由软件模块来实现的,因此可以使用若干个w e b 服务来组 合成一个另外的w e b 服务。这些w e b 服务的组合可能同时扮演好几个角色, 如可以将企业内部网组合成一个单个的w e b 服务接口以对外部使用,亦可以协 作几个不同企业的w e b 服务使之能够在机器问、企业间进行事务处理。作为选 择,当工作流管理器介入事务后,它可能调用各个w e b 服务。图中的最上面一 层服务流( s e r v i c eh o w ) 描述了服务间如何通信、协作及如何执行“流”的。w s f l 规范就是用未描述这些交互作用的。 随着电于商务等一些应用的要求越来越严格,w e b 服务应用程序还必须提供 一些企业级的基础结构,包括安全性、易管理性和服务的质量等方面内容。图中 右边的方框中所提到各方面是各个层都必须解决的。 靠近堆栈底部的层代表了基础的w e b 服务堆栈,它们相对于上层而言成熟 一些,也更标准化。w e b 服务的成熟和使用将会促进堆栈中的高层协议进行发展 和标准化。 2 3w e b 服务关键技术 2 3 1 数据表示:x m l 可扩展标记语言x m l ( e x t e n s i b l e m a r k u pl a n g u a g e ) ,是一种使用者可以用 来创建自描述标记的语言。它由万维网协会( w 3 c ) 创建,用来克服h t m l ( 超 文本标记语言,h y p e r t e x tm a r k u pl a n g u a g e ) 的局限。和h t m l 一样,x m l 基 于标准通用标记语言s g m l ( s t a n d a r dg e n e r a l i z e dm a r k u pl a n g u a g e ) 。x m l 是 s g m l 的一个子集,是为w e b 设计的。其目的在于使得在w e b 上以现有h t m l 的使用方式提供,接收和处理通用的s g m l 成为可能。x m l 的设计既考虑了实 现的方便性,同时也顾及了与s g m l 和h t m l 的互操作性。 首先,实际应用的x m l 文档必须是正规( w e l l f o r m e d ) 的,也就是说x m l 文档需要满足w 3 cx m l 语法规范。这样解析器或其它应用程序才能对其进行有 效的分析处理。如果遇到不是格式正规的x m l 文档,x m l 解析器则报告一个“致 命”的错误。格式正规的文档使得应用程序不必花大量的精力来处理可能的x m l 文档结构。 河海大学硕士学位论文 w e b 服务事务处理模型研究与实现 一个格式正规的x m l 文档通常( 不是必须) 由三个部分组成: 1 1 一个可选的序言( p r o l o g ) 。 2 1 文档元素( d o c u m e n te l e m e n t ) ,为文档的主体,由一个或多个元素组成, 其形式为一个可能也包含字符数据的层次树。 3 ) 可选的尾部( e p i l o g ) ,其内容包括注释、处理指令和或紧跟元素树后面 的空白。 e a , a l o g - qb o o k 卜叫a u t l m o 叫l 1g c n 心 1 芦l t e - i 出s c n 呻b l 蛐 - lb o o k 卜- 图2 2 5x m l 文档元素树 格式正规的x m l 文档还有以下几个基本语法要求:每个元素都要有一个起 始标签和一个结束标签;每个) l m l 文档都要有一个唯一的根元素;元素和属性 的名字区分大小写;元素必须正确的嵌套。在结构上不能交迭,有些字符内容不 能直接使用,必须由其它的字符组合代替( 例如位用& i t ;代替 ( 客户:客户名单 表2 1 :一个使用

温馨提示

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

评论

0/150

提交评论