




已阅读5页,还剩51页未读, 继续免费阅读
(计算机应用技术专业论文)基于jms的容错性组通信中间件的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大近理t = 人宁硕十学位论文 摘要 计算机和网络技术发展到今天,人们已经不满足现有的点对点的通信应用了。计算 机支持的协同工作( 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 ) 是计算机网络技术一 个重要的发展方向,而组通信gg r o u pc o m m u n i c a t i o n ) 技术是实现c s c w 全部功能的 通信基础,在c s c w 体系结构中占据重要地位。 组通信的实现通常有网络层模型和应用层模型两种,网络层组通信虽然通信效率较 高,但是通常需要特殊的底层硬件f 如组播路由器) 和特殊网络协议( i p 组播路由协议和 i g m p 协议1 的支持,所以该模型目前为止并没有得到普遍实施,并且网络层组通信可扩 展性较差。应用层不需要底层硬件和特殊协议的支持而且具有很强的灵活性和扩展性。 本文描述了一个面向应用层的基于j m s 的容错性组通信中间件架构,即文中定义 的j g c m o 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 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 技术实现了组通信中间件,从而为组成员提供透明的组通信服务,同时为了防 止组通信中间件失效造成系统瘫痪,该架构负责提供组通信服务的通信节点是分布式多 点的( m u l t i j m s ) ,由此能够实现通信层的容错性,从而保证整个组通信业务的连续性。 关键字:组通信;计算机支持的协同工作;m u l t i j m s 大近理i 人学硕士学 上论文 d e s i g na n di m p l e m e n t a t i o no ff a u l t - t o l e r a n tg r o u p c o m m u n i c a t i o nm o mb a s e do nj m s a b s t r a c t w i t ht h ed e v e l o p m e n to ft h ec o m p u t e ra n dn e t w o r kt e c h n o l o g y , p e o p l ec a nn o tb e s a i i s f i e df o rt h ec o m m u n i c a t i o n a p p l i c a t i o no n l yu s i n gt h ep o i n t t o p o i n tc o m m u n i c a t i o ns t y l e 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 , 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 ) i s n o wa ni m p o r t a n td i r e c t i o no ft h ec o m p u t e rn e t w o r k t e c h n o l o g y g r o u pc o m m u n i c a t i o n ( g c g r o u pc o m m u n i c a t i o n ) t e c h n o l o g yi st h eb a s ee l e m e n to ft h ec s c w , i tp l a y sai m p o r t a n t r o l ei nt h ec s c wa r c h i t e c t u r e t oi m p l e m e n tg c ,w eu s u a l l yu s et h en e t w o r kl a y e rm o d e lo rt h e a p p l i c a t i o nl a y e r m o d e l t h en e t w o r kl a y e rm o d e lh a sab e t t e re f f i c i e n c yb u tn e e d st h es u p p o r to ft h es p e c i a l h a r d w a r e ( e g m u l t i c a s tr o u t e r ) a n dt h es p e c i a ln e t w o r kp r o t o c o l 化g i pm u l t i c a s tp r o t o c o l a n di g m pp r o t o c 0 1 ) s ot h en e t w o r kl a y e rm o d e li sn o tw i d e l ya p p l i e da tp r e s e n ta n dt h e n e t w o r km o d e lr e a l l yh a sab a de x p a n s i b i l i t y t h ea p p l i c a t i o nl a y e rm o d e ld o e sn o tn e e dt h e s u p p o f to ft h es p e c i a lh a r d w a r eo rt h es p e c i a ln e t w o r kp r o t o c o la n di ti ss t r o n gi nb o t ht h e f l e x i b i l i t ya n de x p a n s i b i l i t y t h i sp a p e rh a sp r o p o s e da r c h i t e c t u r eo fj m sc o m p l i a n tf a u l t t o l e r a n tm o mo fg r o - u pc o m m u n i c a t i o n ( j g c m o m ) t h i sa r c h i t e c t u r eu s e st h ej m st e c h n o l o g yt oi m p l e m e n ta m e s s a g eo r i e n t e dm i d d l e w a r e ( m o m ) o fg r o u pc o m m u n i c a t i o n t h ea r c h i t e c t u r ec a n s u p p o r tt h eg r o u pm e m b e r sw i t hat r a n s p a r e n ts e r v i c eo fg r o u pc o m m u n i c a t i o n i ft h em o m c r a s h e s ,t o a v o i dt h e p a r a l y s i s ,t h e c o m m u n i c a t i o nn o d e sw h i c hi si n c h a r g e o f c o m m u n i c a t i o na r ed i s t r i b u t e d ( m u l t i o m s ) s ot h i si sak i n do ff a u l t t o l e r a n ta r c h i t e c t u r e , w h i c hc a nk e e pt h eb u s i n e s sc o n t i n u i t yo f t h eg r o u pc o m m u n i c a t i o n k e yw o r d s :g r o u pc o m m u n i c a t i o n ;c s c w ;m u l t i - j m s 独创性说明 作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究工 作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得大连理 工大学或者其他单位的学位或证书所使用过的材料。与我一同工作的同志 对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。 作者签名:糊日期:之雄爵 大连理上人学硕:学位论文 大连理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位论文版权使用 规定”,同意大连理工大学保留并向国家有关部门或机构送交学位论文的复印件和电子 版,允许论文被查阅和借阅。本人授权大连理工大学可以将本学位论文的全部或部分内 容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位论 文。 作者签名 导师签名 4 锄杠 垂啦 绌j 月( 日 人连理l :大学硕十学位论文 1 绪论 1 1 论文的研究背景 计算机的发展从大型主机到通过网络互联的机器群体,走出一条从相互没有联系或 者联系困难的独立计算机到互相可互联、互操作甚至协同工作的计算机群体的道路,这 条道路的必然趋势是计算机协同工作。随着计算机应用领域的拓宽和广泛用户群的建 立,计算机已深入人们的生活和工作中,并时刻影响到人们的协作方式和工作效率,进 而使计算机和我们的工作与生活融合到一起,形成新的计算机支持下的人类协作方式一 一计算机支持的协同工作( c s c w ,c o m p u t e rs u p p o f l e dc o o p e r a t i v ew o r k ) ”。 计算机支持的协同工作研究的是如何让计算机及网络支持地理分散的人类群体协 调配和,共同完成一项任务的技术,它研究的内容包括人类群体协作交流模式和支持人 类群体协同工作的技术。群体协作模式的研究涉及社会学、心理学、管理科学等多学科; 它致力于研究技术特别是计算机系统如何帮助组进行通信和更高效的工作【2 l 。组通信就 是c s c w 全部功能实现的通信基础,是支持c s c w 的关键技术,它负责完成多台协同 工作的计算机问的信息交流,并确保信息交换的有序、快速、准确等i 邹。 1 2 国内外研究概况及发展趋势 现有的组通信主要是从两个层面对组通信技术进行研究的,一类从l p 层入手柬解 决组通信问题,与组通信相关的基本功能,如组成员的管理,原子组播等服务都在i p 层即路由器中完成;而另一类从应用层入手,试图从应用层解决组问通信的问题,与组通 信相关的基本功能放在应用层中实现i4 1 。 i p 层组通信是倚赖i p 组播实现的,l p 组播的特点在于数据源只需要向组内发送一 份组播数据,路由器只需在恰当的分支点复制数据,就可让所有组成员收到数据任何一 份数据包的拷贝只会在每个组播树的链路上出现一次。可见,i p 组播能够有效地利用网 络资源、降低服务器的负荷。i p 层组通信模型在组播路由器中对组播数据包进行复制转 发,通信效率很高,而且由路出器构成的组播转发树安全性好,可靠性高,具有十分理 想的工作性能【5 1 。但是在大规模网络环境下,基于网络层的组通信模型存在访问控制困 难、地址分配技术不完善、路由协议复杂度高、需支持组播的基础设施、管理难度大、 缺乏成熟的计费模式、扩展性不强等诸多实现困难,另外i p 层组通信模型需要特殊的 底层硬件( 如组播路由器) 和特殊网络协议( i p 组播路由协议和i g m p 协议) 的支持,如果 缺乏这样的协议和特殊的硬件支持,那么i p 层组通信模型就无法实施,基于以上原因 使得该模型到目前为止并没有得到普遍的实施【6 l 。 应用层组通信的特点在于组通信数据的复制和组成员的管理是在应用层实现,路由 器只需要提供单播数掘传送能力就可以,对目| j 的i n t e m e t 没有提出额外的要求。应用 基1 - j m s 的容错性组通信中间f 1 的设计与实现 组播中数据传输是分段进行的,任何两个应用层组成员之i 日j 的数据传输均采用单播传输 协议对复制的组播数掘进行转发,路由器并不需要支持组播通信,这样就保持了互联网 原有的单播通信模型,从而避开了i p 层组通信模型难以进行大规模网络实施的问题, 从而大大简化了l p 组播所面临的拥塞控制和流量控制问题相对于i p 组播,应用层组播 实现简单,更有可能成为组通信的实现方式。从2 0 0 0 年起,陆续出现了e n ds y s t e m m u t i c a s t 、a l m i 、o m n i 、n i c e 等许多应用层组通信模型的实现方案i 圳。 目i i 的应用层组通信模型的机理都是组成员节点问对数据进行复制并转发,这就会 出现一个问题,即组通信服务需要组成员节点共同协作完成,例如成员视图维护、消息 定序以及数据复制、转发都需要组成员之间进行沟通协作,这在很大程度上增加了组成 员节点设计上的复杂性及负载,同时由于组成员之| 、日j 需要进行成员视图同步等组通信服 务层面的同步,这就增加了网络流量、加大了网络的负载。组通信中间件的概念应运而 生。 组通信中间件( g c m o m ,g r o u pc o m m u n i c a t i o nm e s s a g eo r i e n t e dm i d d l e w a r e ) 是一 个崭新的概念,指利用中问件技术来实现组通信,这罩的中问件指的是消息中日j 件。 g c m o m 是基于应用层的,而且能够为组成员提供透明的组通信服务支持,使得组成员 不需要关心具体的组通信实现细节,只注重对自身的业务实现就行,极大地简化了组成 员在通信层面的设计并且降低了网络负载。现有的组通信中间件有基于c o r b a ( o g s , o b j e c tg r o u ps e r v i c e ) 技术实现的,还有基于d c o m 技术的组通信中间件【9 1 。g c m o m 的不足之处是如果中问件失效的话,会影响组通信的业务连续性。 1 3 本文主要研究内容及内容组织 基于以上对目| j 组通信发展的叙述,本文提出了基于j m s ( j a v am e s s a g es e r v i c e ) 的 容错性组通信中问件概念q g c m o m ,j m sc o m p l i a n tm e s s a g eo r i e n t e dm i d d l e w a r eo f g r o u pc o m m u n i c a t i o n ) 。本文描述的j g c m o m 有两层含义:( 1 ) 利用j m s 技术实现组通 信中间件:( 2 ) 该组通信中| h j 件是一个架构,具有组通信服务层面的容错性,能够保证组 通信的业务连续性。 本文选用j m s 来实现组通信主要原因有以下几个方面:( 1 ) j m s 规范定义了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 提供了一种可靠的通信机制,提升了组通信的可靠性 【l o 】。 本文的主要工作及创新点: ( 1 ) 提出并实现了一种面向应用层的基于j m s 的组通信中间件模型,使得组成员从 组管理中彻底脱离开来,成员视图维护及消息定序等组通信服务全部由组通信中间件辅 一2 一 人连理r 大学硕十学侍论文 助完成,降低了系统的复杂度和网络通信丌销,同时大大的提高了系统的可扩展性。 ( 2 1 由于该组通信模型的组通信机制是由组通信中间件实现,一旦组通信中问件失 效,整个组通信系统就会失效。本文提出并实现了一个分白式多点通信的组通信中间件 模型( m u l t i j m sg c m o mm o d e l ) ,该模型可以自动检测内部通信层节点失效,并能够及 时地进行处理,保证组通信的业务连续性。该模型不但能够解决单点失效问题,还能够 解决多点失效问题。 ( 3 ) 将j m s 的a p i 抽取出来与组通信的功能性a p i 相对应,如把j m s 消息传递机 制中t o p i c 看成是组,利用p u b l i s h s u b s c r i b e 机制来完成组定制服务等。同时扩展了j m s 的a p l ,使得该组通信中问件具备成员视图维护、消息定序等组通信的基本功能。 ( 4 ) 传统的j m s 消息中1 日j 件通常只能够保证消息的先进先出( f i f 0 ) 顺序,而对组 通信的中定义的全序( t o t a lo r d e 0 和因果序( c a u s a lo r d e 0 并没有给出处理方案【1 l l ,本文 提出的j g c m o m 提出了对应的具体的解决全序和因果序的解决方案。 ( 5 ) j g c m o m 融入了j m s 技术特有的机制如消息持久化、消息异步、安全性、多 种类型的消息、移植性等优点1 1 2 】,扩展并优化了组通信的业务范畴。 本文的内容组织: 第一章:绪论部分,介绍了论文的研究背景,研究的目的和意义,国内外研究现状 以及本文主要研究内容、创新点和内容组织。 第二章:预备知识,包括组通信相关技术规范以及介绍j m s 基本规范。 第三章:给出j m s a p i 与解决组通信服务的绑定及扩展。 第四章:详细的对本文提出的j g c m o m 框架的结构进行了分析和设计。 第血章:描述j g c m o m 的主体模块实现以及应用实例。 最后是本文大总结与展望,提出了需要日后深入研究的方向。 基丁j m s 的容错性组通信中间f 1 的设计与实现 2 预备知识 2 1 组通信技术 2 1 1 组通信概述 组通信是指多台计算机之间的一种通信方式。每台计算机对应一个组成员,一个成 员可以通过请求加入组而成为组内成员,也可以通过请求离开组或者因故障而退出组。 对于一次通信过程,参加组通信的计算机可以划分为发送方和接收组。发送方是指发送 组播分组的主机,接收组是指接收组播分组的主机集合,每个接收组用一个接收组地址 表示。一台计算机可同时是发送方和接收组成员,但不要求它一定是接收组成员。通信 过程是发送方首先发送一个目标地址为接收组地址的组播分组,然后再由组通信服务的 组播转发机制将消息转发给接收组成员。因此,实现组通信的关键是成员关系服务和基 于成员关系的组播机制。组通信需要协调和协定,目的是使一组进程中的每一个都收到 发到组中的、往往带有发送保证的消息的副本,并且保证组中每个进程收到的消息的顺 序集合达成一致。组播服务根掘组成员关系活动视图,负责向组成员转发消息,而组播 要处理的消息不仅包含常规的应用消息而且还有代表成员关系活动视图的成员关系消 息。 组通信的基本特点是一个进程只调用一个组播操作来发送一个消息到进程组的每 个进程,而不是调用多个针对单个进程的发送操作。用一个组播操作代替多个发送操作 所得到的远不止是程序员的方便,它使得实现更加有效、并且提供比其他方式都强的发 送保证。 下面给出组通信的性能特征1 1 3 l : ( 1 ) 效率:同一消息要发送到组中的所有进程,这一特点允许实现可以有效使用带 宽。通过发送消息到一个分布树,可以采取方法使发送消息到任何通信连接都不超过一 次:并且在能利用网络硬件支持的地方可以用硬件支持组播。实现不采用独立、串行地 传输消息,故还能使发送消息到所有目的地的总时间最少。 ( 2 ) 传递保证:如果一个进程执行多个独立地发送操作到独立地进程,那么实现就 无法提供能够影响整个进程组地发送保证【。如果发送者在发送过程中出现故障,组中 的一些成员可能收到消息,而其他成员则没有收到。而且发送到组中的任意两个成员的 两个消息的相对顺序是没有定义的。在组通信中,可以保证一个客户端发送一个消息到 一个进程组,组中的进程要么都收到该消息,要么都没收到该消息。甚至有些组通信的 实现可以保证组中任意两个成员收到的两个相同消息的顺序是一致的。 2 1 2 组通信的底层支持 应用层的组通信除了需要应用层的与组通信相关的基本功能服务外,同样需 大连理i i 人学硕十学位论文 要底层通信机制的支持。 如图2 1 所示,目前有三种最基本的通信方式。 o c 卜o o ( a ) 单播 ,_ o o 一一o 、o 广播 i q | | 、j c 卜一t o o 图2 1 三种基本通信方式 f i g 2 1t h r e eb a s i cc o m m u n i c a t i o nm o d e 三种通信方式都可以实现多点通信。组播和广播本身就是多点通信,多次单播同样 可实现多点通信。 虽然许多物理网络提供了广播通信的方式,但局域网上的广播的主要缺点就是每个 广播都要消耗所有机器上的资源。而广域网上,全网广播耗用网络带宽大,会对网络通 信流量产生灾难性的影响,定向广播的通信范围则受限于某一局域网,所以从这一角度 来看,广播技术仅适合不跨物理网段的监控视频的网络传输。在局域网上,广播与组播 具有十分相似的特点。 组播传输只有u d p 一种形式的通信方式,利用i p 的d 类地址作为组地址。u d p 建立在i p 之上,是一种无连接协议,提供了多点通信的方式。两台计算机之间的传输7 类似于传递邮件:消息从一台计算机发送到另一台计算机,两者之i 日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 两种通信方式。t c p ”】建立在l p 之上,定义了网络上程 序到程序的数据传输格式和规则,提供了口数据包的传输确认、丢失数据包的重新请 求、将收到的数据包按照它们的发送次序重新装配的机制。t c p 协议是面向连接的协议, 类似于打电话,在开始传输数据之前,必须先建立明确的连接。因此,t c p 是一种可靠 的通信机制,但是它只适用于点对点的通信,要使用t c p 机制实现多次单播的多点通 信在时延要长于组播方式。 另外,组播和单播都能够跨越物理网段通信,都有较好的异构性。但并不是所有的 路由器支持组播方式也并不是所有的组内成员都属于同一组播地址,虽然组播在传输效 基丁- j m s 的容错性组通信中间t l 的设计与实现 率上要比单播好,但实用性不强。 2 1 3 组通信相关技术 ( 1 ) 信息定序 定序的概念源于不同信息的相互依赖。例如,某个站点广播2 条信息,由于第2 条 的内容可能依赖于第1 条,各站点按照信息的发送次序来接收它们,即遵循“先进先出” ( f i f o ) 原则。这种 z 粟( c a u s a l i t y ) 收发关系延展出定序的概念。通常,将信息的这种因果 先后次序定义成传递的闭包形式:如果站点n 在发送信息m 之前接收过m ,或者在发 送信息m 之翦发送过m ,那么便称信息m 因果性地优先于m 。 对于无因果关系的信息,不能强加以先进先出定序和因果定序。于是,各站点可能 会按照不同的次序来接收无关系的信息。完全定序或绝对定序( at o t a lo r d e r ) p 7 阻止这种 现象的发生,完全定序使所有信息在各站点都按照相同的次序被交付。 下面列出的是组通信技术提供的有关信息定序的几种服务【l 婶 基本服务( b a s i cs e r v i c e ) :当站点从网上收到一条信息时,该信息即被交付。由 于各站点可任意接收,故不能保证所接收信息的次序。 先来先服务( f i f os e r v i c e ) :信息按被发送的次序交付给所有站点,即遵循“先 进先出”的原则。先发j 差( s e n d ) 谁,就先交付谁。 因果定序服务( c a u s a lo r d e rs e r v i c e ) :若信息m 因果性地优先于m ,那么m 在所 有站点均先于m 被交付。 定序服务( t o t a lo r d e rs e r v i c e ) ;信息在所有站点都按照相同次序被交付。也就是 说,任意两个站点n 与n 接收到信息m 与m ,n 和n 或者都是先交付m 后交付m , 或者都是先交付m 再交付m 。信息在所有站点被交付次序都完全一致。定序服务也称 定序广播佃t a lo r d e rb r o a d c a s t ) ,或者原子广播( a t o m i cb r o a d c a s t ) 。可见,原子广播技术 主要根据信息被交付次序来定义的。 佗) 信息交付保证与组维持 至于信息交付保证,现有大多数组通信协议在处理信息丢失事故时,都能确保被一 个可用站点广播的信息,最终也被所有可用站点接收。组通信技术提供两种类型的交付 保证服务: 非原子交付服务:只有它前面的信息已被交付,该信息才可被交付。 原子交付服务:确认信息m 在所有可用站点都能被交付之后,该站点才交付m 。 原子交付服务又称为可靠的一致信息交付,它强调只要一个可用站点交付了一条信 息,所有的可用站点均能交付该信息。 组维持服务提供错误检测功能,可有效地去掉组中错误的站点。这种错误检测功能 可保证在某个站点失效时整个系统仍正常工作而不受影响。 从效能的角度来看,不同的语法提供不同的信息量及交付延迟。基本服务与定序服 一6 一 大连理l 大宁硕十学伊论文 务相比,前者的交付延迟较短;而非原子交付服务要求信息量比原子交付服务少,可靠 性不如原子交付服务。 利用组通信技术的定序服务可保证副本之间的一致性,不仅避免死锁现象的发生, 也大大提高了系统的容错性。如现有的i s i s ,a m o e b a 及t o t e r n 等系统m ,均可提供具 有交付保证、原子性( 指一个事务要么全被执行,要么全不执行,当事务中断时中间结 果会被取消。事务的原子性可保一证数掘库的状态总是从一个一致的状态变化到另一个 一致的状态,而不会出现不一致的中间状态) 及定序性质的可靠信息广播。当然,它们 的初衷是为了解决分布式系统容错问题,但同样可用来解决分御式数掘库复制问题。某 个应用为了向所有站点发送信息,首先向某一站点的组通信系统发出一条命令,组通信 系统会将此信息发给所有参与站点,然后更新所有副本。这样可减少更新费用。然而, 上面所提到的系统均将事务定义为仅包括对一个对象的更新操作。真正的事务则是一组 读、写操作,且操作具有可靠性、原子性及定序,并不是指单项操作。这种不匹配的状 况正在着手解决。 组通信技术提供的原子广播主要是利用组播的特点。具体应用时,发向某个站点的 信息可通过组播传到改组的各站点,也包括该站点本身。组搔与点对点通信方式相比, 主要有两个好处:其一,应用设计更为简便;其二,复制系统的性能获得改善。 2 2j m s 技术 面向消息的中f f q :( m o m ) 1 1 8 l ,提供了以松散耦合的灵活方式集成应用程序的一种机 制。它们提供了基于存储和转发的应用程序之j 日j 的异步数据发送,即应用程序彼此不直 接通信,而是与作为中介的m o m 通信,m o m 提供了有保证的消息发送。 j m s 是s u n 提出的旨在统一各种m o m 系统接口的规范,它制定了基于j a v a 点到 点( p 2 p ) 和发布订阅( p u b s u b ) 异步消息传递的标准,为j a v a 程序提供了一种创建、发送、 接收和读取企业级消息系统消息的一般方法。在j m s 之前,每一家m o m 厂商都用专 有a p i 为应用程序提供对其产品的访问,通常可用于许多种语言,其中包括j a v a 语言。 j m s 为j a v a 程序定义了一种标准的使用消息交换数据的编程方式,实现了各种消息中 问件的无缝连接。目前,j m s 在很多m o m 产品中得到了实现,其中i p l a n e tm e s s a g e q u e u e ,i b mm q s e r i e s ,p r o g r e s ss o f t w a r es o n i c m q 、b e aw e b l o g i cs e r v e r 、p r i s m t e c h n o l o g i e so p e n f u s i o n 等应用最为广泛【1 9 1 。 2 2 1j m s 应用程序的组成元素 j m s 规范规定,一个j m s 应用程序可由如下元素组成【驯: ( 1 ) j m s 客户机( j m sc l i e n t s ) :使用j m sa p i 发送和接收消息的j a v a 程序。 ( 2 ) 非j m s 客户机。其它的传统程序通常是一个完整的j m s 应用程序的一部分, 在规划时必须优先考虑它们的存在。 基丁ij m s 的容错性组通信中间f | 的设计与实现 ( 3 ) 消亩, ( m e s s a g e ) :客户机之| 日j 所交换的信息。在设计j m s 应用程序时必须定义消 息的格式和内容。 ( 4 ) j m s 提供者o m sp r o v i d e r ) :由j m s 定义,并由j m s 供应器提供具体实现的一 组最小界面。 ( 5 ) 管理对象( a d m i n i s t e r e do b j e c t s ) :那些由消息系统提供者的管理员创建的、独立 于提供者的专有技术的对象,它是独立与供应器的专有技术。 2 2 2j m s 接口 j m s 定义了一组封装各种消息概念的高级接口。而这些接口又因为两个消息域 p t p 和p u b s u 卜进行了进一步地定义和定制。表2 1 展示了j m s 的高级接口和特定 域的接口关系。 表2 ,1j m s 顶层接口 t a b 2 1j m s t o pi n t e r f a c e 2 2 3j m s 消息的结构 m e s s a g e 分为三个组成部分:消息头( h e a d e r ) 、属性( p r o p c r t i c s ) 和消息体( b o d y ) 【2 l j 。 消息头包含一些标准的属性,如表2 2 所示。 表2 2 j m s 消息头的标准属性与设置者 t a b 2 2j m sm e s s a g eh e a dp r o p e r t i e sa n ds e t u pr o l e s 消息头j a v a 类型 设置者 j m s d e s t i n a t i o nd e s t i n a t i o n s e n d 或p u b l i s h 方法 j m s d e l i v e r y m o d e i n t s e n d 或p u b l i s h 方法 j m e x p i r a t i o nl o n g s e n d 或p u b l i s h 方法 j m s p r i o r i t y i n t s e n d 或p u b l i s h 方法 j m s m e s s s a g e l ds t r i n g s e n d 或p u b l i s h 方法 j m s t i m e s t a m pl o n g 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 l d s t r i n g 客户 j m s r e p l y t o d e s t i n a t i o n 客户 j m s t y p es t r i n g 客户 j m s r e d e l i v e r e db o o l e a n j m s 提供者f p r o v i d e r ) 标准的j m s 消息头都包含有它的基本属性,每一个消息头都应该具有这些属性。 人连理1 :人学硕十学侍论文 表2 3 是标准的j m s 消息头包含的属性和属性的说明。 表2 3j m s 消息头包含的属性及说明 t a b 2 3t h ep r o p e r t i e sd e s c r i p t i o no ft h ej m s m e s s a g eh e a d 属性名称说明 j m s d e s t i n a t i o n j m s d e l i v e r y m o d e j m s m e s s a g e l d j m s t i m e s t a m p j m s c o r r e l a t i o n l 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 t y p e j m s e x p i r a t i o n j m s p r i o r i t y 消息发送的日的地 传递模式,分为p e r s i s t e n t 和n o np e r s i s t e n t 两种。前者表 示消息一定要被送剑目的地,否则会导致麻川错误。后者表示偶然丢 失该消息是被允诈的 唯一识别每个消息的标识,由j m sp r o v i d e r 产生 一个消息被提交各j m sp r o v i d e r 到消息破发出的时间 州来连接剑另一个消息,典删的麻川是在同复消息中连接剑原消息 提供本消息同复消息的目的地卅 如果一个客户收剑一个设置了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 ) 消息类刷的识别符 消息过期时间,等于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 方法中的t i m e t o l i v e 值加上发送时刻的 g m t 时间值。如果t i m e t o l i v e 的值等于o ,则j m s e x p i r a t i o n 铍没为 0 ,表示该消息永不过期。如果发送后,在消息过期时间之后消息还 没有被发送剑目的地,则消息破清除 消息优先级,从0 - 9 共1 0 个级别,4 是普通消息,5 9 是加急消 息。 关于j m s 消息类型的描述,如表2 4 所示。 表2 4j m s 消息类型 t a b 2 4j m s m e s s a g et y p e 属性名称说明 t a x t m e s s a g e 一个j a v a 1 a n g s t r i n g 对象( 例如,一个x m l 文f ,f 的内容) m a p m e s s a g e 一绢名,值对,名称是s t r i n g 对象,值是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 j a v a 中的基本值流,按顺序填充和读取 o b j e e t m e s s a g ej a v a 中的一个s e r i a l i z a b l e 对象 2 2 4j m s 消息收发模式 j m s 的消息收发模式主要有两种,即点对点的消息传递域和发确订阅域【2 2 1 。点对 点( p t p ) 的产品或应用程序围绕着消息队列、发送者和接收者的概念而创建。每个消息 都包含具体队列的地址,接收客户从为放置发送给它们的消息而建立的队列中提取消 息。队列将发送给它们的消息一直保留,直到消息被消费或消息到期。p t p 消息传递在 基丁j m s 的容错性组通信中问什的殴计与实现 图2 2 种进行了说明,它的特点在下面列出。 图2 2 点对点消息传递 f i g 2 2p o i n t - t o p o i n tm e s s a g ed e l i v e r y ( 1 ) 每个消息只有一个消费者。 ( 2 ) 消息的发送者和接收者没有时i 日j 上的相关性。无论接收者在发送者发送消息时 是否出于运行状态,它都可以提取消息。 ( 3 ) 接收者确认消息的成功处理。 在一个发御订阅产品或应用程序中,客户把消息提交给一个主题。发御者和订阅者 一般是匿名的,可以动态地发卸或订阅内容。系统负责把多个发白者发送给一个主题的 消息分发给该主题的多个订阅者。主题把消息分发给当前的调用者之后就不再保留这些 消息。 发布订阅消息传递的特点如下: ( 1 ) 每个消息可以有多个消费者。 ( 2 ) 发却者和订阅者有时间相关性。订阅一个主题的客户只能消费它订阅之后发布 的消息,订阅者必须一直处于激活状态,彳能消费发布的消息。j m s a p i 允许客户创建 持久订阅,这在一定程度上放松了时问相关性的要求。持久订阅可以接收在订阅者未处 于激活状态时发送的消息。持久订阅提供了队列的灵活性和可靠性,同时仍允许客户向 多个接收者发送消息。当每个消息可以被零个、一个或多个消费者处理时,可使用发布 订阅消息传递。图2 3 阐释了发布订阅消息传递。 图2 3 发布,订阅消息传递 f i g 2 3p u b l i s h s u b s c r i b em e s s a g ed e l i v e r y 大连理l 。大学硕士学位论文 3j m s 的a p i 与组通信服务的绑定及扩展 前文对组通信和j m s 机制都作了较详细的叙述,可以总结出组通信与j m s 发布 订阅机制有许多相似之处,可以把组看成是主题。例如,组成员入组的过程实际上就是 客户端定制主题的过程f 矧。j a v a 消息服务( m s ) 就是用柬编写异步消息j 2 e e 应用的 a p i j m sa p i 实现组通信进行的复用以及扩展可以分为两大种类:通信层面和管理层面。 j m s a p i 描述了一个标准的方法来访问几乎所有的消息系统,就像j d b c 允许我们使用 相同的a p i 访问o r a l c e ,s y b a s e 和s q l s e r v e r 一样。如同可以调用异步服务那样,我们 从中获得额外的好处是程序之问有一个宽松的耦合,发送请求的代码和响应请求的代码 是分离的。 不同的客户端把消息发送到同一个指定的目的地;然后,接收者( r e c e i v e r ) 从目的地 分离出消息并显示出来。通信层面主要是利用现有的接口去进行实际的组通信层面的通 信,而管理层面用于扩展j m s 服务范畴进行组管理和维护。如下表3 1 将给出通信层面 的组通信基本服务与j m s a p i 的对照。 表3 1 通信层面j m s 绑定组通信实现方式对照表 t a b 3 1c o m m u n i c a t i o nl a y e ro fj m sa n dg r o u pc o m m u n i c a t i o nm a p p i n g 通信层面的j m s 与组通信实现的绑定主要是解决信息组播、信息提交以及将成员 视图作为组播消息进行接收并提交。管理层面的j m s 与组通信绑定的业务扩展主要用 于解决组管理和成员关系管理。j m s 与组通信绑定的业务扩展如表3 2 所示。 基丁- j m s 的容错性组通信中间竹的设计与实现 表3 2 管理层面j m s 绑定组通信扩展实现方式对照表 t a b 3 2a d m i n i s t r a t i v el a y e ro fj m sa n dg r o u pc o m m u n i c a t i o nm a p p i n g 1 2 人近理l 。人学硕十学何论文 4 基于j m s 的容错性组通信中间件( j g c m o m ) 的设计 4 1 基本定义 为了方便对j g c m o m 框架的描述,给出以下定义: ( 1 ) a 是主题t 的消息发前i 者( a t ) ,代表a 可以向主题t 发靠消息; ( 2 ) a 是主题t 的消息订阅者( t a ) ,代表到达主题t 的消息可以被a 接收到; ( 3 ) a 是队列q 的消息发送者( a q ) ,代表a 可以向队列q 发送消息; ( 4 ) a 是队列q 的消息接收者( q - ,a ) ,代表到达队列o 的消息可以被a 接收到; ( 5 ) & & 代表并且而0 代表或者,可以组合上述条件。 ( 6 ) a 与b 逻辑相连被定义为: ( a 一 t q o n b ) 0 ( t q o n b - a ) 0 ( b 一 t q o na ) 0 ( t o o n a 一 b ) 4 2j m s 层面通信模型( r q r l j g c m o m 使用关联队列注册( r q r ,r e l a t e dq u e u er e g i s t e r ) 保证j m s 层面的消息通 信。假定有n 台实现了j m s 服务的主机,分别是j m s ( 1 ) ,j m s ( 2 ) j m s ( n ) 。每台j m s ( i ) 都会建立和自身对应的唯一队列o ( f ) ( f =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年肿瘤精准医疗临床实践中的数据挖掘与应用研究
- 2025年家庭教育指导服务市场细分领域市场细分与竞争格局
- 2025年工业互联网平台同态加密技术在工业研发设计中的可行性探讨报告
- 2025年智能可穿戴医疗设备在心血管疾病早期筛查与康复中的市场需求与技术创新趋势
- 2025年工业互联网平台量子密钥分发技术产业链上下游协同发展报告
- 2026届江苏省泰兴市第三高级中学高二化学第一学期期末检测模拟试题含答案
- 2025年Python二级考试冲刺押题卷 知识点深度讲解与应用
- 辽宁省抚顺市一中2026届化学高二第一学期期末考试试题含答案
- 2025年公务员考试行测图形推理模拟试卷 解题技巧专项训练
- 2025年初级会计职称考试冲刺押题试卷 财务管理专项训练
- 第三期团课课件乡村振兴中的青春力量-学习2025中央一号文件“千万工程”新阶段部署
- 中国半导体热沉材料行业发展现状、市场前景、投资方向分析报告(智研咨询发布)
- 德育副校长在班主任会议上讲话:7步走轻松打造和谐班级
- 利用绘本进行家庭教育的方法探讨
- 2025年度智慧社区租赁意向协议书
- 《园林绿化工程施工方案》知识培训
- 县院感质控中心工作总结
- 2024年中考模拟试卷英语(陕西卷)
- 助听器与辅听设备基本性能及使用建议的专家共识
- 网络安全和信息化领导小组职责
- 中职班主任管理培训
评论
0/150
提交评论