(计算机应用技术专业论文)基于消息中间件的web+services的研究和实现.pdf_第1页
(计算机应用技术专业论文)基于消息中间件的web+services的研究和实现.pdf_第2页
(计算机应用技术专业论文)基于消息中间件的web+services的研究和实现.pdf_第3页
(计算机应用技术专业论文)基于消息中间件的web+services的研究和实现.pdf_第4页
(计算机应用技术专业论文)基于消息中间件的web+services的研究和实现.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要 摘要 w e b 服务( w e bs e r v i c e s ) 作为一种能够快速集成应用的技术,在电子商务中 已得到广泛应用。w e b 服务体系结构的本质是应用程序通过消息交换进行相互集 成,而由于目前在w e b 服务中广泛采用的是同步、服务质量保证存在不足的h r r p 传输协议,对于以异步传输和高可靠性为特征的复杂应用的支持尚不足,这就大 大地降低了w e b 服务在许多大型关键企业应用领域的竞争力。随着w e b 服务应 用范围的扩展和研究的不断深入,灵活的消息传输机制和可靠的服务质量成为目 前信息集成与交换领域的研究热点。 本文以基于i n t e m e t 的应用集成为背景,以现有的w e b 服务体系结构和规范 集合为基础,基于消息中间件技术,研究了w e b 服务中的异步消息传递机制和可 靠性,提出一种基于消息主题的w e b 服务模型,开发出原型系统j m s s o a p 并 加以验证,解决了传统技术中利用消息队列及临时队列不能进行异步可靠传输的 问题。 本文的主要工作包括: 1 研究了w e b 服务的消息传送机制,并分别以w e b 服务和消息中间件为 研究对象,研究二者对异步性和可靠性的支持。 2 通过分析当前广泛应用的简单w e b 服务模型存在的不足,研究利用消息 中间件技术为w e b 服务提供异步和可靠消息传输。 3 在以上的研究基础上,设计和实现了一个面向w e b 服务的传输原型系统 j m s s o a p ,使基于s o a p 的消息可以通过j m s s o a p 进行传输,实现网络层级 的异步可靠w e b 服务。 本文对w e b 服务中异步性和可靠性的探索将对提高w e b 服务的效率和服 务质量、扩展w e b 服务的应用领域有着重要的实际意义。 关键字:w e b 服务;消息中间件;d n $ ;异步性;可靠性 英文摘要 r e s e a r c ha n di m p l e m e n t a t i o no fw e bs e r v i c e sb a s e do n m e s s a g em i d d l e w a r e a b s t r a c t a sak i n do ft e c h n o l o g yc a p a b l eo fi n t e g r a t i n ga p p l i c a t i o n sq u i c k l y w e bs e r v i c e s h a v eb e e nw i d e l ya p p l i e di ne - c o m m e r c e t h ec o r eo fw e bs e r v i c e sa r c h i t e c t u r ei s i m p l e m e n t i n gi n t e g r a t e w i t ho n ea n o t h e rb y i n t e r c h a n g i n gm e s s a g e s b e t w e e n a p p l i c a t i o n s b u tp r e s e n t l yt h ew i d e l yu s e dt r a n s p o r tp r o t o c o li nw e bs e r v i c e si s r n 甲,w h i c hi ss y n c h r o n o u sa n do f f e rn oe n o u g hq u a l i t yo fs e r v i c e ( q o s ) g u a r a n t e e t h i si sn o t g o o df o rt h o s es o p h i s t i c a t e db u s i n e s sa p p l i c a t i o n sw h i c hn e e dt h e a s y n c h r o n o u sm e s s a g et r a n s m i s s i o na n dh i 曲r e l i a b i l i t y ;t h e r e f o r ei te m b a r r a s s e sw e b s e r v i c e s c o m p e t i t i o no nt h el a r g e - s c a l ea n dk e ya p p l i c a t i o n sd o m m n 。w i t hw e b s e r v i c e sa p p l i c a t i o ns c o p ee x p a n d i n ga n df u r t h e rr e s e a r c h i n g ,t h ef l e x i b l em e s s a g e d e l i v e r ya n dr e l i a b l eq u a l i t yo fs e r v i c eh a v eb e e nb e c a m eah o tt o p i co fr e s e a r c hi nt h e f i e l do fi n f o r m a t i o ne x c h a n g ea n di n t e g r a t i o n b a c k g 删椭do nt h ei n t e g r a t i n gb a s e do ni n t e r n e t ,如i st h e s i sb a s e so nt h ec u r r e n t w e bs e r v i c e sa r c h i t e c t u r e ,s p e c i f i c a t i o n sa n dm o m ( m e s s a g eo r i e n t e dm i d d l e w a r e ) , i n v e s t i g a t et h ea s y n c h r o n o u sm e s s a g ed e l i v e r ya n dr e l i a b i l i t y t h e n ,w ed e s i g naw e b s e r v i c e sm o d e lb a s e dm e s s a g et o p i c sa n dd e v e l o pap r o t o t y p es y s t e mj m s s o a p , s o l v e dt h ep r o b l e m su s i n gm e s s a g eq u e u ea n dt e m p o r a r yq u e u em e s s a g ed e l i v e r yn o t a s y n c h r o n o u so rr e l i a b l ei nt r a d i t i o n a lt e c h n i q u e s t h e p r i m a r yc o n t r i b u t i o n so f t h i st h e s i si n c l u d et h ef o l l o w i n gt h r e ep a r t s 。 1 w ea n a l y z ew e bs e r v i c e s m e s s a g em e c h a n i s ma n dt h es u p p o r t i n g o f a s y n c h r o n i s ma n dr e l i a b i l i t yb a s e do nw e bs e r v i c e sa n dm e s s a g eo r i e n t e dm i d d l e w a r e 2 a f t e ra n a l y z i n gt h et r a d i t i o n a l w 曲s e r v i c e s d i s a d v a n t a g e s w es t u d ya n d e x p l o r et h ew a y so f u s i n gm o m t oi m p l e m e n ta s y n c h r o n o u sa n dr e l i a b l ew e bs e r v i c e s 3 o nt h eb a s i so fo u rs t u d y ,w ed e s i g na n di m p l e m e n taw e bs e r v i c eo r i e n t e d a p p l i c a t i o nn a m e dj m s s o a p i ts u p p o r t ss o a p ( s i m p l eo b j e c ta c c e s sp r o t o c 0 1 ) m e s s a g ed e l i v e r yo v e rj m s ( j a v am e s s a g es e r v i c e ) m e s s a g e ,i m p l e m e n t sa s y n c h r o n o u s a n dr e l i a b l ew e bs e r v i c e si nt h en e t w o r kl a y e r 英文摘要 t h ee x p l o r a t i o nt ot h ea s y n c h r o n i s ma n dr e l i a b i l i t yo fw e bs e r v i c e si nt h i st h e s i s h a ss i g n i f i c a n tp r a c t i c em e a n i n gf o ri m p r o v i n gt h ep e r f o r m a n c e ,q u a l i t yo fs e r v i c eo f w sa n de x p a n d i n gt h es c o p eo f w e bs e r v i c e s k e yw o r d s :w e bs e r v i c e s ;m e s s a g eo r i e n t e dm i d d l e w a r e ;j m s ;a s y n c h r o n i s m ; r e l i a b i l i t y 大连海事大学学位论文原刨性声躔和使用授权说明 原创性声明 零久郑重声骥:本论文愚农导簿豹掺嚣下,独立送行磷究工薅瘊取褥豹裁莱, 撰写成博士硕士学位论文:基王澄皇生闻魅煎受堂曼g 毅i 塑数受塞艇塞瑰:。 除论文中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均 已寇交孛浚胡确方式蠡弱。零谂文孛不雹会经露未熬骥礁注饔茨箕德个入或集嚣 已缀公开发表或朱公开发表的成果。 本声明的法律责任由本人承担。 论文终者熬名;孑强,0 年,弱汐强 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“火连海事大学研究生学位论文提交、 舨投傻蔫管理办法”,霹意大逶海事丈学缳蘩势囱国家蠢关部门或机构送交学位 论文的复印件和电子版,允许论文被查阅和借阅。本入授权大连海事大学可以将 本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或 扫攥等复铡手段缣痞纛茳编学缎论文。 保密口,在年解密盾适用本授权粥。 本学位论文溪手: 摄键 不僳密口( 请在以上方框内抒“4 ”) 论文终者签名:予囊 譬爆签名: 日期:聊年;月 基于消息中间件的w e bs e r v i c e s 研究和实现 第1 章绪论 1 1 研究背景 在互联网( i n t e m e t ) 迅猛发展的今天,w e b 服务( w e bs e r v i c e s ) 己经得到广泛应 用。从简单的,数据共享的应用到大规模的互联网零售业和现金交易,乃至移动计算、 网格应用等等,都有w e b 服务涉入其中。以m i c r o s o f t 、i b m 、o r a c l e 、h p 、b e a 和s a p 等为主的计算机业巨头们无一例外地将自己的软件产品解决方案全面支持w e b s e r v i c e s ,同时,他们共同成立了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 yo r g a n i z a t i o n ,网 络服务交互性组织) ,致力于推广w e bs e r v i c e s 的全面应用【”。 目前,w e b 服务在互联网上的应用主要是以s o a p 1 8 】协议为基础,并绑定其它传输 协议如h t t p 协议来实现。就本质而言,w e b 服务的体系结构是互联网上的端点之间 通过消息交换相互进行集成的方法。消息交换是w c b 服务的核心内容,因此当前w e b 服务的研究工作主要集中在如何确保消息交换的服务质量( q o s ,q u a l i t yo f s e r v i c e ) , 如消息传输的异步性、安全性、可靠性和事务处理等方面。对于当前w e b 服务而言, 这些服务质量中异步性和可靠性显得尤其重要。这是因为: 1 大多情况下企业运行的w e b 服务包括一个需要支持长期运行和深层协作完成的 商业过程,而且这些商业不是独立起作用的。通常一个典型的商业过程会涉及到好几次 与贸易伙伴的对话或者和贸易伙伴间交换数据等等。这个过程有时是短时间的,有时也 许需要几天的时间,在这种情况下让客户同步等待响应是不现实的。因此,异步通信对 于企业是非常必要的。 2 可靠消息传送对w e b 服务而言是至关重要的。如果参与者不能确定消息交换的 完成,很多业务问题就不可能得以解决。如果没有一种w e b 服务标准来提供可靠的消 息传送,则各种应用程序将根据其业务逻辑来实现必需的功能。这种要求给负责业务逻 辑的开发人员带来了沉重的负担,但更重要的是这妨碍了互操作性,因为对一个公共问 题存在着不一致且各不相同的解决方案。 在企业应用集成需要异步、可靠消息传递的场合中,面向消息的中间件一直发挥着 重要的作用。消息中间件独立于平台、编程语言,能在异构的网络协议和操作系统之间 第1 章绪论 提供异步的、可靠的和可恢复的消息传送,为企业提供了一个统一的、健壮的通讯平台, 大大地缩短了应用开发周期。适用于i n t e m e t 环境的新型消息中间件将是解决w e b 服 务中异步、可靠消息交换的有效的方案。事实上,无论对于w e b 服务,还是对于消息 中间件而言,这已经是一种发展趋势。消息中间件需要扩展以更好地适应i n t e m e t 环境, w e b 服务需要消息中间件来提升它的灵活性,以扩展它的应用领域。 1 ,2 发展现状 根据w e b 服务的协议栈的特点,可在应用层和网络层两个级别来实现异步可靠 w e b 服务。在应用层次可以通过扩展w e b 服务的消息传递格式和协议,即扩展s o a p 来实现。在网络层次可以绑定s o a p 协议到特定协议上,通过底层编程实现异步可靠 传输。目前实现w e b 服务的异步可靠传输可能有如下几种方法。 1 w s r e l i a b i l i t y t 6 】规范和w s r e l i a b l em e s s a g i n g l l 7 l 规范是两个针对s o a p 可靠 性扩展的规范,并且提供了一种可靠的机制来在服务之间传递消息,从而确保信息不会 丢失或遭到破坏。 2 i b m 针对h 1 v r p 的不可靠提出了h t t p r ( h t t pr e l i a b l e ,可靠h t t p 协议) 。 就目前而言,h t t p r 也仅仅只是个提议,没有得到实际的应用。 3 通过支持消息中间件来传输s o a p 消息。 4 另外还有各大公司自己开发的可靠消息传输方案,实现方法、手段无从得知,在 本文中不予讨论。 w s r m ( w s r e l i a b l em e s s a g i n g ) 解决方案属于网络层次解决方案,是基于s o a p 协议的扩展,通过对端点之间通信进行严密的逻辑控制来保证消息的可靠传输,端点之 间存在大量的对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 ) 解析等低效率操作,业界一般认 为w s r m 并不适合应用在w e bs e r v i c e s ,而更适合来实现消息中间件技术( m o m ) 之 间的互操作,这并不是一个切实有效的解决方案。 丽消息中间件技术发展至今,已成为一套相当成熟的产品,在企业级平台中发挥重 要的作用。消息中间件完善地支持消息的异步及可靠传输,将消息中l 日j 件作为w e b 服 基于消息中间件的w e bs e r v i c e s 研究和实现 务的底层框架来为其提供异步、可靠消息传递的支持是以上几种方案中的一种实际可行 的解决方案。 目前,还有某些技术例如w s i f l 2 9 ( w e bs e r v i c e si n v o c a t i o nf r a m e w o r k ) 框架通过 扩展w s d l ,利用消息中间件来进行w e b 服务调用,但它们对消息中间件的利用仅限 于消息队列,通过对每次w e b 服务请求创建一个临时消息队列来进行操作【3 0 1 ,而临时 消息队列并不能发挥出消息中间件消息传输可靠性、异步性的优点,这种消息传输和简 单w e b 服务一样,只是尽最大努力传送,对传输质量上并没有额外的保证。本文通过 利用消息中间件消息主题一对多的特性,来实现本文的研究内容。 1 3 研究内容及意义 消息中间件的设计和开发没有统一的标准。j m s t 2 7 1 ( j a v a m e s s a g es e r v i c e ) 是s u n o n e 提出的j a v a 平台的消息服务接口规范,它提供了一个通用的消息模型,包括消 息队列和发布订阅两种模式。目前,已有很多成功的j m s 产品,如p r o g r e s s 公司的 s o n i c m q 2 3 1 ,开放源代码产品a c t i v e m q l 2 4 1 等。本文所涉及的消息中间件,都是基于j m s 之上。 本文从w c b 服务中消息传送异步、可靠的需求这一角度出发,通过分析当前广泛 应用的简单w e b 服务模型存在的不足,研究和探索利用消息中间件技术为w e b 服务 提供异步和可靠消息传输支持。在充分了解w e b 服务和j m s 原理基础上,利用j m s 消息主题发布订阅模式,设计和实现一个面向w e b 服务的传输原型系统j m s s o a p , 从而使w e b 服务可以通过使用j m s s o a p 内定制的传输机制,实现消息的异步可靠传 递。 w e b 服务与消息中间件的结合意味着w e b 服务将变得更灵活,将为构建企业级应 用提供其所需的异步性和可靠性,从而大大地扩展w e b 服务的应用领域,其研究成果 无论从理论研究和实际应用上来讲,都具有实际的参考价值。 1 4 论文结构 全文由六个章节组成。 第1 章绪论 绪论之后的第二章是w e b 服务技术的概述。介绍了w e b 服务的相关概念,对 w e b 服务的定义,体系结构,协议栈和结构单元以及实现w e b 服务异步性和可靠性的 相关技术进行了介绍。 第三章介绍了消息中间件技术,重点通过j m s 介绍了消息中间件的消息传递,异 步性和可靠性。 第四章给出了j m s s o a p 的设计思想及系统结构,并详细说明了各核心模块和功能 的实现。 第五章分别用j m s s o a p 和普通w e b 服务请求方式进行测试,并进行对比。 第六章总结全文,并指出了下一步的研究工作。 基于港意中阀俘静w e bs e r v i c e s 辑究窝实瑷 第2 章w e b 服务及相关技术 2 , w e b 骚务相关概念 2 w e b 簸务定义 w 3 c ( w o r l dw i d ew e bc o n s o r t i u m ) 嚣翦对于w e b 服务麴定义为:w e b 暇务是 一个设计成支持机器_ 和机器之间遇过网络进行互操作的软件系统。机器处理格式 ( w s d l 【2 0 1 ,w e bs e r v i c e d e f i n i t i o n l a n g u a g e ) 描述了它们之间的接口。其它系统通过 s o a p 消息使用接口描述方式和w e b 服务进行交互 麓。 w e b 驻务就怒一耪鄂署京w e b 上懿对象( w e bo b j e c t ) ,因瑟瑟骞对象技术瑟承 诺魏骶骞优点;同时,w e b 服务豹基石怒以x m l 为基础豹、开效的w e b 规范技术, 因此具有比链何现有的对象技术更好的开放性。w e b 服务将给人们带来许多令人吃惊 的好处。比如它具有在完全不同平台之间的互操作性、在无所不在的i n t e m e t 上调用一 种w c b 服务的能力等l 辩 。 2 1 2w e b 雅务体系结丰奄 w 痨服务体系结 鸯罄子三释角色( 羧务提供者、搬务溪臻中心稻服务谚求者) 之溺 麴交互。交曩涉及发毒、查找秘绑定操终。这些角色靼操馋一起作用予w e b 服务掏件: w 曲服务软件模块及其描述。在典型情况下,服务提供者托管可通过网络访问的软件 模块( w e b 服务的一个实现) 。服务提供者定义w e b 服静的服务描述并把它发布到服 务请求者或服务注册中心。腋务请求者使用查找操 乍来从本趣或服务注册中心裣索服务 糖述,然磊使爱黢务攒述与羧务提供者遴行绑定著灞用w e b 赧务实现或瓣它交- 蓐t 3 1 。 服务提供者朝服务请求纛角色是逻辑结构,因薅月鼹务可以袭现嬲_ 种特性。下图图示了这 些操作、提供这些操作的组件及它们之间的交置。 第2 章w e b 服务及相关技术 图2 1w e b 服务角色、操作和构件 f i g 2 1w e bs e r v i c e sr o l e s ,o p e r a t i o n sa n dc o m p o n e n t s w e b 服务体系结构中的角色 1 服务提供者。从企业的角度看,这是服务的所有者。从体系结构的角度看,这是 托管访问服务的平台。 2 服务请求者。从企业的角度看,这是要求满足特定功能的企业。从体系结构的角 度看,这是寻找并调用服务,或启动与服务的交互的应用程序。服务请求者角色可以由 浏览器来担当,由人或无用户界面的程序( 例如,另外一个w e b 服务) 来控制它。 3 服务注册中心。这是可搜索的服务描述注册中心,服务提供者在此发布他们的服 务描述。在静态绑定开发或动态绑定执行期间,服务请求者查找服务并获得服务的绑定 信息( 在服务描述中) 。对于静态绑定的服务请求者,服务注册中心是体系结构中的可 选角色,因为服务提供者可以把描述直接发送给服务请求者。同样,服务请求者可以从 服务注册中心以外的其它来源得到服务描述,例如本地文件、f t p 站点、w e b 站点、 广告和服务发现( a d v e r t i s e m e n t a n d d i s c o v e r y o f s e r v i c e s ,a d s ) 或发现w e b 服务 ( d i s c o v e r yo f w e bs e r v i c e s ,d i s c o ) 。 w e b 服务体系结构中的操作 基于消息中间件的w e bs e r v i c e s 研究和实现 对于利用w e b 服务的应用程序,必须发生以下三个行为:发布服务描述、查询或 查找服务描述以及根据服务描述绑定或调用服务。这些行为可以单次或反复出现。这些 操作具体为: 1 发布。为了使服务可访问,需要发确服务描述以使服务请求者可以查找它。发布 服务描述的位置可以根据应用程序的要求而变化。 2 查找。在查找操作中,服务请求者直接检索服务描述或在服务注册中心中查询所 要求的服务类型。对于服务请求者,可能会在两个不同的生命周期阶段中牵涉到查找操 作:在设计时为了程序开发而检索服务的接口描述,而在运行时为了调用而检索服务的 绑定和位置描述。 3 绑定。最后需要调用服务。在绑定操作中,服务请求者使用服务描述中的绑定细 节来定位、联系和调用服务,从而在运行时调用或启动与服务的交互。 2 1 3w e b 服务协议栈 要以一种可互操作的方式执行发布、发现和绑定这三个操作,必须有一个包含每一 层标准的w e b 服务协议栈。下图展示了一个概念性w e b 服务协议栈。上面的几层建 立在下面几层提供的功能之上。垂直的条表示在协议栈中每一层必须满足的需求。左面 的文本表示协议栈的那一层所应用的标准技术嘲。 概念性w e b 服务协议栈 第2 章w e b 服务及相芙技术 图2 2w e b 服务概念性协议栈 f i g 2 2w e bs e r v i c e sc o n c e p t u a lp r o t o c o ls t a c k w e b 服务协议栈的基础是网络层。w e b 服务要被服务请求者调用,就必须是可以 通过网络访问的。因特网上可以公用的w e b 服务使用普遍部署的网络协议。h r r p 凭 借其普遍性,成为了因特网可用的w e b 服务真正的标准网络协议。w e b 服务还可以支 持其它因特网协议,包括s m t p 和f t p 。内部网域可以使用可靠消息传递和调用基础 结构,如m q s e r i e s 2 6 l 等等。 下一层是基于x m l 的消息传递,它表示使用x m l 作为消息传递协议的基础。选 择s o a p 作为x m l 消息传递协议有很多原因: 1 它是使用x m l 传送以文档为中心的消息以及远程过程调用的标准化封装机制。 2 s o a p 很简单:它基本上是一个用x m l 信封作为有效负载的h t t pp o s t 。 3 s o a p 比对x m l 简单的h 1 v r pp o s t 更受青睐,因为它定义了一个标准机制, 这个机制将正交扩展( o r t h o g o n a le x t e n s i o n ) 合并为使用s o a p 报头和对操作或函数进 行标准编码的消息。 4 s o a p 消息支持w e b 服务体系结构中的发布、查找和绑定操作。 基于消息中间件的w e bs e r v i c e s 研究和实现 2 1 4w e b 服务的结构单元 w e b 服务基于开放的因特网标准,它的结构单元是s o a p 、w s d l 和u d d i t l 9 1 。 s o a p s o a p 是序列化调用位于远程系统上的服务所需信息的标准方法,这些信息可以使 用一种远程系统能够读懂的格式通过网络发送到远程系统,而不必关心远程系统运行于 何种平台或者使用何种语言编写。s o a p 以x m l 格式提供了一个简单、轻量的用于在 分散或分布环境中交换结构化和类型信息的机制。s o a p 本身并没有定义任何应用程序 语义,如编程模型或特定语义的实现;实际上它通过提供一个有标准组件的包模型和在 模块中编码数据的机制,定义了一个简单的表示应用程序语义的机制。这使s o a p 可 用于联合各种现有的网络协议和格式,包括h t t p 、s m t p ( s i m p l em a i l t r a n s f e r p r o t o c 0 1 ) 和m i m e ( m u l t i p u r p o s ei n t e m e tm a i le x t e n s i o n s ) ,并可被用于消息传递到 r e m o t ep r o c e d u r ec a l i ( r p c ) 的各种系统。 s o a p 解决了通过防火墙传送往返于远程应用程序的消息的问题。除了通过某些预 先设定的作为特定用途的端口,防火墙通常禁止通过其它端口进行远程通讯。这就出现 了一个问题,大部分分布式协议不使用分配的端口,而是动态地选择端口。微软s o a p 技术实现的解决方案是通过h t t p 的8 0 端口传送对远程进程的调用。这个远程调用使 用x m l 定义消息请求或响应的格式,把调用附加到h t t p 协议的顶部。这个技术的优 点之一就是降低通过防火墙传送消息的复杂性。但是8 0 端口通常还用来作为w e b 通 信之用,所以可能会降低其效率。 s o a p 可以用来解决因特网应用程序的交互性问题。你可以使用一种平台无关性方 式在远程( 或本地) 服务器上访问对象和服务。现在的互联网世界由不同的操作系统、 不同的防火墙、不同的产生远程过程调用的方法和平台组成。为了跨因特网交互,客户 机和服务器都需要了解彼此的安全类型和信任、服务部署模式和实现细节以及平台语 言。使用s o a p ,这种平台特定性的混乱局面就会结束。基于已被业界广泛接受的 h 1 v r p 标准和x m l 标准,s o a p 也可与其竞争对象r p c 技术连通,并提供用于任何 操作系统、程序语言和平台的轻量级消息格式。 在s o a p 体系结构有四个主要的部分: 第2 章w e b 服务及相关技术 s o a p 信封( e n v e l o p e ) ,用于描述消息内容和处理方法。 s o a p 编码规则:定义了一个编码机制用于交换应用程序定义的数据类型的实例。 s o a pr p c 表示,定义了一个用于表示远程过程调用和响应的约定。 s o a p 绑定,定义了一个使用底层传输协议来完成在结点间交换s o a p 信封的约 定。 简单的说,s o a p 提供了使用完全独立于平台的访问服务、对象和服务器的技术。 通过s o a p ,你将能够查询服务、调用服务、与服务通讯并处理服务,而不用去关心远 程系统的位置、所在的操作系统或平台到底是什么样的。 s o a p 本身提供了与w e b 服务交换信息的方法,但是它没有提供查找w e b 服务 消息的方法。而且它还不提供查找w e b 服务或与之交涉的方法。 w s d l w e b 服务描述语言( w s d l ) 和s o a p 一起构成了w e b 服务的核心结构单元。 w s d l 基于x m l 格式,用来描述w e b 服务。它描述了w e b 服务可以执行的操作 以及w e b 服务可以发送或接收的消息格式。w s d l 文档可以看成是客户端和服务器之 间的一个协约。使用w s d l 工具,你可以自动处理这个过程,几乎不用手工编写代码 就能够让应用程序整合新的服务。因此w s d l 是w e b 服务体系结构的基础,因为它 提供了一个通用语言,用来描述服务和整合这些服务的平台。 u d d i u d d i ( 统一描述、发现和整合) 建了一个平台独立、开放的框架,通过因特网柬 描述服务,发现业务,并且整合业务服务。它是一套基于w e b 的、分布式的、为w c b 服务提供的信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的 w e b 服务注册以使得别的企业能够发现的访问协议的实现标准。 通过使用u d d i 的发现服务,企业可以单独注册那些希望被别的企业发现的自身 提供的w e b 服务。企业可以通过u d d i 商业注册中心的w e b 界面,或是使用实现了 ”u d d ip r o g r a m m e r sa p i 标准”所描述的编程接口的工具,来将信息加入到u d d i 的商 业注腮中心。u d d i 商业注册中心在逻辑上是集中的,在物理上是分布式的,由多个根 节点组成,相互之间按一定规则进行数据同步。当一个企业在u d d i 商业注册中心的 基于消息中间件的w e bs e r v i c e s 研究和实现 一个实例中实施注册后,其注册信息会被自动复制到其它u d d i 根节点,于是就能被 任何希望发现这些w e b 服务的人所发现。 2 2 异步w e b 服务关键技术 w e b 服务调用本质上是异步的【1 2 1 ,因为服务提供者必须能够接收来自客户机的 请求而无需通知。但是,有时w e b 服务请求的响应在调用的同一个执行线程上可用; 这种操作通常被称为同步操作。这篇对异步操作的讨论将不会集中在客户机对请求消息 的启动或服务提供者对请求消息的处理上:而是将集中在如何处理对w e b 服务请求的 响应上,这种响应不是立即提供,而是在最初的请求事务完成后才提供。这种异步行为 对于要求可能花费几分钟或者甚至几天的时间才能完成的复杂处理的服务来说很常见。 例如,当w e b 服务实现依赖于批处理或者需要人工介入的手工步骤时。 一个典型的异步案例将包括下列内容: 1 客户机生成和传输请求消息。 2 服务提供者处理请求消息。 3 服务提供者生成和传输响应消息 4 客户机消费响应消息。 为支持异步操作,必须解决许多响应同步时不存在的问题。异步实现需要解决的问 题包括: 1 为其交换定义一个相关器和一种机制。 2 定义一个回复地址( r e p l y t oa d d r e s s ) 指定应该把响应发送到何处,并确保向服 务提供者通知了这个目的地。 3 服务提供者生成响应的过程作为一个事务与请求分开。 4 客户机收到异步响应。 5 客户机和服务提供者把响应与请求关联起来。 可以用于w e b 服务通信的传输促进异步操作支持的能力是不同的。因此,不仅仅 w e b 服务行为可以描述为异步或同步;用于交换w e b 服务消息的传输也可以归为两 类。其接口本身就支持响应消息与请求消息的相关性以便应用程序使用,并支持“推” 第2 章w e b 服务及相关技术 ( p u s h ) 和“拉”( p u l l ) 类型消息交换的传输通常被称为异步传输。同步传输不提供这 些手段,当用于异步操作时,它们要求应用程序( 为方便讨论,假设是客户机和服务提 供者) 管理所交换消息的相关性,方法是不仅定义将如何在每条消息内传送相关器,还 把响应与请求匹配起来。可以用于支持异步操作的传输的示例包括: j m s i b mm q s e r i e s 消息传递( i b mm q s e r i e sm e s s a g i n g ) m s 消息传递( m sm e s s a g i n g ) 异步传输使客户机能够在请求一个服务调用后立即继续在自己的执行线程上处理; 它们还提供一些机制使客户机能够确定它的w e b 服务请求的状态并能够检索对那些 请求的响应。 异步w e b 服务操作支持四种基本传输类型为基础【7 1 : 单向( o n e w a y ) :端点接收一条消息。 请求响应( r e q u e s t r e s p o n s e ) :端点接收一条消息并发送一条对应的消息。 征求响应( s o l i c i t r e s p o n s e ) :端点发送一条消息并接收一条对应的消息。 通知( n o t i f i c a t i o n ) :端点发送一条消息。 在异步消息模式下,发送者以异步方式将消息发往接收者,同时期望在一段时间之 后获取一些响应。其中,发送者为请求分配了一个标识,并标注了这个请求,这样之 后的响应就可以使用这个标识与初始请求进行关联。同时,发送者也可以为请求分配了 属于其他服务的一个标识,而这个服务将作为最终的响应的接收者,也就是说,响应并 不一定会发回给发送者 4 1 。 基于消息中间件的w e bs e r v i c e s 研究和实现 作为拐始麓落蕾瓣作为蠢搀播牧謇的作为捌蜡鬟避煮的柞为基终接娅謇畴 soap结点sop结点soap结点s o a p 结点 s o a p 羞送者s 0 p 接收毫 尊晰发遘奢 s 0 嚷收者 s o 啮用s o a p 应用8 0 a p 砬用s o a p 应用 as o a p bbs 潘意栝髓l h e a 幽” t ll a c 瞻f 象羁1 羹篙i 蕞嗣 l , l 妊理箍r 。 鬻 ;一惠荚联健 li 千t t 雌 i 甜p 漪怠黯 t 一一 i s甜艄意癌 至一一 r 。f 一一 上 s o a p 滑惠s o 辨冀怠 s o a p 罅j i 叠一目铆处琏嚣s o 户蹙壤嚣一s o f 1 楚壤蕞 t tt t 蝴上j 喇糊焦一土上_ 强懒鸳土 簏务蔫a 瓣毒 嚣8藤舞麓b屉务器a 图2 3 异步消息模式 f i g 2 3a s y n c h r o n o u sm e s s a g ep a t t e m 在上图中,请求消息与响应消息在发生时间上是分离的,并且是以两个单向消息来 实现的。其中,s o a p 发送方的应用程序在发送完s o a p 消息之后并不会阻塞并等待 响应消息的返回。当最终的响应消息的接收者( 不一定是初始的消息发送者) 收到响 应消息后,s o a p 发送方的应用程序将会通知初始的s o a p 发送应用程序。然后它就 可以使用接收到的消息中的关联信息与之前发送的某个s o a p 消息达成关联。 对于请求消息中,消息标识处理器会生成一个唯一的消息标识并将其插入到一个 s o a ph e a d e r 条目中。这作为s o a p 请求消息的一部分从s o a p 应用程序a 发送到 s o a p 应用程序b 。然后s o a p 接收者方的商业应用程序将处理这个请求消息,并装 配响应消息。其中也将包括一个s o a ph e a d e r 条目,该条目由消息关联处理器构建, 它负责将响应消息与其相关的请求消息设置连接语义【s 】。 第2 章w e b 服务及相关技术 对异步w e b 服务操作的支持既可以用同步传输协议,也可以用异步传输协议来实 现。异步传输的使用( 这时内在提供请求和响应消息的关联性并提供独立查询状态和检 索响应消息的机制) 使得支持客户机端和服务提供者端的异步操作更加容易,因为面向 消息的中间件为w e b 服务请求和响应的传输提供可靠的消息传递。 2 3 可靠w e b 服务关键技术 w e b 服务的使用正在日益增长,跨l a n 的传统边界部署w e b 服务越来越流行。 由于w e b 服务之间的连接的距离和复杂性不断增加,因此在通信的过程中存在出现故 障的可能性。 在定义w e b 服务时主要考虑的是简单性,所以使用了现有的通信传输机制,例如 h t t p 和s m t p 。遗憾的是,这些解决方案的消息传输可靠性存在问题。存在以下主要问 题【1 0 l : 无法保证传递成功。 无法按顺序进行传递( 可能以不同的顺序发送和接收消息) 。 无法保证一个多消息序列中的单个消息传递成功。 如果消息传输失败没有系统可供重新传输消息。 出现故障可能不是应用程序的责任,而是由于其他原因造成的,例如网络故障、系 统崩溃,或者操作系统或网络系统中存在错误。当跨企业通信或通过像i n t e m e t 这样的 公用网络通信时,这些问题可能剧增。 可靠消息传送对w e b 服务而言是至关重要的。如果参与者不能确定消息交换的完 成,很多业务问题就不可能得以解决。如果没有一种w e b 服务标准来提供可靠的消息 传送,则各种应用程序将根据其业务逻辑来实现必需的功能。这种要求给负责业务逻辑 的开发人员带来了沉重的负担,但更重要的是这妨碍了互操作性,因为对一个公共问题 存在着不一致且各不相同的解决方案【5 】。 可靠的消息传送标准将提高其它w e b 服务标准( 如安全性、事务处理和业务处理) 的有效性。只有在可靠消息传送成为一个标准且并不内嵌在业务逻辑中的前提下,这些 基于消息中间件的w e bs e r v i c e s 研究和实现 改进才有可能。可靠的消息传送可确保w e b 服务结构、协议和接口提供安全、可互操 作、事务性和稳定的解决方案。 采用可靠的传输机制的消息传递是电子商务系统中中间件的基本组件,也是企业计 算所必需的技术。但是在因特网这样一个更大的环境中,像h t t p 这样的同步传输协 议目前并不能提供那些的功能。j m 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 服务消息,当

温馨提示

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

评论

0/150

提交评论