




已阅读5页,还剩72页未读, 继续免费阅读
(计算机应用技术专业论文)基于jms的消息中间件的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着分布式应用范围的不断扩大,基于异步低耦合的编程架构已经逐渐成 为分布式应用开发的主流。虽然目前出现了很多不同的企业应用集成( 队i ) 解 决方案,但消息中间件始终是这些不同方案中相同的核心部分,消息中间件作 为一种进程间松藕合的通信手段,使分布节点之间的协同工作有了更大的灵活 性。 本文首先介绍了中间件的分类以及它们各自的定义,中间件是一种独立的 系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资 源,中间件位于客户机和服务器的操作系统之上,管理计算资源和网络通信。 然后介绍了常见的几种消息中间件产品,j m s 规范的基本概念,消息数据结 构,编程模型以及p t p ,p u b s u b 两种j m s 的消息传输模式。j i s 是s u n 公司及其 合作伙伴提出的旨在统一各种m o m 系统接口的规范,它是访问企业消息系统的 标准a p i 接口,但不是实现。它便于消息系统中的j a v a 应用程序进行消息交换, 并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发。 在设计和使用基于j m s 的消息中间件时会用到多种技术,它们之间互为补 充,实现了不同的功能在第三章中,文章介绍了 j n d i ,x m l ,j d b c ,j t s ,j t a ,j 蜮,j a a s ,j c a 几种j a v ae e 平台中常见的技术和标准, 为后面实现一个基于j m s 的消息中间件做了铺垫。 然后,在上述相关理论的基础上,本文给出了一个基于j m s 的消息中间件 的设计模型,并且将其划分为消息服务器,j n d i 服务器,网络通信,j m s 规范 的实现,日志,持久化等几个主要部分进行设计实现。针对以上模型,本文对 部分重要概念以及实现代码也做了详细的介绍。 最后,文章举例说明了如何应用所开发的消息中间件的a p i 进行消息的发 布,接收,订阅消息,并列举了一个实际应用中的例子,j m s 在分布式储蓄系 统中的应用,说明了如何运用消息中间件开发分布式应用。 随着越来越多的企业开始关注系统的伸缩性和可扩展性,消息中间件在银 行、电信、金融等大规模关键事务领域中整合各种异构平台、保证交易完整性 等方面将大放异彩。 关键字:中间件,消息中间件,j m s ,应用系统集成 a b s t r a c t a l o n g w i t ht h e e x p a n d i n g o fd i s t r i b u t e d a p p l i c a t i o n , t h ep r o g r a m m i n g a r c h i t e c t u r eb a s e do na s y n c h r o n o u sa n dd e c o u p l i n gb e c o l l m e sm o r ea n dm o l ep o p u l a r a l t h o u g h l o t so fd i f f e r e n tr e s o l v ep r o p o s a l sf o re n t e r p r i s ea p p f i c a f i o ni n t e g r a t ea p p e a r , m o mi sa l w a y st h e k e r n e lp a r to ft h e s ep r o p o s a l s b e c a u s em e s s a g e o r i e n t e dm i d d l e w a r ei st h el o o s e c o m m u n i c a t i o ni l l e a o sa m o n gp l o c 镕,c o o p e r a t i o no fd i s t r i b u t e dn o d e sh a v eh e a v yf l e x i b i l i t y f i r s t l y ,t h i sa r t i c l ei n t r o d u c e st h et y p ea n dd e f i n i t i o no ft h em i d d l e w a m ,m i d d l e w a mi sa i s o l a t a b l es y s t e ms o f t w a r eo rs e g v e i - w o g t a mw h i c h nb eu s e db yd i s t r i b u t e da p p l i c a t i o nt o s h a r er e s o n i v i nt h ed i f f e r e n tt e c h n o l o g y m i d d l e w a r ei sl o c a t e do nt h eo p e r a t i n gs y s t e mo f c l i e n t a n ds e l n e l t om a n a g et h ec o m p u t e rr e s o u r c e sa n dn e t w o r kc o m m u n i c a t i o n t h e nt h ea r t i c l ei n t r o d u c e s $ o m ep o p u l a rm o mp r o d u c t s , t h eb a s i cc o n c e p t i o n s ,t h ed a t a s t r u c t u r eo fm e s s a g e ,t h ep r o g r a m m i n gm o d e l ,t h em e s s a g et r a n s f e r r i n gm o d e lo fp 1 曙a n d p u b s u ba b o u tj m s j m s i sac r i t e r i o nw h i c hi sp u tb ys u n c o r p a n di t sc o o p e r a t i v ec o m p a n yt o u n i f yt h ei n t e r f a c eo fm o m i ti sai n t e r f a c et oa c s st h ee n t e r p r i s em e s s a g es y s t e mb u tn o ta i m p l e m e n t ns i m p t i z e st h ee n t e r p r i s ea p p l i c a t i o nd e v e l o p e m e n tb yp r o v i d i n gs t a n d a r di n t e r f a c e t op r o d u c e ,t os e n d ,t or e c e i v et h em e s s a g e ,a n di ti sc o n v e n i e n tf o rj a v aa p p l c a t i o np r o g r a m si n t h em e s s a g es y s t e mt oe x c h a n g em e s s a g e m a n yt e c h n o l o g i e sw i l lb eu s e di nd e s i g n i n ga n d i n gt h em o mb a s e do l lj m s ,t h e y s u p p l e m e n tf o re a c ho t h e ra n dr e a l i z ed i f f e r e n tf u n c t i o n i nt h ec h a p t e r3 ,t h i sa r t i c l ei n t r o d u c e s j n d i , x m l 3 d b c 3 t s , j t a 3 m x 3 a a s , j c as e v e r a lt e c h n i q u e sa n ds t a n d a r d sw h i c ha l ep o p u l a r i nt h ep l a t f o r mo fj a v ae e b a s e do i lt h ef o u n d a t i o n o ft h e s et h e o r i e s , w ep u tf o r w a r dt h ed e s i g nm o d e lb y c o m p a r t m e n t a l i z i n g i ta s m e s s a g es e r v e r , j n d ls e r v e r , n e t w o r kc o m m u n i c a t i o n ,t h e i m p l e m e n t so f j m sc r i t e r i o n ,l o g , p e r s i s t e n ts e v e r a ld e p a r t m e n t s a c c o r d i n gt h em o d e la b o v e , t h i s a r t i c l ei n t r o d u c e st h ei m p o r t a n tc o n c e p ta n di m p l e m e n t e dc o d e ht h ee n d , t h i sa r t i c l ei n t r o d u c e sh o wt ou s et h ea p io ft h ed e v e l o p e dm o mt op u b l i s h , r e c e i v e ,s u b s c r i b et h em e s s a g e ,a l s oe n u m e r a t e sae x a m p l ei nt h er c a u t y , t h ea p p l i a n c eo fj m si n t h ed i t r i b u t e db a n ks y s t e m , i n d i c a t i n gh o wt od e v e l o pad i s t r i b u t e da p p l i c a t i o nb a s e do n m o m a l o n gw i t hm o r ea n dm o r ee n t e r p r i s e sb e g i nt op a ya t t e n t i o nt ot h ef l e x a b i l i t y a n de x t e n d a b i l i t yo fs y s t e m ,m o mw i l lb em o r ea n dm o r ei m p o r t a n t i nt h e b a n k , t e l e c o m ,f i n a n c ea n ds oo nl a r g e s c a c l et r a n s a c t i o nd o m a i n st oi n t e g r a t e d i f f e r e n ti s o m e m u sp l a t f o r m ,e n s u r et h et r a d ei n t e g r a l i t y k e yw o r d s :m i d d e l w a r e ,m o m ,j m s ,e a i m 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及 取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得 武汉理工大学或其它教育机构的学位或证书而使用过的材料。与我一 同工作的同志对本研究所做的任何贡献均己在论文中作了明确的说 明并表示了谢意。 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即 学校有权保留、送交论文的复印件,允许论文被查阅和借阅;学校可 以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段 保存论文。 ( 保密的论文在解密后应遵守此规定) ( 注:此页内容装订在论文目录前) 武汉理工大学硕士学位论文 1 1 中间件的分类 第1 章绪论 2 0 世纪以来,计算机科学技术得到了迅猛发展。从硬件技术看,c p u 速度 越来越高,处理能力越来越强;从软件技术看,应用程序的规模不断扩大,特 别是i n t e m e t 及w w w 的出现,使计算机的应用范围更为广阔,许多应用程序需 要在网络环境的异构平台上运行。这一切都对新一代的软件开发提出了新的需 求。在这种分布异构环境中,通常存在多种硬件系统平台( 如p c ,9 - 作站,小型 机等) ,在这些硬件平台上又存在各种各样的系统软件( 如不同的操作系统、数据 库、语言编译器等) ,以及多种风格各异的用户界面,这些硬件系统平台还可能 采用不同的网络协议和网络体系结构连接。如何把这些系统集成起来并开发新 的应用是一个非常现实而困难的问题。 为解决分布异构的问题,人们提出了中间件( m i d d l e w a r e ) 的概念。中间件是 一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术 之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网 络通信,如图1 - 1 所示,这些服务具有标准的程序接口和协议。针对不同的操作 系统和硬件平台,它们可以有符合接口和协议规范的多种实现。同操作系统提 供的应用程序接口相比,中间件为应用开发者提供了更高级的开发接口,简化 了网络分布应用的开发、管理和维护,方便了分布式软件模块之间的交互。同 时作为基础平台,中间件还提供了q o s ( q u a l i t y o f s e w i c e ) 管理和信息安全等底 层服务。因此从产生之日起到现在,中间件技术取得了长足的发展,得到了工 业界和学术界的青睐,己成为分布式系统的主流技术之一【”。 武汉理工大学硕士学位论文 i应用 应用 ii i中间件 j上 l操作系统操作系统 上上 l硬件硬件 i 图1 - 1 中间件在分布式应用中所处位置 中间件的产品种类很多,根据中间件在系统中所起的作用和采用的技术不 同,大致划分为以下几类: 1 1 1 消息中间件 面向消息的中间件( m o m ) ,提供了以松散耦合的灵活方式集成应用程序的 一种机制。它们通过消息传递和消息排队的模型,提供了基于存储和转发的应 用程序之间的异步数据发送,并支持多通讯协议、语言、应用程序、硬件和软 件平台。应用程序之间彼此不直接通信,而是与作为中介的m o m 通信,从而 提供了有保证的消息发送1 3 6 j 。 总的来说,消息传递和排队技术有以下三个主要特点: ( 1 ) 通讯程序可在不同的时间运行。程序不在网络上直接相互通话,而是 间接地将消息放入消息队列,因为程序间没有直接的联系,所以它们不必同时 运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标 程序在运行,也不意味着要立即处理该消息。 ( 2 ) 对应用程序的结构没有约束。在复杂的应用场合中,通讯程序之间不 仅可以是一对一的关系,还可以进行一对多或多对一方式,甚至是上述多种方 式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。 ( 3 ) 程序与网络复杂性相隔离。程序将消息放入消息队列或从消息队列中 取出消息来进行通讯,与此关联的全部活动,比如维护消息队列、维护程序和 2 武汉理工大学硕士学位论文 队列之问的关系、处理网络的重新启动和在网络中移动消息等是m o m 的任务, 程序不直接与其它程序通话,并且它们不涉及网络通讯的复杂性。 本文研究的重点就将是基于j m s 的消息中间件。 1 1 2 事务处理中间件 事实上,事务处理是最早应用中间件技术的领域。事务处理中间件是专门针 对联机贸易处理系统设计的,联机事务需要处理大量的并发进程,涉及到操作 系统、文件系统、程序语言设计、数据通讯、数据库、系统管理、应用软件等, 要确保系统可用性、可靠性、事务完整性以及事务处理之间的独立性,是一个 非常复杂的任务,所有这些任务的都可以通过采用事务处理中间件进行简化。 x o p e n 定义了分布式事务处理标准,将联机事务处理系统划分为资源管理、事 务管理和应用三部分,规定了应用程序、事务管理器和资源管理器的协同工作 模式。其中资源管理器是指数据库和文件系统,事务管理器是一种特殊形式的 事务处理中间件。 事务处理中间件理论上相对成熟,功能和性能界定清晰。虽然事务处理中间 件也是基于消息的传输,同时支持同步和异步方式,但属于专用中间件,无法 取代消息中间件,目前基本上仅适用于联机交易系统。 1 1 3 数据存取中间件 数据存取中间件适用于应用程序与数据源之间的互操作模型。在分布式系统 中,重要数据集中存放在数据服务器中,客户端使用面向数据库的a p i ,提请直 接访问和更新基于服务器的数据源,包括关系型、非关系型和对象型数据源, 也包括经过加密或压缩存放的各种格式的多媒体类型。数据存取中间件将会为 分布式网络环境下的虚拟缓冲存取、格式转换以及解压缩等带来方便,绝大多 数由数据库厂商直接提供,如j d b c 等。 数据存取中间件大多基于s o l 语句,采用同步通信方式。数据存取中间件 使得开发分布式应用简单,但是若在广域网上使用会带来严重的效率问题,这 是因为广域网上s o l 语句的交互使得通讯流量过大,同时对数据压缩、加密带 来不便。因此针对不同的应用需求,如对海量数据、异格式数据、压缩数据以 及加密数据等,需要分别有相应的中间件1 3 9 j 。 3 武汉理工大学硕士学位论文 1 1 4 分布对象中间件 面向对象中间件是最先发展起来的一种中间件系统。面向对象的技术一直是 软件界努力追求的目标,传统的面向对象技术通过封装、继承及多态提供代码 重用功能。面向对象的中间件在此基础上更进一步,提供一个标准的分布式构 件框架,能使不同的软件模块通过不同的地址空间、网络和操作系统相互访问。 该构件的具体实现、位置及所依附的操作系统,对用户来说都是透明的。把分 布式计算与面向对象的概念相结合有很多好处,如能够将冗余度控制在最低的 程度,一个对象既能被客户端程序使用,也能被服务器端程序使用,对象实现 的修改不会影响双方实现程序和提高软件重用率。面向对象中问件技术已经相 当成熟,比较著名的项目和产品有c o r b a ,d c o m 等i ”。 1 1 5 安全中间件 网络和分布式环境下应用的最大障碍是安全保密问题,安全中间件是连接安 全产品和安全应用的纽带。目前的安全产品都是防火墙、入侵检测、防病毒产 品的安全产品集成的安全模式,实质上都是对网络层进行基本防护,入侵者只 要躲过入侵检测的过滤,即可合法访问服务器的端口,并在无须认证和授权的 情况下浏览服务器的内容和应用。所有这些问题解决都依赖于安全中间件的发 展。 安全中间件是以公匙基础设施p k i 为核心,建立在一系列相关国际安全标准 的基础上,并对p k i 基本功能如对称加密和解密、非对称加密和解密、信息摘 要、单向散列、数字签名以及密匙生成、储存、销毁等进一步扩充,进而形成 系统安全服务器接口。向上为应用系统提供开发接口,向下提供统一的密码算 法接口以及各种设备驱动接口。在频繁变化的企业计算环境中,安全中间件能 够将不同的应用程序无缝地结合在一起,使用户业务不会因为计算环境的改变 遭受损失。同时,安全中间件屏蔽了安全技术的复杂性,使涉及开发人员无须 具备专业的安全知识背景就能够构造高安全性的应用。 1 1 6 网络中间件 网络中间件是为通讯中间件提供服务的底层中间件,包括网管、接入、网络 测试、虚拟社区和缓冲等,是当前最为热门的中间件领域。随着网络技术的发 4 武汉理工大学硕士学位论文 展,需要新的中间件支持。针对网络计算和w e bs e r v i c e s 的发展,需要研究新的 网络中间件模式。 当前,无线移动中间件和呼叫中心中间件是网络中间件研究中最为热门的话 题。其它如网络计算中间件、q o s 中间件是未来发展的趋势1 2 9 1 。 1 1 7 服务中间件 服务中间件可以具体划分为 6 1 ; ( 1 ) w e b 服务中间件 图形用户界面已成为浏览器公认的标准,但是其会话能力单一,无法进行数 据的写入,并且受到h 兀p 协议的限制,必须对其进行修改和扩充,形成w e b 服务中间件。 目前,多通道技术已成为人机交互研究中的热点,如何进行相应中间件的开 发以支持多通道的w e b 服务器会话,是未来发展的重要方向。 ( 2 ) 服务器构架中间件 当前开发大型应用软件通常采用构架和构件技术。在分布式系统中,需要集 成各节点上的不同系统平台上的构件或不同版本的构件,由此产生了构架中间 件。针对不同的应用服务器,常常需要一批由构架和构件组成的软件。 ( 3 ) 专用平台中间件 为特定应用领域参考模式,建立相应的构架,配置相应的构件库和中间件, 为应用服务器开发和运行特定领域的关键任务。例如财务中间件、应用集成中 间件b e a 的w e b l o g i ci n t e g r a t i o n 等。 1 2 中间件的发展和挑战 中间件作为基础软件的重要组成,业已与操作系统、数据库齐头并进,在世 界范围内呈现出迅猛发展的势头,已经形成一个巨大的产业。目前,中间件在 整个软件行业中应该是发展速度最快的市场之一。软件产业经过2 0 年的发展, 很多企业,部门的信息化建设都走过了关键业务应用和部门级应用的阶段,现 在开始向企业级应用转变。所谓企业级应用,最为人们所重视的就是各类信息 资源之间如何关联、整合、协同、互动和按需服务,这些都是中间件能够发挥 巨大作用的空间所在1 2 2 j 。 5 武汉理工大学硕士学位论文 在我国,中间件产业目前呈现出如下发展特点: 技术多样化:中间件已经成为网络应用系统开发、集成、部署、运行和管理 必不可少的工具。由于中间件技术涉及网络应用的各个层面,涵盖从基础通讯、 数据访问、业务流程集成到应用展现等众多的环节,因此,中间件技术呈现出 多样化的发展特点。 产品平台化:由于传统的中间件技术门槛较高,学习周期较长,已经不能适 应信息化建设对中间件的广泛应用需求。为此,中间件产品从解决网络计算中 的关键问题开始向一体化平台方向发展,以提高中间件产品的使用便利性,更 全面地满足各种网络应用软件所要求的可靠性、可伸缩性和安全性的需要。 应用普及化:中间件技术已经是成熟的技术。我国大型信息化建设项目采纳 中间件已经成为一种自然、例行的举措。中间件的广泛使用,也进一步促进了 应用框架技术的丰富和发展,并为建立企业信息化业务基础架构奠定了基础。 由于应用的复杂性及需求的广泛性,用户需求的多样化,中间件技术也面临 着一系列的挑战: 互联网的规模越来越大,各种资源也越来越丰富,这个复杂的分布式系统中 构建应用程序并将整个互联网的各种资源全部整合在一起,是相当困难甚至难 以实现的,而这将是中间件下一步亟待解决的问题。 同时,移动通讯的发展也非常迅速,网络带宽以及服务质量都有了飞跃式的 发展,人们的各种服务有在移动中获取的需求,因此,在这个领域,中间件面 临更为复杂的异构环境以及无线通信和动态配置的挑战。 越来越多的用户使用网络提供的服务,这就对服务质量提出了更高的要求, 质量低劣的服务是没有市场的。在这一背景下对中间件的高可用功能,容错性 和响应速度也提出了更高的要求。 1 3 论文的研究内容和现实意义 1 3 1 研究内容 本文在参照j o r a 等开源消息中间件实现的基础上,以j o r a 的研究为 主,设计并实现了一个完整的消息中间件产品c o o l j m s 。这一产品将建立起出 版订阅和点到点的消息交换模式,实现六类标准的j m s 消息,实现所有的j m s 6 武汉理工大学硕士学位论文 标准a p i ,实现持久化消息交换。 本文的组织结构: 首先介绍了消息中间件与j m s 的基本概念,技术标准以及一些常见的消息 中间件的产品,然后介绍了实现一个基于j m s 的消息中间件中需要利用的常见 技术和标准。 接着,本文提出一个基于j m s 的消息中间件的框架模型,并在这个模型的 基础上设计了内部运行机制并且实现了部分运行机制。 最后,文章举例说明了如何应用所开发的消息中间件的a p i 进行消息的发 布,接收,订阅消息,并列举了一个实际应用中的例子,j m s 在分布式储蓄系 统中的应用,说明了如何运用消息中间件开发分布式应用。 1 3 2 现实意义 随着市场竞争的加剧以及从事电子商务的需要,企业经常要进行业务流程 的调整,越来越多的企业开始关注系统的伸缩性和可扩展性。消息中间件可以 跨平台操作,为不同操作系统上的应用软件集成提供方便,从而满足企业内部 对系统伸缩性和可扩展性的要求。由于以上因素的作用,消息中间件在银行、 电信、金融等大规模关键事务领域中整合各种异构平台、保证交易完整性等方 面表现出了超强的能力。 消息中间件的重要性己经开始为国内信息产业所重视,并视之为支持中国 软件业发展的支柱之一;同时,我国的银行金融系统、电信、政府部门己经把 中间件技术作为网络建设的自然选择,用以支持各自核心业务的运营。 i n t e m e t 应用的普及、电子商务的兴起以及国内信息化建设的深入,有效的 推动了中问件、应用服务器和软件平台技术的应用和发展。金融行业是最早采 用消息中间件产品的领域,作为一种重要的基础软件,中间件在开发和优化银 行的柜面系统中发挥了巨大的作用。在电信领域,中间件的解决方案先后为中 国电信、中国联通、中国移动、网通、铁通等各运营商广泛应用。迄今为止, 消息中间件广泛应用于从银行、电信、政府到交通运输、文教卫生等十几个行 业,可谓无处不在。 因此,对于消息中间件的研究很有必要,而且将具有重大现实意义。 7 武汉理工大学硕士学位论文 第2 章消息中间件与j m s 2 1 常见消息中间件产品 进入2 1 世纪以来,增长率最高的中间件集中在消息中间件、交易中间件、 对象中间件、应用服务器中间件、数据访问中间件5 种,消息中间件是目前中 间件技术的发展热点之一。 最早具有中间件技术思想及功能并投入实用软件是m m 的c i c s ,但c i c s 并非分布式环境的产物。因此人们一般把1 9 8 4 年由贝尔实验室开发完成的 t u x e d o 作为第一个严格意义上的中间件产品。目前,比较典型的商业消息中间 件系统有:m m 的m q s e r i e s 、m i c r o s o f t 的m s m q 等;国内比较著名的有东方 通t o n g l i n k q 的;开源的有:o p e n j m s ,a c t i v e m q ,j o r a i 等。 2 1 1m q s e r i e s m 的m q s e r i c 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 是灵活的应用程序通信方案。m q s e r i e s 支持所有的主要计 算平台和通信模式,也能够支持先进的技术,拥有连接至其它i b m 主要产品的 接n 1 4 0 ! 。 8 武汉理工大学硕士学位论文 2 1 2m s m q 微软消息中间件m s m q 可以在应用之间实现推送式的商务传输环境,即使 在可靠性不高的网络上也能建立可靠的应用。它具有易用、应用高度集成的特 点。由于完全支持c o m 、动态目标服务构架以主内置集中式系统管理,m s m q 成为w i n d o w s2 0 0 0s e r v e r 上最容易使用、部署和管理的消息队列产品。它提供 全面的消息队列功能,比如可靠而有强性的消息传送、基于开销的消息路由以 及对事务处理的完全支持。m s m q 通过微软的m s m q m qs e r i e s 桥来提供与 m q s e r i e s 紧密的互操作性,同样提供与其它消息队列产品的连接。它存在的不 足是:它要求n t 4 0 以上,m q l o 是基于s q l ,其性能低而不稳定。 w i n d o w s 2 0 0 0 版本以后,也只能开发出县级以下开发系统,开发系统级别受 到了一定的限制1 4 ”。 2 1 3 东方通t o n g l i n k q t o nn 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 系统以节点来确定物理网络中的每一个点( 网点和接入机器设 备) ,并通过对节点的配置来构建这些节点之间的关系,从而形成树型或网状的 t o n g l i n k q 逻辑网络通信结构。这完全类似于我国目前的行政机构级别划分处 理,使系统更加形象好用。 t o n g l i n k q 提供集群等机制,它可以在应用程序之间提供数据的跨平台可 靠传送,这些消息可以在不同的网络协议、不同的计算机系统和不同的应用软 件之间传递。它支持消息的同步异步和可靠传输,支持消息的断点续传,支持 消息查询控制,支持应用管理,支持动态密钥交换,r c 5 加密,节点认证安全 认证;支持c 和c + + ,j a v a , d e l p h i ,v b 多种应用开发工具。它还提供了详细的日 志机制,登记系统的日常运行信息,传输的数据包和文件信息、系统出错提示 等。可分级的e t 志方式,对监控、故障处理、系统开发调试和维护提供了方便。 9 武汉理工大学硕士学位论文 2 1 4j o r a m j o r a m 是法国电信研究院支持的o b j e c t w e b 组织所开发的开源j m s 消息中 间件产品,o b j e a w e b 是一个非常活跃的开源中间件团体。j o r a m 支持j m s1 1 , 可以持久化到文件,本身提供j n d i 服务和提供对j m x 的支持,自带的管理工 具可以添加c o n n c c t i o n f a c t o r y 和d e s t i n a t i o n 并绑定到j n d i ,这点对实现动态管 理来说非常有用:文档非常完备,包含了各种配置和调整信息。其稳定性考虑 的尤其好,不仅考虑到j m s 服务器的集群,j n d i 的集群也被考虑进去了,这 是并发性较高的商业应用较为青睐的特性。它的缺点是采用了传统的i o 模型, 每连接一个客户端会在服务器端增加两个线程,这对于服务器的弹性会有所影 响1 2 , 7 。 本文中的许多设计模型和代码都参考了该消息中间件。 2 2 j m s 基本概念 j m s 是s u n 公司及其合作伙伴提出的旨在统一各种m o m 系统接口的规范, 它是访问企业消息系统的标准a p i 接口。但不是实现。它便于消息系统中的j a v a 应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化 企业应用的开发。j m sa pi 最大限度的减少了程序员学习使用消息产品的概 念,但是却提供了足够功能支持复杂的消息应用。通过j m s 提供者内相同的消 息域,它最大限度的加大了消息应用的可移植性【1 1 】。 j m s 虽然是s u n 公司领导提出的规范,但在其制定的过程中,m m , o r a c l e ,s y b a s e ,b e a 等厂商都参与了制定,因此它得到了业界的普遍支持。另 外,j m s 规范中并非所有的内容都是必须实现的,有相当一部分是实现者可以 选择实现的。 j m s 应用由以下几部分组成: ( 1 ) j m s 提供者:它是一个消息系统,它不仅实现了j m s 接口,还提供管理 和控制的功能。 ( 2 ) j m s 客户端:是用j a v a 语言写的一些程序和组件,它们产生和使用消息。 ( 3 ) 消息:是在j m sc l i e n t s 之间传递的消息的对象。 ( 4 ) 管理对象:是由使用j m sc l i e n t s 的人生成的预选设置好的j m s 对象。 1 0 武汉理工大学硕士学位论文 有两种这样的对象:d e s t i n a t i o n s 和c o n n e c t i o nf a c t o r i e s : 前者是一种客户端用来指定消息发送的目的地或者得到所接收的消息的发 送源头的对象,p r p 模式下,它是指q u e u e ( 队列) ,在p u b s u b 模式下,它是指 1 o p i c ( 主题) ;后者是一种客户端通过j m s 提供者创建连接的对象,通常服务提 供者就是消息中间件【刎。 2 3 j m s 基本功能 j m s 是用于和面向消息的中间件相互通信的应用程序接口。它既支持点对点 的域,又支持发布订阅类型的域,并且提供对下列类型的支持:经认可的消息 传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持【1 2 1 。 2 4j m s 消息传输模式 j m s 规范提供了两种消息传输模式:一种是点对点的消息传递模式,另一种 是发布订阅的消息传递模式【1 3 矧。 2 4 1p o i n t - t o - p o i n t ( p t p ) 方式 点到点的模型。点到点模式实现了一对一的消息交换。它允许消息生产者和 消息消费者采用同步或异步的方式进行消息交换。消息由一个j m s 客户机( 发 布者) 发送到服务器上的一个目的地,即一个队列;而另一个j m s 客户机( 订 阅者) 则可以访问这个队列,并从该服务器获取这条消息【2 1 】。 作为消息目的地的q u e u e 遵守先进先出( f 琢0 ) 规则,队列把消息按照发送的 顺序保存在队列中,并按顺序发送给消息接收者。所有消息都被发送到一个特 定的队列,它们在这里保持到用尽了自己的时间限制或由接收者处理。发送者 并不需要知道接收者,接收者也不需要知道这个消息是在何处产生的。发送者 和接收者可以在运行时动态地增加到消息队列中i 明。 p t p 方式有以下特点: ( 1 ) 每一个消息只有一个使用者,但一个队列可能会附带有多个消费者。多个制 造者可以向相同的队列发送消息。 ( 2 ) 一个消息的发送者和接收者没有时间上的依赖关系。无论发送者有没有在运 1 1 武汉理工大学硕士学位论文 行,接收者都可提取消息。为了让双方可以工作,唯一需要运行的就是消息队 列,j m s 客户( 制造者和消费者) 不需要同时运行。 ( 3 ) 接收者完成对消息处理这后,发出确认。消费者确认了一次接收以后,相应 的消息就会被从队列中删除。 当发出的每一个消息必须由一个使用者成功处理的情况下,使用f i t 的发送机 制。 2 4 2p u b l i s h s u b s c r i b e ( p u b s u b ) 方式 发布订阅模型。发布订阅模型实现了一对多的消息交换。这里仍然是由一 个j m s 客户机将一条消息发布到服务器上的一个目的地上,但是这次这个目的 地叫做一个主题,可有多个订阅者去访问该消息。消息将一直维持在主题中, 直到这个主题的所有订阅者都取走了该消息的一个副本。消息也包括了一个参 数,用于定义了该消息的耐久性( 它能够在服务器上等待订阅者多长时间) 【1 5 1 。 p u b s u b 的消息传送有如下的特点: 1 1 每一个消息可以有0 个或多个使用者;每个消费者只能获得消息的一个 拷贝: 发布者和订阅者在时间上有依赖关系。一个订阅了某一个主题的客户, 只能使用在它生成订阅之后发布的消息,并且订阅者必须一直保持活动状态。它 将无法接收到在它生成之前的消息; 3 1j m s a p i 允许客户生成持久性的订阅,从而在某种程度上放宽了这种时间 上的依赖关系,提高了灵活性处可靠性。当一个持久化订阅者的连接断开时, 服务器负责存储该订阅者订阅的所有消息,并在连接恢复时发送给订阅者: 4 ) j m s 提供“退订”( u n s u b s c r i b e ) 功能。对于非持久化订阅者,当连接断 开时,系统自动完成退订;而对于持久化订阅者,必须显式调用退订方法才能 完成退订的功能【4 2 1 。 2 5j m s 消息数据结构 在j m s 应用系统中,所有的数据和事件都是以消息的方式进行通讯。j m s 消 息由以下几部分组成:消息头,属性,消息体【4 3 】。 武汉理工大学硕士学位论文 2 5 1 消息头 消息头包含消息的识别信息和路由信息,消息头包含一些标准的属性如: j m s d e s t i n a t i o n , j m s m e s s a g e i d 等。 表2 - 1 消息头表 。消息头 一 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 消息目的地,它指向t o p i c 或q u e u e 对象 j m s d e l i v e r y m o d ei n t 消息传输方式,有两种:持久化和非持久化 j m s e x p i r a t i o nl o n g 消息的过期时间 j m s p r i o r i t y i n t 消息的优先级 j m s m e s s a g e l d s t r i n g消息i d ,唯一标识本条消息的一个字符串 j m s t i m e s t a m pl o n g 消息时间戳,发送消息的准确时间 j m s c o r r e l a t i o n i d s t r i n g消息的相关消息d ,通常用于答复消息指向 源消息 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 决定消息是否重发 2 5 2 属性 除了消息头中定义好的标准属性外,j m s 提供一种机制增加新属性到消息 头中,这种新属性包含以下几种: 1 ) 应用需要用到的属性; 2 ) 消息头中原有的一些可选属性; 3 1j m sp r o v i d e r 需要用到的属性。 标准的j m s 消息头包含以下属性: 表2 2 属性表 。瘸性名称 ”_设鼹。,jj ? j - ? 。+ j m s x u s e n d 消息发送者的客户i d j m s x a p p i d 消息发送的应用系统的i d j m s p r o d u c e r l x i d制造消息操作所在的事务的m j m s c o n s u m e r l x 叩消费消息操作所在的事务的m i m s x r c v t i m e s t a m p提供本消息回复消息的目的地址 j m s x d e l i v e r y c o u n t消息被接收时的u t c 时间 j m s x s t a t e消息类型的识别符 武汉理工大学硕士学位论文 2 5 3 消息体 j m sa p i 定义了5 种消息体格式,也叫消息类型,程序员可以使用不同形式 发送接收数据并可以兼容现有的消息格式。 漕息类型:一: ? ”“? ? 澎蠢绣,。j ,。;。墨 t e x t m e s s a g ej a v a 1 a n g s t r i n g 对象,如x m l 内容 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 c t m e s s a g e j a v a 中的可序列化对象 m e s s a g e 最简单的消息,它是其他5 类消息的超类 表2 - 3 消息类型表 2 6 j m sa p i 编程模型 j m s 定义了一组封装各种消息概念的高级接口,而这些接口又因为两个消息 域进行了进一步地定义和定制。按照a p i 的性质,可以分为三类:控制类、消 息类和异常类i 垌。 2 6 1 j m s 控制a p i 1 c o n n e c t i o n f a c t o r y :一个创建c o n n e c t i o n 的受管理对象。 2 c o n n e c t i o n :连接到提供者的活动连接。 3 d e s t i n a t i o n :一个封装消息目的地的身份的受管理对象,如消息的来源地和发 送地。 4 s e s s i o n :发送和接收消息的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 24163-2025站用储气瓶定期检验与评定
- GB/T 19839-2025工业燃油燃气燃烧器通用技术条件
- 2025康复医学治疗技术副高级职称模拟试题附完整答案详解【典优】
- 2023年度医师定期考核练习题【预热题】附答案详解
- 特殊人群疫苗接种建议
- 中暑患者降温护理
- 2025年银行岗位考前冲刺测试卷及完整答案详解【网校专用】
- 房产收购合同(标准版)
- 房地产 -居住报告豪华住宅开发的全球视角 The Residence Report The global perspective on luxury residential development 2025 -2026
- 作文大赛获奖感言(31篇)
- 律师行业税务问题课件
- 2025年4月自考00831英语语法试题及答案含评分参考
- 招商局集团招聘考试真题2024
- 政府融资帮扶协议书
- 2025公需课《新质生产力与现代化产业体系》考核试题库及答案
- 《提升思维高度:战略思维培养与应用》课件
- 教官聘用合同协议
- DB63T 1599-2025 高海拔高寒地区公路边坡生态防护技术设计规范
- 企业孵化贸易增量合同样本
- Module 9 great inventions Unit 3 教学设计 2024-2025学年外研版九年级英语上册
- 统编版小学语文五年级上册第三单元快乐读书吧《中国民间故事》导读课课件
评论
0/150
提交评论