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

(计算机应用技术专业论文)基于消息分类的消息中间件研究.pdf.pdf 免费下载

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

文档简介

曲阜师范大学博士硕士学位论文原创性说明 ( 在口划“ ) 本人郑重声明:此处所提交的博士口硕士囫论文基于消息分类的消 息中间件研究,是本人在导师指导下,在曲阜师范大学攻读博士口硕士 酵位期间独立进行研究工作所取得的成果。论文中除注明部分外不包含他 人已经发表或撰写的研究成果。对本文的研究工作做出重要贡献的个人和集 体,均已在文中已明确的方式注明。本声明的法律结果将完全由本人承担。 作者签名:丑丈嗣 日期:如局乡五 曲阜师范大学博士硕士学位论文使用授权书 ( 在口划“”) 基于消息分类的消息中间件研究系本人在曲阜师范大学攻读博士口 硕士囱学位期间,在导师指导下完成的博士口硕士囱学位论文。本论文的 研究成果归曲阜师范大学所有,本论文的研究内容不得以其他单位的名义发 表。本人完全了解曲阜师范大学关于保存、使用学位论文的规定,同意学校 保留并向有关部门送交论文的复印件和电子版本,允许论文被查阅和借阅。 本人授权曲阜师范大学,可以采用影印或其他复制手段保存论文,可以公开 发表论文的全部或部分内容。 作者签名:王支| 聊签名:蕊、 日期:文咖五 日期:fo 石于 皋于消息分类的消息中间件研究 摘要 企业的飞速发展对数据传输系统提出了多方交互传输、传输量大、实时性及安全性要 求高等新的需求。消息中间件在中间件中占有重要的地位,它为分布式网络计算环境中的 应用提供高效、可靠、平台无关的数据传输服务。本文分析了消息队列中间件和消息代理 中间件这两种不同的实现模式,总结了消息队列模式和消息代理模式的优缺点及各自的适 用范围,并在此基础上对应用间传输的消息根据其规模进行了分类。在实际系统应用中根 据消息规模和性能要求采用p u b s u b 、p t p 和混合通信模型多种通信方式相结合的方式, 提出了一种基于消息规模分类的消息中间件模型b s m b 。在消息传输时,b s m b 能够根据 具体的消息规模,采用最合适的实现模式和传递方法,使消息中间件在应用的过程中,其 高效、可靠和灵活性能得到了大大的提高。 在系统的设计过程中,学习和研究了传统消息中间件的基础知识和实现技术。通过理 论知识和实际应用的结合,分析了现有的消息中间件的优缺点,以及当前消息传输对中间 件提出的新需求,在原有消息中间件模型的基础之上提出了改进,并将一些改进的技术也 融入了b s m b 系统中,从而提高了消息传输高效性和可靠性。这些技术包括线程池、内存 池和可靠多播等。 关键词:消息中间件;消息代理模式;消息队列模式;混合模型 幕于消息分类的消息中间件研究 a b s t r a c t t h er a p i dd e v e l o p m e n to fe n t e r p r i s ep r o p o s e sn e wr e q u i r e m e n t sf o rd a t at r a n s m i s s i o ns u c h 雒s y s t e mm u l t i i n t e r a c t i v et r a n s m i s s i o n ,t r a n s m i s s i o nc a p a c i t y , r e a l - t i m ea n dh i 【g hs e c u r i t y m e s s a g i n gm i d d l e w a r ep l a y sa ni m p o r t a n tr o l ei nm i d d l e w a r e ,w h i c hp r o v i d e se f f i c i e n t ,r e l i a b l e , p l a t f o r m - i n d e p e n d e n td a t a t r a n s m i s s i o ns e r v i c e sf o r a p p l i c a t i o n s i nd i s t r i b u t e dn e t w o r k c o m p u t i n ge n v i r o n m e n t t h i sp a p e ra n a l y z e st h em e s s a g eq u e u em i d d l e w a r ea n dm e s s a g eb r o k e r m i d d l e w a r e ,s u m m a r i e st h ea d v a n t a g e s ,d i s a d v a n t a g e sa n dt h e i ra p p l i c a t i o ns c o p eo ft h et w o m o d e l sa b o v e t h e nw ea l s oc l a s s i f ym e s s a g e st r a n s f e r r e db e t w e e na p p l i c a t i o n sa c c o r d i n gt o t h e i r s c a l e s a c c o r d i n gt om e s s a g es c a l ea n dp e r f o r m a n c er e q u i r e m e n t ,t h i sp a p e ra d o p t s p u b s u b ,p t pa n dh y b r i dc o m m u n i c a t i o nm o d e lt op r o p o s eam e s s a g e - o r i e n t e dm i d d l e w a r e m o d e lb s m sb a s e do nm e s s a g e ss c a l ec l a s s i f i c a t i o ni n p r a c t i c a ls y s t e ma p p l i c a t i o n s i nt h e m e s s a g et r a n s m i s s i o n ,b s m bc a nu s et h em o s ts u i t a b l er e a l i z a t i o nm o d ea n dd e l i v e r ym e t h o d s t oi m p r o v em e s s a g i n gm i d d l e w a r e e f f i c i e n c y , r e l i a b i l i t ya n df l e x i b i l i t yi nt h ea p p l i c a t i o np r o c e s s i nt h es y s t e md e s i g n i n gp r o c e s s ,w ea l s o s t u d yb a s i ck n o w l e d g ea n di m p l e m e n t a t i o n t e c h n i q u eo ft r a d i t i o n a lm e s s a g i n gm i d d l e w a r e t h r o u g ht h ec o m b i n a t i o no ft h e o r e t i c a l k n o w l e d g ea n dp r a c t i c a la p p l i c a t i o n ,t h i sp a p e ra n a l y s e sa d v a n t a g e sa n dd i s a d v a n t a g e so ft h e e x i s t i n gm e s s a g i n gm i d d l e w a r ea n dn e wn e e d so fc u r r e n tm e s s a g et r a n s m i s s i o nf o rm i d d l e w a r e s ow ei m p r o v et h et r a d i t i o n a lm e s s a g em i d d l e w a r em o d e la n di n t r o d u c es o m eo fi m p r o v e d t e c h n i q u e si n t ot h eb s m bs y s t e m ,w h i c hi n c r e a s ee f f i c i e n c ya n dr e l i a b i l i t yo fm e s s a g e t r a n s m i s s i o n t h ei m p r o v e dt e c h n i q u e si n c l u d et h r e a dp o o l ,m e m o r yp o o l ,a n dr e l i a b l em u l t i c a s t , e t c m e s s a g e o r i e n t e dm i d d l e w a r e ;n e w sa g e n c ym o d e l ;m e s s a g eq u e u i n g m o d e ;h y b r i dm o d e l 基于消息分类的消息中间件研究 目录 第一章绪论1 1 1 弓i 占1 1 2 国内外研究现状1 1 2 1 m q s e r i e s 1 1 2 2 微软的m s m q 。2 1 2 3 东方通t o n g l i n k q 2 1 3 本文的主要工作3 1 4 论文的组织结构3 第二章消息中间件4 2 1 中间件4 2 1 1 中间件的分类4 2 1 2 中间件的功能5 2 2 消息中间件5 2 2 1 消息中间件的定义5 2 2 2 消息中间件功能6 2 2 3 消息中间件的特点。6 2 2 4 消息中间件与j m s 7 2 3 本章小结7 第三章j m s 技术研究8 3 1 什么是j m s 8 3 2j m s 应用程序的组成8 3 3j m s 消息模型9 3 3 1j m s 消息9 3 3 2 消息头1 0 3 3 3 消息属性1 1 3 3 4 消息体1 1 3 3 5 消息的同步异步接收1 1 3 4j m s 消息传输模式1 2 3 4 1 点对点模式1 2 3 4 2 发布订阅模式1 3 3 5j m s 接口1 5 3 5 1j m s 控制a p i 15 3 5 2j m s 消息a p i 1 6 基于消息分类的消息中间件研究 3 5 3j m s 异常a p i 1 7 3 5 4 本系统用到接口18 3 6 本章小结2 0 第四章基于消息规模分类的消息中间件模型b s m b 2 1 4 1 设计思想及功能概述2 1 4 2 软件的模型设计2 l 4 3 软件架构设计2 2 4 4 服务器端的设计2 3 4 5 客户端的设计2 4 4 6 目录服务中心的设计。2 4 4 7 消息规模判断器的设计。2 4 4 8 消息队列管理器的设计一2 5 4 8 1 消息队列的设计2 5 4 8 2 队列管理器的设计2 6 4 9 可靠性能提高相关设计2 7 4 9 1 可靠多播2 7 4 9 2 有界缓冲区的互斥访问2 8 4 1 0 本章小结2 8 第五章b s m b 系统的简单实现2 9 5 1 客户端与服务器的交互2 9 5 2 客户端。3 0 5 3 服务器端的实现3 3 5 3 1j n d i 服务器3 3 5 3 2 受管对象。3 5 5 3 3 线程池3 8 5 3 4 事件监听4 0 5 3 5 同志4 0 5 4 本章小结4 3 第六章总结和展望4 4 6 1 工作总结4 4 6 2 本文创新部分4 4 6 3 不足及展望。4 4 【参考文献】4 5 在校期间参加的科研项目及发表的学术论文4 7 致谢4 8 摹于消息分类的消息中间件研究 1 1 引言 第一章绪论弟一早珀t 匕 网络出现以前,计算机单机系统需要通过联机终端访问。伴随网络的出现有了c s 模 式,由此多个用户可共享服务器。在网络同新月异的今天,企业的计算环境由集中式发展 为分布式。该种情况下,c s 模式的弊端慢慢显露出来。在分布式环境下,企业i t 部门面 临着硬件平台不同性、网络环境异构性、多种应用模式并存等等一系列的问题。传统软件 所提供的功能不能满足这些要求。为了在分布式环境下提供通信服务的透明性以及实现分 布式环境下的复杂性、异构性的屏蔽,中间件应运而生。 消息中间件是中间件【l 】领域中的一个重要的分支。消息中间件利用高效可靠的传输机 制进行平台无关的数据交流并且可以用来进行分布式系统的集成。消息中间件能在不同平 台间通信,常常会被用来屏蔽掉各种平台及协议间的特性,实现应用程序之间的协同,进 而可以实现在分布式网络环境中的企业应用整合。消息中间件有着广阔的前景,在交通、 邮电、电子商务等行业中开始了广泛应用。 1 2 国内外研究现状 在1 9 8 4 年由b e l l 实验室研发出来了第一个中间件产品t u x e d o l 2 1 ,但是因为分布式 系统刚刚开始,所以t u x e d o 未得到广泛应用。伴随分布式系统的迅速发展,中间件也蓬 勃发展起来。 目前,b e a 、i b m 等消息中间件厂商占据了大规模的市场,一些开源的中间件如: j o r a m 、a c t i b e m q 、o p e r d m s 等也在市场上占据了一定的地位。1 9 9 9 年,i b m 推出了性 能优越的w e b s p h e r e 应用服务器,被多家银行和证券公司所采用,在大型分布式系统领域 得到了广泛的应用。b e a 研制的w e b l o g i c 也是应用在大型分布式系统中,在美国中间件 市场占有一半以上的份额。 国内,东方通、东大、金蝶、中创等中间件厂商也在迅速崛起。下面介绍几种代表性 的消息中间件产品:m i c r o s o f t ;的m s m q 3 1 、i b m 的m q s e r i e s t 4 - 5 1 、东方通t o n g l i n k q 6 】 等。 1 2 1m q s e r i e s m q s e r i e s 是个通信系统,他在各种广泛的硬件和软件平台之间提供确保的、异步的、 一次性数据发送。这些特性使得m q s e r i e s 成为应用程式问通信的最佳基础结构,并成为 一个正确的解决方案,不论这些应用程式是在同一台机器上运行还是在由一个或多个网络 分隔的不同机器上运行。 基于消息分类的消息中间件研究 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 、w e b 浏览器、j a v a 小应用程式和许多其他产品。 确保的传递能力反映为许多在m q s e f i e s 中内建的功能能确保不会因为基本系统或网 络结构故障而丢失数据。确保的传递能力使得m q s e r i e s 形成了关键通信系统的主干,并 被受托传递重要数据。在某些适当的场合也可提供你选择健壮性稍低的服务质量。例如, 可能在一些环境中,你会需要更快速的传递,而对可信传递方面强调较少。 m q s e r i e s 中的异步处理支持是指在发送和接收应用程式之间的数据交换是和时间无 关的。这允许发送和接收应用程式相互分离,这样发送方就能继续处理,而不必等待接收 方确认其已接收到数据。实际上,在发送数据时目标应用程式甚至不必运行。同样,在传 送数据时,能不使用发送方和接收方之间的网络路径。一次性传递数据是个重要的考虑因 素,特别是在金融和商业应用程式中,你肯定不希望从一个帐户中移动大规模钱款至另一 帐户的请求重复发生。 i b m 的m q s e f i e s 系列受到消息规模大小的限制。此外,该系统昂贵的价格,影响了 我国企业单位采用该系统。 1 2 2 微软的m s m q m s m q 是运行在w i n d o w sn t 的服务,它提供运用程序之间的异步通讯。你可以在 n t 4o p t i o np a c k 中找到它。m s m q 的基本概念非常的简单:它可以被看成是运用程序之 间的e m a i l ,一个消息被打包到一个特定类型的容器中,并把这个消息保存到一个用与特别 作用的队列中直到收信者接受该消息为止。这些队列能够确保m s m q 的传送,而不管当 前网络连接的状况如何。 象所有的电子邮件一样,m s m q 消息有一个发送者和一个接收者,其中的接收者应该 能够访问队列。一个单一队列中的一个单独消息,它拥有多个接受者例如r e s p i n d e r 。而消 息的发送者通常是w e bs e r v e r ( i i s ) 。不足之处是:它要求n t 4 0 以上,m q l 0 是基于s q l 的,其性能低且不稳定。 1 2 3 东方通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 先进的队列、消息及路由等处理机制,使其能够 为应用系统提供高效、灵活的同步和异步传输处理、存储转发、消息路由等技术支持,确 保消息在任何情况下都能够安全、可靠的送达。通过使用t o n g l i n k q ,应用系统完全不 需要担心消息传递过程中可能遇到的各种障碍( 机器故障、网络故障等) 和异常。 2 幕于消息分类的消息中间件研究 t o n g l i n k q 提供点对点、发布订阅、路由、集群等多种方式的消息传递模式,极大方便 了企业应用的灵活构建,同时t o n g l l n k q 通过对核心、进程管理、队列管理等各层面的 优化和改进,能够更加充分地利用硬件和网络资源,极大地提高了传输效率,为各种不同 应用模式、不同系统规模、不同消息传输量的系统提供了强有力的后台支撑。 t o n g l i n k q 为系统的管理人员提供了丰富易用的管理工具,以满足不同的管理习惯和管 理需求。通过基于浏览器模式的可视化监控管理中心,用户可以在任何运行i e 的远端对系 统进行远程集中管理,包括系统的启动、停止、配置和监控,极大地方便了系统的维护和 管理。 。 1 3 本文的主要工作 论文主要完成以下工作: ( 1 ) 学习讨论了消息中间件的理论基础,包括定义、特点,分析了当i j i 各种消息中间 件的优缺点,学习并研究了j m s 。 ( 2 ) 通过分析消息中间件中各种通信模型的优缺点,在j m s 基础上,提出了一种改进 的混合通信模型b s m b 。介绍了他的系统架构,并详细阐述了该系统的设计与实现。b s m b 结合了点到点、发布订阅、混合通信模型这三中传输模式,在分布式系统下保证了消息 高效可靠的传输,同时还对线程池技术、多播技术、有界缓冲区互斥访问技术等给予了设 计和实现,提高了系统的整体性能。 1 4 论文的组织结构 本论文包括六章,具体安排如下: 第一章绪论。介绍了消息中间件研究的意义、背景和当前国内外有关消息中间件的 现状;列举了本文的主要工作。 第二章消息中间件。分别介绍了中间件和消息中间件的定义、功能、特点;介绍了 消息中间件与j m s 的关系。 第三章关于j m s 的技术深入研究。深入的研究了j m s 技术规范,包括j m s 的应用 程序组成,j m s 消息模型,j m s 接口,j m s 的两种消息传输模型。 第四章提出了基于消息规模分类的消息中间件模型b s m b 。介绍了b s m b 模型的架 构和一些核心部分的设计,研究了能够提高消息中间件高效性、可靠性的技术,并在此模 型上做了部分的改进。 第五章b s m b 的简单实现。具体介绍了该模型服务器端和客户端的设计及实现。 第六章结束语。对全文所做的的工作进行了总结和展望,指出了该系统中存在的不 足以及下一步的方向和目标。 3 基于消息分类的消息中间件研究 2 1 中间件 第二章消息中间件 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技 术之间共享资源【7 - 8 】。中间件位于客户机服务器的操作系统之上,管理计算机资源和网络 通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的 接口,但通过中间件,它们相互之间仍能交换信息。执行中间件的一个关键途径是信息传 递。通过中间件,应用程序可以工作于多平台或o s 环境。由于标准接口对于可移植性和 标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。对于应用软 件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相 对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件 升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了 企业在应用软件开发和维护中的重大投资。 中间件特点: ( 1 ) 满足大规模应用的需要: ( 2 ) 运行于多种硬件和o s 平台: ( 3 ) 支持分布式计算,提供跨网络、硬件和o s 平台的透明性应用或服务的交互功能; ( 4 ) 支持标准的协议; ( 5 ) 支持标准的接口。 2 1 1 中间件的分类 通用中间件的分类: ( 1 ) 企业服务总线( e s b :e n t e r p r i s es e r v i c eb u s ) :e s b 是一种开放的、基于标准的分 布式同步或异步信息传递中间件。通过x m l 、w e b 服务接口以及标准化基于规则的路由 选择文档等支持,e s b 为企业应用程序提供安全互用性。 ( 2 ) 事务处理( t p :t r a n s a c t i o np r o c e s s i n g ) 监控器:为发生在对象间的事务处理提供监 控功能,以确保操作成功实现。 ( 3 ) 分布式计算环境( d c e :d i s t r i b u t e dc o m p u t i n ge n v i r o n m e n t ) :指创建运行在不同平 台上的分布式应用程序所需的一组技术服务。 ( 4 ) 远程过程调用( r p c :r e m o t ep r o c e d u r ec a l l ) :指客户机向服务器发送关于运行某 程序的请求时所需的标准。 ( 5 ) 对象请求代理( o r b :o b j e c tr e q u e s tb r o k e o :为用户提供与其他分布式网络环境 中对象通信的接口。 ( 6 ) 数据库访问中间件( d a t a b a s e a c c e s sm i d d l e w a r e ) :支持用户访问各种操作系统或应 4 基十消息分类的消息中间件研究 用程序中的数据库。s q l 是该类中间件的其中一种。 ( 7 ) 信息传递( m e s s a g ep a s s i n g ) - 电子邮件系统是该类中间件的其中一种。 ( 8 ) 基于x m l 的中间件( x m l b a s e dm i d d l e w a r e ) :x m l 允许开发人员为实现在 i n t e m e t 中交换结构化信息而创建文档。 2 1 2 中间件的功能 中间件的功能1 9 】: 它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等等,在这 些基本的通讯平台之上,可构筑各种框架,为应用程序提供不同领域内的服务,如事务处 理监控器、分布数据访问、对象事务管理器o t m 等。平台为上层应用屏蔽了异构平台的 差异,而其上的框架又定义了相应领域内的应用的系统结构、标准的服务组件等,用户只 需告诉框架所关心的事件,然后提供处理这些事件的代码。当事件发生时,框架则会调用 用户的代码。用户代码不用调用框架,用户程序也不必关心框架结构、执行流程、对系统 级a p i 的调用等,所有这些由框架负责完成。因此,基于中间件开发的应用具有良好的可 扩充性、易管理性、高可用性和可移植性。 2 2 消息中间件 2 2 1 消息中间件的定义 消息中间件i l ( m e s s a g e o r i e n t e dm i d d l e w a r e ,m o m ) 禾i j 用高效可靠的消息传递机制 进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。与其它中间件技术 不同( 例如o r b l l 2 j 和r p c i l 3 1 ) ,消息中间件通过提供消息传递和消息排队模型,它可以在 分布式环境下扩展进程间的通信,适用于需要可靠的数据传送的分布式环境。采用消息中 间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。 发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再 将消息转发给接收者。消息中间件能在不同平台之间通信,它常被用来屏蔽掉各种平台及 协议之间的特性,实现应用程序之间的协同,其优点在于能够在客户和服务器之间提供同 步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这也是它比远程 过程调用更进一步的原因。 消息中间件最突出的特点就是提供数据传输的可靠性和高效性,主要解决分布式的系 统数据传输需求。以用户数据整合应用阶段而言,最重要的一点就是将数据从一点传输到 另一点。现在市场上已有相应的数据整合工具,这些数据整合工具中通常多包含这几部分 模块:数据抽取模块、数据加工模块、数据传输模块、数据加载模块,而其中数据传输模 块多由消息中间件担当,并在数据整合过程中发挥着不可替代的作用。随着s o a 应用时 幕于消息分类的消息中间件研究 代的临近,针对越来越多的应用系统趋向于准备采用s o a 技术,消息中间件产品也向此 技术路线靠拢,以满足越来越多的复杂业务集成过程中的数据整合需求,为s o a 技术的 真正应用做好底层数据交换的铺鹅。 2 2 2 消息中间件功能 当前,c o r b a 、d c o m 、r m i 等r p c 中间件技术已广泛应用于各个领域。但是面对 规模和复杂度都越来越高的分布式系统,这些技术也显示出其局限性: ( 1 ) 同步通信:客户发出调用后,必须等待服务对象完成处理并返回结果后才能继续 执行,否则客户端需要一直等待,这样就会大大降低客户端得效率。 ( 2 ) 客户和服务对象的生命周期紧密耦合:客户进程和服务对象进程都必须正常运行; 如果由于服务对象崩溃或者网络故障导致客户的请求不可达,客户会接收到异常,造成传 输过程中丢失数据,客户端操作失败。 ( 3 ) 点对点通信:客户的一次调用只发送给某个单独的目标对象,对于同时有多个目 标时,这种传输模式效率低下。 面向消息的中间件较好的解决了以上问题。消息中间件支持同步和异步两种转发模 式,当接收者没有激活时,发送者将消息发送给消息服务器,消息服务器将消息存放在若 干队列中,在合适的时候再将消息转发给接收者。这种模式下,发送和接收是异步的,发 送者无需等待;二者的生命周期未必相同:发送消息的时候接收者不一定运行,接收消息 的时候发送者也不一定运行;一对多通信:对于一个消息可以有多个接收者。消息中间件 为分布式软件系统间数据通信提供了简单、可靠的方式,使各模块问的耦合性大大降低。 2 2 3 消息中间件的特点 ( 1 ) 异步通信 通讯程序可在不同的时间运行,程序不在网络上直接相互通话,而是间接地将消息放 入消息队列,因为程序间没有直接的联系,所以他们不必同时运行。消息放入适当的队列 时,目标程序甚至根本不需要j 下在运行,即使目标程序在运行,也不意味着要立即处理该 消息。 ( 2 ) 多种通信方式 对应用程序的结构没有约束,在复杂的应用场合中,通讯程序之间不仅可以是一对一 的关系,还可以进行一对多和多对多方式,甚至是上述多种方式的组合。多种通讯方式的 构造并没有增加应用程序的复杂性。 ( 3 ) 可靠的消息发送 应用程序发送消息时,消息发送者和接收者不一定要求同时在线,消息中间件可以确 保消息接收者在掉线的情况下消息不会丢失。消息分为两种类型,非永久性( n o n p e r s i s t e n t ) 6 摹于消息分类的消息中问件研究 消息和永久性( p e r s i s t e n t ) 消息。非永久性消息存储在内存中,当系统突然掉电再重新启动 时,将不可恢复。如果用户对于消息的可靠性要求不高,比较侧重性能表现时,则可以采 用该种类型的消息。永久性消息是存储在硬盘上,并且记录操作日志,它具有高可靠性, 在网络和系统发生故障等情况下都能确保消息不丢失、不重复。 ( 4 ) 程序与网络复杂性相隔离 程序将消息放入消息队列或从消息队列中取出消息进行通讯,与此关联的全部活动, 比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消 息等是m o m 的任务,程序不直接与其他程序通话,并且他们不涉及网络通讯的复杂性。 ( 5 ) 消息路由服务 消息通过该服务可以经过最短路径( 或最低代价) 到达消息目的地。系统管理员只需要 定义每条路径的代价,消息中间件就可以为消息计算出最低代价的路径。而且,消息路由 服务可以避免单点失效,因此非常适合用于不可靠的网络环境中。 消息中间件减少了开发跨平台和网络协议软件的复杂性。它屏蔽了不同操作系统和网 络协议的具体细节,通过提供a p i 实现可以提高系统结构的灵活性以及实现异构平台的互 操作。所有应用之间的消息通信都通过消息服务器进行,新的应用程序可以不经过重新编 译和重新连接就可以部署到分布式系统中。 2 2 4 消息中间件与蹦s 消息中间件是一个联系上下层的中间层软件,在分布式系统中提供高效、可靠的跨平 台消息数据传输方式。随着分布式系统的不断扩大,以及各个领域内对消息传输需求的不 断增加,消息中间件的优越性表现的越来越明显。其异步传输性、底层硬件屏蔽性、消息 可持久化性、移植性等,使得消息中间件得到广大开发商的青睐。然而,各个厂商对自己 的产品都有自己的接口,导致应用程序只能用在某一种固定的消息中间件之上,不仅导致 移植性能差,而且各种消息中间件之间不能相互通信,这严重阻碍了消息中间件的发展。 j m s 是由s u n 公司和它的伙伴提出的,是一组消息中间件的接口。它规范了消息的 发送、接收等消息中间件的操作接口,规范了消息的格式,定义了消息中间件的各个模块 的功能语义,提出支持点到点和发布订阅两种模式。这样所有实现j m s 接口的消息中间 件就可以进行互操作,并且上层应用系统在开发好也能再选择用哪个消息中间件,因为不 同消息中间件向应用系统提供的接口是一样的。 _ 2 3 本章小结 本章详细阐述了中间件和消息中间件的定义、功能和特点,了解各消息中间件不同接 口致使分布式系统中存在通信障碍:介绍了j m s 与消息中间件的关系,了解j m s 对各消 息中间件提供规范接口,解决消息中间件跨平台、互操作等问题。 7 基于消息分类的消息中间件研究 3 1 什么是j m s 第三章j m s 技术研究 j m s 即j a v a 消息服务( j a v am e s s a g es e r v i c e ) 应用程序接口是一个j a v a 平台中关于面向 消息中间件的a p i ,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。 j a v a 消息服务是一个与具体平台无关的a p i ,绝大多数m o m 提供商都对j m s 提供支持。 是j a v a 平台上有关面向消息中间件的技术规范,它便于消息系统中的j a v a 应用程序进行 消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,翻译 为j a v a 消息服务。 目前j m s 已经是j 2 e e 平台的最重要的组成部分之一。基于j m s 的消息中间件克服了 接口规范和标准不统一带来的诸多问题,为大型分布式系统提供了跨平台的、高效的、安 全的消息通信方式。消息的中间件产品不再只运行在其专一的软件环境和硬件平台下,基 于消息中间件的应用程序也可以进行移植,互不相同的消息中间件可以互相访问,灵活性 大大增加。目前,j m s 消息中间件已经大规模运用在分布式系统软件集成、不同平台下应 用程序的通信服务、大规模重要数据的数据同步、信息的数字化网络化等各方面。通过j m s 技术,使分布式软件的各孤立的部分变得互相联系起来,使得组件的移植、数据的一致性、 数据的备份、数据信息的可靠传输都不再是难题。 注意,j m s 本身不是消息服务,它还必须有一个可供连接的消息服务器,在本文中所 指的j m s 提供者是指底层的消息服务器和其j m s 接口。j m s 只是接口,并没有给予实现, 实现j m s 接口的消息中间件称为j m sp r o v i d e r ,i l i n k 实现了j m s 接口,用户可以通过使 用j m s 接口,在i l i n k 中进行j m s 编程。 3 2j m s 应用程序的组成【1 4 j j m s 应用程序主要组成包括j m s 客户机、消息、j m s 提供者和受管对象,其中受管 对象包括连接工厂( c o n n e c t i o n f a c t o r y ) 和目的地( d e s t i n a t i o n ) 。 ( 1 ) j m s 客户机:用来发送和接收消息的j a v a 语言程序。 ( 2 ) 消息:客户机之间所交换的信息。每个应用程序定义了信息的信息可以包含的类 型。 ( 3 ) j m s 提供者:实现了j m s 规范的消息系统。该系统还提供必须的用于管理和全方 位的功能。 ( 4 ) a d m i n i s t r a t o ro b j e c t s ( 受管对象) :是预先配置的j m s 对象,由系统管理员为使用 j m s 的客户端创建。 步骤: 1 查找连接工厂。发布订阅应用程序查找主题连接工厂,而点到点应用程序查找队 8 基于消息分类的消息中问件研究 列连接工厂。 2 创建连接。发布订阅应用程序需要创建一个主题连接,而点到点应用程序需要创 建一个队列连接。 3 使用连接创建一个会话。表示一个单线程的上下文,用于发送和接收消息。由于会 话是单线程的,所以消息是连续的,就是说消息是按照发送的顺序一个一个接收的。 4 目的查找。和连接工厂一样,管理员可以创建两种类型的目标,点对点模型的队列, 以及发布者订阅者模型的主题。 5 发送消息。 j m s 应用程序构成关系如图3 1 所示。 3 3j m s 消息模型 3 3 1j m s 消息 图3 1j m s 应用程序构成关系图 如图3 2 所示,j m s 消息由消息头( h e a d e r ) 、消息属性( p r o p e r t i e s ) 、消息体( b o d y ) - - 部分组成。 图3 - 2 消息组成图 ( 1 ) 消息头( h e a d e r ) j m s 消息头包含了许多字段,它们是消息发送后由j m s 提供者或 消息发送者产生,用来表示消息、设置优先权和失效时间等等,并且为消息确定路由。 ( 2 ) 消息属性:由消息发送者产生,用来添加删除消息头以外的附加信息。消息的属 性部分除了包括一些标准属性外,还提供了新的属性添加机制,使用该机制可以为应用程 序添加制定的属性。 ( 3 ) 消息体:这些消息体由消息发送者产生。 9 基于消息分类的消息中间件研究 3 3 2 消息头 头字段包含了客户端和提供者用来路由和识别消息的数据。表3 1 介绍了消息头字段 中各元素的功能和设置权。 表3 1 头字段介绍 h e a d e rf i e l d ss e tb yf u n c t i o n j m s d e s t i n a t i o ns e n d m e t h o d消息发往地 j m s d e l i v e r y m o d e s e n d m e t h o d传递模式,有两种模式:p e r s i s t e n 和 n o np e r s i s t e n t ,p e r s i s t e n t 表示该消 息一定要被送到目的地,否则会导致应用错 误。n o np e r s i s t e n t 表示偶然丢失该消息 是被允许的,这两种模式使开发者可以在消息 传递的可靠性和吞吐量之间找到平衡点。 j m s m e s s a g e i d s e n d m e t h o d消息进行唯一识别的标识。 j m s t i m e s t a m p s e n d m e t h o d一个消息被提交给j m sp r o v i d e r 到消息被发 出的时间。 j m s c o r r e l a t i o n l dc l i e n t用来连接到另外一个消息,典型的应用是在回 复消息中连接到原消息。 j m s r e p l y t o c l i e n t提供本消息回复消息的目的地址。 j

温馨提示

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

评论

0/150

提交评论