(通信与信息系统专业论文)综合网管系统中基于web+services的消息服务体系研究.pdf_第1页
(通信与信息系统专业论文)综合网管系统中基于web+services的消息服务体系研究.pdf_第2页
(通信与信息系统专业论文)综合网管系统中基于web+services的消息服务体系研究.pdf_第3页
(通信与信息系统专业论文)综合网管系统中基于web+services的消息服务体系研究.pdf_第4页
(通信与信息系统专业论文)综合网管系统中基于web+services的消息服务体系研究.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

(通信与信息系统专业论文)综合网管系统中基于web+services的消息服务体系研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 企业内的应用集成( e a i ) 与企业间的应用集成( b 2 b ) 正成为企 业计算的重要领域,信息交换日益频繁。而这种信息交换往往是在异 构的,自治的,动态的分布式环境中进行的。现有的分布式计算技术, 如c o r b a 等不能完全适应这种信息交换的需要。 作为解决方案之一的消息中间件技术应运而生。消息服务器是消 息中间件的一种类型,它为信息的交换双方提供一种异步的、存储转 发的信息交换模式,适合于跨越多种平台、编程语言与网络协议。消 息服务体系是以消息服务器为核心的,面向服务的应用体系。本文详 细探讨了消息服务体系的基本框架和它所支持的消息的可靠传递机 制。 由于目前消息中间件产品还存在着限定编程语言、不适合在 i n t e m e t 环境下使用等缺陷,我们将w c bs e i c e s ( w 曲服务) 概念引 入消息服务体系中。w 曲s e r v j c e s 是由一系列开放的,平台无关的协 议所组成的基于网络的组件规范。论文提出一种基于w 曲s e “i c e s 的 消息服务体系,以w 曲s e n r j c e s 方式提供消息服务,用s q a p 来封装 应用程序消息。本文还探讨了讧l 消息的自动格式转换问题和s o a p 扩展消息编码的问题。 最后本文还给出了一个用j a v a 开发的原型系统及应用实例的设计 与实现。 关键词:消息服务器,w e bs e r v i c 酷,面向服务 北京交通大学硕士学位论文 a b s t r a c t i n f b m a t o ne x c h a n g e sb e 柳e e nd i s t r i b u t e ds y s t e m sa r eg e l 矗n gm o r e a n dm o r ef f e q u e n tw h i l ee a l ( e n t e 叩r j s ca p p l i c a t i o i n t e 粤a d o n ) a n d b 2 b ( b u s i n e s st ob u s i n e s s ) i n f o 咖a t i o ne x c h 锄g e si so f t e na r ei np m g r e s s t h i sk i n do fs i t u a t i o no c c u r r c di nah e t e r o g 如e o u s ,a u t o n o m o u s ,d y n a m j c d j s t r i b u t e de n v i r o n m e n t c u 玎e n ta p p r o a c h e si nd i s i m u t e dc 咖p u t i n g , c o r b af o fi n s t a n c e ,a r cn o ts u f 6 c i 锄tt oc o m p l e t e l ym e e t t h e r c q u i f c l n c n t si ns u c he n v i r o n m e n t m o m ( m e s s a g c o r i e n t e dm i d d l e w a r e ) a p p e a r e da so n e o fs o l u t i o n s t ot h j sd i m c u l tp r o b l 咖m e s s a g es e e ri sal 【i n do fm o m ,w h i c h p r o v i d e sh e t e r o g e n e o u sm o d e o fm e s s a g ee x c h a n 舀n gf o re x c h 柚g e r s nj s m o s tc o m p a t i b i ef o rm u l t i p l ep l a t f o n l l s ,p r o 铲枷m i n g1 a f i g u a g e sa n d n e t w o r k p r o t o c o l s m e s 鞠g c s e r v i c ea r c h i t e c t u r ei sa m e s s a g e s e n r e 卜c e n t r c d ,s e n r i c e o r i e t e da r c h i t e c t u r c 1 1 l em e s s a g es e r v e fp r o i d e s b o t hs j d c so ft h ei n f o 硼a t i o n c x c h 卸g c a n a s y n c h r o n o u s , s t o r e - a n d f 0 九a r dm e s s a 百n gp a t t e m ,w h i c hc 卸c m s sd j f 诧r e n tp l a t f 咖s , l 卸g i l a g e s 卸dn e t w o r kp m t o c 0 1 s 1 1 l i st h e s i sd e s c r i b e st h ef r a m e w o r ko f m e s s a g es e r v i c e sa l c l i i t e c t u r c 柚di t s 蛐p p o no fr e l i a b i em e s s a g ed e l i v e r y h o w e v e lm o s t0 f t h em o mp f o d u c bh a v ep m g r a m m i n g1 a n g i l a g c 1 i m i ta n dc 柚n o tb ee a s 啦u s e do nt h ei n t e m e t t h e r c f o r ew eu s ew e b s e r v i c e w 曲s e i c e sa r eb a s e do nas e to fo p e n ,p l a t f o l f i l l j n d e p e n d 蛐t s t 卸d a r d st oc o n s t m dn e t w o r k a c c e s s c ds o f 研a r ec o m p o n e n ta p c h i t e c t u r e t h i st h e s i si n t f o d u c e st h ec o n c e p to fw c bs e r v i c e s - b a s e dm e s s a g es e r v i c e a r c h i t e c t u r e ,w h i c hp r 0 v i d e sm e s s a g cs e r v i c ei n aw 曲s e i c e sm a n n e f a n de n c a p s u l a t e st h e a p p l i c a t i o nm e s s a g e s i ns o a pr e q u e s t sa n d r c s 口o n s e s t h e卸t o m a t i ct r a n s f 咖a t i o no f x m lm e s s a g e sa n d s o a p - e x t e n d i n gm e s s a g ec o d i n ga f e a l s od i s c u s s e d 摘要 f i 姗l l y t h i st h e s i sd e s 耐b e st h ed e s i 9 1 la n di m p l e m e n t a t i o no f a p r o t o t y p es y s t e ma n d ac a s es t u d yo ft h em e s s a g es e r v i c ea r c h i t e c t u r e k e y w o r d s m 麟a g es e h e r ,w e bs e r v i c e s ,s e r v i c e - o r i e n t e d 引言 第一章引言 1 1 研究的背景和意义 企业内的应用集成( e a i ) 与企业问的应用集成( b 2 b ) 正成为企业计 算的重要领域。在这些集成活动中,往往有着频繁的信息交换( 如报价、 订单、报表等1 。这些信息交换活动更多的是在不同的软硬件平台和不 同的网络环境间进行的,信息交换各方的系统是独立的、属于不同的 组织的,而信息交换的内容与形式也随着商业过程的调整而动态变 化。 现有的分布式互操作技术在企业内部、局域网上己经有着广泛的 应用,但对于企业间的、广域网上的交互仍存在着许多不足,如难以 穿越防火墙,部署、配置与管理复杂,往往只能在同一厂商的产品之 间交互等等问题。 以消息中间件为代表的,基于异步的消息传递来实现分布式系统 问信息交换的技术正日益得到广泛应用。消息中间件把分布式系统问 所交换的信息视为消息,为消息在不同平台间的传递提供可靠的保 障。消息服务器( 或消息代理m c 鲻a g cb m k e r ) 是消息中间件的一种类 型,它在消息发送者与消息接收者之间提供存储转发的、可靠的消息 传递与格式转换服务。本文将探讨以消息服务器为核心的消息服务体 系及基于w e bs e r v i c c s 的消息服务体系。 随着企业信息化程度的提高,企业普遍采用数据库采集、存储和 检索企业生产、管理的数据。2 0 世纪9 0 年代中后期,计算机网络特 别是互联网技术得到了迅猛的发展,企业内部以及企业之间的数据交 北京交通大学硕士学位论文 换越来越频繁;同时,电子商务也要求企业将内部的各种信息系统整 合为一个统一的平台,以满足企业间的信息交换和其内在的需求。这 类需求的核心是要建立一个异构数据的集成平台。早期的数据来源主 要是各种关系数据库,因而集成主要针对关系数据库进行,像o d b c 方法和传统的模式集成方法都是典型的对关系数据库进行集成的方 法。随着信息技术的迅速发展,数据的存储超出了关系数据库的范畴, 相应地也就产生了跨平台对多种类型数据进行集成的要求。x m l 能够 描述不规则数据,能够从不同的来源集成数据,将多个应用程序所生 成的数据纳入同一个讧l 文件。目前,已有一些基于x m l 数据的集 成技术和应用面世。其中,有的只是将现有技术扩展x m l 支持,有 的只支持单一平台,如i n t e l l i g c n ts y s t e mr c s e a r c h 开发的 o d b q x m l 。因此,很有必要建立跨平台的支持关系数据库、格式 化文该平台能屏蔽网络、操作系统和多种数据的异构性,支持企业的 信息发布和电子商务应用,并具有可扩展性。 1 2 研究方向的现状 目前比较有影响的消息中间件规范和产品有s u n 的j m s ( j a v a m c s 髓g es e r v i c e ) 规范和i b m 的m q s e r i e s 以及甲骨文公司的o r a c l ea q 技术。 j m s 即j a v am e s s a g cs e r v i c e 的缩写,是s u n 公司基于j 2 e e 平台 的项核心技术。j m s 给j a 、,a 应用程序提供了一种通用的方式来创 建、发送、接收和阅读消息,实现应用程序间的信息传递。j m s 规范 定义了a p i ( 应用程序编程接口) ,由各开发商的消息中间件产品来实 现。j m s 规范在1 9 9 8 年首次发布。此后,许多软件供应商采纳j m s 规范并实现了j m s a p i ,推出了各自的消息中间件产品,如l b m 公司 2 引言 ( 国际商业机器公司) 的m 0 s e r i e s ,t i b c 0 公司的t i 功哏e n d c z v o u s 和 s u n 公司的i p l a n e t m e s s a g e q u e u e ( i m q :s u n 公司的消息服务中间 件) 等。 i b mm q s e r i e s 是i b m 的消息中间件产品,它提供一个支持工业标 准的、安全的、可靠的消息传输系统。m q s e r i e s 的功能是控制和管理 一个集成的系统,使得组成这个系统的多个分支应用( 模块) 之间通过 传递消息完成整个工作流程。它的基本组成部分是一个消息传输系统 和一个应用程序接口,其资源是消息和队列。m q s e r i e s 支持大多数的 计算平台与通信模式,也拥有与主流产品( 如l o t u sn o t e s 和s a p r 3 ) 等的接口,在业界也得到广泛应用,是一个成熟可靠的产品。 a d v a n c e dq u e u i n g ( ”a q ”) 是0 r a c l e 数据库的消息队列功能。 通过a q 的消息队列功能,可使用队列在o r a c l e 数据库中的应用程 序用户间进行异步通信。a q 为应用程序提供了多种方式将消息放入 队列,称为入队;也为应用程序提供了多种方式将消息从队列中取出, 称为出队。此外,它还提供了将消息分发到相应队列中的方式,称为 传播。a q 与异常处理程序一起提供了可靠的消息传递,以防止消息 无法传递。它还提供了将消息区分优先次序的方式,并为消息提供了 时间属性,如过期和延迟。同时还提供了通知功能,便于立即提醒。 但是上述这些消息中间件产品共有的问题是:使用专有的接口与 规范,不够开放,而且不能很好地适应h i t e m e t 环境下的信息交换。 1 3 研究的目标与方法 消息服务器是一种在信息交换双方之间提供异步的,存储转发的, 问按的消息传递的信息交换方式。信息发送者将信息以消息形式发送 给消息服务器,消息服务器对消息进行存储,直到信息接收者从消息 3 北京交通大学硕士学位论文 服务器上接收消息。以消息服务器为核心的消息服务体系为信息交换 各方提供了松耦合的交互模式。 x m l 及w 曲s e n ,i c e s 协议族提供了一种与软硬件平台、网络环境、 编程语言无关的交互方式,企业可以w e bs e r v i c e s 方式封装企业的各 种应用,以x m l 文档方式描述数据及控制信息,系统间可以通过w 曲 s e n r i c e s 调用来请求各种服务功能,交换数据。w 曲s e r v i c e s 服务请求 与晌应都是被封装为h 1 r p 响应与请求的,因此可以方便地应用于 i n t e m e t 之上。 结合消息服务体系所支持的松耦合交互模式与w 曲s e i c e s 的平 台无关性和i i l t e m e t 易用性特征,我们提出一种基于w 曲s e r v i c e s 的 消息服务体系。 我们研究并实现的消息服务体系有以下特点: 1 引入以服务为中心的面向服务体系概念,将面向功能调用的计 算模式转变为面向服务的计算模式。 2 引入一个消息服务模型,它提供消息的存储转发服务,支持消 息生产者与消息消费者之间的异步的、松散耦合的消息传递。 3 提供对消息可靠传递的支持,以及对异步传递的支持,对点对 点及发布订阅两种消息模型的支持。 4 以w 曲s e r v i c c s 方式提供消息传递服务,而不是传统消息中间 件的a p i 方式。 5 实现消息适配功能。通过在消息生产者所发送的消息格式与消 息消费者所期望的消息格式之间进行自动转换,实现消息之间的自动 适配。 我们将通过基于北航自行研制的国产中间件a c tx l i n k e r 的w e b 服务平台以及o r a c l e 9 i 高级队列相结合的方式来实现上述目标。 4 引言 1 4 论文的组织结构 在第一章引言里,我们简要地介绍了研究的背景与意义、研究方 向的现状、研究的目标与方法和论文的组织结构。 在第二章里我们回顾了分布式计算领域内的信息交换模式的发展 现状,简要描述了异构、自治、动态的分布式计算环境下的信息交换 问题及它的一个典型应用场景,讨论了现有技术在解决这个问题上的 不足之处。论文的第三章在引入了面向服务的应用体系概念的基础 上,探讨了消息服务体系,并介绍了在消息服务体系中是如何实现消 息的可靠传递的。在第四章里,我们概要介绍了o r a c l e a q 技术。 论文的第五章首先介绍了x m l 与w 曲s e r v i c e s 协议族,接着提出 了基于w 曲s e r v j c c s 的消息服务体系的概念,简要描述了它的服务体 系框架。在第六章我们描述了w 曲s e r v i c c s 环境下消息体和元数据是 如何被封在s m 世请求中的,并提出了一种基于x s l l 的对消息进行 自动转换的适配方案。我们在第七章中给出了一个原型系统和一个基 于这个原型系统所实现的一个应用实例。最后在第八章中,我们对所 做的工作及贡献进行了总结,并对未来进一步的研究工作做了预测。 5 北京交通人学硕士学位论文 第二章分布式计算环境中信息交换技术的现状 分布式计算起源于2 0 世纪7 0 年代,是指一种应用程序设计方案。 在这种方案中程序、程序处理的数据以及实际计算任务都分布在网络 上,这样可以调节多台计算机的处理能力,也可以适合应用程序由不 同模块组成的特性。本章将讨论分布式计算环境中信息交换技术的现 状。分布式计算环境下信息的交换方式影响着系统问的互操作性。在 传统方式下,应用开发者需要花费大量的时间和精力来对原始的 s o c k e t 通讯进行编程,以实现交互双方的消息交换。c 0 r b a ,( d ) c o m ,r m i ,j 2 e e e j b 等面向对象( 组件) 的技术使得遵循这些规范的 应用程序之间可以透明地互联,但它们之间的耦合方式仍然是紧密 的。现有的消息中间件提供异步的消息交换方式,支持分布式系统间 松散耦合的信息交互。它解决了应用程序之间的异步通讯以及系统不 同应用问的集成这蹲大难题。本章还举出一个求职与招聘系统的例 子,描述了异构、自治的计算环境给现有的信息交换技术提出的挑战。 2 1 紧耦合的信息交换模式 紧耦合的信息交换模式意味着交互双方存在较强的功能依赖与 数据依赖,交互双方必须遵循严格的交互协议,一方对数据格式的更 改也要求另一方的应用程序做出相应的更改及重新编译、部署。信息 交换双方可能在空间、时间和数据流上有着紧密耦合的关系。 在这类信息交换模式下,服务客户端与系统提供的服务本身之问 必须进行紧密耦合,即要求一个同类基本结构。这样的系统往往十分 脆弱,如果一端的执行机制发生变化,那么另一端便会崩溃。例如, 6 分布式计算环境中信息交换技术的现状 如果服务器应用程序的接口发生更改,那么客户端便会崩溃。 要求提供紧密耦合的基本结构本无可厚非,许多应用程序均是基 于这种系统构建而成的。但是当各个公司需要相互合作、或信息技术 提供商扩大业务范围时,便很难实现单一而统一的基本结构。您根本 无法保证您希望与之进行远程通信的管道的另一端,具备所有您需要 的基本结构:对于它使用的操作系统、对象模型或编程语言,您可能 一无所知。这样就很难开发可以互操作的信息交换系统。 2 1 1 原始的s o c k e t 编程 s o c k e t 编程是一种原始的交互式应用程序开发方式,在这种方式 下,应用程序开发者得不到任何应用层或平台所提供的高阶的信息控 制服务,交互双方必须协商所有的数据格式与语义、控制信息的格式 与语义、交互行为、差错检测及处理机制,开发的工作量繁重,而且 不易维护。应用开发者现在一般只用原始的s o c k e t 编程来开发底层的 通讯支持,而不直接用其来实现应用层的数据交换。 z 1 2c o r b a c 0 r b a ( c 0 m m 彻0 q e dr c q u c s ib r o k e r 删i i t c c t i l f e ) 通用对象请 求代理体系,是o m g ( o b j e c tm 卸a g c m e n t0 m u p ) 对象管理集团制定 的,在不同平台、不同语言之间实现对象通信的模型。它为分布式应 用环境下对象资源共享、代码重用、可移植和对象间相互访问建立了 通用标准,同样也为在大量硬件、软件之间实现互操作提供了良好的 解决方案。c o r b a 是一个完全中间性的语言,可以使用接口定义语 言( i d l ) 定义开发时使用接口的c l i e n t 和实现接口的s e r v e r 所需要 的信息。为了保证在不同的c o r b a 产品基础之上构建的分布式对象 7 北京交通大学硕士学位论文 可以相互通信,a i e n t 和s e c r 通过o r b ( 对象请求代理) 进行通信。 一般的运行流程是c l i e n t 把请求发送给o r b ,0 r b 再把请求发送给 s e r v e r ,s e r v e r 把返回结果发送0 r b ,0 r b 再把返回结果发送给 a i e n t 。o r b 可以说c l i e n t 和s e r v e r 之间的翻译者。即使c l i e n t 和s e r v e r 使用不同的编程语言编写,只要是符合相同的i d l 定义,o r b 也可以 完成相互的通信。 总的来说,c 0 r b a 的特点是:支持异构终端;支持异构数据库 和多种语言开发;事务处理能力比较强;安全性较高以及可扩展性好。 同时它也存在庞大复杂,实现难度大以及技术更新慢的缺点。 2 1 3 ( d ) c o m c 0 m ( c o m m o no b j e c tm o d c l ) 通用对象模型是m i c r o s o f i 提出的基 于w i n d a w s 平台的组件对象技术。它使用一套独立于语言的接口来描 述对象的方法,使得用不同语言编写的应用程序可以透明地进行互操 作。w i n d o w s 平台下的大量应用软件使用了c o m 技术。而d c o m ( d i s t 曲u t e dc o m m o no b j e c tm o d e l ) 分布式通用对象模型是c o m 在分 布式计算环境下的扩展。 ( d ) c o m 技术的特点是:对异构终端的支持很差,只支持w i n d o w s 平台;支持对异构数据库的访问和多种语言开发;安全性及可扩展性 筹。 8 分布式计算环境中信息交换技术的现状 s m e r _ s i d ed c 0 d c 0 s 舯日r 稚臣篙誊占篙 审l 纠h 秭“叫 睫b 西l 由南 j 三幽 唑刊南 阿膏司一 l s t c k l li s t c k s l 图2 1d c o m 体系结构 2 1 4j a v a 的烈i 技术 远程方法调用( r m i ) 是j a 、,a 提供的分布式对象通讯模型,基于 r m i 的客户端可以远程的调用服务器对象上的方法。 r m i 技术的特点是:只支持j 瓜,a 语言;支持对异构终端和异构数 据库的访问;编程简单:安全性好;可扩展性好。 习 r 啊工 s k 1 0 r m o t r f r n c l a y e 。 硼工t r 蛆p o r tl y r 工n t e r n e tp r o t o c 0 1c e p ) 图2 - 2 砌小体系结构 9 北京交通大学硕士学位论文 2 1 5j 2 e e l e j b j 2 e e ( j a v a2 e n t e r p r i s e e d i t i o n ) :j a v a 2 企业版是s u n 公司推出的基 于j a v a 的分布式计算平台规范,基于这个规范构建的分布式应用程序 可以方便地进行互操作。雨彤b ( e n t e i p r i s cj a v ab e a n ) 是j 2 e e 中的组 件标准,可以利用日b 组件来构造软件系统。日b 规范定义了开发和 部署基于事务性、分布式对象应用程序的服务器端软件组件的体系结 构。企业组织可以构建它们自己的组件,或从第三方供应商贿买组件。 这些服务器端组件称作e n t e r p r i s eb e a l l ,它们是( e j b ) 容器中驻留的 分布式对象,为分布在网络中的客户机提供远程服务。 e j b 技术的特点是:支持异构终端;支持异构数据库;安全性好; 可扩展性好,常用于大型的企业分布式计算。 2 2 消息中间件 2 2 1 中间件的定义与分类 在分布异构环境中,通常存在多种硬件系统平台( 如p c ,工作站, 小型机等) 。在这些硬件平台上又存在各种各样的系统软件( 如不同的 操作系统、数据库、语言编译器等1 以及多种风格各异的用户界面,这 些硬件系统平台还可能采用不同的网络协议和网络体系结构连接。如 何把这些系统集成起来并开发新的应用是个非常现实而困难的问 题。为解决分布异构问题,人们提出了中间件( i i l i d d l e w a r e ) 的概念。中 问件是一种位于系统软件与应用系统之间的软件平台,它通过对应用 系统提供统一的接口来屏蔽各种硬件、操作系统、网络协议、数据库 与开发工具之间的差异。中间件位于客户机服务器的操作系统之上, 管理计算资源和网络通讯。 1 0 分布式计算环境中信息交换技术的现状 我们一般可以将中间件分为事务监控中间件,( 面向) 消息的中间 件,数据库访问中间件,分布式对象中间件( c 0 r b a ,e j b 等也属于这 一类) ,以及安全中间件等等。 2 2 2 消息与消息中间件 在分布式应用中,不同的应用进程之间传递交换的信息可以被统 称为消息( m e s s a g e ) 。消息由消息的内容( 应用程序有效载荷) 及与消息 相关的元数据( 如消息的接收者,消息i d ,消息传递的策略等) 组成, 消息的内容及格式由该消息的生产者及消费者协商而定。 消息中间件m o m ( m e s s a g e o r i e n t e dm i d d l e w a r c ) 是目前中间件技 术的发展热点。它适用于任何需要进行网络通信的系统,负责建立网 络通信的通道,进行数据或文件发送。消息中间件可以跨平台操作, 为不同操作系统上的应用软件集成提供方便,从而满足企业内部对系 统伸缩性和可扩展性的要求。它的主要功能是在不同的网络协议、不 同的操作系统和不同的应用程序之间提供可靠的消息传送。消息中间 件将应用程序的有效载荷封装成自我描述型的数据包( 即消息) ,并将 其放到网络中,其中消息体就是应用程序载荷,而消息头( 消息描述符) 中承载着消息的源、目标、策略等元数据。 消息传递系统与分布式对象系统之间的本质区别在于:要求发送 方辨识接收方的基本结构的程度有所不同。在分布式系统中,发送方 需对接收方的情况作出种种猜测:应用程序是如何激活或拆包的,调 用的是什么样的界面等等。另一方面,消息传递系统中,发送方既不 需考虑消息被接收后的情况,也不需考虑接发双方之间的通信情况, 唯一需要考虑的是接收方是否能辩识发送的消息内容。 这种松散的耦合方式在分布式的自治环境中是有利的,例如,接 北京交通大学硕士学位论文 收方可在任何时刻进行更改,而不会干扰发送方的消息发送,只要它 仍可辩识原有消息的内容。另外,发送方无需任何特殊的软件即可与 接收方通信:只要它发出正确格式的消息,接收方就可以响应。 在构造分布式系统特别是松耦合的系统的时候,消息中间件是一 种很常见的构建模块。在采用消息中间件的时候,松耦合的组件通过 异步交换消息的方式进行通信,消息管理层可以从应用代码中分离出 来,消息中间件系统通常为独立的组件提供可靠的消息传递服务。将 消息中间件的消息传递系统和同步的远程过程调用系统比如c o r b a 相对照,它的异步特性使它适用于在高度自治的分布式环境中。 2 2 3 消息中间件提供的消息模型 消息中间件一般提供三种消息模型:点对点的,消息队列和发布 订阅模型。 消息传递中的点对点o o i n t t 0 _ p o i n t ) 模型是基于直接转发概念的。 消息由消息生产者发送给消息中间件,消息中间件立即将其转发给消 息消费者。消息生产者直接指定消息消费者作为消息的目标地址。 在消息队列模型中,消息的目的地是一个消息队列,消息生产者 将消息发送到属于某消息消费者的消息队列,消息消费者从其消息队 列中获取消息,这样就实现了消息传递。每个消息队列中可以有多条 消息。消息队列唯一地属于一个消息消费者,但一个消息消费者可以 拥有多个消息队列。 消息传递中的发布订阅模型是基于主题( t o p i c ) 概念的。在这个模型 中,消息的目的地是一个主题,消息的生产者发布消息到特定的主题, 消息的消费者订阅特定主题的消息,在消息到来时从主题空间中获得 消息。每个主题可以有多个发布者( 消息生产者) 和( 或) 多个订阅者( 消 1 2 分布式计算环境中信息交换技术的现状 息消费者1 ,每一消息都会被其所有订阅者接收,因此,与消息队列模 型不同的是,多个消息消费者将接收到同一条消息。 2 3 异构自治计算环境对信息交换技术的挑战 在异构的,自治的,动态的企业交互环境下,交互体系的建立往 往要考虑以下问题: 1 如何能保持平台、语言、软硬件环境的无关性,简化交互操作, 降低交互双方的耦合度? 2 如何在低速的、不可靠的网络上( 如互联网上) 实现信息的可靠传 递,特别是在交互双方都处在防火墙或代理服务器之后的情况下? 3 如何实现瘦客户机胖服务器或瘦客户机之间的有效的信息交 换? 瘦客户机意味着它具有较弱的系统能力,希望把大多数的信息交 换控制工作交给服务器或第三方。 4 自治系统之间对同样的信息可能有着不同的表达方式或者语义, 如何实现在所表达的实体一致而表达方式不一致情况下的消息匹 配? 原始的系统通讯模式( 基于s o c k e t 编程的) 使得交互双方需要大量的 开发与维护工作来对交互进行控制,双方的耦合度较高,不适合自治 环境下的互联。 紧耦合的面向对象( 组件) 的交互模式,如c o r b a ,( d ) c o m , j 2 删b 等规范往往依赖于周密管理的和相当高技术的运行环境,不 适合在异构的环境下工作,而且它们很难跨越防火墙。现有的消息中 间件产品或规范,如i b mm 0s 盱i e s 或j m s ,能保证消息在系统间的 可靠、异步传递,也简化了应用开发,但其应用开发方式是基于消息 中间件所提供的a p i 的,使得交互双方必须都使用闻种消息中间件产 1 3 北京交通大学硕士学位论文 品或遵从j m s 规范,这样就限制了消息中间件的应用。而且它们一般 都是用于服务器端到服务器端的,对瘦客户机胖服务器或瘦客户机之 间的消息传递缺乏支持,尤其是客户机被散布在i n t e m e t 上的时候。 由于消息中间件使用专用的通讯端口,它往往也不能跨越代理服务器 或防火墙。 2 。4 异构自治计算环境下信息交换的典型场景 在实际的分布式计算环境下往往会遇到上述的交互问题。考虑下 面这个信息交换的典型场景( s c c n a r i o ) 。这是一个求职与招聘应用的例 子,在这个例子中,有下列特性与要求: 1 各方是独立的、异构的、自治的系统,拓扑环境也是动态的, 因此交互关系可能无法事先精确建立; 2 各方可能是系统能力有限的瘦客户机( 比如手持设备) ,往往只 能部署轻量级的软件: 3 各方可能处在防火墙或代理服务器之后,因而不能主动打开通 讯端口进行监听; 4 求职者与招聘者不能保证同时在线,文档的传递往往是异步的; 5 求职者要传递简历文档给招聘者,每个简历文档可能都是由求 职者自己定义的格式;招聘者也要发送招聘信息文档给求职者,每个招 聘信息文档也都可能是招聘者所自己定义的格式;需要有一种机制来 实现格式之间的转换与匹配: 6 文档的发送对象可能不只一个,而是一群接收者。接收者数目 也可能不是确定的,可能是基于某一匹配规则的( 如基于主题的或基于 内容的) ; 7 文档的可靠传递需要得到保证,而且需要有相应的机制来更为 1 4 分布式计算环境中信息交换技术的现状 精确地定义文档成功传递的概念,如一定的时限内,或者最少的接收 者数量。现有的各种技术与标准都不能完全满足上述的要求。 图2 3 典型场景:一个求职与招聘系统的例子 1 5 北京交通大学硕士学位论文 第三章消息服务体系 本章将讨论消息服务体系。本章首先介绍了服务及面向服务的应 用体系,接着概述了消息服务的框架体系,以及这个框架体系中的消 息传递视图、角色及交互模式。本章还讨论了消息服务体系中核心消 息服务及消息可靠传递机制。 3 1 服务与面向服务的应用体系 3 l1 服务 服务( s e r v i c e ) 在分布式计算环境的概念下,意味着由某机构提供的 某种形式的功能,与功能相对应的是其接口,可以在运行时被调用。 客户端通过调用相应的接口来申请相应的服务,也就是实现相应的功 能。所谓服务,并不是针对某一特定客户端的,相反,它是由多个客 户端所共享的。这就意味着,与大多数分布式计算模型不同的是,服 务并不维护与客户端相关的会话状态信息,它们是无会话状态的。( 当 然可以通过特定的应用层扩展来实现会话,但底层服务仍是无会话状 态的) 。 当一个服务被调用的时候,它是以一种上下文无关的方式来执行 的( 即在此之前或之后所执行的服务调用对其完全没有影响) ,这导致 了服务的以下特点: 1 服务所需知晓的信息,都必须在服务调用时显式地以参数形式 提供。 2 因为服务并不存储每次调用的相关信息,所以整个服务任务的 执行是在一次服务调用下完成的。 1 6 消息服务体系 使用服务来构造系统是高效与高度可扩展的,因为服务的无会话 状态特性,它们不是专属于某一客户端的,因此可以通过复用技术或 共享池,使少数几个服务的实例就能满足多个客户的服务请求。 3 1 2 面向服务的应用体系 面向服务的应用体系即在分布式计算环境下,为现存的或新建的 企业应用创建服务接口,并建立商业过程来将这些服务联系起来。所 有的系统间交互,都是用服务请求及其响应来实现的。 最常见的服务的例子包括无会话状态的b e a n s 与c o m 组件。但它 们是专属于某一种语言或平台的,不适合在异构自治的分布式计算环 境下构造面向服务的体系架构。 图3 1 面向服务的应用体系 3 1 3 基础服务与消息服务 基础服务:在面向服务的体系中,有些服务是通过对特定的企业 应用进行封装,使其以服务的形式出现的;而另一些服务,是独立于特 1 7 北京交通大学硕士学位论文 定的应用的,如消息服务,命名服务,资源定位服务等,这些服务, 是整个分布式计算环境中各系统所共同使用的,是实现其它服务舶基 础设施,类似于现实世界中的水、电、电信等基础服务设施,我们把 这类服务称为面向服务的体系中的基础服务。 消息服务:为分布式计算环境下的各系统提供可靠的,同步或异 步的消息传递服务,是面向服务的体系中的基础设施之一。 传统的基于消息中闻件的交互模式中,每一系统均安装有消息中 间件,作为该系统的消息发送与接收代理,系统之间的交互透过消息 中间件之间的交互实现。而在基于消息服务的交互模式中,有节点 提供专门的消息传递服务,即一台消息服务器,所有的消息传递,不 再是直接在消息发送者与接收者之间进行,而是透过消息服务器进行 转发。消息服务的客户端无需再安装消息中问件,而只需一个轻量级 的消息服务请求代理,减少了各客户端的资源开销。由于消息服务器 提供统一的消息服务接口,在传统方式下异种消息中间件难以交互的 问题不复存在,异构系统可以方便地进行互联。 臻于传统的消息巾闻体蔷于摘息施务器 图3 2 传统消息中闻件与消息服务模式 1 8 一 砸叵 消息服务体系 3 2 消息服务体系框架 3 2 1 消息服务视图 在我们的消息服务体系框架中,有三种视图,分别描述了消息交 换过程中的不同角色。 3 2 1 _ l 消息生产一消费视图 在这个视图中,有三种角色: m e s s a g ep m d u c e r :消息生产者。是消息的源,消息的生产者负责 生产消息的有效载荷并指定消息的目的地。 m e s s a g cc o n s u m e f :消息消费者。是消息的目的地,消息消费者负 责处理及执行消息的有效载荷中的数据及应用逻辑。 m e s s a g eb r o k e f :消息中介者。负责根据消息头部的路由信息对消 息在消息生产者与消费者之间进行存储转发。 3 2 1 2 消息传递视图 图3 3 消息生产一消费视图 在这个视图中,有两种角色: m e s s a g cs e n d e r 消息的发送者。它是在消息传递流程中某一消息 传递链路中的消息直接发出者。 m e s s a g er e c e i v e r :消息的接收者。它是在消息传递流程中某一消息 传递链路中的消息直接接收者。 在消息由消息生产者到消息中介者的链路中,消息生产者是消息 1 9 北京交通大学硕士学位论文 的发送者,消息中介者是消息的接收者;在消息由消息中介者到消息消 费者的链路中,消息中介者是消息的发送者,消息消费者是消息的接 收者。如果消息在消息生产者与消息消费者之间要经过多个消息中介 者,那每个消息中介者将同时是前一条链路的接收者与后一条链路的 发送者。 图3 4 消息传递视图 3 2 1 3 消息服务视图 在这个视图中,有两种角色: s e r v i c ep m v i d c r :消息服务提供者。它即消息的中介者、消息服务 器,提供消息的存储转发服务。它接收来自消息生产者的发送消息请 求,并将消息进行存储;以等待来自消息消费者的接收消息请求,并将 消息发给消息消费者。 s e r v i c e f e q u e s t e r :消息服务请求者。它可以是消息的生产者,或消 息的消费者,是消息服务的客户节点。消息生产者请求消息服务将消 息转发给消息消费者:消息消费者请求消息服务将以其为目的地的消 息发送给自己。 2 0 消息服务体系 图3 5 消息服务视图 3 2 2 消息服务交互模式 3 2 2 1 消息发送者与消息接收者之间的交互模式 消息发送者可以用推方式将消息推给消息接收者,也可以由消息 接收者以拉方式从消息发送者处获取消息。 p u s h :推方式。是指消息的发送者( 消息的生产者或消息中介者) 将 消息直接传递给消息接收者( 消息中介者或消息的消费者) ,消息的接 收者是以一种被动的方式接收信息,消息是立即传递的。这要求消息 接收者有一个开放的端口( 逻辑的或物理的) 来监听并接收消息,消息 发送者直接将消息发送到这个端口。这种方式是同步的。 ”l l :拉方式。是指消息的接收者( 消息的消费者或消息中介者) 向 消息的发送者( 消息中介者或消息生产者1 发出接收消息请求,消息发 送者收到请求后将消息作为对该请求的响应返回给消息接收者。在这 种情况下,消息的接收者无需被动打开端口,相反是消息的发送者开 放一个端口以监听消息接收请求并发送消息。这种方式要求消息的发 送者在消息被消息接收者接收之前进行存储r 可以是非持久化的设备 如内存,或是持久化的设备) 。这种交互方式是异步的。 3 2 2 2 消息服务请求者与消息服务提供者之间的交互模式 根据消息服务请求者能力( c a p a b i l i t y ) 的不同,消息的生产者或消费 者( 消息服务请求者) 与消息服务器( 消息服务提供者) 之间有两种交互 模式: p e e rt op c e r :点对点模式。在这种模式下,消息服务请求者与消息 服务提供者具有相同的通讯能力,即消息生产者可以主动地发送消息 北京交通_ 犬学硕士学位论文 给消息服务器,消息服务器也可以主动地发送消息给消息消费者,某 一消息服务请求者可以同时是某条消息的生产者与另一消息的消费 者。消息服务器开放一系列端口及其服务功能,同样的,这要求消息 服务请求者也能开放相应的端口并告知消息服务器,消息会以推方式 由消息生产者发送给消息服务器,同样由消息服务器以推方式发送给 消息消费者。 c l i e n “s e r 、r e r :客户机朋艮务器模式。在这种模式下,消息服务请求 者的通讯能力是弱于消息服务提供者的,即消息生产者可以主动地发 送消息给消息服务器,但消息服务器不能主动发送消息给消息消费 者,而必须是被动地等待消息消费者来请求接收消息,同样,某一消 息服务请求者也可以同时是消息的生产者与消息的消费者。消息以推 方式由消息生产者发送给消息服务器,以拉方式由消息消费者从消息 服务者上接收。这种方式下,消息服务器开放一系列端口及其服务功 能,而消息服务请求者无需开放任何端口。 鉴于w 曲s e r v i c c s 的消息服务体系,因为p c e r t o p c c f 模式很难穿 越代理服务器及防火墙,因此我们将主要研究消息服务请求者与消息 服务提供者之间的d i e n t ,s e r v e r 交互模式下的操作。o r a d e 高级队列应 用的正是p e e r _ p e e r 模式。 3 2 2 3 消息生产者与消息消费者之闻的交互模式 消息生产者可以是以0 n e w a y 的方式发送消息给消费者,消息消费 者并不对消息及其处理结果返回响应;消息生产者与消息消费者之间 也可以是r e q u e s t - f e s p o n s e 模式,消息生产者希望得到消息消费者对消 息进行处理后的显式响应消息。 o n e w a y :单向模式。消息生产者发出的消息被认为是单向的数据 消息服务体系 报,消息消费者不对消息的处理返回响应给消息生产者。 r e q u e s t r e s p o n s c :请求响应模式。消息生产者与消息消费者之间 的交互类似于一种远程功能调用( r p q ,消息生产者发出的消息带有 功能请求信息,

温馨提示

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

评论

0/150

提交评论