




已阅读5页,还剩95页未读, 继续免费阅读
(计算机软件与理论专业论文)jms消息中间件的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 消息中间件是利用可靠高效的消息递送机制帮助分布式系统进行平台数据交 换的系统软件。消息中间件屏蔽了底层异构操作系统、网络平台、通讯协议和消 息格式的差异,为不同应用程序提供一致的通讯方式,减少了开发跨平台和网络 协议的应用程序的复杂性。但由于没有统一的规范和标准,消息中间件都是针对 特定的分布式系统使用特定的协议和接口,以至于基于消息中间件的应用不可移 植,不同的消息中间件也不能互操作,这大大阻碍了消息中间件的发展。j a v a 消 息服务( j a v am e s s a g es e r v i c e ,j m s ) 是s u n 公司提出的旨在统一各种消息中间件系 统接口的规范。j m s 定义了一套通用的接口和相关语义,提供了诸如持久化、验 证和事务的消息服务。j m s 不但屏蔽了操作系统和硬件的差异,还解决了异构消 息中间件之间互操作的难题。目前j m s 己被各大软件公司和开源组织所接受,成 为了工业界的事实标准。 本文在分析和研究消息中间件技术和j m s 规范的基础上,设计和实现了一个 符合j m s 规范的消息中间件系统n c e e j m s 。首先,本文讨论了中间件和消息中间 件的概念、分类和功能,讨论了消息中间件的特点以及常见消息中间件产品,接 着分析了j m s 规范体系,包括j m s 消息数据结构、j m s 消息传输模式、各种j m s a p i 、j m s 编程模型等。在研究了相关理论基础之上,本文提出了消息中间件系统 n c c e j m s 的体系结构,针对体系结构中的四部分网络通信接口、j n d i 服务器、消 息服务器和客户端分别进行了详细的设计和实现。作为消息服务系统,n c e e j m s 实现了基于t c p i p 协议的网络通信接口,提供了命名与目录服务( j n d i ) ,实现了 j m s 规范的标准a p i ,实现了点到点和发布订阅消息传递的模式,同时在消息服 务器端还实现了基于文件的消息持久化,实现了事件监听、流量控制、多线程管 理、消息过滤和日志功能,提高了服务器的质量。最后,对系统进行了测试,并 给出了消息中间件系统在8 6 3 项目“网络协作创作环境 中的应用。 关键词t消息中间件,j m s ,j n d i ,p t p ,p u b s u b ,流量控制 a b s t r a ( 玎 a b s t r a c t m e s s a g e - o r i e n t e dm i d d l e w a r ei sas y s t e ms o f t w a r ew h i c hu s e st h er e l i a b l ea n d e f f i c i e n tm e s s a g ed e l i v e r ym e c h a n i s m st oa s s i s tt h ed i s t r i b u t e ds y s t e mp l a t f o r mt o e x c h a n g ed a t a m e s s a g e o r i e n t e dm i d d l e w a r es h i e l d st h eu n d e r l y i n gh e t e r o g e n e o u s o p e r a t i n gs y s t e m s ,n e t w o r kp l a t f o r m ,c o m m u n i c a t i o np r o t o c o la n dt h ed i f f e r e n c e so f m e s s a g ef o r m a t ,a n dp r o v i d e sac o n s i s t e n tm e a n so fc o m m u n i c a t i o nf o rd i f f e r e n t a p p l i c a t i o n s ,a n dr e d u c e st h ec o m p l e x i t yo fd e v e l o p i n gt h ea p p l i c a t i o no fc r o s s - p l a t f o r m a n dn e t w o r kp r o t o c 0 1 h o w e v e r , b e c a u s et h e r ei sn ou n i f o r mn o r m sa n ds t a n d a r d s , m e s s a g e o r i e n t e dm i d d l e w a r ea r cd i r e c t e da tas p e c i f i cd i s 缸| b u 栅s y s t e mu s i n ga s p e c i f i cp r o t o c o la n di n t e r f a c e , s ot h a tm e s s a g e b a s e dm i d d l e w a r ea p p l i c a t i o n sc a l ln o t b et r a n s p l a n t e d ,a n dd i f f e r e n tm e s s a g e - o r i e n t e dm i d d l e w a r e 锄n o tb ei n t e r o p e r a b l e , w h i c hs i g n i f i c a n t l yh i n d e r st h ed e v d o p m e n to fm e s s a g e - o r i e n t e dm i d d l e w a r e j a v a m e s s a g es e r v i c e ( j m s ) a r cai n t e r f a c es p e c i f i c a t i o nf o rm e s s a g e - o r i e n t e dm i d d l e w a r e b a s e do nj a v al a n g u a g ep r o t o c o l ,a n dw a sc r e a t e db ys u nm i c r o s y s t e m s j m sd e f i n e sa c o m m o ns e to fi n t e r f a c e sa n dr e l a t e ds e m a n t i c s ,a n dp r o v i d e sm e s s a g es e r v i c e ss u c ha s p e r s i s t e n c e ,v e r i f i c a t i o na n da f f a i r s j m sn o to n l ys h i e l d st h eo p e r a t i n gs y s t e ma n d h a r d w a r ed i f f e r e n c e s ,b u ta l s or e s o l v e st h ep r o b l e mo fi n t e r o p e r a b i l i t yb e t w e e nt h e h e t e r o g e n e o u sm e s s a g e - o r i e n t e dm i d d l e w a r e a tp r e s e n t , j m sh a sb e e na c c e p t e db yt h e m a j o rs o f t w a r ec o m p a n i e sa n do p e ns o u c eo r g a n i z a t i o n s ,a n dh a sb e c o m et h ed ef a c t o s t a n d a r di nt h ei n d u s t r i a ls e c t o r b a s e do nt h e a n a l y s i sa n dr e s e a r c ho ft h em e s s a g e - o r i e n t e dm i d d l e w a r e t e c h n o l o g y a n dj m ss p e c i f i c a t i o n , t h i s p a p e rd e s i g n e da n di m p l e m e n t e da m e s s a g e - o r i e n t e dm i d d l e w a r es y s t e mn a m e dn c e e j m si nl i n ew i t hj m ss p e c i f i c a t i o n f i r s to fa l l ,t h i sp a p e rd i s c u s s e dt h em i d d l e w a r ea n dm e s s a g e - o r i e n t e dm i d d l e w a r e c o n c e p t s , c l a s s i f i c a t i o n sa n d f u n e t i o i l s , a n dd i s c u s s e dt h e c h a r a c t e r i s t i c so f m e s s a g e - o r i e n t e d m i d d l e w a r ea n ds o m ec o m m o n m e s s a g e - o r i e n t e dm i d d l e w a r e p r o d u c t s ,a n dt h e na n a l y z e dt h ej m ss p e c i f i c a t i o n , i n c l u d i n gj m sm e s s a g ed a t a s t r u c t u r e ,j m sm e s s a g et r a n s f e rm o d e , v a r i o u sj m s a p ia n dj m s p r o g r a m m i n gm o d e l a b s t r a c t a f t e rs t u d y i n gt h er e l e v a n tb a s i so ft h et h e o r y , t h i sp a p e rp r o p o s e dam e s s a g e - o r i e n t e d m i d d l e w a r e s y s t e ma r c h i t e c t u r e , a n ds e p a r a t e l yi n t r o d u c e d t h e d e s i g n a n d i m p l e m e n t a t i o no ft h ea r c h i t e c t u r e sf o u r - p a r tn e t w o r kc o m m u n i c a t i o ni n t e r f a c e ,j n d i s e r v e r , m e s s a g es e r v e ra n dt h ec l i e n ti nd e t a i l a sam e s s a g es e r v i c es y s t e m , n c c e j m s i m p l e m e n t e dn e t w o r kc o m m u n i c a t i o ni n t e r f a c eb a s e do nt c p i pp r o t o c o l ,a n dp r o v i d e d n a m i n ga n dd i r e c t o r ys e r v i c e s ( j n d i ) ,a n di m p l e m e n t e dt h ej m ss p e c i f i c a t i o ns t a n d a r d a p i , a n di m p l e m e n t e dt h ep o i n t - t o - p o i n ta n dp u b l i s h s u b s c r i bm e s s a g ed e l i v e r ym o d e l a tt h es a m et i m e ,m e s s a g es e r v e ra l s oi m p l e m e n t e df i l e b a s e dm e s s a g ep e r s i s t e n c e , e v e n tm o n i t o r i n gm e c h a n i s mc a s e ,f l o wc o n t r o l ,m u l t i - t h r e a dm a n a g e m e n t ,m e s s a g e f i l t e r i n ga n dl o g , p r o v i d i n gt h eq u a l i t yo ft h es e r v e r f i n a l l y , t h i sp a p e rt e s t e dt h e p e r f o r m a n c eo fs y s t e ma n di n t r o d u c e dt h em e s s a g em i d d l e w a r es y s t e mt h ea p p l i c a t i o n s o fi n t8 6 3p r o j e c t ”n e t w o r kc o l l a b o r a t i o nc r e a t i v ee n v i r o n m e n t 竹 k e y w o r d s : m e s s a g e - o r i e n t e dm i d d l e w a r e , j m s ,j n d i , p t p , p u b s u b ,f l o w c o n t r 0 1 m 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 签名:日期:年月日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:导师签名:幸 j 均导师签名: 罩 三兰 乡7 e l 期:年月日 第一章绪论 1 1课题背景 第一章绪论 随着计算机技术和网络技术的高速发展,信息化越来越成为我们生活和工作 中不可或缺的一部分。各行各业,包括银行、通信、医院、军队、学校等各个领 域,都越来越多的将信息技术引进来。由于这些关系到国计民生的大领域大行业 的使用,它的使用范围广,涉及面大,所以大型的跨网络、跨平台的分布式软件 系统大大增加。在这种环境下,分布式软件系统就出现许多亟待解决的问题。各 种各样的应用软件需要在不同操作系统、不同硬件、不同数据库、不同网络协议 下进行移植和通信,硬件平台和操作系统等软件平台与应用系统间都需要进行数 据传输和通信,这是分布式软件得以协同合作的必要基础,于是既能屏蔽下层硬 件、操作系统、网络和数据库等软件的差异,又能为上层应用程序提供高效接口 的中间件系统就在这种趋势下应运而生了。 中间件【1 】是介于应用软件和操作系统及硬件之间的系统软件。它可以屏蔽操作 系统、网络协议以及数据库等软件和硬件的差异,为分布式系统应用程序提供一 个标准的规范的平台,能够让应用程序的开发和运行环境独立于特定专门的硬件 和操作系统平台,完成分布式系统的通信和集成。 分布式系统的各个计算机节点以及数据存放的资源节点分布很广,这些节点 需要互相通信、互相协作才可以完成整个系统所要达到的效果。因此,分布式系 统节点间的数据通信成为了开发者关注的焦点,消息中间件就是在这种需求下被 提了出来。消息中间件可以为分布式系统各节点之间提供同步和异步的消息传输 方式,提供点到点和发布订阅的消息传递模式,提供消息持久化和非持久的消息 模型,从而使消息在节点间可靠高效的传递。 随着各种不同厂商的消息中间件大量发布,消息中间件技术在市场上了也得 到广泛的应用。i b m 的m q 系列、微软的m q 系列、东方通的q 等都是市场上应 用很多的消息中间件,然而,随着消息中间件应用越来越广,它的弊端也慢慢显 现出来,这些传统消息中间件没有统一的标准和规范,各个厂商的设计和开发都 是按照自己的需求进行,各个消息中间件都有不同的消息调用接口和不同的语义 定义,于是基于不同消息中间件的应用很难实现移植、互操作和连接。 1 电子科技大学硕士学位论文 j a v a m e s s a g es e r v i c e ( j m s ) 1 2 】是由s u n 公司提出的消息中间件规范,它提出了 一系列的消息中间件标准化的调用接口,定义了相关语义,使消息中间件的接口 规范统一有了事实依据。它有效地屏蔽了网络协议、操作系统、应用实现的具体 技术和数据库的细节,这样,不管是哪个厂商开发的消息中间件,只要实现了j m s 接口的消息中间件就可以被应用程序调用,应用程序可以选择不同厂商的消息中 间件,因为它提供的接口是一样的。 本课题来源于国家8 6 3 项目“大规模网络协作创作环境”的子课题“消息服 务子系统 。大规模网络协作创作环境是专门为游戏创作、动漫创作、影视创作提 供相应的协作创作工具集、工作流管理系统以及包含各种业务数据和权限数据的 数据管理系统的一个管理平台。消息服务子系统要求为大规模网络协作创造环境 提供可靠高效的数据交换服务。由于本平台是大规模的广域网,节点分布较广, 并且工作流管理系统和数据管理系统有大量的数据消息进行传输和交换,而且交 互的各节点存在多种操作系统存在异构性,所以需要消息服务系统满足这些需求。 于是,在本系统的开发设计中,为了使控制信息和重要数据能够可靠地、安全地、 异步地在分布节点间有效传输,同时作为整个项目扩展性的解决方案,采用消息 中间件技术作为消息服务子系统实现的关键技术。目前,消息中间件技术已在8 6 3 项目中应用,等待项目验收。 1 2 国内外研究现状 最早具有中间件思想是b i m 的c i c s ,但是c i c s 没有用在分布式环境下,所 以人们把t u x e d o 定为第一个中间件产品【3 】。t u x e d o 是1 9 8 4 年由b e l l 实验室开 发的,那时由于分布式系统还没被大量应用,所以t u x e d o 没有得到大范围应用。 今年来,随着分布式系统的大量需求,中间件也迅速发展起来。 目前,重量级的消息中间件厂商的主要有m m 、b e a 、o r a c l e 等,还有一些 开源中间件o p e n j m s 、a c t i v e m q 、j o r a m 等也占据了一定的市场。i b m 公司和 b e a 公司的中间件产品在金融、能源、通信等对技术有严格要求,不能出错的行 业,以及在r r 等行业中也得到了大量应用。国外中间件厂商,i b m 在1 9 9 9 年推 出应用服务器w e b s p h e f e ,w e b s p h e r e 性能优越,稳定性好,多家银行、证券公司 采用这款应用服务器,占领了超大型分布式系统以及系统整合型应用方面的应用 领地;b e a 开发的应用服务器w e b l o g i c 也是开发大型分布式系统所常用的中间件, 2 第一章绪论 它是具有专业级的水平,因为b e a 是专注于中间件开发的公司,w e b l o g i e 在美国 市场占有率超过6 0 。据市场研究公司g a r t n e r 最新发表的题为 2 0 0 8 年全球应 用程序基础设施和中间件软件市场份额的研究报告称,i b m 领跑2 0 0 8 年应用程 序基础设施和中间件软件市场,占市场份额的3 0 8 。i b m 的竞争对手的市场份 额远远地落在后面,甲骨文的市场份额是1 3 6 。b e a 的市场份额是2 0 。微软 的市场份额是3 6 。 国内在中间件厂商也是蓬勃发展,到目前为止,国内已经有3 0 多家企业的中 间件产品在市场上角逐,像东方通、中创、金碟、东大等。其中东方通跨入中间 件行业较早,并且由于它的产品符合中国国情,在市场上也占据了不可小视的份 额,它完成了中国移动银企互联系统、中国移动业务支撑网网管系统、天津网通 本地网计费账务系统、中国联通掘金电子商务平台和联通1 6 5 网站等多个项目, 发展势头很好【4 】。 中间件和操作系统软件、数据库软件并称为基础软件的“三驾马车一,这种软 件在大型系统中屏蔽底层硬件和软件,为上层应用程序提供调用接口,公认为中 间件的发展是非常有前景的。g a r t n e r 称,2 0 0 8 年整个应用程序基础设施和中间件 软件市场的销售收入是1 5 1 亿美元。领先的中间件技术市场包括集成应用程序、 s o a 、治理技术、b p m s ( ! l k 务流程管理系统) 和企业服务总线套装软件等。这些技 术市场在2 0 0 8 年都是两位数的增长【5 】。 消息中间件是中间件目前发展的一个重要分支。虽然应用服务器在金融、电 信和电子政务市场广泛分布,并逐渐蚕食交易中间件及消息中问件的一部分市场, 但消息中间件以其独特的优势为各种分布式应用的开发注入了强大动力,在需要 数据可靠传输的系统中牢牢占据一席之地,极大地推动了应用系统集成的发展。 在各行业的单一应用系统建立起来以后,应用整合已成为新一轮应用系统建设的 热点,其中消息中间件扮演了重要的角色,它将是生命周期最长的中间件产品类 型【6 】。 s u n 在1 9 9 8 年提出j m s i 0 规范,2 0 0 2 年提出j m s l 1 规范,许多消息中间 厂商都为j m s 提供了实现。j m s 是为统一消息中间件接口而制定的消息服务的规 范。从j 2 e e1 3 开始,j m s a p i t 7 】成为了j 2 e e 平台的一部分。j m s l 0 2 版本把p t p 和p u b s u b 两种通信模型完全分开对待,j m s1 1 统一了这两种模型,j m s 客户端 访问消息服务器不再分消息目的地是q u e u e 还是t o p i c ,这样带来了很大的方便。 3 电子科技大学硕士学位论文 1 3 论文的主要工作 在论文的完成过程主要工作如下: ( 1 ) 讨论了消息中间件的理论基础,包括其概念、分类、特点,分析研究了j m s 规范,并对j m s 消息结构、传输模式及j m s a p i 进行了详细的介绍。 ( 2 ) 在分析研究消息中间件理论和j m s 规范的基础上,提出了一个符合j m s 规 范的消息中间件系统n e c e j m s ,阐述了它的系统架构,并针对系统架构的各部分详 细说明了它的设计与实现。n c c e j m s 实现了j m s 规范的标准a p i 和两种消息传输 模式,为分布式节点间提供了可靠高效异步的数据传输机制,为应用程序开发提 供了统一的接口,还实现了消息持久化、多线程管理、事件监听、流量控制、消 息过滤和日志模块,增强了系统性能。 ( 3 ) 对消息中间件系统n c c 七j m s 进行消息处理能力性能测试。 1 4 论文结构 本论文主要包括六章的内容,具体的安排如下: 第一章:绪论。介绍了进行消息中间件研究的意义、课题来源等课题背景知 识,同时阐述了国内外关于消息中间件的研究现状,最后列举了本文所做的主要 工作。 第二章:消息中间件。详细介绍了中间件的定义、分类和功能;介绍了消息 中间件的定义、功能、特点以及常见消息中间件产品;介绍了消息中间件与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 s 各类a p i 和j m sa p i 的编程模型。 第四章:消息中间件n c c e j m s 系统的设计与实现。首先介绍系统体系结构, 按照体系结构分成的四部分网络通信接口、j n d i 服务器、消息服务器和客户端分 别详细介绍了其设计和实现。网络通信接口为消息服务器和客户端的通信实现了 基于t c p i p 协议的接口,j n d i 服务器为消息服务器提供了名字服务,客户端通过 j n d i 服务器获取消息服务器上受管对象的名字,并通过受管对象与消息服务器进 4 第一章绪论 行消息的发送、接收、转发等数据传输。网络通信接口部分实现了基于t c p i p 协 议的服务器和客户端交互的接口;j n d i 服务器介绍了j n d i 的功能、j n d i 服务的 实现以及j n d i 的使用;消息服务器实现了六类受管对象以及相关的j m sa p i ,实 现了消息持久化、多线程管理、事件监听、流量控制、消息过滤和日志模块,增 强了消息服务器的功能;客户端介绍了具体的点到点和发布订阅两种模式消息发 送和接收的代码的过程,并且为了使c + + 程序可以与消息服务器进行通信,本文 利用j n i 技术实现了c + + 客户端。 第五章:消息中间件n c c e j m s 的测试与应用。首先,对系统的处理消息的能 力进行测试,并将其与其它消息中间件进行比较;然后,介绍消息中间件n e e e j m s 在8 6 3 项目“网络协作创作环境 中的应用。 第六章:结束语。对本文进行总结与展望,同时指出工作中的不足,制定了 下一步工作的方向和目标。 5 电子科技大学硕士学位论文 2 1中间件 第二章消息中间件 随着软件工程研究的越来越成熟,软件开发技术发展的越来越先进,人们思 考如何可以更高效、方便的开发软件,如何可以不必所有知识都掌握就能开发软 件,中间件的研发逐渐被提上日程。中间件能够屏蔽不同平台间的异构性,屏蔽 底层的计算机内部的复杂性,中间件作为一个中间层,方便用户使用。 2 1 1中间件概述 最初,开发人员进行软件开发时,都需要用到计算机操作系统、数据库和各 种传输协议等计算机底层知识,并且与这些底层相关的大部分开发基本相同,只 是面对不同的业务,上层开发要做相应的变动,这个变化比较大,开发人员希望 能够有一个已经开发好的了支持底层调用的应用程序,使得开发人员不再关心底 层开发,因为这些底层开发的相似性很大,并且复杂度也很高,而这个想法就是 在底层软硬件开发和上层业务应用开发之间开发出一个中间系统,以便于开发人 员开发不再学习与底层有关的知识,只需要在中间系统上修改上层业务即可,因 此开发人员的这种想法就是中间件最初的思想来源。 i d g 公司在1 9 9 9 年提出的中间件定义【引,定义较全面标准,很多学术论文引 用:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在 不同的技术之间共享资源。中间件位于客户机服务器的操作系统之上,管理计算 资源和网络通讯。它在分布式系统中的位置如图2 1 所示: 6 第二章消息中间件 应用层 中间件层 o s 及硬件层 应用系统应用系统 一1 一一一一一一一一一一1 一一一一 tt a p ia p i 中间件 一一 一一一一一一一一一一 一一一 a p ia p l 0 s 层o s 层 硬件硬件 图2 1 中间件在分布式系统中的位置 中间件( m i d d l e w a r e ) 是除操作系统、数据库之外的三驾马车之一【9 】,它是基 础软件之一。中间件在操作系统及硬件与应用系统软件的之间。中间件在操作系 统、网络和数据库之上,在应用软件的下层,上层的应用程序基于中间件系统进 行供开发,中间件帮助开发人员高效的、轻松的开发上层应用系统。 2 1 2中间件的分类 最近几年中间件发展速度很快,已经改变了以往的分类方式,中间件分为三 大类:基础中间件、应用中间件和应用框架。再以功能划分小的分类。 l - 基础中间件 ( 1 ) 对象请求代理( o i m ) 【1 0 】:这种中间件可以使对象之间建立客户端和服务器 的关系,通过o r b 找到为客户端提供服务的服务器对象,实现客户端透 明的引用本机或者网络上的服务对象的方法,它包括m i c r o s o rc o m + + 、 j a v ar m i 、c o r b a 等。 ( 2 ) 消息中间件( m o m ) 【l l 】:能够屏蔽操作系统、硬件和平台的异构性,进行高 效可靠地数据传输,包括消息队y l j ( m e s s a g eq u e u e ) 和消息代理( m e s s a g e b r o k e r ) 。 ( 3 ) 应用服务器( a p p l i c a t i o ns e r v e r ) t 1 2 】:用于开发、部署和企业集成管理为一体 的大型中间件,其包括事务处理中间件( t r a n s a c t i o np r o c e s sm o n i t o r , 简称 1 1 p m ) 、j 2 e e 应用服务器、c c m ( c o r b ac o m p o n e n tm o d e l ) 应用服务器 7 电子科技大学硕士学位论文 等。 2 应用中间件( a p p l i c a t i o nm i d d l e w a r e ) ( 1 ) 资源集成( r e s o u r c ei n t e g r a t o r ) 1 3 】:此中间件针对各类异构平台创建相对 应得接口,通过这些接口可以访问不同类型、不同平台下的资源,开发 者可以通过此中间件实现轻松地访问跨数据库、跨操作系统、跨硬件以 及跨应用系统的资源。下面是几类资源集成消息中间件【1 4 】: 统一数据访i h - ( u n i v e r s a l d a t a a c c e s s ) :包括j d b c 、o d b c 等。 内容管理系统( c o n t e n tm a n a g e m e n ts y s t e m ) x m l 数据库 e t l 工具( e x t r a c t i n gt r a n f o r m a t i n ga n dl o a d i n g ) 数据集成( d a t ai n t e g r a t o r ) 元数据管理系统( m e t a - d a t am a n a g e m e n ts y s t e m ) ( 2 ) 应用集成( e n t e r p r i s ea p p l i c a t i o ni n t e g r a t o r ) :将业务应用统一集成到同一 个框架下,它包括以下: 企业应用集成框架( 多采用消息代理) 技术适配器与应用适配器 ( 3 ) 流程集成中间件( b u s i n e s si n t e g r a t o r ) :将流程集成到一起,可以通过同一 个平台下。 工作流管理系统( w o r k f l o wm a n a g e m e n ts y s t e m ) 业务流程管理系统( b u s i n e s sp r o c e s sm a n a g e m e n ts y s t e m ) ( 4 ) 服务集成( s e r v i c e - o r i e n t e di n e g r a t o r ) ( 5 ) 门户集成( p o r t a ls e r v e r ) 3 应用框架( a p p l i c a t i o nf r a m e w o r k ) 1 5 1 构建可以重复使用的框架,一个大型软件往往可以由多层次的应用框架嵌 套组成,可以根据针对方面不同划分两类。 ( 1 ) 面向行业( d o m m n - o r i e n t e d ) r 第二章消息中间件 ( 2 ) 面向问题域( p r o b l e m o r i e n t e d ) 2 1 3中间件的功能 中间件有以下几种功能【1 6 】: 1 中间件作为中间层,负责上层与下层间的沟通,负责屏蔽下层的复杂操作, 来开发接口满足上层的调用,其中下层可能是底层硬件、客户端、应用等, 而上层可能是服务器、应用层、服务、数据库等。 2 能提供重用性高的模块,减少了系统软件模块问的耦合性,提供开发平台 和运行平台。 3 能屏蔽像底层硬件、操作系统、网络协议和数据库这种专业性强的知识, 使开发难度降低,开发效率加快; 4 针对各种应用提供信息安全,以及数据服务器、大型分布式软件的负载均 衡性; 5 针对应用系统提供数据一致性保证 2 2 消息中间件 2 2 1消息中间件定义 消息中间件【1 7 ( m e s s a g e - o d e n t e dm i d d l e w a r e ,m o m ) 是为应用系统在不同平台 不同环境下提供安全高效的消息传递的系统软件。消息中间件屏蔽了操作系统、 硬件、网络协议和数据库等的异构性,为上层应用系统提供可靠的数据交换,并 且具有很高的移植性和软件复用性。消息中间件的工作流程是客户端生产消息, 并将消息发送向消息中间件,消息中间件再同步或者异步的将消息发向消息的接 收者。消息中间件中转消息,管理消息发送时间和流向。生产消息的客户端和接 收消息的客户端不用直接参与消息的传送,只需要将消息丢给消息中间件,它会 按时按接收地点将消息发送给接收者。一般消息中间件存放消息的是队列( q u e u e ) 或者主题( t o p i c ) 。消息中间件能够对不同平台的客户端使用相同接口来进行消息传 送,增加系统开发的效率。消息中间件支持客户端之间的一对一、一对多、多对 多的模式。消息中间件在应用系统中的位置,如图2 2 所示: 9 电子科技大学硕士学位论文 | 一 _ 、 7 , j 应用b 应用a 消息客户端 一 卜,嘈 k 消息客户端 通信j消息中间件、通信j 接口 nyn ,y 接口 消息客户端 消息客户端 :i 操作系统操作系统 图2 - 2 消息中间件的位置和作用 2 2 2 消息中间件功能 随着大型分布式软件需求越来越多,中间件的地位也变的越来越重要。 c o r b a 1 引、d c o m 1 9 】、r m i 2 0 】等中间件也被在多个领域应用,但是在应用中也发 现许多缺点无法克服的,例如: 1 不具有异步性,客户端发送消息后必须等待,直到服务器完成服务并向客 户端发出确认后,客户端才可以去做其他事情,否则一直等待,这样严重 影响了客户端的利用率。 2 传输不可靠,当接收客户端不在线或者崩溃或者网络出现故障,都会影响 消息的接收,使数据在传输中丢失,造成发送客户端不能完成操作。 3 传输模式单一,客户端发送数据时有时需要一次发送,多个客户端接收, 这种传输方式就不能满足。 消息的中间件较好的解决了这些问题。消息中间件支持同步和异步两种方式 的转发模式,当消息接收者不在线即没有激活时,消息中间件可以将消息暂存在 文件或者数据库中,实现消息的持久化,也实现了消息的可靠传输,消息中间件 可以将消息格式标准化,这样就能忽略不同平台的异构性。消息中间件有多种传 送模式,能够实现一对一和多对多的模式。消息中间件为分布式软件系统间数据 通信提供了简单、可靠的方式,使各模块间的耦合性大大降低。 消息中间件应用在以下几种软件系统中【2 l 】【捌: 1 大型分布式软件在各层应用程序或者各模块之间有通信需求。 2 需要通信的应用程序之间具有语言异构性。 1 0 第二章消息中间件 3 开发者希望通信接口能独立于应用系统,当上层应用增加或者改变时,通 信接口不变; 4 在系统中数据消息传递量大,信息交换频繁; 5 具有平台异构性,平台包括操作系统、硬件、网络、数据库等; 6 对于老版本系统不能舍弃,又开发出了新版本的系统,需要两个版本兼容, 就需要消息中间件来连接两个版本的消息传输。 2 2 3 消息中间件特点 1 数据传输组合方式全面 通过消息中间件传输数据,消息的发送和接收客户端相对应关系可以是多种 方式的,可以使一对一,一对多,多对一,多对多或者三者的组合,发送端的发 送功能更为灵活,应用程序不会因此增加程序代码和复杂度。 2 同步和异步两种通信方式 消息中间件不但有传统的同步接收方式,还有异步接收方式。发送和接收消 息的客户端不用同时在线,他们可以不用互相感知,他们没有直接的联系,发送 客户端将消息放入消息中间件的队y 0 ( q u e u e ) 或者主题( t o p i c ) ,等待接收客户端 有时间时再对消息进行处理,接收客户端不必一直在线,客户端也不会一直等着 接收端处理消息而挂起。 3 持久化和非持久化消息 消息中间件提供两种消息类型,持久化和非持久化。对于持久化的消息,消 息发送端发送到消息中间件,中间件系统会将消息保存到文件或数据库中,永久 保存,直到接收客户端接收到消息向消息中间件系统发出收到消息的确认信息, 中间件系统才会将对应消息删除掉,这样即使消息接收端没有在线,或者掉电或 者机器崩溃或者网络出现故障等问题都不会影响到消息,不会丢失消息,所以持 久化消息传输可以具有高可靠性。对于非持久性消息,它保存在中间件系统的内 存中,不占用硬盘空间,当机器d o w n 机会丢失,用户可以根据需要选择持久化消 息还是非持久化消息。 4 降低客户端开发的复杂度 客户端发送和接收程序不需要学习编写有关网络通信的代码,他们只需要调 1 1 电子科技大学硕士学位论文 用消息中间件提供的接口进行收发。消息发送端利用发送接口将消息发送到消息 队列( q u e u e ) ,接收端从消息队列中读取出消息,而这期间消息中间件负责维护所 有消息队列,负责转存持久化消息,负责消息转发的消息路由,负责消息的信息 安全,负责调节消息客户端和接收端的流量平衡,负责处理网络的重新启动等, 因此应用程序客户端只关心自己的业务开发,降低了其开发复杂度。 5 自定义消息传输协议层 消息中间件的消息传输协议层是由开发者自己选定的,可以使自己开发的协 议,也可以是基本协议t c p i p 协议,或者是高级协议r m i 、s o a p 等,这样可以 有自定义的消息属性和消息格式,通过标准的消息格式和网络传输协议,更加灵 活的定义消息,操作消息完成多种功能。 6 具有最短路由选择服务 管理员依次定义每条路径的代价,消息中间件计算消息的最低代价的路径。 消息路由服务能够计算并避免单点失效,在不可靠的网络环境也能应用。 消息中间件对上层应用软件与下层底层硬件和操作系统的连接作用,不但屏 蔽了硬件以及操作系统、网络和数据库等异构性和复杂性,而且为上层应用软件 提供了可以方便调用的接口,减少了应用软件的开发难度,使得上层应用软件与 下层底层硬件耦合性减低,独立性增大,并且当应用层再需要增加性能时,中间 件接口不变,也不必再与底层开发打交道,只需要让中间件与底层完成功能。消 息中间件也可以具有很高的复用性,可以跨平台使用【2 3 】。 2 2 4 消息中间件产品 2 2 4 1m m m q s e r i e s m q s e r i e s t 2 4 】是i b m 的中间件产品,通过它可以将系统中的多个模块之间传递 消息来完成整个系统集成和管理。它的主要特点是具有消息高可靠性,有多种应 用程序解决方案。 i b m 的m q s e f i e s 系列在国内和国外市场上使用的较多,它的性能非常稳定, 一般银行、电信业均采用这种中间件,但其开发系统卖价昂贵,普通公司无力购 买。 1 2 第二章消息中间件 2 2 4 2 微软m s m q 微软消息中间件m s m q 凋能够保证异构平台通讯的稳定安全性,在性能环境 不好的网络上同样可以将消息可靠地传输出去。它也是在多个不同的应用之间实 现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也 可以分布于相连的网络空间中的任一位置,它容易使用,操作简便,能快速的将 系统集成起来。 m s m q 某些方面还做的不好:它的限制很多,必须是n t 4 0 以上,m q l 0 运 用的是s q l ,所以它的性能稳定性非常不好。只有一些小的企业或者县级以下的 应用才能使用。 2 2 4 3 东方通t o n g l i n k q t o n g , l i n k q 2 6 】是东方通公司发布的消息中间件产品,它不但简单易用,而且 符合中国人的习惯,是国内市场应用较广的产品。它已成功应用在金融、电信、 交通、政府等行业的数百个大、中型企业级应用系统中,像中国移动通信全国冗 灾备份系统、交通部海事局全国水上安全监督系统、中国建设银行国际业务系统。 它具有高效、可靠、灵活的传输功能,它可以预建连接、按需连接、多通路, 它是核心多进程的,具有单消息和组消息,高效稳定的流量控制、队列管理、传 输优先级管理、压缩传输和断点重传等功能,还实现了集
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025春季内蒙古包头市中心医院引进高层次和紧缺急需人才招聘29人考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2025年疾病预防控制及防疫服务项目发展计划
- 广本安全驾驶培训北京课件
- 2025年4月杭州市采荷中学编外教师招聘3人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025年嘉兴海宁市中心医院公开招聘高层次急需卫技人员4人考前自测高频考点模拟试题及完整答案详解1套
- 2025年河北唐山市丰润区选聘第二批事业编制医疗技术人员13名考前自测高频考点模拟试题附答案详解(完整版)
- 2025广西城轨工程建设有限公司招聘20人模拟试卷完整答案详解
- 2025年河北邯郸市教育局春季市直学校选聘博硕人才300名考前自测高频考点模拟试题及答案详解(夺冠)
- HO-PEG-NH-Fmoc-MW-2000-生命科学试剂-MCE
- Growth-Hormone-22-Arg-13C6-15N4-Lys-13C6-15N2-生命科学试剂-MCE
- 规范书写汉字(实用硬笔)课件
- 马克思主义政治经济学第2章-货币课件
- 管理核心五任务版权课程课件
- 学术规范与论文写作讲述课件
- 七年级数学学习·探究·诊断上册
- 实验室内质控记录表格完整
- 基层医疗机构抗菌药物合理使用
- 肾动脉狭窄介入治疗PPT课件(PPT 30页)
- 10kV架空线路设计PPT课件(PPT 69页)
- Q∕GDW 12174-2021 智能量测开关技术规范
- 幼儿园绘本:《小宣传员》 红色故事
评论
0/150
提交评论