




已阅读5页,还剩89页未读, 继续免费阅读
(计算机应用技术专业论文)消息中间件客服协议设计与实现方法研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 段时阕以来,愈采愈多的项目不同穗度地提出了瀵怠孛闻俘的馒用需求, _ | 鬟及逐年来灌惠审阅律在软传舞发工程中需求的大面积增长,导致漓怠中间锌豹 开发愈来愈受到业界的重视、进而也受到了学术界的重视。消息中间件的实现方 式予差万别,而客服协议的设计实现始终嫩消息中间件实现中的重要环。客服 捺议瓣设诗壹搂影嫡孛溺 孛豹遮孬效率、安金莲浚及扩淡健与灵活瞧。本文试蚕 在这方面有所进展。 本文主要研究了两类协议,文本协议和二进制协议。 在文本协议豹设诗中,采燃了x m l 格式,这是由x m l 豹多方嚣傀点决定的。 x 随的优点主要瓴括一下见个穷谣:可读馁强、易于安域、自籀述穗黻及易予与 w e b 应用集成。另外x m l 文档农正确性验证方面也有了公开标准以及通用的验证工 具,这为协议的鼹确性验证提供了方便。本文制用x m l 格式设计并实现了一个消 惠孛麓锌熬客溅傍议,著详缨接逑了蛰议懿格式、竣谤瓣蓬程,势翻举7 足个游 息中间件中常见并其有代表性的例子。 x m l 格式的协议虽然集种种优点于一身,但也有因其优点而带来的缺点,而这 其实是文本格式蠡隽熬缺点。 麓二迸制格式院较起来,文本格式在描述漪样信息麴辩候显然霈簧菱多的字节 数,因此带来了诸多问题。遮魑问题包括:资源占用加火,处理效率降低,网络 流爨增大等,丽熙闯题会比二进制方式严熬好多倍,同时还出现了二逛制中不会 密蠛戆字符编羁奄字德集润嚣。遮一系列瓣趱郡是文本横式蠡砉囊弱露静。裂蟊 前为止尚没有峭现个公认的比较优秀的解决方案,可以将文本格式的优点保存, 将缺点去掉。w a p 领域提出的w b x m l 规范在邀方面迈出了蓬要的一步。 翳x 旺趣蕊将x m l 标签表承为萃字节整数蠖,簧标签壤分割为代礤窆阉和代码 页,为结构帮控镱标签定义了众局唯一的代硒常量,提出了二迸制x m l 的语法播 述,这一做法为掇高x m l 的效率作出了极大的贡献。随胼,m a r cg i r a r d o t 和n e e l s u n d a r e s a n 在w b x m l 的基础上作了进一步豹改进,将二邀制x 她中的结构信息和 内凑数据劳离嚣卷,霹鬻整数糖类鍪送行了绽码,莠测试7 改善看翡协滚毪疑。 如预料的一样,协议性能有了很大的改善。 :进制x m l 农性能上优予x 札是必然的,但两位作者并没有说明到底有哪些因 素影镌性能,戮及这些因素对健毙懿影畴饔多大,骞静么撵熬特点嚣麓遴铡x m l 摘要 设计适用的应用特点。这些问题不解决,这个设计就很难被普遍接受并应用。同 时两位作者的设计也与w b x m l 不再兼容。 本文在详细考虑常规应用的特点后对设计细节做了改动,使得设计更具有普适 性,尤其是在消息中间件中的应用。本文接着解决了设计与w b x $ , t l 的兼容问题, 使得这个设计能够与移动应用接口。随后本文对设计做了实现并进行了详尽的性 能测试,绘制了测试曲线,从曲线中总结出影响设计性能的两个关键因素一文档 大小和文档标签比例,对这两个因素是如何影响设计的性能进行了详细的分析。 最后本文提出了设计所适用的应用特点,为这个设计走向应用铺平了道路。 在所有工作都完成后,本文预测了这一设计的未来走向,即发展专门针对舭 文档特点的压缩算法。 关键词:x m l ,二进制x m l ,协议设计,消息中间件 a b s t a c t a b s t r a c t a st i m eg o e so n ,a ni n c r e a s i n gn u m b e ro fp r o j e c t su s et h em e s s a g eo r i e n t e d m i d d l e w a r e ( m o m ) p r o d u c t ,d e m a n do nm o mp r o d u c ts p r e a dw i d e l y c o n s e q u e n t l y , d e v e l o p i n go fm o mg e t st h er e c o g n i t i o n so f i tf i e l da n da c a d e m ed a yb yd a y 1 1 l ew a y o fm o mp r o d u c ti m p l e m e n t a t i o nv a r i e so n ef r o ma n o t h e r ,b u tt h ei m p l e m e n t a t i o no f c l i e n t - s e r v e r ( c s ) p r o t o c o li sa l w a y st h ei m p o r t a n tp a r t i nm o m d e s i g no fc s p r o t o c o ld i r e c t l ya f f e c t st h ee f f i c i e n c y , s e c u r i t y , s c a l a b i l i t ya n df l e x i b i l i t yo fm i d d l e w a r e t h i sp a p e ra t t e m p t st om a k es o m ep r o g r e s si nt h i sr e g a r d t i l i sp a p e rm a i n l yf o c u s e so nr e s e a r c ho ft h et w ok i n d so fp r o t o c o l s t e x tp r o t o c o l a n db i n a r yp r o t o c 0 1 n ed e s i g ni nt h i sp a p e ri sb a s e do nx m lf o r m a t w h i c hi sd e t e r m i n e db yt h e m e r i t so fx m lt h ea d v a n t a g e so fx m li n c l u d ef o l l o w i n ga s p e c t s :s t r o n g l yr e a d a b l e , e a s yi m p l e m e n t i n g , s e l fd e s c r i b i n ga n de a s yi n t e g r a t i n gw i t hw e ba p p l i c a t i o n v a l i d a t i o no fx m lh a ss o m ec o m m o no p e ns t a n d a r d sa n dc e r t i f i c a t i o nt o o l s ,w h i c h p r o v i d e ac o n v e n i e n tw a yo fp r o t o c o lv a l i d a t i o n t h i s p a p e rd e s i g n a n di m p l e m e n tt h ec s p r o t o c o l o fam e s s a g eo r i e n t e d m i d d l e w a t e ,d e s c r i b et h ed e t a i l e df o r m a to fp r o t o c o la n dt h ed e t a i l e dp r o c e s so fd e s i g n , l i s ts e v e r a lc o m n l o na n dt y p i c a le x a m p l e si nm e s s a g eo r i e n t e dm i d d l e w a r e a l t h o u g hx m l f o r m a th a sm a n ya d v a n t a g e s ,x m lh a s & a w b a c k st o o i nf a c t , t h e & a w b a c k so fx m la t et h ei n h e r e n td r a w b a c k so ft e x tf o r m a t t h ed r a w b a c k so r p r o b l e m so ft e x tf o r m a ti n c l u d e :i n e a s e dr e s o u r c e so c c u p a n c y , r e d u c e dp r o c e s s i n g e f f i c i e n c ya n di n c r e a s e dn e t w o r kt r a f f i c m e a n w h i l e t h e r e 呲m a n yp r o b l e m sn o tf o u n d i nb i n a r yf o r m a tb u tf o u n di nt e x tf o r m a t , s u c ha sc h a r a c t e re n c o d i n ga n dc h a r a c t e rs e t t h e s ep r o b l e m sa r ci n h e r e n t & a w b a c k so ft e x tf o r m a t u n t i ln o w , t h e r e sn og o o d s o l u t i o nf o rt h e s ep r o b l e m s ,w h i c hc a l ll e a v eo u tt h e & a w b a c k so ft e x tf o r m a ta n dk c 印 d o w nt h ea d v a n t a g e so fb i n a r yf o r m a t t h ew b x m l s p e c i f i c a t i o ni n a pf i e l dm a k e s a b i gp r o g r e s si nt h i sa s p e c t w b x m l s p e c i f i c a t i o n r e p l a c e s a x m l t a g w i t h as i n g l e b y t e i n t e g e r , p a r t i t i o n s t h e t a gv a l u e sw i t hc o d es p a c e sa n dc o d ep a g e s ,d e f i n e st h eg l o b a lo n l ys i n g l ev a l u ef o r s t r u c t u r ea n dc o n t r o lt a g s ,d e s c r i b e st h eg r a m m a ro ft h eb i n a r yx m l f o r m a t ,t h e s e m t e c h n i q u e sm a k eab i gc o n t r i b u t i o n st ox m l se f f i c i e n c y l a t e r , m a r cg i r a r d o ta n dn e e l s u n d a r e s a nm a k es o m ei m p r o v e m e n t so fp r o t o c o lb a s e do nw b x m l , t h e y s e p a r a t et h e c o n t e n ti n f o r m a t i o no fd o c u m e n tf r o mt h ed o c u m e n ts t r u c t u r e ,e n c o d et h ec o m m o n p r i m i t i v ed a t at y p e sa n dt e s tt h ep e r f o r m a n c eo fi m p r o v e dp r o t o c 0 1 a se x p e c t e d ,t h e p e r f o r m a n c eo fp r o t o c o la d v a n c e st r e m e n d o u s l y i ti sn e c e s s a r yt h a tb i n a r yx m li sb e t t e rt h a nx m lo nt h ep e r f o r m a n c e b u tt w o a u t h o r sd on o te x p l a i nt h ef a c t o r st h a tc o u l da f f e c tt h ep e r f o r m a n c e t h ed e g r e eo ft h e e f f e c ta n dt h ec h a r a c t e r i s t i c st h a ta r eu s e df o rb i n a r yx m l a p p l i c a t i o n t h ed e s i g nw i l l n o tb ea c c e p t e da n da p p l i e dw i d e l yi ft h e s ep r o b l e m sa r en o tr e s o l v e d m e a n w h i l e ,t h e d e s i g nb yt w oa u t h o r sw i l ln o tb ec o m p a t i b l ew i t hw b x m l t h i sp a p e rm a k e sc h a n g e so nt h ed e s i g nd e t a i l sc o n s i d e r i n gt h ec h a r a c t e r i s t i co f g e n e r a la p p l i c a t i o n ,w h i c hm a k e st h ed e s i g nm u c hm o r eu n i v e r s a la n da p p l i c a b l e , e s p e c i a l l yi nt h ea p p l i c a t i o no fm o m f o l l o w i n g ,t h ep a p e rr e s o l v e st h ec o m p a t i b i l i t y o fd e s i g na n dw b x m l , w h i c hm a k e st h ed e s i g nc o m p a t i b l ew i t hm o b i l ea p p l i c a t i o n a f t e rt h a t ,t h ep a p e rm a k e st h ei m p l e m e n t a t i o no fd e s i g na n ds t r i c tp e r f o r m a n c et e s t i n g , d r a w st h et e s t i n gc u r v ef r o mw h i c hi ts u m su pt h et w oc r i t i c a lf a c t o r i e st h a tc o u l da f f e c t t h ep e r f o r m a n c e t h es i z eo fd o ea n dt h et a gp r o p o r t i o ni nd o e , a n dm a k e sd e t a i l e d a n a l y s i so nh o wt h e s et w of a c t o r sw i l la f f e c tt h ep e r f o r m a n c eo fd e s i g n a tl a s t ,t h i s p a p e rb r i n g sf o r w a r dt h ea p p l i c a t i o nc h a r a c t e r i s t i cf o rd e s i g nw h i c hm a k e sp r o g r e s sf o r t h i sd e s i g na p p l i c a t i o n a f t e ra l lo ft h ew o r k s ,t h i sp a p e rd e s c r i b et h ef u t u r eo ft h i sd e s i g n ,t h a ti s d e v e l o p i n gx m l o r i e n t e dc o m p r e s s i o n a l g o r i t h m s k e yw o r d s :x m l , w b x m lp r o t o c o ld e s i g n ,m e s s a g eo r i e n t e dm i d d l e w a r e l v 图表髓录 图表豳录 图2 1 消患队列模型 圈2 _ 2 订阕发布模墼1 0 图2 - 3j m s 通信模型1 1 图2 - 4j m s 应用程序逻辑1 3 墅2 - 53 m s 囊要蠖叠关系 1 4 图2 - 6j m s 公共对象关系。1 4 图 7 标记化文档状态图( 该图来自予w b x m l 规范) 2 6 图2 8i n l i n e 型字符串撂式 嚣争9 串表字笱牵亏l 蔼褥式 图3 - 1m o m x 客服交互圈3 7 图3 - 2p m s g 实现框架。 强3 - 3h n s g 容器类类溪 图3 - 4h n s g h a n d l e r 类圈4 6 图3 - 5h n s g h a n d l e r 处理流程图。4 6 图3 - 6s e n d e r 类图舶 窝3 - 7r e c e i v e r 类图 图3 _ 8r e c e i v e r 状态图4 7 图4 1b s a x 解析器p a r s i n gc o c u m e n t 流程 鬻扣2b s a x 簿羲器r e a d _ e l e m e n t 浚獠 图4 _ 3b s a x 解析器r e a da t t r i b u t e s 流程 6 1 图4 _ 4b s a x 解析器r e a d _ c o n t e n t 流稷6 3 隧4 _ 5t o k e n i z e rp a r s e 滤程 霞4 6t o k e n i z e rc o n t e n t t o b y t e s 流程 图 7t o k e n i z e re l e m e n t t o b y t e s 流程6 5 图4 - 8t o k e n i z i n g 流程, 强争l 苓弱丈夺文档经溪辩蓠统专 图争2 不同大小文档处理时间比值( 嗣豳5 - 1 对应) 7 3 图5 _ 3 不同标签比例文档的处理时间对比7 4 v m 图表目录 表2 - 1 数据类型2 3 表2 2 解析器状态2 6 表2 3 标记格式2 7 表2 - 4 全局标记3 1 表2 5t a g 代码空间3 2 表2 6 示例编码注释3 3 表4 - i 全局标记5 3 表4 - 2 标签代码空间5 5 表4 - 3 属性代码空间5 5 表4 - 4b p m s g 编码注释5 5 表4 5 标签代码空间5 8 表4 - 6 属性代码空间5 8 表5 - ib p m s g 压缩于g z i p 压缩对比7 1 表5 22 0 一5 0 曲线段上的文档大小7 5 表5 36 0 一9 5 曲线段上的文档大小7 5 表7 - ib p m s g 编码注释8 3 i x 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 日期:z 。年二月孑日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:导师签名: 日期:从占年胡妒 学 哔 第一章引言 1 1 研究动机 第一章、引言 本课题研究起源于作者参与的m o m x 消息中间件1 1 】项目,作者在此项目中负责 设计实现客服协议和客户端。在设计实现的过程中,作者参考了众多设计后先选 择了x m l 格式设计协议,随后完成实现后发现协议的性能并不理想,又参考 w b x m l 2 规范和其他一些文章中的设计思想对协议作了大幅改进。经过反反复复 多次的实现与测试后,中间件客服协议的设计终于告一段落。 中间件客服协议的设计虽然完成了,但却引起了作者深入研究协议设计中各个 细节的兴趣。而这正好成了本文的开端。应该说,本文的研究动机有两个,一个 是消息中间件技术的研究,一个是协议设计的研究。 1 1 1 消息中间件研究 一段时间以来,愈来愈多的项目不同程度地提出了消息中间件的使用需求, 以及近年来消息中间件在软件开发工程中需求的大面积增长,导致消息中间件的 开发愈来愈收到业界的重视、进而也受到了学术界的重视。 消息中间件受到重视并不是偶然的。一直以来,软件开发都契而不舍地朝着松 散耦合方向发展 3 1 。从早期结构化、模块化编程的提出,到后来的面向对象、构件 编程【4 】,近年来s o a 5 1 、a o p 6 等新名词如潮水般涌出。o m g 组织在c o r b a 方面 出色的工作让中间件概念广为流传,而推动这股潮流的动力无疑是软件开发的松 耦合化,中间件尤其是消息中间件以其本身的特点顺理成章的受到了重视。 中间件的出现并不是突然的。中间件也不是凭空产生的。以消息中间件而论, 顾名思义,它是用来传递消息的。而早期t c p i p 协议川以及众多网络应用协议的 提出,无不通过定义消息使得异构网络环境得以相互协调工作。众多网络协议便 是消息中间件一个实实在在有迹可寻的例子。还有x m l 的大行其道,几乎被魔法 化,也只是因为它定义了一种异构环境便于交换信息的规范。通过消息实现异构 交互是实现软件松耦合化迄今为止找到的最为合适且行之有效的方法,而消息中 间件正是这种方法的实现。还不止如此,消息中间件还使得脆弱网络环境下消息 的传递变得永久可靠。使得应用系统的开发不必担心网络环境的不稳定,将精力 集中到业务逻辑上去。 电子科技大学硕士学位论文 中间件自出现以来便快速成长,种类繁多,但迄今为止,国际上仍然没有一个 对中间件的准确定义,所以对中间件分类也无统一标准。业已被公认为中间件的 主要有一下几种嘲:r p c 调用中间件、对象中间件、数据访问中间件、交易中间件、 消息中间件。其中,消息中间件的需求增长最快。现有的消息中间件产品分为商 用产品和开源产品。商用中间件有i b m 、b e a 、东方通等公司的产品1 9 1 。开源中间 件也有相当数量,比较重要的有j o r a m 、o p e n q u e u e 、m o m 4 j 、o p e n j m s 、x m l b l a s t e r 几种,以及一些开源的应用服务器。 商业中间件功能复杂,性能优秀,但价格极其昂贵,一般中小型开发难以企及, 多数放弃中间件寻求其他解决方案,或者使用开源中间件。开源中间件中比较优 秀的为j o r a m l l o l 和x m l b l a s t e r t l l l ,功能也都比较齐全,一般中小型应用可以满足 要求。开源中间件的缺点也比较明显。一般文档都非常少,而且而且大多写的不 全面,很难使用,同时在性能与效率方面也不尽人意,大多数都在重复传统方式。 所以,中间件尤其是消息中间件的研究变得非常必要,这主要体现在一下几个 方面: 第一、中小型项目的常规需求。一般中小型项目的消息传输需求多数功能单一, 但需要很大的可配置空间。自主开发文档齐全、使用方便、可灵活配置的中间件 非常必要。 第二、消息中间件的市场前景广阔。中间件市场的快速发展是有目共睹的。但 这并不代表已经有了很多优秀的产品。中间件产业仍然是一个朝阳产业。尽管我 们的研究开发暂时无法与商用产品抗衡。但越早涉入就能越早获得机会,而不是 等机会出现的时候才去“迎头赶上”,我们国家软件产业在追赶这条路上走的太久 了,但至今仍然与西方国家差距甚远,甚至有更远的迹象。另辟新径,在新生领 域中奋勇拼搏,或者会是杀敌的捷径。 第三、技术基础的积累是生存与发展的关键因素,也是获得市场机遇的重要砝 码。中间件技术的研究与开发使我们的技术积累更为雄厚,为以后的进一步发展 创造了更多的机遇。中间件置身于操作系统于应用程序之间,既关心基础理论的 研究,又延伸至应用技术的的发展。中间件技术的研究与开发意义重大。 1 1 2 协议设计研究 协议设计研究是本文的主题,设计出高效率的协议是本文追求的目标。 应该说,协议的设计是一个古老的话题了。自从人类诞生以来,协议的生命便 已经开始了。广义的讲,任何人类的交流手段都可以归结为一种协议。比如人类 2 第一章g 言 熬谖富,宅是入类羧瑷交流弱羧重要懿手段。两语言零舞其备7 穆议掰其备瓣掰 有特点。语言有词汇、有如协议中的各个元豢,语言有匈法或语法、宥如协议的 结构组织方式,谮言有章法以及文法、它聪像协议设计的思想。至此,协议的概 念也越来越渍耀了,任 毫实体之霆交流豹零羧郡可敬称为捺议。 自从计算机发明以来,尤其是网络的广泛应用,协议盼作用越来越踅要,任何 网络间两个实体谶行交互无不通过协议进彳亍,t c p i p 协议的出现使得网络上数以 万识的不同操作系统以及硬件之间可以很方便的交换信慰,w w w 以及h t t p 协 议静发明更将瓣络带人了一令余薪翡整器,邋年来x 醅l 鹃密现又一次诖互联弼激 动不已。可以看剐,每一次互联网发生巨变的时刻,总会有网络协议的身影出现。 这一切说明,协议的重要性再怎么强调也不过分。 舆钵翼现实瓣系统。客羧镑议是孛阕转戆一个重要缀袋部势,它戆效率麦接 影响中间件的效率,研究高效率的协议交的j 常必要。 1 。2 项目背景 在实验室的众多项目中,有相当一部分都提出了使用中间件尤其是消息中间 件的需求,并且作者曾看到几个项目都要求使用消息中阀件,但是商业中间件价 格器爨,不埂蠖掰,最爱均慕溺了一些秀源巾闼俘。秀滋孛闼馋捷髑懿耋菲零复 杂,接口文档不念面也不清晰,而且几乎清色是国外产品,中文支持欠佳。 考虑到日常工作中项目的需要,实验黧领导结合实际情况,提出自主开发满 足宓骏室日常工作需要,灵滔性、可扩展性强的消息中阕件。并要求程个别关键 部分蠢所突酸。 本文来源于此次作者参匈的实验室m o m x 消息中间件项目。 1 。3 磷究内容 本文主要研究消息中间件中客服协议的设计与实现。包括文本格式的协议设计 研究、二进制格式的协议设计研究、二者之间的互操作以及二者的性能。 本文将一些传统菝术骞撬络合,给蒋统豹协滚设诗淀入懿薪鲍设计模式。本文 设计的协议格式既具备了文本协议易于设计、易于实现的特点,同时又具备了二 进制协议的高效攀。 零文兹按议设谤磺究虽然寒鑫予溃悫串麓终黪莰诗掰究,毽设诗熬结果具有普 3 电子科技大学硕士学位论文 逶蛙,这焱本文嚣瑟鸯燹多戆耀述。 1 4 文章组织 本繁麓要套绍本文备令章节静绦织与疼客,是捧蠹容谤参考吴律章磐。 第一鬻弓| 言 引言主要介绍本文的研究动机、项目背景、研究内容以及本节一一文章组织 结擒。 象= 牵相关鼓寒 本章详细介绍了与本文相关的几种技术,包括消息中间件技术、x m l 技术、 w b x m l 规范以及协议设计。下面分别进行说明: 1 。溪悫孛窝终技零 消息中间件是目前市场上一类煎鼹的软件,本节着重介绍了中间件及消息中 间件的概念,中闻件及消息中间件的发展,消息中间件的作用,消息中间件的主 要特征,游惑孛阕传的熹要逶售模鍪,j m s 消息虽务甄范,羧螽分绥了港纛巾瓣 件与本文的关系。 2 x m l 技术 x m l 怒近年来一个薪兴的信息交互格式,它具有许多突破传统的优点。本节 着重会绍了x m l 懿窭瑗,x m l 豹黪赢,x m l 文穗的格式,x m l 的饶缺煮,x m l 的两类解析器,最后介绍了x m l 技术与本文的关系。 3 w b x m l 规范 w b x m l 趣蓬跫w a p 矮域梵了勰决x m l 效率阕题嚣撵爨夔将x m l 墨遴裁 化静一个方案,这个规范是本文设计的基础,本文主体部分大多数的设计都与此 规范有关。 因为这个规范在实际中除w a p 领域於并不常餍,所以本文对此规范傲了大嘱 内容静奔缓,将筑范豹各个设诗缨繁包括每令字段嚣含义,辩娩范懿语法语义进 行了详细的介绍。这里弓i 用了大篇w b x m l 规范驻的内容,很多地方甚至巍接翻 译w b x m l 规范。为了不过于增加篇幅,对规范中对本文设计方法影响不大的部 分没寿终太多戆奔绍。簸爱举了一令铡予寒说鼹魏薅爱爨爨藏,魏镬子弱撵寒源 于规范文耥。 4 协议设计 协议设计著菲一门技术,但作者将蝗专门谗为一节,主要怒为了突出本文瓣圭 4 第一章引言 题。 本节首先对协议设计进行了概括性的谈论,接着回顾了过去几十年间各个领域 的人设计各类协议的一般方法,并从中总结出协议设计的一般策略,随后谈论了 本文在协议设计方面所作的工作。 第三章文本协议p m s 曲设计 本文主要研究了两种协议设计,文本协议和二进制协议。本节主要介绍文本 协议设计的策略、方案,具体的设计细节,包括格式的选择,每个部分的意义, 如何实现协议解析器等,并讨论了文本协议的优点与缺陷,同时从中间件的设计 中选了几个实例说明文本协议的设计 第四章二进翻协议c b p n 惦曲设计 二进制协议的设计研究是本文最核心的部分。 本章研究了二进制协议设计的方方面面,包括二进制协议模型,解析器接口 定义,解析器实现方法,二进制协议与文本协议之间的转换,二迸制协议的代码 空间,二进制协议的使用举例,协议解析器接口使用方法等。 第五章性能灏试s 分析 本章着重讨论协议的性能问题。本章实际研究了二进制协议和文本协议之间 的性能对比,绘制了性能对比曲线,详细分析了曲线中所显示问题,并与理论预 测进行比较,解释了部分与理论预测不合的地方。 本章同时申明了二进制协议与文本协议各自的使用场合,并量化了二进制协 议的使用条件,提出了一些使用二进制协议的建议。 第六章总结 本章总结全文。 5 电子科技大学硕士学位论文 2 1 消息中间件( m o m ) 第二章、相关技术 2 1 1 中间件的概念 中间件( m i d d l e w a r e ) 是一种独立的系统软件或服务程序,分布式应用软件借 助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之 上,管理计算资源和网络通信。中间件( m i d d l e w a r e ) 是基础软件的一大类,属于 可复用软件的范畴。顾名恩义,中间件处于操作系统软件与用户的应用软件的中 间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处 于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集 成复杂的应用软件【1 2 l 。 2 1 2 中间件的历史 最早具有中间件技术思想及功能的软件是m m 的c i c s 1 3 1 ,但由于c i c s 不是 分布式环境的产物,因此人们一般把t u x e d o l l 4 1 作为第一个严格意义上的中间件产 品。t u x e d o 是1 9 8 4 年在当时属于a t & t 的贝尔实验室开发完成的,但由于分布式 处理当时并没有在商业应用上获得像今天一样的成功,t u x e d o 在很长一段时期里 只是实验室产品,后来被n o v e h 收购,在经过n o v d l 并不成功的商业推广之后, 1 9 9 5 年被现在的b e a 公司收购。尽管中间件的概念很早就已经产生,但中间件技 术的广泛运用却是在最近1 0 年之中。b e a 公司1 9 9 5 年成立后收购t u x e d o 才成为 一个真正的中间件厂商,i b m 的中间件m q s e r i e s i 坷也是9 0 年代的产品,其它许 多中间件产品也都是最近几年才成熟起来。 2 1 3 中间件分类 中间件大致可分为六类【1 6 1 :终端仿真屏幕转换中间件、数据访问中间件、远程 过程调用中间件、消息中间件、交易中间件、对象中间件。 下面简单介绍其中几个: 远程过程调用 远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使 6 第二章相荚技术 躅袋p c 【1 霹来“远撩魏幸亍一令位予苓同惩缝农窿星懿遥羧,并置麸效巢上看帮撬行 本地调用相同。 消息的中阗钵 m o m 指豹怒蓥l 雳裹效可纛魏溃惠传递瓤毒l 进行平螽无关戆数摆交流,荠基予 数据通信来进行分布式系统的集成。通过掩供消息传递和消息排驮模型,它可在 分布环境下扩展谶程间的通俗,并支持多通讯协议、谬吉、应用程序、硬件和软 件警套。目前流杼静m o m 中潮件产品有i b m 的m o s e r i e s 、b e a 的m e s s a g e q 等。 澍象请求我瑗 随着对象技术与分布式计算技术的发展,两者相互绦合形成了分布对象计算, 并发展为当今软件技术的主流方向。1 9 9 0 年底,对象管理集团o m g 首次推出对 象繁瑾结麴o u a ( o 艟tm a n a g e m e n ta r c h i t e c t u r e ) ,辩象请求代联【甥( o b j e c t r e q u e s tb r o k e r ) 是这个模型的核心组件。它的作用在予键供一个通信框架,透明 地张异构的分布计算环境中传递对象请求。 事务处理戆糗 事务处毽j l 螽整( t r a n s a c t i o np r o c e s s i n gm o n i t o r s ) 鬣肇出现在大鬃橇上,秀葵 提供支持大规模攀务处理的可靠运行环境。随着分布计算技术的发展,分布应用 系统对大规模的攀务处理提出了需求,比如商业活动中大量的关键桊务处理。事 务鳃理整装爨予蠢户壤( c l i e n t ) 窝缀务凌( s e w e r ) 之瀚,透孬事务管理与貉调、 负载平衡、失败恢复等,以键高系统的整体性能。 2 1 4 消息中间件 1 。港怠孛阕锌瓣终蘑 消息中间粹燕要提供应用集成所必须的数据的递送、收集、翻译、过滤、映射 和路由等功能,屏蔽不同的硬件平台、操作系统、消息格式、通信协议之间的麓 异,提供应用刘成臻之闻豹岗效、便捷的邂信能力。游患孛阂件简化了应用之阋 静复杂交互。消患中闻俸最典鍪的应用环凌包括: 企业内部或企业之间多个复杂应用之间的通信; 多个应用采用不同的计算机语言编碍 设诤貔莰藏希望系统携褒惹缳长黪鬻,要求扩震魏蹇; 系统需要处理高吞吐嫩的信息; 多个应用使用的硬件平台、数据库、操作系统题异构的,有多个数据源; 存在老懿| 毽靛系统,凝系统嚣要与这些系统融会; 7 电子科技大学硕士学位论文 2 消息中间件的特征 消息中间件包含以下几个特征: 可靠高效的通信:消息中间件支持可靠的传输方式,确保“一次并且只有 一次”的递送。消息分为两种类型,非永久性消息和永久性消息。非永久 性消息存储在内存中,当系统突然掉电后,将不可恢复。永久性消息存储 在硬盘上,并且记录操作日志,它具有高可靠性,在网络和系统发生故障 等情况下都能确保消息不丢、不重。 具有数据递送和转换设旌:消息中间件的核心是一个独立的消息传递协议 层,实现真正的网络通讯。有专门的消息格式库定义控制消息和应用消息 的格式。对于单个的消息,可以根据消息的源、目的地、类型等定义多个 处理步骤,包括消息的格式转换,记录日志和定时传送等。 事务处理能力:消息中间件可以跟踪事务,通过把事务存储到硬盘上实现 网络故障时消息和系统状态的恢复。 不断完善的安全机制:消息中间件需要保证消息的机密性、完整性、发送 方、接收方的身份鉴别以及操作不可抵赖性。利用密钥、数字签名等措施, 可以帮助消息中间件保障消息传输、存储、访问的安全。 3 消息中间件通信模型【1 9 l 点对点模型 一个发送端将消息传给指定的一个或多个接收端。 其特点为: 收发双方不透明 通信双方在通信前需要知道对方的标识,这个标识可能是直接获得,或者通过 中间件查询得到。 专用信道通信。 这种点对点模式必须在通信双方建立专用的通信信道。 收发同步。 点对点模式的通信必须采用同步模式。 笔者认为此模型与消息中间件的设计宗旨不相符合,使用消息中间件的主要目 标是实现异构环境下分布式异步通信,使发送与接收方面相互透明,而这种点对 点模型不符合此目标。故本文不着重介绍此模型。 消息队列模型 消息队列模型如图2 1 所示。在消息队列模式中,消息发送到一个队列里,目的 8 第二章相关技术 缝羧在任霹辩候查看该酞鞠。溃感酞确炎钕运行霉缀鳋戆电子l 镣系统:俦输震 量得到保证,但你不知道收件人是否阅读剿报文。 其特点为: 逶过酞裂存镳转发 使用消息队捌,应用程序之闯不再需瑟建立专用的遴信信道,双方的通信都 通过消息队列进行。通信时,应用程序将消息放入消息队列,不管对方是否存在 或怒否准备好处骥这个消息,知道接受方取走这个消息慝,消息才会浅亡。这榉 豫逐胃班保证滚意尽可能懿零丢失。 无需专用避接 消息队列方式允许程序咒需与对方真接建立连接即硝发送和接收消息。程序 只须簿萃建将瀵惑发送绘溃惑驮嚣,蠹游褰敬魏受责游慧兹传递,对嫩矮程旁完全 透明。 异步通信 消息队列粟爝异步方式,为消息提供了一个安全的存储方式,特剃适用于不悬 素羧连接静痤瘸,翔移翡蔫声、发送方葳缓牧方逶程霹麓处子不活动状态静瘦嗣。 圈一 图2 - 1 消息队列模型 订阅发布模溅 谨烫发毒横黧妇錾2 - 2 瑗器。在发l 影铥潮模式孛,多今客户臻笈蠢溃惠,多 个裙户端订阅消息。发布消息的客户端只需要简单地将消息以主题方式发送出去, 由消息代理来负责将消息传递给所有订购该主题的订阅消息的客户端。发布订阅 棱戏蠢手更加镑戆有效,事爽上已成为游慰中闯俘的嚣藏式据难。 其特点为; 通过消息代理进行通倍 在发布订瓣模式中,客户端之间不再需要建立直接的专用的通信通道,它们 之鬻静逶绩都_ i 羲避溃意我理遴行,发鑫溥惫懿客声端将溪意簧递绘瀵惑霞瑾,麦 9 电子科技大学硕士学位论文 消息代理负责路由消息给相应的订阅消息的客户端。由于消息代理可以实现消息 的动态路由功能,因此,该方式能够提供较好的容错性能。 不须与对方直接建立连接 在发布订阅模式中,客户端无需与对方直接建立连接即可发送和接收消息, 客户端只需简单地将消息发送给消息代理,由消息代理负责消息的传递,对应用 程序完全透明。 多维空间上松耦合 发布订阅模式最大的优点是发布者和订阅者在多维空间上是松耦合的,这种 模式下,客户端和服务器不需要知道对方的地址和具体的数量,这就简化了应用的 配置,并且使组件更易重用。具体体现在: 1 ) 空间非耦合。发布者和订阅者不必相互知道。 时间非耦合。发布者和订阅者不必同时在线。 3 ) 数据流非耦合。发布订阅是异步模式。 消息中间件为企业提供数据传递已经有很多年了,但是消息中间件始终没有 一个统一的标准,导致消息中间件产品的实现和接口各异,使企业在选择产品时 很难做出选择。然而随着s u n 公司发布j a v a 消息服务( j a v am e s s a g es e r v i c e ) 规范 后,这种情况发生了变化。 图2 - 2 订阅发布模型 2 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论