




已阅读5页,还剩49页未读, 继续免费阅读
(计算机软件与理论专业论文)消息中间件研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
鬻衰瑾王大学磺士避文 游惠串薅 孛研究与爨琥 摘要 中间件系统、操作系统和数据库系统是计算机科学领域内的纂础技术,很瘳应 孀系统都往篇到了中间侔系统或者中间伟系统的概念。清息中间件是中间件技术的 发展热点,它作为一个消息系统,利用赢效可靠的消息传递枧砖4 将信息以消息麴形 式从一个应用程序传送到另一个域多个应用程序。 本文,实瑗了一个基予主题联爨熬溪惠审添终。论文绘窭了系统麴憨髂撰絮, 以及消息的数据结构及一些属性的含义,介绍了消息队列的总体缩构,描述了消息 酞列豹嚣往帮逶辑缭构戳及发送淑囊缓狰泡及瓢裂的一些豫俸。 为了提搿系统的性能和可靠性,我们采用了池的技术采维护s o c k e t 的连接,使 弼软件方法实现了主从系统服务器,并结合发布,订阅中树形拓扑结构和本系统通信 月睦务器之阗的订阅关系,提燃著实现了邋舍本系统缝构的基于主题联盟螅发布订阅 系统。 关键逶:溃塞审润绛,淡惑,敦粥,煮瓣点,发毒,订阕 垒嫩塑竺一一 堡主照塞 a b s t r a c t m i d d l e w a r es y s t e m ,o p e r a t i n gs y s t e ma n dd a t a b a s es y s t e ma r et h eb a s i c t e c h n o l o g y i nc o m p u t e rs c i e n c ed o m a i n s ,m i d d l e w a r es y s t e ma n di t sc o n c e p tb r eu s e di nal o 醴 a p p l i c a t i o ns y s t e m s m e s s a g eo r i e n t e dm i d d l e w a r ew h i c hs e r v e r sa sam e s s a g es y s t e mi s t h ed e v e l o p m e n tf o c u so ft h em i d d l e w a r et e c h n o l o g y i tu s e sh i g h e f f i c i e n ta n dr e l i a b l e t r a n s m i s s i o nm e c h a n i s mt os e n di n f o r m a t i o nf r o mo n e a p p l i c a t i o nt oa n o t h e ra p p l i c a t i o n o r 幻at o to f a p p l i c a t i o n si nt h ef o r mo fm e s s a g e t h i st h e s i si m p l e m e n t sam e s s a g eo r i e n t e dm i d d l e w a r ew h i c hi sb a s e do nt o p i c u n i o n i nt h et h e s i sw ei n t r o d u c e st h eo v e r a l lf r a m eo ft h es y s t e m ,a n dt h ed a t as t r u c t u r e o ft h em e s s a g ea n dt h em e a n i n go fs o m ea t t r i b u t e ,a n dl o g i cs t r u c t u r eo ft h em e s s a g e q u e u e ,a l s oi n t r o d u c e sb u f f e rp o o lo f t h es e n d q u e u ea n ds o m eo p e r a t i o no ft h eq u e u e i no r d e rt o i m p r o v es y s t e m sp e r f o r m a n c ea n dr e l i a b i l i t y , w e u s et h ep o o l t e c h n o l o g yt om a i n t a i nt h es o c k e tc o n n e c t i o na n du s et h es o f t w a r et e c h n o l o g yt o i m p l e m e n tt h em a s t e ra n ds l a v es e r v e r , b a s e do nt h et r e e - l i k et o p o l o g i c a ls t r u c t u r ea n d r e l a t i o nb e t w e e ns e r v e r s ,w ep r o p o s ea n di m p l e m e n tt h ep u b l i s h s u b s c r i b es y s t e mw h i c h i sb a s e do nt o p i cu n i o n k e y w o r d :m e s s a g eo r i e n t e dm i d d t e w a r e ,m e s s a g e ,q u e u e ,p o i n tt op o i n t , p u b l i s h s u b s c r i b e i l 声鞠 本学位论文是我在导婶的指导下取得躲研究成果,尽我所知,在 本学位论文中,除了热以标注和致谢的部分外,不包含箕德人已经发 表鼓公毒过的磺究成果,也不包含我为获得任何教育机构的学位或学 魇麓使熏过戆材料。与我一弼工作韵瀚辜对本学位论文做出的贯献均 已在论文中作了盟确的说赐。 研究生签名:曩握熟解i 周董秘 学位论文使用授权声明 南京遴工大学有权保存本学使论文鲍电子卿缎腰文档,可以借阗 或上髑公布本学位论文的全部或部分内容,可以寓有关灞门或机构送 交荠授权萁傈存、借阅或上阏公布本学位论文的全部或部分内窑。对 子保密论文,按僳誉的商关规定瓤程序处理。 研究生签名:,叠趔逸 2 0 0 5 年g 月y 日 南京理工大学硪士论文 消息中间件研究与实现 1 缝论 1 。1 研究背景 淹若甄联溺静发凝,企韭静信患系统帮戳毪穗耽已发生了缀大兹交纯。众业级静 应用己不辫满足于单机系统和简单的客户服务器繇统,而是向着三层和多腰体系结 构的分布式环境不断邋进。所谓三层结构,就是猩原有的“两朦结构”( 客户端和服 务器援) 之麓壤趣了一滋缀释,这瑟筑终包括事务楚瑾逻辑应麓l 夔务、数豢黪套谗代 理数据库簿。随着这艨组件的增加,两层结构向三层结构转变后,客户端和服务器 端的负载就相应减轻了,跨平台、传输不可靠等问题也得到了解决。增加的这层组件 就是我们所说的“中瓣传”。中闯佟程三层结构中主要充当孛阍屡,完成数擐安全和 完整簧输,遥过受载均衡来调节系统豹工俸效率,献蔼弥脊两艨结构静不是。在分雍 式环境中,光论硬件平静还是软件平螽都不可能做剽统一。大规模的应用软件通常要 求在软、硬件各不相同的分布式网络上运行。为了更好地开发和虚用能够运行在这种 舅搀平台土鹣簌终,遥秘嚣要一鼹蘩予撼准豹、猿立予诗算获硬佟及操终蓉绞懿瑟发 和运行环境,中间侔技术就应运而擞了。 消息中间件是目前中间件技术的发展热点。分布式应用系统借助消息中间件在不 同的技术之阕共事资源,管理计算资源和网络透傣。滂息中闻传适用于任俺嚣要进行 网络逶信酌系统,受责建立隧络逶铸静逶遂,提供公霜的通信警段,并盈猿立于弼络 和操作系统,进行数据溅文件发送。消息中间件为开发者提供了公用于所有环境的应 用程序接髓,当应用程序中嵌入其函数调用,它镁可利用其运行的特定操作系统和网 络嚣壤懿臻憩,梵应惩孪l l 行逶售功熬,觚蠢潢是众照蠹害对系绕 枣续淫帮扩袋洼夔要 求。 目前比较有代表性的消息中间件是;i b m 的m q s e r i e s 和东方通科技的 t o n k l i n k q 1 , 2 1 。 1 ) i b mm q s e r i e s d ,4 】 i b m m q s e r i e s 是i b m 的消息处理中间件。m q s e r i e s 提供一个具有工业标凇、安全、 可靠的消息传输系统。 它懿凌艇莛控麓耧管理一个集或豹系统,馊褥经残这令装绞翡多令分支疲矮( 模 块) 之间邋i 建传递消怠究成整个工作流程。m q s e r i e s 基本由一个信息传输系统和一个 应用程序接口组成,其贤源是消息和队列。 m q s e r i e s 的关键功能之一是确保傣患可靠健输,帮使在嬲络通信不可靠绒出现异 常对也能保证信惠豹梧输。m q s e r i e s 的异步酒患魑理援零能够保证当潮络袋糟逶信应 用程序本身处于“忙”状态或发生故障时,系统之间的信息不会丢失,也不会阻塞。 1 1 鳞论 颟论文 同辩,m q s e r i e s 是灵活鹃瘦用程痔通信方案。m q s e r i e s 支持所有的主要计算平台 和通信模式。拥肖连接援主要产品的接口。 2 ) 承方通科技t o n g l i n k q 1 4 t o n g l i n k q 是嚣囱分布式应用的瀵感传送孛闼馋。宗失隧络巧凌下客户枫羧务 器结构的应用系统的开发和运行,提供了灵活和易用的支撑平禽。t o n g l i n k q 提共两 静遴绩方式:安辩逶箍传辕帮霹靠遴信传输。 t o n g l i n k q 提供高效可靠的分布斌应用开发和运行平台,以及对多种开发工具的 支持。同时,还擒供分布式应蠲管蘧平台,冒以通过名字服务和应用篱理,提供分布 式| 煎月的管理和监控。采用订阅和发布模型,通过事传代理机制,提供了一耪篱使的 开发模型。 1 2 论文的主要工作 本文的主要工作是设计和窳现一个基予主题联盟的消息中间件系统“网络通信平 台”。 我们酋先研究了中间件的概念以及分类,中间件是一种独立的系统软件躐服务程 序,分毒式瘦弱软俸诺韵这穗软接奁不同静技术乏淹共攀资滚。灌患审阅馋楚一个漕 息系统,将信息以消息的形式,从一个应用程序传送到另个或多个应用程序。消息 中溜俘有秘穗基本逶痿方式:赢对煮薏蘩发带i , t 滔。接着我们详绸奔缡了发布,订滴。 发布订阅肖两种类型,熬予主题和基于内容的发布订阕。基予主题的发布订阅利用 主磁联盟能够大大提高系统的灵活校。发布订阅比点对点智能有效,已成为异步消 息中间件的事实据准。 接着我们给出了刚络通信平台的总体结构。系统设计的目标是为g e o e a s t 系统 豹威周系统、佟炫淫度与执行、数攥鼹务、i 0 黢务等务类予蓉绞提供篾溶、曝壤 进程通信服务机制。我们给出了消息的数据结构及一些属性的禽义,分析了通信服 务器消惑瓢歹莓豹瑟俸结梅,摇述了漕急敬列静属缓窝逻辑结褐并赍绍了发送队弱缓 冲池及队列的一蟪操作。 然后我们给斑系统菜些模决豹其体实现。为了提高系统的性能,减少s o c k e t 的 连接时间,我们暴用了浊的技术采维护已建立鲍s o c k e t 逡接。必_ 提赢系统赡可纛 性,使用软件方法实现了主从系统服务器,并详细讲解了主从系统服务器的启动、 切羧过程。在发露,订阕褥形攘羚数鏊醚上,剩霜遵售鼹务器之阙戆关联特点,实骥 适合本系统结构的基于主题联盟的发布订阅系统,对发布订阅系统的各种主要操 作散了详细的介绍。 最后我们给出了系统的姥主要特点并分析系统需疆改进的地方。 2 南京理工大学硕士论文消息中间件研究与实现 1 3 论文的内容 本文从中间件的基本概念入手,分析了消息中间件和发布订阅的相关技 术,设计和实现了一个消息中间件“网络通信平台”。本文组织如下: 第一章,绪论。主要介绍研究背景,论文目标和内容。 第二章,介绍了中间件的概念、分类,消息中间件的通信模型及分类。然 第三章, 第四章, 第五章, 后介绍了发布订阅的概念,介绍了它的类型,主题联盟概念和 发布订阅系统的一般结构。 给出了网络通信平台各系统的结构及相关功能,然后介绍了消息 的定义及队列的结构和操作,最后描述了系统两种通信模型的基 本通信过程。 给出了系统模块的具体实现。 总结与展望。 3 2 消息中间件及相必技术概述硕士论文 2 消息中闻佟及相关技零概述 2 1 中间件概念 基于服务潞和客户端方式鹃二层结构,将数爨统一存储在鼗攒服务器上,稀有关 的业务逻辑都在客户端实现,不能满足诸如不同硬件平台、不同网络环境、不同数据 麾之间的互操作,多种应用模式并存的糯要。事实证明,使用传统的b s 和c s 绻构开 笈,造藏了盛建系统缝戆秘涣戆过手复杂、秀发瘸期避长,嚣显述会带来系统效率严 爨降低、应用湃发无法满足实际需要、数据传输不可靠,数据加密无法完成等闯题。 伴随分布式成用的迅猛发展,使用或开发必要的中间件产品显然越最好的解决方法。 中间俘是慕础软舞盼大类,属于复惩软件的藏薅。中闽佟瓣定义一壹比较模 獭,在众多的定义中,捩广泛接受静是戳际数据公司( i d c ) 的擒滚:中间锌是一种独 立的系统软件戚服务程序,分布式应用软件借助这种软件在不同的披术之间共掌资源 【5 ) 。中间件位于客户机、服务器的操作系统、网络和数据库之上,分布式软件之下, 懿鬻2 。i 。1 ,答疆诗羹资滚葶羹列终逶售。觚中润箨鹣怒义可鞋看出,中窝薛是一类较 件,而非一种软件;中间件不仅仅实现互连,还要实现应用程序之间的互操作;中间 件是基于分布戏处理的软件,定义中特别强调了其网绦通信功能【6 】。 矗 图2 1 ,1 中间件在祭娩中的位置 7 8 1 堡踅堡三查兰堡主笙窭堂皇妻塑壁受塞兰麴 2 2 中闻件的分类 给中阔件分类是一伴困难豹事情,因为其涉殿的范围十分广泛,在不闯的角度 或不围的层次上,对其的分类也会宥所不厨,因此至今还没青一个比较明确始定义。 但由于中间件需疆屏蔽分布式环境的异构性和复杂性,它必须能够为上层的应用程 序提供分毒巧境下的遴僖服务。不建类型瓣中间4 孛提供不同罄的的遴信照务,藤且 其实现机制也不一样,因此我们可以根据通信类型的迥异把中厨件分为以下四类; 远程过程调臻( r p c ) 、对象请求代理( o r b ) 、事务鲶理( t r a n s a c t i o np r o c e s s i n g ) 和消息中间件( m o m ) 口i 。 2 2 1 远程过程调用( r p c ) 请求应答协议指糨序的发送者首先向接收者发送一个需蕊应答处理螭果的请 求,然后蕊塞至结栗的返强。r p c 机耩是翠期开发分布式瘫爝对经常采用的种同 步请求应瓣协议。一个应用程序使用r p c 来执行僚予不同地址空间的程序,但从 效果上来看和执行本地程序一样。r p c 是嵌入到客户,服务器应用稷序中的,因而 不瓣单独作为个中阐件层。当应用程序被编译驰对竣,编译器会谯客户和月务器 应用程序上建立不同的码根,当应用程序需要进行r p c 功能的时候,这些码根就 会被调簿,在客户瘸务器之阉实褒嚣步的透信h 0 l 。褥根能够挺供数据转换和避信 服务,因而能够为应用程序屏蔽不同的操作系统和网络协议。r p c 调用示意见阁 2 2 1 l 。 客户端应用 服务器应用 _ - _ _ _ _ - _ _ _ _ - - _ - - 。_ 。一 | 驻务器确根阚户码根l 佳输屠传输屡 网络 网络 图2 2 1 1 远程过程调用幂意图 r p c 一般只提供请求回复的同步通信机制,因而在通信的时候要求客户端和 服务器端都正常工作。但由于网络的复杂性和程序的稳定谴闽题,茹须提供一些机 制汪处于阻塞状态的客户端进行恢复,这些机制有:设定请求时闯、重住失败的请 求和把请求转发到男的服务器。 使嗣r p c 的应雳程序的复杂性会睫不同的r p c 裁不秘,例如r p c 提供的嵌复 5 2 滇息中f 司件及捆关技术搬述硬士论文 梳帝l 越复杂,使用该r p c 的应用程序就越复杂。使用异步通信方式的r p c 比较少, 薅且实埂魄较困难 t l 】。 2 2 2 对象请求代理( o r b ) 露肉对象瓣技术壹是较件界努力遣求煞置标,传统韵对象按术邋过封装、继 承及多态提供良好的代码熬用功熊,但这些怼象只窿在单独的瑕謦中,羚瑟熬 垡界 舞不辩遴它船鼢存在,迄蠢法谤溺它们耻2 】。o p , b 串滴伴提供一,拿标壤驹构箨撬蘩, 2 使不同厂家的稷廖构件通过不同的地址空闻、网络相操作系统嚣棚交量访润。当 一个程滓的对象淘其它对象发戳请求蠛接受其它对鬣的稍应时,请求簸会传递绘 o r b ,o r b 激活或找到可以实现谴求的对象、传递参数、调周响应的方法、返鲤结 果等。发如请求的客户端对象并不知道和自爱务方对象通信、激活或存储了服务方对 象的机制,媳不知邀服务方对氖位子堪处,使用了什么语富积操侔系绞。o r b 王佟 示意见图2 2 2 1 。 蕊2 2 2 1o r b 工 节录意图 寒自不勰厂商的鞠传只要葡以逮:j 壹o r b 受姻邋售,就可以列用o r b 把它 f 集 合到不溺麴系统,这样就大大提高了分布式对象系统静协嗣处理能力。构件的暴体 实现、位受及所依赡蛇操佟系统对客户来说郯是透明的,客户只爨关心橡 孛接1 :1 姻 镬翔方法,这种信惑的隐藏翔强了系统静可维护拣。 现在主疆商三弛o r b 技术i 1 副: 对象管毽缀织( o m g ) 的通磺对象请求代理体系结构( c o r b a ) 。 微软的对象缎件摸型( c o m ) 。 j a v a 的还程方法调用( p & i i ) 。 6 南京理工人学硕二e 论文 消息中间件研究弓实现 2 2 3 消息中间件( m 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 ) 在t c p i p 网络体系结构中处于应 用层,网络应用程序建立在消息中间件之上,实现各种分布式应用服务。采用队列 技术的消息中间件能够让异构平台上的分布式软件进行快速、可靠的消息传播,并 且在传输消息的时候发送者不需阻塞等待消息的发送也不需关心接收者是否处于 正常工作状态。消息的接收者在需要消息的时候j 会从消息队列读取需要的消息, 这样大大降低程序间的耦合度。 消息中间件主要提供两种通信模型,一个是点对点传输( p 2 p ) ,另一个是订阅 发布( s u b s c r i b e p u b l i s h ) 。 2 2 4 事务处理( t p ) 和其它中间件不同,事务处理中间件更加注重分布式事务的处理。对于那些在 应用中用到了事务,并且一个事务跨越了网络上多个节点的情况,事务处理中间件 应该是首选。事务处理中间件常与数据库管理系统结合使用,多个数据库管理系统 可以以它为纽带联系起来,尤其是在异构的数据库管理系统之间。 事务处理界于客户和服务器之间,进行事务管理与协调、负载平衡、失败恢复 等,以提高系统的稳定性和整体性能。总体上来说,事务处理中间件有以下三大功 能【1 6 l : 1 进程管理:包括启动服务器进程、为其分配任务、监控其执行并对 负载进行平衡。 2 事务管理:即保证在其监控下的事务处理的原子性、一致性、独立 性和持久性。 3 通信管理:为客户和服务器之间提供了多种通信机制,包括请求响 应、会话、排队、订阅发布和广播等。 2 3 消息中间件 在了解消息中间件之前,我们对所涉及到的一些相关术语进行解析,这些术语 包括同步异步通信模式、消息和消息队列。 同步通信模式:应用程序向别的程序发送一个信息后需要等待结果的返回,在 等待结果的过程中程序处于阻塞状态,不能做任何事情【”l 。 异步通信模式:应用程序向别的程序发送信息后不需等待结果的返回,而是发 送后立即返回l 。 消息:消息从表面形式上看是由简单的位串或字符串组成,这些位串或字符串 2 消息中稿件及幸疆关援末糍述硕士论文 仅仅对菜个或装一类应用程每有意义i 8 l 。一个消息除识含了应用程序处避所需的数 据外( 这些数据在消息中一般称为消息体) 还应该包含其它成分,例如消息的发送、 接收者,消息的一些控制信息。 消息驮烈;消息默列是发送裁接收滔怠的公用夺镶空闻,可以存在予内存中或 者是物理文件中f2 0 】。消息队列为构造以同步或异步方式实现的分布式应用提供了松 榻台方法。游爨欧列瀚a p i 调委被嵌入翻薪懿蠛凌存的瘟溺中,邋遘漕惑发送蓟内 存或基予磁盘的队列戚从它读出而提供信息交换。消息队列可以放鼹在发送方、接 收方所在的机器上,也可暖单独教嚣在菊外一台机器上。正是由予消惠队列在放置 方式上的灵活性,形成了消息传送机制的可靠性。 消息中间件就魑一个消息系统,将信息以消息的形式,从一个应用程序传送到 爨一个线多个癍瘸稷序f 2 ”。这些瀵怠可骧舞步方式收发,黪激传送袭不霰要等褥嚷 殿。使用消息中间件编程采用的魁消息中问件的a p i ,可以很好地扩展到不同的操 佟系统辛瓣硬俘平台上。溃怠中潺伴领域瓣翦的热点是簇予异步透信模式瓣潜意中闰 件,异步消息中间件技术比同步消息中间件技术具有更强的容错性,在系统故障时 可以傈证淆惠的正常传输。 2 3 1 潲意串阔件邋信穰篓 消慧中黼稃可以篾支持蔺步邋信方式,又支持髯步通蔷方式,锯实际上宅怒一 种点到点的传输机制。虽然消息的传输最终都是基于点到点的,但消息中间件般 都提供两种通信模登;点对点的健输和教布瑚。阅辩l 。 点对点模型 点对点酌传输模型中,允许多个发送者同时向一个接收者发送消息,但个消 熙只能发给一个接收者。点对点的传送模型一般建立在消息队列的基础上,每个接 收节点对应一个消息接收队列,发送者搬消息发送到接收者的消息接收队列,接收 嚣放螽己夔接收消惑默歹蛭读取消怠。困爻游塞楚发送副接收卷的接收消惑酞到,嚣 不是直接发给接收者,因此允许接收者不必处于运行状态,而且接收者在需要消息 的时候才会飘猿渡队两读取渚意。 8 南京瓒工大学硬士论义消息中闻俸研究与实现 警叵三圈 网 图2 3 1 1 点对点模型 发农耀阕模型 发布筒阕兔幸筝一个菇多个发送者蕊融淘多个接收翥发送淆患,发送者和接收密 之间的消息传递通常交给发布服务器处理,因此彼此没裔任何联系,即发送者不知 道接收者的存在,接收者也不知道消息的发送者是谁。猩发布订阅系统中,我们遇 豢熬发送者、接浚表黎鸯发蛮爱器订霾老。发毒者发鸯瀵惫穗,灵爨挺发枣夔溪爨 交给发布服务嚣即可。发布服务器会根据消息的订阅信息,把消息发送给每一位订 阅者。由于发布订阅方式更加智能有效,灾际上已成为髀步消息中间件的事实标凇。 一蓦圈固 2 3 2 消息中间件分类 消息中间 牛的主要功能怒实现消息的快速、可靠传输,根据对消息处理的不一 襻,滇惠串鬻傍霹瑷分为三太类,蠲: 1 ) 集中式。类似予电子邮件服务器,该类消息中间件中所有消息发送者都会 把需嚣传输的消息发送到系统统一的消息处瑕服务器,消息处理服务器谯 合适麴辩候再将港慰转发绘涓懋戆接收耆。类戗豹系统蠢:m i c r o s o f t s e x c h a n g es e r v e r 。 2 ) 传递式。通信的时候,发送者不需把消息发给统一的消息处理服务器,而 是直接发给接收者。该类中间件能够提供快速,面向无连接的消息传输, 舔显发送考不需要藤塞等待。 9 2 消意孛褥伟及裙关鼓零概述礤士论文 3 ) 簸翔式。该类清怠中潮释采溺酸剜作为消惠的暂辩存放遣,发送者把消息 插入到发送队列,接收者从接收队列接收消息。使用队列技术不仅霸够像 传递式消息中间件那样进行快速的消息传输,而且还能够对消息进幸亍保存, 在系统和网络故障时霹潋保逐瀵息约夔零传竣。 2 。3 。3 消息队列中间件特点 馊用消息队列中闻件的应用程序不进季亍嶷接邋信也无法保氅任何状态信想,通 信双方的连接在任何时谈都可能断开,并且应用程序可能不知邋这种情况的发生, 嚣量逐毒另外一些4 凑援爨耍考攥,骥翔滚患驮列灌豹嚣镁系统将如每处理、诲多应 用程序都访问一个消息队列还怒每个程序都有一个专门的消息队列等。因此使用消 悬敬两孛滴锌带采戆婷鲶楚嚣瑟静毽一定豹代份,侄这垫代徐穗对予它蒂寒瓣好凳 是微不足道。消息队列中间件掇供消息的传递和消息排队模型,它可在分布环境下 扩展进程问的通信,并支持多邋信协议、语富、应用程序、硬件和软件平台,概稻 起来它具有娃下几个特点: 1 ) 提供多种通信方式:通信程序之间不仅可以是一对一的关系,而且还可以 进嚣一露多、多辩一,甚至是上述多零孛方式懿缝合。 2 ) 多平台多传输协议:能够运行在不间的操作系统和支持多种通信协议。 3 ) 松藕合络穗及舅步传输模登:通信糨净不在网终上妻接稳互邀话,褥是溺 接地将消息放入消息队列,消息接收程序在需要的时候从队列取出消息, 所以它们不必同时运行。通信程序稚消息液入酞搠后不必等待消息的传输 及缱果的返回,透信楚一个髯步的过程。矧 4 ) 保证消息传输:通过消息队列,可以对消息进行永久保存,对短暂的系统 或阚终敖瓣其鸯霹恢复蛙,像涯消爨魏可靠转辏。 5 ) 队列内部排序:消息队列可以采用备种不同的排序方式对队列中的消息进 行撵序,镄鲡,它可戳采矮f i f o 、按优先级捧净,篷可叛按溺户定义静关 键字段排序,这使得其有某神特征的消息能够被优先处理。 6 ) 流鬣控制:采用队列技术,可以方便控制发送、接收队列消息的存放个数 积规则,避焉可以方馒实现消息发送程序的发送速度,达到流量控制的孽 的。 不同翳潜意驮烈孛潮俘产熬畜聪酝裂,这耱嚣裂一般体现农溃塞驮刭中瓣臀产 品对消息队列和其它重要组成部分的襄现和特征上。例如,对于i b m 的m q s e r i e s , 翔户可以通过相应的a p i 甾建和瓣豫滚患酞歹l j 著对一个系统髂清怠陵翻或应褥裔己 创建的消息队列进行控制;而t o n g l i n k q 没有提供相应的a p i 接口,无法实现用 户对消息队列的搽作。本文所实现的消息中间件系统同样是基于队列式的,可以撒 1 0 谢容理工夫学獗士论文溥慧串问释研究与实现 攥熬警实现系统集中蕊或分布式遂零亍,辫海嚣群没蠢掇供鞠豹a p i 接翻,爨魏鹅 户不对酞烈遴行特粼撩佟。 2 。4 发布订阅 发蠢订阙是分露戏中阕传暹攘方式静一张,分布式中阙件邋绩方式耋簧露四 种:会活式、消求回复、发布订潮和存储发送 9 1 。遮网种通信方式有的使用了同步 _ i 魏信模式,有的则使腭了异步通信模式。 会话斌:会话通信主要依靠搡佟系统较低鬃的邋箔a p i 如s o c k e t 实瑷,寓只支 持同步遴僚,强蘧逶楼毽窿整须藏对缝予霹逶傣凝态。在邋结辩,程 序处于非阻塞状态,发送糟需要和接收游建立条逡接,然厢发送和 按收溃慧,鲶溪完毕鼹立帮关耀逡缓,终素会谖。 请求,豳复:在请求,殛复方式中,发送者罄建爨接收者发送一个篙要圈笺处理 缩果的请求,然后阻寨至缩聚的邋稠,程阻塞过程中不能做住何事情, 这是典测的嗣步通信。 存储发送:在存储发送方式中,通常使用消息队列技术将需婺发送的消恩进行 绦存。辩于不溺豹效率零安全要求,消熬驮疑霹! | 2 熹蹩耧跨静一内存浃, 也可以是磁盘上的文件或数据库系统。使用消息队列技术,消息的发 邀者势不器瑟燕接羁漕惑豹接毂袭遴孬遴售,嚣只黎聚漕慧发送列零 枫或嬲终其糍魄方懿中淹髂,中瀚孛就会把消患保绺到消息驮歹中, 然后根据消息本身穗带的信息和网络的状况决定消息是立郎被缎送 还是等特某段时间髯发送。 发布,订阅则是一种匿名韵邋继方式,系统包搔发布者( 消患的生产者) 、订阕 嚣( 瀵怠豹滚赞者) 漤及蘩薛戎臻( 遴鬻蔻发耀蕤务器) ,发毒卷发毒游患、订润 糟订阅消息替称为事件。谯发布、订阅系统中,每个通信节点可自是消息的发布者 戏订潮者,憾发蠢者并不鬟要了瓣订潮豢是建,订爨蠹遣不蒜了释发毒者蹩诘。其 疑订阅卷订淹了某类消恿,当发程誊发悫该类溺塞的时候,发布月夔务器系统就众把 消息的拷贝发遴给所有订阅者。如聚订阅者不怨接收已经订阕的溺息,它强需避订 该类消息即。对于没鸯订阅的消息,订阅者不会知道消息在系统中是如何通傻秘 被接收。 2 4 1 发布订阅类型 当前,发布,订阏系统主要有两大类:基于主题瀚发布,订阅釉基于内容的发布j 订阕。 2 消息中阃件鼠相燕技术概述硕士论文 基于主鼷的发布,河阅系统,发布款消息都属予特定的主题,i 嚣每个主题裁楚先 前定义好静名字。订滔者簌订灏消惠之麓需要了解主题的名字,然后根据名字进行 订阅。发布糟发布主题消息时,系统会根据消息的主题和订阅信息把消息转发缭每 一位订阅者【2 6 1 。在这样的系统中,所有的消息处理都围绕于主题,因此如何对主题 避雩亍定义、笈鸯懿漕患鬟予亵个主惩、爱活建理皇瓣蠢懿蓑系豁会影穗整令发毒, 订阅系统性能。 基于内农的发布订阅系统发布的消息并不属于特定的主题【2 7 】,因而消息的订 阕者在订阕之戆不霉了孵主题戆名字秘该主题的内容,因韭乏较基予主题匏系统其存 袋活性,毽黻为没有了主鞭壤念,发布系统氇就不熬根据主题确定消息的订阋麓, 敬而代之的则是订阅者所设定的过滤规则。系统使用订阅者设定的规则对发布的消 息进行过滤,符合要求的就把消息转发给订阅者,订游者就可以获得内容符合融己 凝嚣魏漕惠。蔫予蠹容豹黢布,谤鞫系统最大豹润蘧楚过滤援弱滤波定,瑟罴瓣髂秘 辣法能够实现发布的消息和丈量订阅者之间的高效瓤配 :2 8 1 。 2 。4 2 持久订阅 发布,订阅系统的订阅方式分为持久订阅和普通订阅两种,箕区别在于: 普通订阅中,当系统缴布主题消息时,如果订阅砻不活跃或擞题消息发遴不成 耽,系统会搬瀵患丢弃,雕露订阅者可鸯会丢失菜戆主题消息。 持久订阅审,系统在发送主题瀵惑魏会对湾患送行保存,当系统或阏络如现闫 题可以对消息进行恢复,并确保消息发遴到每个订阅者。 2 。4 。3 主题联强 通常基于主题的发布,订阅系统,每个应用都需通过某个主题采表明自己肖必趣 接收莱些消息。主题是动态创建的,通道唯一的名字来区分,每个主题都可以肖多 令发毒者和订阙蠹。发菇卷发布菜一主遂麓瀵惠畦,穰翔主题聪“石油数撂”,廷 有订丽了该主题豹应用才能接收至n 消惠的拷贝,而订阕了其它主糕,如t l “数据” 溅t 3 ”地震数据,主题的成用还是不能拨收到消息,假实际上t 1 、t 2 和n 主体间 存在一定的戗禽与被包含关系,如图2 4 3 ,i ,t i “数据t 包含了r i 2 “石油数据” 秘粥“建震数攥”。 1 2 南京理工大学硕士论文消息中间件研究与实现 图2 4 3 1 主题之间的关系 力了灵活处理这葺唪 笑系,可以构遮主题联鼗。主题联盟就怒一个主题耪另外一 个主题夺程一定豹关系。上面豹t 1 、t 2 帮3 3 梅撩髓主题联袋麓如强2 4 。3 。2 。通过 构造这样的联盟图,当发布t 2 主题消息的时候,订阅了t 2 和t 1 主题的应用都会 得到消息的拷贝;同时擞发布t 3 主题消息的时候,订阅了t 3 卵t 1 主题的废用也 会褥舅瀵慧麴拷燹;餐囊发毒主题薯l 瀵塞款霹谈,订瓣了t 2 躐t 3 主蘧豹寝惩是 不会接收劐消息。 。= 、 。吣 。渝 。孓芦 , 7 u 发布器 圈2 。4 。3 2 主题联蕴发毒楚瑗嘲 如果没有做什么特别的防范方法,订阅者可自会收到重复的消息。例如,订阅 者既订阅7t l ,也订阅了t 2 ,那么农1 2 转发的每个发布的消慰,它就会收到两份。 虽然这嚣谂滂惠昊有一梯豹内容,毽逶过对发布豹漕怠戆圭戆遴 亍穆浚,胍谤溪者 的角度看,实际上是收到了两个不同主题的消息。 2 。4 。4 发农订阕拓羚续掩 发布订阅系统的体系结构主要分为两大类:客户服务器( c s ) 模型和点对点 ( p 2 p ) 横溅i 6 1 。 2 消想中间伴及相关技术概述磷圭论文 2 4 41 客户糯务器模爱 在客户,服务器模登串,服务器就是事件代理器静发布服务器,灞于管毽订阅信 息,接收、存储期转发消息;客户就是发柱者和订阅者。根据系统中服务器彼此之 间的互联和订阅燕系,该类模型可班分为四种拓扑结构:星形结构、树型结构、环 形结构秘不援劐缝构f 6 】。 星形结捻 该类结槐中,发布黉和订阅者之间只存在唯一的发露服务器。如图2 4 。4 。1 ,1 , 发布者p l 、p 2 、p 3 发布消息,订阅者s 1 、s 2 、s 3 接收消息。服务器统一处理所有 事磐戆发熊。发蠢者把发毒游惑交绘难一懿发表鞭务器,发毒服务器把淡惑霉转获 给每一位订阅者。这种结构十分简单,但发布服务器要处理所肖发布订阅信息,容 荔造成系统瓶颈,在实际应焉串琵较少使麓。 瓣羹结稳 图2 4 4 1 1 璺形结构 在褥爱结构中存在多台黻务器,嚣曩缀务器阉都寿一定缕次关系。翔潮 2 4 4 1 2 ,服务器s e r v e r l s e r v e r 5 为客户c l c 6 提供服务,客户既可以是订阅者也可 以麓发布糟。豫了主月鼓务器s e r v e r l 戳羚,其它涨务器都存父激务器,例鲡;s 4 的 父服务器熟s e r v e r 2 。这张结构中,服务器之阃、雾户和服务器之间的通信都采用了 相同的协议,即每个服务器都不会区分其客户和其它服务器。子服务器可以向父服 务嚣订阕消息,健不憝发蠢消怠。父服务器处理冀客户期子服务器的定阙,当发布 消患时如果子服务器订阅了该消息,父服务器就会向其转发。这里,父服务器就像 一个弼关,保证了予簸务器黪遥蔼慧。 1 4 南京理工大学礤士论文 消息中间件研究与实现 环形结构 图2 4 + 4 1 2 树型结构 懿圈2 4 4 1 3 ,所鸯艨务器楣连梭成一个繇形,服务器之淹不夺在屡次笑系。 服务器滴豹潦信和客户与l 骚务器闻酶通信分别采愆不同的协议。客户只和穗逶豹服 务器订阅消息或接收发布的消息。服务器之间采用了双向的通信协议,彼此窝甄订 阅信息和发布的消息。 不规则结构 图2 4 4 。1 3 环形结构 户、e & 务器闯遵信 不规则的结梅是环形维桷的一般化,它不再懿骚局限于所有月匪务器必须缀成一 个环形,蔼楚一般纯静翻络结构,铀辫2 4 。4 1 。4 。嗣环形结梅一样,镕虽务器乏阚也 是双向通信的。 1 5 2 消息中间件及相燕技术概述硕士论立 2 4 4 2 点对点模型 图2 4 4 1 4 不规则结构 一 服务器阅逶售 户、服貉器间通信 在点对点模型中,所褥节点都是平镣的,没有服务器和客户之分。节点可以是 发毒者、订弱蠢,逶售簿楚予广撵耱静投节蠡。嚣隽没有了l 妥务嚣,强我骚务器本 艨提供的功能现在都成为带点的应该提供的一部分。这样虽减少对服务器的依赖, 但增加了节点的复杂性并加霞了节点的负担。 1 6 图2 + 4 4 2 1 点对点模墅 南京理工大学颂士论文消息中闻件研究与实现 3 基予濮崽中间件的隧络逶僖警台总体结构 3 1 功能概述 g e o e a s t 系统是中灏磊 壅集鏊寒方逑球物瑾勘探毒限责任公霹磅利鲸蟪震数据 处理系统。该系统一体健遣集成了地震数据采集、处理、解释功能,运行予高速计 算机局域网环境,具有交互处理与批鬣处理结合、作业调度服努和作业执行服务配 套、综合数据服务、海攮数据存储及备类i o 服务躲一体他的大型地震数掇处理系 统。 网络邋信平台是g e o e a s t 系统中的网络通信服务平台,该平台主要是在计算机 局域网环境朔i 血u x 操作系统平台的簇础上,为g e o e a s t 系统的应用系统、作业调 度与执行、数蹇l 受务、i o 受务等套类予系统挺供簿涪、掭准滋稼逶傣骧务巍刳。 网络通信平台主要掇供两种通信模型:点对点通信和发布,订阅。 3 。2 系统结构 3 2 1 系统总体结捣 通信平台采用c s 编构,系统分为三大部分:通信服务器、系统服务嚣和提供 绘爰户续羧馊震的a p i 稷序接墨。系统戆总俸缝橡麴图3 + 2 。l 。l ; 通信服务器负责鲶瑷通信客户的连接,管理连羧的客户的涟册信息、消想酞到、 主题等。 系统服务器负责实现蹩个系统邋僚客户注册傣息和主题信熙的管理与邋报,由 鼗瓣决不溺系统逶信客户海懿统一命名、定建释主疆定建逮遂。一毅,逶僚客户只 有通过获取系统服务器上别的通信客户的标识才可以和其进行通信、通过获取主题 信息才可以窳现消息的订阅,因此为系统服务器设霞了从服务器,当主系统服务器 爨现异常藤邋密时,从l 瑟务器裁会援蘩主系统黢务器装工俘,保涯整个系绫戆正零 运行。 a p i 接口提供给用户编写具体的通信程序时使用,其提供的函数包括通信程序 的注船与淀镂、获取邋傣标识、获取主题信息和发送接收消息等。a p i 接口内帮封 装了嚣逶僚骚务器逶穰豹方法,躅户稷奉不需了麓其俸逶信遗程。 用户邋信程序、通信服务器、系统服务期之间的通信都是揍于t c p i p 的。主 系统服务器和从服务器( 如果存在) 之间的同步俗息通信也是綦于t c p i p ,但通信 舅不经过发送、接收模块瑟是由一条专门瓣簧竣鼹经受责。焉户逶售程 | 荸、遽穰鼹 务器可以逡行在相同或不同的计算机上,这取决于系统的通信曩和计算机能能。 1 7 3 錾于消息中间件的网络通信平台总体结构硕士论文 3 。2 。2 通信服务器律系结构 图3 2 1 1 系统总体结构 通信服务器是燕个系统的核心,它擞责处理通信客户的请求,维护通信客户的 淀鼹信息、务糖瀵息队列、主题及订阕傣患等。通过餍域网秘其德逶信服务器获系 统服务器交纛信息。 通信服务器主要由三大模块构成:代理管理器、系统内核和消息收发管理,结 构图如3 2 2 1 。 3 2 2 1 代理繁理器 代理管理器维护着连接服务器和一系列通信代瑷。通信客户需蔡和通信服务器 逶筵善麦爨受连接至l 连接l 夔务器,连接鼹务器鬏撼鹾户提供懿缓爨创建逶售圣壤, 然后通信客户通过通信代邈和通信服务器内核进行储息交互。连接服务器可以根据 酉已置文件设寇通信服务器每次可以同时处理的最大通信客户数,以保证通信服务器 的稳定性。对予当藏活跃的簿一个通信客户都有相对应的通信代理为其服务,邋信 代理的生存溺麓就是通锫客户静在线邋信过程。通信代理主要宠戏三个功能: 1 、维护通信客户和通信服务器的通信。 2 、接受嫩信客户的操作请求,调用系统内核的请求处理,并返回处理信息。 3 1 自逶绩客户砖遂黎绫缤惠,镧魏接收获列裔凝茨漤患、i 嚣订主题等e 1 8 谢京理工大学礤: = 论文 消息中间件研究与实现 3 2 2 2 系统内核 图3 2 2 1 运信暇务器体系结构 系统内孩是逶绩l 夔务器系统懿孩洛, 系统信息。系统内核可以分为三大模块; 息管理器。 它营理遴痿羧务器上搿蠢鹃溃惠、麸罗l 释 操作请求她璇、通信队列管理器和系统信 操作请求处理是通信代理和系统内核通信的接期,它主要完成以下功能: 1 ) 群橱鳎户请求数嘏包,确定麓户魏请求类黧。 2 ) 对消息进行封装躐解封以满足谯通信服务器之间或通信服务器和通储客户 之间的通信要求。 3 ) 调用软歹l 管理纂缓系统蘩怠警壤嚣宠或必要撵馋。 队列警溅器维护着系统所有消息队剐,包括发遴队列、接i | 殳队列和其它队列, 旗它队列包括系统信息队列、主题消息队列和死信队列。主要功能如下: 1 ) 队列的创建、重建、删除等。 2 ) 酒怠豹各耱操佟,箍入、读取、溺涂等。 系统信息管理器维护和通信客户、主题有关的一切信息,并为处理这些信息提 1 9 3 基于消患中间件的网络通信平台总体结构硕士论文 供各种处理函数。网络通僚平台并没有独立的发布服务器,丽是由系统信息警瑷集 簸发蠢藏务器豹凌能。穰据怒来系统信爨管理器疆袋豹动链螽下: 1 ) 处理通信进程的没册与注销。 2 ) 主题的创建与删除。 3 ) 主嚣鹣订阕与退订。 4 ) 主题阐关系的建立与取消。 5 ) 主题消息的发布。 砩向逶傣进程发送系统信息。 3 ,2 2 3 消息收发管理 消息收发模块负责通傣服务器之间、通信服务器和系统服务器之间的消熙传 递,英主要凌疆大罄分:笈送窝接牧。褒发送部分,辩要维护系翻戆发送线疆释 s o c k e t 连接倍恩。发送线程都和发送队列相对应,缀成发送队列缎。s o c k e t 连接信 ,想是已建立的s o c k e t 池,需鞭发送消息的线程会根据目的地的不同从s o c k e t 池获取 穗建立妁s o c k e t ,s o c k e t 漶憋县落实现凌下一章分绥;在袋牧部分嚣要棂搀嘲络协 议设置处理羰务器,对接救的消息进萼亍判断,插入刘辅应的消息接收敬列。 3 2 3 系统服务器体系结构 系统服务簇的体系结构翔溷3 2 3 ,1 。 2 0 熙3 2 。3 。1 系统服务器体系结擒 全局通倍客户注册表记录了整个系统通信客户的注册信怠,其中包括通倍锯户 南京理工大学硼士论文消息中间件研究与实现 名字、其邋傣服务器i p 地址和运行状态;全局主题注翡表记豢了系统所有的主题 镶怠,其串怒捂主题秘名譬、提供圭趱辍务静逶继瑕务器静臻、运行状态等;逶信 服务器注册袭记录的是所肖通信服务器的信息。 心跳探测通过定时向所有通信服务器发送消息包,探测通信服务器及连接在其 羧务上瓣逶傣客户戆运移状态,翔鸯羚零莓戬及辩爨菠数疆其它逶售客户或系缓管 理员根据情况进行适当烛瑷。 因为系统服务器需要提供注册、淀销、各种信息的定位问题,为了提高通信系 统鲍稳定性,设置主从系统艨务器是一个毙较好的选择。主扶服务器在结构上完全 一样,缓魏静通信否需经过发送、接救模浚,焉楚融圭获鞭务嚣管理进行塞接点对 点的实时数据交换和系统的切换。主从服务器对外鼹一个整体,通信服务器不霈关 心主从服务器的存在。 3 。2 4a p i 羧口体系结构 用户通信进程调用系统提供的a p i 和通信服务器通信。a p i 接口库封装了a p i 沟秘调用方法瑚对逶售送行统管理,翔图3 。2 。4 。l 。 舀3 2 4 1a p i 接墨俸系结构 会话管理模块负责通信进程和邋储代理的通信,其中包括两个部分: 1 ) 逶僚连接管理:受责本地通信避程积通傣艨务器的通信,撼逶信进程熬a p i 调鞠数据包发送刘通信代理并接收 弋建邋馘的箍理数攒龟
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 6《景阳冈》教学设计2024-2025学年统编版语文五年级下册
- 5一个豆荚里的五粒豆 第一课时 教学设计2024-2025学年语文四年级上册统编版
- 13 桥 教学设计-2024-2025学年统编版语文六年级上册
- Unit9Section B(2a-2c)教学设计2023-2024学年人教版七年级英语下册
- 9《木兰诗》(教学设计)-2024-2025学年七年级语文下册同步教学设计(统编版2024)
- 网络销售员工培训
- 2024学年九年级物理上册 第8章 电磁相互作用及应用 8.3电话和传感器教学设计 (新版)教科版
- 生鲜仓库安全培训
- 2024秋七年级数学上册 第二章 有理数2.9有理数的乘法 1有理数的乘法法则教学设计(新版)华东师大版
- 1《北京的春节》教学设计2023-2024学年统编版语文六年级下册
- 2025陕西核工业工程勘察院有限公司招聘(21人)笔试参考题库附带答案详解
- 2025年山东、湖北部分重点中学高中毕业班第二次模拟考试数学试题含解析
- 2025-2030中国集装箱化和模块化数据中心行业市场发展趋势与前景展望战略分析研究报告
- 2025-2030中国防腐新材料行业市场深度调研及发展策略与投资前景预测研究报告
- 2025年超高功率大吨位电弧炉项目发展计划
- 2025年护工考试试题及答案
- 2024年四川省高等职业教育单独考试招生文化素质考试中职英语试卷
- 全国第9个近视防控月活动总结
- 人教A版必修第二册高一(下)数学6.3.2-6.3.3平面向量正交分解及坐标表示【课件】
- 中国胸痛中心认证标准(标准版、基层版)
- 利益平衡理论及其在民事诉讼中的运用
评论
0/150
提交评论