(计算机应用技术专业论文)基于jms的组通信中间件的研究.pdf_第1页
(计算机应用技术专业论文)基于jms的组通信中间件的研究.pdf_第2页
(计算机应用技术专业论文)基于jms的组通信中间件的研究.pdf_第3页
(计算机应用技术专业论文)基于jms的组通信中间件的研究.pdf_第4页
(计算机应用技术专业论文)基于jms的组通信中间件的研究.pdf_第5页
已阅读5页,还剩52页未读, 继续免费阅读

(计算机应用技术专业论文)基于jms的组通信中间件的研究.pdf.pdf 免费下载

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

文档简介

山东大学硕士学位论文 摘要 计算机和网络技术的迅速发展正逐渐改变人们的工作和生活方式,但人们已 不满足于现有点对点的通信应用了。计算机网络技术的一个重要发展方向是计算 机支持的协同工作( c s c w ) ,c s c w 有着广泛的应用前景,并将成为推动i n t e m e t 不断发展的强大动力。以点到多点和多点到多点为特征的组通信技术是实现 c s c w 全部功能的通信基础,也是支持c s c w 的关键技术。因此,组通信在c s c w 应用中具有重要的地位。 本选题是从应用层上考虑组通信的相关功能问题的。应用层的组通信需要底 层基本通信机制的支持,也需要应用层相关通信服务功能的实现。现有的组通信 系统在其规范性、可移植性以及通信的可靠性与时效性方面存在着不足,性能也 有待进一步提高和完善。 首先,本选题在充分分析组通信和j m s 通信机制优缺点的基础上,提出将j m s 的发布,订阅机制用于实现组通信的思想,并据此构建了一个基于j m s 的组通信中 间件j g c m 。其次,对j g c m 的组( 主题) 空间的结构以及与之相关的各项服务 功能进行了详细的介绍,前者是指组( 主题) 目录、消息与消息队列以及成员与 成员关系空间;后者包括组管理服务中的组空间管理和可靠性保障服务、成员关 系服务中的成员关系空间管理、成员关系活动视图管理与失效监测服务以及组通 信服务等功能再次,根据不同的通信应用需求,提出采用两种不同的结构完成 组通信功能:其一是采用集中式结构,通过j g c m 提供的消息发布和转发功能实 现多媒体信息与数据信息的非实时传输,以及数据信息的实时传输;其二是采用 分布式结构,在j g c m 成员关系服务的引导下,通过本地提供的多媒体信息的截 取、实时传输、实时接收和播放功能,用户问直接完成多媒体信息的实时传输。 该j g c m 继承了j m s 的标准化、可移植性和可靠性的优点,同时通过引入组管理 服务和成员关系服务,克服了j m s 通信机制中存在的异步通信等不足,从而既能 满足了组通信的要求,也可以确保了组通信的效率。最后,使用r m i 、线程池以 及j m f 等关键技术给出j g c m 的具体功能实现,完成了多用户间文本、音频以及 视频的非实时和实时传输,并验证了基于j m s 的组通信中间件j g c m 的合理性和 科学性。 山东大学硕士学位论文 关键词:计算机支持的协同工作;组通信;j m s ;j g c m 山东大学硕士学位论文 a b s t r a c t c o m p u t e ra sw e l la sn e t w o r kt e c h n o l o g i e sa r en o wc h a n g i n gw o r k i n ga n dl i v i n g m a i m e r so fp e o p l e h o w e v e r , p e o p l ea r en o ts a t i s f i e dw i t ht h ee x i s t i n gc o m m u n i c a t i o n a p p l i c a t i o no fp e e rt op e e r a ni m p o r t a n tn e n do fc o m p u t e rn e t w o r kt e c h n o l o g i e si s c o m p u t e rs u p p o r t e dc o o p e r a t i v ew o r k ( c s c w ) ,w h i c hp o s s e s s e sab r i g h tf u t u r ea n d w i l lb e c o m eap o w e r f u li m p e t u st ot h es u s t a i n a b l ed e v e l o p m e n to fi n t e r n e t w i t h c h a r a c t e r i s t i c so fp e e rt om u l t i p e e ra n dm u l t i - p e e rt om u l t i p e e lg r o u pc o m m u n i c a t i o n i saf o u n d a t i o no fp e r f o r m i n ga l lf u n c t i o n so fc s c w , a n da l s oap i v o t a lt e c h n o l o g yo f s u p p o r t i n gc s c w t h e r e f o r e ,g r o u pc o m m u n i c a t i o nh a sa ni m p o r t a n ts t a t u si nc s c w a p p l i c a t i o n t h ep a p e rc o n s i d e r sc o n c e r n e df u n c t i o n so fg r o u pc o m m u n i c a t i o nf r o ma n a p p l i c a t i o nl e v e l g r o u pc o m m u n i c a t i o na ta p p l i c a t i o nl e v e ln e e d sn o to n l yt h es u p p o r t f r o mt h ee s s e n t i a lc o m m u n i c a t i o ni nb o t t o m , b u tt h ea c h i e v e m e n to fc o m m u n i c a t i o n s e r v i c ea tt h ea p p l i c a t i o nl e v e l c u r r e n tg r o u pc o m m u n i c a t i o ns y s t e m sh a v ed e f i c i e n c i e s i n s t a n d a r d i z a t i o n ,r e p l a e e a b l i t y , r e l i a b i l i t ya n de f f i c i e n c y , a n dt h u sn e e dt ob e i m p r o v e d f i r s t , b yf u l l ya n a l y s i n gt h ea d v a n t a g e sa n dd i s a d v a n t a g e so fg r o u pc o m m u n i c a t i o n a n dc o m m u n i c a t i o nm e c h a n i s mo fj m s ,t h e p a p e rb r i n g s f o r w a r d u s i n g p u b l i s h s u b s c r i b eo fj m st oi m p l e m e n tg r o u pc o m m u n i c a t i o n , a n da c c o r d i n g l yam o d e l o fj m s _ b a s e dg r o u pc o m m u n i c a t i o nm i d d l e w a r e ( j g c m ) i sp r o p o s e d s e c o n d ,t h e f l a m ea n dc o n t e n t so fg r o u p ,c o n c e r n e ds e r v i c e sa l ei n t r o d u c e di nd e t a i l t h ef o r m e r d i r e c t sc a t a l o g u eo fg r o u p ,m e s s a g e ,m e s s a g eq u e u e ,m e m b e ra n dm e m b e rs p a c e ,w h i l e t h el a t t e rc o n s i s t so fg r o u ps p a c em a n a g e m e n ta n dd e p e n d a b i l i t ys e r v i c ei ng r o u p m a n a g e m e n t , m e m b e r s h i ps p a c em a n a g e m e n t , v i e wm a n a g e m e n ta n df a i l u r ed e t e c t i o n s e r v i c ei nm e m b e r s h i ps e r v i c e , a n dg r o u pc o m m u n i c a t i o ns e r v i c ee t c t h i r d ,a c c o r d i n g t od i f f e r e n td e m a n d so fc o m m u n i c a t i o na p p l i c a t i o n s , a d o p t i n gt w od i f f e r e n ts t n l c t u r c s i nc o m p l e t i n gg r o u pc o m m u n i c a t i o na l ep u tf o r w a r d :o n ei sc e n t r a l i z e ds t r u c t u r e , t h r o u g hw h i c hn o nr e a l - t i m et r a n s m i s s i o no fm u l t i m e d i ai n f o r m a t i o na n dd a t a 山东大学硕士学位论文 i n f o r m a t i o n , a n dr e a l - t i m et r a n s m i s s i o no fd a t ai n f o r m a t i o na r ci m p l e m e n t e db yu s i n g s e n d i n ga n dt r a n s m i t t i n gf u n c t i o n sp r o v i d e db yj g c m t h e o t h e ri sd i s t r i b u t e ds t r u c t u r e , t h r o u g hw h i c hd i r e c tr e a l - t i m et r a n s m i s s i o no fm u l t i m e d i ai n f o r m a t i o nd u r i n gc l i e n t si s c o m p l e t e du n d e rt h es t e e r i n go fm e m b e r s h i ps e r v i c eo fj g c mb yu s i n gc a p t u r i n g , r e a l t i m et r a n s m i t t i n g ,r e a l - t i m er e c e i v i n ga n dp l a y i n gf u n c t i o n sp r o v i d e di nc l i e n t s t h e j g c mi n h e r i t st h ea d v a n t a g e so fj m ss t a n d a r d i z a t i o n , r e p l a c e a b l i t ya n dr e l i a b i l i t y , a n d o v e r c o m e st h ed e f i c i e n c i e ss u c ha ss y n c h r o n i s me x i s t si nc o m m u n i c a t i o nm e c h a n i s m s o fj m s ,t h e r e b yw h i c hc a nn o to n l ys a t i s f yt h ed e m a n d so fg r o u pc o m m u n i c a t i o n ,b u t a l s oa s s u r et h ec o m m u n i c a t i o ne f f i c i e n c y a tl a s t , t a n g i b l ef u n c t i o n so fj g c ma r c i m p l e m e n t e db yu s i n gt h ek e yt e c h n o l o g ys u c ha sr m i ,t h r e a d - p o o la n dj m e r e a l - t i m e a n dn o nr e a l t i m et r a n s m i s s i o no ft e x t , v i d e oa n da u d i oi n f o r m a t i o na r e a c h i e v e d r a t i o n a l i t ya n db e i n gs c i e n t i f i co f j g c m a l ev a l i d a t e d k e yw o r d s :c s c w ( c o m p u t e rs u p p o r t e dc o o p e r a t i v ew o r k ) :g r o u pc o m m u n i c a t i o n : j m s ( j a v am e s s a g es e r v i c e ) :j g c m ( j m s b a s e dg r o u pc o m m u n i c a t i o nm i d d l e w a r e ) 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进 行研究所取得的成果。除文中已经注明引用的内容外,本论文不包含任何 其他个人或集体已经发表或撰写过的科研成果。对本文的研究作出重要贡 献的个人和集体,均已在文中以明确方式标明。本声明的法律责任由本人 承担。 论文作者签名:剪垒 日期:型喳兰! 墨 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学校保 留或向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅 和借阅;本人授权山东大学可以将本学位论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或其他复制手段保存论文和汇编本 学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:勃硷导师签名:论文作者签名:勤殇:导师签名: 趁遁 矿十 日期璎:苎! 鸯 山东大学硕士学位论文 第一章引言 1 1 背景和意义 计算机的发展从大型主机到通过网络互联的机器群体,走出了一条从相互没 有联系或者联系困难的独立计算机到互相可互联、互操作甚至协同工作的计算机 群体的道路,这条道路的必然趋势就是计算机协同工作。随着计算机应用领域的 拓宽和广泛用户群的建立,计算机已深入人们的生活和工作中,并时时影响到人 们的协作方式和工作效率,进而使计算机和我们的工作与生活融合到一起,形成 新的计算机支持下的人类协作方式一计算机支持的协同工作( c s c w ,c o m p u t e r s u p p o r t e dc o o p e r a t i v ew b r k ) 0 1 1 2 1 。 计算机支持的协同工作研究的是如何利用计算机及其网络支持地理分散的人 类群体协调配合,共同完成一项任务的技术。它研究的内容包括人类群体协作交 流模式和支持人类群体协同工作的技术。群体协作模式的研究涉及社会学、心理 学、管理科学等多学科;它致力于研究技术特别是计算机系统如何帮助组进行通 信和更高效的工作。组通信就是c s c w 全部功能实现的通信基础,是支持c s c w 的关键技术,它负责完成多台协同工作的计算机间的信息交流,并确保信息交换 的有序、快速、准确等。 现有的组通信主要是从两个层面对组通信技术进行研究的1 3 ,一类从i p 层入 手,从i p 层解决组间通信问题,与组通信相关的基本功能,如组成员的管理,数 据的复制都在i p 层即路由器中完成;而另一类从应用层入手,试图从应用层解决 组问通信的阎题,与组通信相关的基本功能放在应用层中实现1 4 】。 i p 层组通信是倚赖i p 组播实现的,i p 组播的特点在于数据源只需要向组内发 送一份组播数据,路由器只需在恰当的分支点复制数据,就可让所有组成员收到 数据任何一份数据包的拷贝只会在每个组播树的链路上出现一次。可见,p 组播 能够有效地利用网络资源、降低服务器的负荷,因此i p 组播一度被认为是解决组 通信的最佳方式。应用层组通信的特点在于组通信数据的复制和组成员的管理是 在应用层实现,路由器只需要提供单播数据传送能力就可以,对目前的i n t e m e t 没 有提出额外的要求。应用组播中数据传输是分段进行的,任何两个应用层组成员 山东大学硕士学位论文 之间的数据传输均采用单播传输协议,大大简化了i p 组播所面临的拥塞控制和流 量控制问题相对于口组播,应用层组播实现简单,更有可能成为组通信的实现方 式。本文是从应用层上考虑组通信的相关功能问题的。应用层的组通信需要底层 基本通信机制的支持,更需要应用层相关通信服务功能的实现【4 】 现有在应用层实现组通信的主要是将c o r b a 技术或者d c o m c o m 技术应 用到组通信中,它为我们提供了用中间件技术实现组通信相结合的思想。本文选 用j m s t 5 1 来实现组通信主要原因有以下几个方面:( 1 ) j m s ( j a v am e s s a g es e r v i c e ) 规范定义了j m s 客户机访问j m s 服务器的接口和语义,为j a v a 应用程序访问j m s 服务器提供了一种通用的、标准的方法;( 2 ) 用j m s 规范编写的程序能够在实现 j m s 标准的任何j m s 服务器上运行,具有可移植性:( 3 ) j m s 的发布,订阅机制是 一种一对多的消息传递模式,它为进行组通信提供了良好的基础:( 4 ) j m s 提供 了一种可靠的通信机制,提升了组通信的可靠性嘲7 】 1 2 本文的工作和创新 本文主要是设计和实现了一个基于j m s 的组通信中间件j g c m ,其中所做的 工作及研究成果包括: ( 1 ) 在分析j m s 发布订阅机制和组通信特点的基础上,通过引入成员关系服务 提出用j m s 发布订阅机制实现组通信的思想和做法: ( 2 ) 提出了一个基于j m s 的组通信中间件j g c m 的框架设计。对该框架下的组 空间、组管理服务、成员关系服务、组通信服务等进行了具体功能设计; ( 3 ) 使用j a v a 语言给出了j g c m 的实现,特别采用r m i 技术、线程池技术以及 j m f 技术和r t p 协议对文本和多媒体信息的实时和非实时多方传输的实 现。 1 3 本文的组织 本文围绕基于j m s 的组通信中间件j g c m 进行了讨论,其具体组织如下: 第一章,讨论了本课题提出的背景和意义,同时给出了本课题的主要工作和创新 点。 第二章, 对组通信以及其特征、组通信的体系结构以及其应用领域进行了详细介 绍。 2 山东大学硕士学位论文 第三章,对j m s 的特点、体系结构,j m s 的通信机制以及其可靠性进行了具体介 绍。 第四章,提出一个基于j m s 的组通信中间件j g c m ,给出其设计思想、结构框架 以及其主要功能,并重点介绍了j g c m 中的组空间、组管理服务、成员 关系服务,特别是组通信机制。 第五章,给出实现j g c m 所需要的具体系统环境配置,以及具体功能类、算法和 代码。 第六章,对本文进行了总结和展望。 山东大学硕士学位论文 第二章组通信 2 1 组通信的概念 组通信有多种层次,从广义上讲包括各种层次的组中各通信实体间的通信 如应用系统层次中各进程间的信息交流,操作系统层次各进程间的协调、数据传 输层次的信息传送等【引。本文是从应用层入手,试图从应用层解决组通信的问题, 与组通信相关的基本功能放在应用层中实现。 组通信是指多台计算机之间的一种通信方式每台计算机对应一个组成员, 一个成员可以通过请求加入组而成为组内成员,也可以通过请求离开组或者因故 障而退出组。对于一次通信过程。参加组通信的计算机可以划分为发送方和接收 组。发送方是指发送组播分组的主机,接收组是指接收组播分组的主机集合,每 个接收组用一个接收组地址表示。一台计算机可同时是发送方和接收组成员,但 不要求它一定是接收组成员。通信过程是发送方首先发送一个目标地址为接收组 地址的组播分组,然后再由组通信服务的组播转发机制将消息转发给接收组成员。 因此,实现组通信的关键是成员关系服务和基于成员关系的组播机, 0 t 9 t m l 。 成员关系是指组内成员的列表,它包括一个组标识和一组成员标识。成员关 系活动视图称为v i e w ,一个v i e w 的序列v i e w o ( g ) ,v i e w i ( g ) ,v i e w ( g ) 表示 在系统的整个运行过程中组成员关系的变化1 。通常,v i e w 序列的产生是由组内 成员的动态加入、离开或者因故障退出等原因而引起的。成员关系服务的职责就 是维护成员关系活动视图,当该视图发生变化时能够及时地通知组内所有成员从 而保证组内成员关系活动视图的一致性。组播服务根据组成员关系活动视图,负 责向组成员转发消息,而组播要处理的消息不仅包含常规的应用消息而且还有代 表成员关系活动视图的成员关系消息。 2 2 组通信的底层支持 应用层的组通信除了需要应用层的与组通信相关的基本功能服务外,同样需 要底层通信机制的支持。 目前,有三种最基本的通信方式【1 2 1 ,如图2 1 所示: 4 山东大学硕士学位论文 o旬 沪沪o、叼 ( a ) 单播( b ) 广播( c ) 组播 图2 一l 三种基本通信方式 三种通信方式都可以实现多点通信。组播和广播本身就是多点通信,多次单 播同样可实现多点通信。 虽然许多物理网络提供了广播通信的方式,但局域网上的广播的主要缺点就 是每个广播都要消耗所有机器上的资源。而广域网上,全网广播耗用网络带宽大, 会对网络通信流量产生灾难性的影响,定向广播的通信范围则受限于某一局域网, 所以从这一角度来看,广播技术仅适合不跨物理网段的监控视频的网络传输。在 局域网上,广播与组播具有十分相似的特点。 组播传输只有u d p 一种形式的通信方式,利用i p 的d 类地址作为组地址。 u d p 建立在l p 之上,是一种无连接协议,提供了多点通信的方式。两台计算机之 日j 的传输类似于传递邮件:消息从一台计算机发送到另一台计算机,两者之间没 有明确的连接。u d p 中的d a t a g r a m 是一种自带寻址信息地、独立地从数据源走到 终点的数据包。u d p 不保证数据的传输,也不提供重新排列次序或重新请求功能, 所以说它是不可靠的虽然u d p 的不可靠性限制了它的应用场合,但它比t c p 具 有更好的传输效率。所以,组播具有多点通信的本质,但是缺少现有的可靠通信 机制,对传输效率要求高的多媒体通信使用u d p 协议更合适。 单播传输具有u d p 和t c p 两种通信方式( 1 3 j 【。t c p 建立在口之上,定义了 网络上程序到程序的数据传输格式和规则,提供了i p 数据包的传输确认、丢失数 据包的重新请求、将收到的数据包按照它们的发送次序重新装配的机制。t c p 协 议是面向连接的协议,类似于打电话,在开始传输数据之前,必须先建立明确的 连接。因此,t c p 是一种可靠的通信机制,但是它只适用于点对点的通信,要使 用t c p 机制实现多次单播的多点通信在时延要长于组播方式。 另外,组播和单播都能够跨越物理网段通信,都有较好的异构性。但并不是 山东大学硕士学位论文 所有的路由器支持组播方式也并不是所有的组内成员都属于同一组播地址,虽然 组播在传输效率上要比单播好,但实用性不强。 2 3 组通信的体系结构 目前,组通信的实现方式主要是有以下两种【1 5 】【1 6 】: ( 1 ) 集中式多方传输: 设置专门的多方数据转发服务器,工作点和转发服务器之间是点对点的单播 传输,再由服务器一次分发给相应的各个结点。目前的电视会议系统就是通过m c u ( m u l t i p o i n t c o n t r o l u n i t ) 建立一对多的连接。 ( 2 ) 分御式多方传输: 无需通过中间服务器,直接利用t c p a p 或者u d p i p 这些底层通信机制实现 多点的通信息。在此方式下,发送端需要有所有接收端的地址或者是代表所有接 收端的一个地址( 如组播地址) 分布式多方传输具有较高的传输效率,因此它更 适合支持多方视频、音频工具中视频、音频数据传输对网络带宽的需求,尤其是 对支持多播的视频、音频工具。 2 4 组通信的应用领域 组通信的提出是为了解决多点间的数据传输问题,它的结果也就可以用于任 何存在多点数据传输的应用场合。 根据应用的时间需求,可以将协同应用划分成二类:一是同步协同,也称为实 时交互,即群体成员在同时间进行同一任务的协作,称之为在线模式:二是异步 协同,也称为非实时交互,即群体成员在不同时间进行同一任务的协作,与同步相 对应,称之为离线模式那研。另外根据点到多点的数据传送是否包含多媒体信息, 因此组通信的应用场合可以分为以下4 类,如图2 - 2 所示。 1 实时多媒体信息传送 这类应用要求进行视频和音频信息的实时点到多点传送,要求点到多点传送具 有较好的延时特性和延时抖动特性。 2 非实时多媒体信息传送 这类应用要求进行视频和音频信息的非实时点到多点传送,要求点到多点传送 具有较好的延时抖动特性。 6 山东大学硕士学位论文 3 实时数据传送 这类应用要求进行实时的分布广泛的点到多点数据传送,要求点到多点传送具 有高可靠性和小延时。 4 非实时数据传送 这类应用要求进行数据的点到多点传送,要求点到多点传送具有高可靠性。 多媒 有实时传送要求无实时传送要求 视频点播服务( v o b ) 、多媒体信息服务、 多媒体计算机会议系统、视频以及w e b 服务器 i n t e m e t 音频服务等 实时股票信息服务、信息分发服务、 实时新闻发布、自板应用、数据库分发服务、 分布式交互仿真、软件分发服务等 交互式游戏等 图2 - 2 组通信的应用场合 山东大学硕士学位论文 第三耄j m s 3 1j m s 的概念 j m s 【1 9 l 2 0 l ( j a v a m e s s a g es e r v i c e ) 是j 2 e e 平台中的消息中间件规范。该规范 定义了j m s 客户机访问j m s 服务器的接口和语义,为j a v a 应用程序访问j m s 服 务器提供了一种创建、发送、接收和读取消息的通用的、可移植的方法,用j m s 规范编写的程序能够在实现j m s 标准的任何j m s 服务器上运行。 j m s 主要有以下优点1 : ( 1 ) 松耦合( l o o s e l yc o u p l e d ) 。消息生产者和消费者对对方的信息或使用消息 的机制一无所知。 ( 2 ) 异步( a s y n c h r o n o u s ) 。消费者没有请求信息,信息可以在生产者发送的同 时到达消费者,也可以在发送出去一段时间之后到达,生产者不必等待消 费者的应答 ( 3 ) 可靠( r e l i a b l e ) 。进行消息发送接收时,即使生产者和消费者不同时在线, 也能最大限度得保证传送消息得到达。并且保证所有消息被传送一次而且 只传送一次。 ( 4 ) 移植( r e p l a c e a b l i t y ) 。j m s 采用j a v a 编码,因此具有很好得移植性。 3 2j m s 的体系结构 j m s 具有两种体系结构:集中式体系结构和分布式体系结构【捌 集中式体系结构如图3 1 所示,其特点为: ( 1 ) 信息的传送倚赖于中心j m s 服务器。 ( 2 ) 是一种星型拓扑结构。 ( 3 ) 底层基于t c m p 协议。 山东大学硕士学位论文 图3 - 1j m s 集中式体系结构 因此,集中式体系结构适用于对传输速度要求不高,但对质量可靠性要求高 的通信方式。 分布式体系结构如图3 - 2 所示,其特点为: ( 1 ) 倚赖于本地类似于服务器的设施。 ( 2 ) 由路由器实现组通信机制。 j m s c 1 i e n t j m s c 1 i e n t l o c a ls e r v e r j m s c 1 ie n t 路由器( r 0 u t e r ) j m s c 1 ie n t l 0 c a ls e r v e r iil 0 c a ls e r v e r 图3 - 2j m s 分布式体系结构 因此,分布式结构更适用于对传送速度要求高的通信方式 山东大学硕士学位论文 3 3j m s 的通信 3 3 1 肭s 的通信接口 j m s 支持p t p 和p u b s u b ,分别称作:p t pd o m a i n 和p u b s u bd o m a i n ,这 两种接口都继承统一的j m s 父接口,j m s 主要接口如表3 - 1 所示【6 1 田】: l j m s 父接口 p t pp u b s u b 。?, i c 。n n c n i 。n f a c t o r yq u e u e c o i l n e c t i o t l f a c t o r yl t o p i c c o m e c t i o n f a c t o r y l i c 。瓶e c t ;o n q u e u e c 。n n e c t i 。n 。i t o p i c c 。n n e c t i 。n d e s t i n a t i o n q u e u e i t o p i c s e s s i o n q _ u e u e 馨s s i o ni t o p i c s e s s i 。n m e s s a g e p r o d u c e rq u e u e s e n d e rt o p i c p u b l i s h e r m e s s a g e c o n s u m e rq u e u e r e c e i v e r , q u e u e b r o w s e rt o p i c s u b s e r i b e r 表3 - 1j m s 接口 c o n n e c t i o n f a c t o r y :连接工厂,j m s 用它创建连接 c o n n e c t i o n :j m s 客户端到j m sp r o v i d e r 的连接 d e s t i n a t i o n :消息的目的地 s e s s i o n :一个发送或接收消息的线程 m e s s a g e p r o d u e e r : 由s e s s i o n 对象创建的用来发送消息的对象 m e s s a g e c o n s u m e r :由s e s s i o n 对象创建的用来接收消息的对象 3 3 2j m s 的通信主体 j m s 是一种消息传递机制,消息是其传送的主体,因此使用j m s 必须要先理 解消息。 j m s 消息由三部分组成:消息头,属性,消息体1 6 1 1 2 3 1 。 ( 1 ) 消息头( h e a d e r ) 一消息头包含消息的识别信息和路由信息,消息头包含一 些标准的属性,如j m s d e s t i n a t i o n 、j m s m e s s a g e l d 等。 ( 2 ) 属性( p r o p e r t i e s ) 一除了消息头中定义好的标准属性外,j m s 提供了一种 1 0 山东大学硕士学位论文 机制增加新属性到消息头中,这种新属性包含以下几种: 应用需要用到的属性; 消息头中原有的一些可选属性; j m ss e r v e r 需要用到的属性 标准的j m s 消息头包括以下属性,如表3 - 2 所示: j m s d e s t i n a t i o n 消息发送的目的地。由s e n d 或p u b l i s h 方法设置。 传递模式,有两种模式:p e r s i s t e n t 和n o n _ p e r s i s t e n t , p e r s i s t e n t 表示该消息一定要被送到目的地,否则会导致应 j m s d e l i v e r y m o d e用错误。n o n _ p e r s i s t e n t 表示偶然丢失该消息是被允许的, 这两种模式使开发者可以在消息传递的可靠性和吞吐量之间 找到平衡点。由s e n d 或p u b l i s h 方法设置。 唯一识别每个消息的标识。由j m sp r o v i d e r 产生。由s e n d j m s m e s s a g e i d 或p u b l i s h 方法设置 一个消息被提交给j m sp r o v i d e r 到消息被发出的时问。由 j m s t i m e s t a m p s e n d 或p u b l i s h 方法设置。 用来连接到另外一个消息,典型的应用是在回复消息中连接 j m s c o r r e l a t i o n i d 到原消息。由客户设置 j m s r e p l y t o提供本消息回复消息的目的地址。由客户设置。 如果一个客户端收到一个设置了j m s r e d e l i v e r e d 属性的消 j m s r e d e l i v e r e d息,则表示可能该客户端曾经在早些时候收到过该消息,但 并没有签收( a c k n o w l e d g e d ) 。由j m sp r o v i d e r 设置。 m s t y p e消息类型的识别符。由客户设置。 消息过期时间,等于q u e u e s e n d e r 的s e n d 方法中的 t i m e t o l i v e 值或t o p i c p u b l i s h e r 的p u b l i s h 方法中的 j m s e x p i r a t i o nt i m e t o l i v e 值加上发送时刻的g m t 时间值。如果 t i m e t o l i v e 值等于零,则j m s e x p i r a t i o n 被设为零,表示该 消息永不过期。如果发送后,在消息过期时间之后消息还没 山东大学硕士学位论文 有被发送到目的地,则该消息被清除。由s e n d 或p u b l i s h 方 法设置。 消息优先级,从0 - 9 十个级别,0 4 是普通消息,5 - 9 是加 急消息。j m s 不要求j m sp r o v i d e r 严格按照这十个优先级 j m s p r i o r i t y 发送消息,但必须保证加急消息要先于普通消息到达。由s e n d 或p u b l i s h 方法设置。 表3 2j m s 消息头属性 ( 3 ) 消息体( b o d y ) - j m sa p i 定义了5 种消息体格式,也叫消息类型,你可以使 消息类型 消息体 t e x t m e s s a g e 文本或字符串。 一组( 名字,值) 的配对,其中名字是s t r i n g 对象,值类型 m a p m e s s a g e可以是j a v a 任何基本类型。其中的每一项都可以顺序地访问 或通过名字随即访问。 b y t e s m e s s a g e字节流可用于将消息任意编码,使之匹配特定地消息格式。 s t r e a m m e s s a g e一串简单值的流,这些值被顺序地写入和读取。 o b j e c t m e s s a g ej a v a 中的可序列化对象。 3 3 3j m s 的两种通信模式 表3 - 3 消息类型 j m s 提供了点对点( p e e rt op e e r ,p t p ) 和发布订阅( p u b l i s h s u b s c r i b e , p s ) 两种通信模式1 2 4 】【2 5 1 。 ( 1 ) 点对点的通信模式 点到点的消息模式如图3 - 3 所示,它实际上是一种一对一的消息传递方式。它 所特有的概念包括:q u e u e ,s e n d e r ,r e c e i v e r 每一条消息都要被发送到一个指定 的消息队列中去,接收方则从为它保存消息的队列中提取消息。队列保存着所有 发送给它的消息,直到这个消息被取走或者消息己经过期。 1 2 山东大学硕士学位论文 a c k n o w l e d g e 图3 3 点对点通信模式 如上图3 - 3 所示点到点的消息传递模式有下面一些特点: 每一个消息只有一个接收者 消息的发送者和接收者没有时间上的依赖关系,在发送方发送消息的时候,无 论接收方是否是活动的,它都可以在以后的时间里从队列中提取消息。 接收方需要对它已经收到的消息进行确认。 ( 2 ) 发布订阅通信模式1 2 6 1 发布订阅的消息传递模式如图3 4 所示,它实际上是一种多对多的消息传递 方式。它所特有的概念包括:t o p i c ,p u b l i s h e r ,s u b s c r i b e r 。在这种模式中,发 布者和订阅者通常是匿名的,它们可以动态对主题发布或订阅消息。系统要存储 和管理发送到每个主题的消息。多个发布者可以向一个主题发布消息,多个订阅 者可以从一个主题订阅消息。主题一般只将消息发给当前活动的订阅者。 图3 4 发布订阅通信模式 如上图3 - 4 所示发布订阅模式主要有以下一些特点: 每个消息有多个消费者。 发布者和订阅者之间有时间上的依赖关系,订阅消息的客户端只能收到在 它进行订阅之后发布到主题的消息,并且只有在订阅者活动期间才能接收 山东大学硕士学位论文 到消息。 3 3 4j m s 的消息传递方式 j m s 支持异步的消息传递方式,使消息的发送者与接收者不必保持同步。 消息的发送者发送消息属于异步方式叨: ( 1 ) 消息生产者将消息发布到j m s 服务器中,服务器对消息进行一定的处理后 即给消息生产者一个肯定应答。消息生产者又可以发送另外的消息,不必 等到消息接收者接收到消息。这样,消息生产者就不必关心服务器以后对 消息的处理了 ( 2 ) 消息生产者对消息的接收方一无所知,只是将消息发送到特定的队列中。 消息接收者接收消息有两种方式7 1 9 】1 2 0 i : 同步方式( 拉式传递) :客户程序通过调用r e c e i v e ( 接收) 方法显式地从目 的地取回消息。r e c e i v e 方法在没有消息时处于阻塞状态,直到一条消息来临;如 果在规定时限内没有消息来临,r e c e i v e 方法就会超时。 异步方式( 推式传递) :消息接受者使用s e t m e s s s a g e l i s t e n e r ( ) 方法连接一 个实现了m e s s a g e l i s t e n e r 接口的对象,该对象的o n m e s s a g e 0 函数负责处理接收 到的消息。每当消息到达目的地,o n m e s s a g e ( 消息响应和处理) 方法就会被调 用,所以客户端程序并不会封锁而等待消息的到来。 3 4i m s 的可靠性机制 j m s 的可靠性机制主要包括以下五个方面l 冽: ( 1 ) 控制消息的应答 ( 2 ) 确定消息的永久性 ( 3 ) 设定消息的优先级 ( 4 ) 允许消息过期 ( 5 ) 持久性订阅机制 ( 一) 消息应答 只有当一个y m s 消息被应答后,它才被认为是成功的消费了。消息的应答机 制保证了消息的成功传递。 1 4 山东大学硕士学位论文 消息应答模式有以下三种,它是在创建t o p i c 或者q u e u e 会话时确定的 ( 1 ) s e s s i o n a u t oa c k n o w l e d g e 会话自动确认消息的接收。在异步客户端从o n m e s s a g e ( ) 返回时确认;同步 客户端从r e c e i v e ( ) 返回时确认 ( 2 ) s e s s i o n c l i e n ta c k n o w l e d g e 该应答发生在会话级上,客户端应用确认其成功接收了消息,但可能延迟应 答。它通过调用m e s s a g e a c k n o w l c d g e o 方法进行确认的。 ( 3 ) s e s s i o n d u p s o k a c k n o w l e d g e 这是一种懒惰式的应答机制。在导致失败状态下,重复消息的发送。只使用 于不敏感的数据,可以提高消息系统的效率。 ( 二) 消息的永久性 当服务器崩溃时,

温馨提示

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

评论

0/150

提交评论