




已阅读5页,还剩62页未读, 继续免费阅读
(计算机应用技术专业论文)具有缓存机制的数据交换模型的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 摘要 信息技术的快速发展使得各行各业对数据交换的需求越来越迫切,而传统的 数据交换平台存在部署复杂、结构单一、效率低下的缺点,它要求所有的合作伙 伴都必须使用唯一的解决方案,这使得e d i 实现成本过高且过于冗长,如果提出 一个新的解决方案或者某个部门想添加一些附属内容,这意味着整个e d i 系统将 会被修改,而且昂贵的转换软件和增值网络服务一般来说是令人难以接受的。因 此,本论文研究的出发点就是建立一套易于管理和修改、性能良好的数据交换系 统。 本论文讨论的内容主要集中在系统配置、部署以及效率的改进方面,采用了 当前j 2 e e 社区流行的s p r i n g ,j m s ,x m l 技术,并且引入了缓存机制。首先,系 统的配置与组件的集成以x m l 作为基础,x m l 不仅仅是数据交换的载体,也成 为了整个系统的配置核心,这样就解决了传统数据交换模型难以部署和移植的弊 端;其次,s p r i n g 框架的引入使得系统架构更加简洁,开发者不再把重点集中在系 统实现上,而是专注于业务逻辑,突出系统易于维护的特性;第三,采用了开源 的a c t i v e m q 作为j m s 消息服务器,一方面由于其轻便小巧,功能完备,另一方 面在于a c t i v e m q 可以与s p r i n g 框架进行无缝集成,使得整个系统更加紧凑;最 后,本系统引入了缓存机制作为数据交换平台的补充,提高了在大规模数据交换 条件下的数据查询性能。 基于以上设计初衷,在系统实现方面本论文完成了数据交换系统的原型,并 且成功运用到了大连港v t s 系统中,初步实现了海事局系统内部的数据交换,得 到了良好的效果,进一步证明了本数据交换系统的可行性和可靠性。 关键词:数据交换;s p rin g tj _ s ;缓存 英文摘要 t h er e s e a r c ha n da p p l i c a t i o no fe l e c t r o n i cd a t ai n t e r c h a n g e p l a t f o t i nw i t hc a c h em e c h a n i s m a b s t r a c t a st h er a p i dd e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g y ,t h en e e do fd a t ae x c h a n g e b e c o m e sm o r ea n dm o r ei n t e n s ei nc o m p a n i e so fa l lf i e l d s ,h o w e v e r ,t h et r a d i t i o n a ld a t a e x c h a n g ep l a t f o r md oh a v em a n yd e f e c t s ,s u c ha sd i f f i c u l tt od e p l o y ,s i m p l ea r c h i t e c t u r e , l o we f f i c i e n c ya n ds oo n t h o s ek i n d so fp l a t f o r mr e q u i r ea l lc o o p e r a t o r su s et h es a m e s o l u t i o n sw h i c hm a k et h ec o s to fe d ib e c o m e st o oh i g ha n dr e d u n d a n t ,a n di ft h eu s e s n e e ds o m en e ws o l u t i o n so ra d ds o m ef u n c t i o n st oc e r t a i nd e p a r t m e n t ,i tm e a n st h a tt h e w h o l ee d is y s t e mm u s tb em o d i f i e d f u r t h e rm o r e ,t h ee x p e n s i v et r a n s f o r ms o f t w a r e a n di n c r e a s e dn e t w o r ks e r v i c ew i l lb eb u r d e n s o m et oc o m m o nu s e s a sar e s u l t ,t h i s p a p e ra t t a c h e si t si m p o r t a n c eo nan e wa r c h i t e c t u r ea n dw i l t i n gt o e s t a b l i s ha ne d i s y s t e mt h a te a s yt om a n a g ew h i l ep e r f o r m a n c e se f f i c i e n t l y b yu s i n gm a n yp o p u l a rt e c h n o l o g i e si nj 2 e ec o m m u n i t ys u c ha ss p r i n g ,j m sa n d x m l ,t h i sp a p e rm a k e sm a n yi m p r o v e m e n t sc o m p a r et ot r a d i t i o n a le d is y s t e m sa n d t h eu s eo fc a c h em a k e si tm u c hm o r ee f f i c i e n t f i r s t l y ,t h ec o n f i g u r a t i o no ft h es y s t e m a n dt h ei n t e g r a t i o no fa l lm o d u l ea r ea l lb a s e do nx m l , x m li sn o to n l yt h ec a r r i e ro f d a t u md u r i n gt r a n s f o r mb u ta l s ot h ec o r eo ft h ew h o l ec o n f i g u r a t i o na r c h i t e c t u r e i nt h i s w a y ,i tc o n q u e r st h ed i s a d v a n t a g eo fd i f f i c u l tt od e p l o ya n dt r a n s p l a n t a t i o ni no t h e re d i s y s t e m s s e c o n d l y ,w i t ht h eu s e o fs p r i n gf r a m e w o r k ,t h ea r c h i t e c t u r eb e c o m e ss i m p l e , d e v e l o p e r sc a nt r a n s f e rt h e i re f f o r tf r o mc o d i n gt ob u s i n e s s f r o mt h i sp o i n t o fv i e w ,t h e s y s t e mi se a s yt om a i n t a i n t h i r d l y ,t h i sp a p e ru s e sa c t i v e m qa sj m sm e s s a g e s e r v e r a c t i v e m qi sa no p e ns o u r c ep r o j e c t ,i ti sh 曲t w e i g h tw i t hf u l lf u n c t i o n sa n di ti se a s yt o i n t e g r a t ew i t hs p r i n gf r a m e w o r k a tl a s t ,t h i sp a p e ri n t r o d u c e st h ec a c h e m e c h a n i s ma s s u p p l e m e n tt oe d is y s t e mt h a ti m p r o v e st h eq u e r yp e r f o r m a n c ei nl a r g ed a t a b a s e s e n v i r o n m e n t b a s e do nt h et h e o r ym e n t i o n e da b o v e ,t h ea u t h o rw o r k so u tap r o t o t y p es y s t e ma n d d e p l o y e di tw i t ht h e “v t ss y s t e mo fd a l i a np o r t t h es y s t e mi sr u n n i n gw e l ln o w a n d h a sr e c e i v e dp o s i t i v ec o m m e n t , w h i c hp r o v e st h i se d is y s t e mi sa v a i l a b l ea n dr e l i a b l e k e yw o r d s :d a t ae x c h a n g e ;s p r i n g ;j m s ;c a c h e 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果,撰写 成博t 硕士学位论文竺县直缓在扭趔鲍麴握交逸槿型丝硒究皇塞现:。除论文 中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在文 中以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经公 开发表或未公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名萄协可 彬年弓月裙日 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法 ,同意大连海事大学保留并向国家有关部门或机构送交学位 论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将 本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或 扫描等复制手段保存和汇编学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于:保密口 不保密口( 请在以上方框内打“”) 论文作者签名:历1 商 导师签名: 日期:砂矿年哆月 具有缓存机制的数据交换模型的研究与实现 第1 章绪论 1 1 研究背景 在互联网技术飞速发展的今天,企业中的各个部门都建立了自己的信息系统, 这些系统大大降低了企业内部的管理投入,同时也提高了工作效率,但是在各部 门迈向信息化的过程中又暴露出了一些问题,主要体现在以下方面:第一,由于 各部门的信息系统是逐步建立起来的,因此,各个阶段的系统只能代表当时的业 务需求,而随着业务的不断扩张,就需要在原来的基础上增加新的模块,并且要 求各个模块问的数据可以方便地共享,如果直接抛弃原有系统而完全重新开发, 就会造成资源的浪费,在这种情况下,对数据交换技术的需求变得非常迫切。第 二,不同的企业甚至不同的部门所采用的系统架构( 如操作系统,应用程序,数 据库等等) 大多是不同的,而随着信息共享概念深入人心,这些分布且异构的平 台之间需要尽可能多地进行信息的交互,可是在有些情况下这种交互很难实现, 如把早期流行的c s 架构数据与现在成为主流的b s 架构数据【1 】进行实时交互就是 一大问题。第三,当今大型信息系统中的数据量越来越庞大,在千万条数据中进 行查询不仅耗费时间更耗费资源,如何提高系统运行效率也是设计者需要充分考 虑的一个方面。 2 0 0 0 年1 0 月,海事系统开始实施水上安全监督信息系统一期工程。主要建设 了海事局局域网和全系统1 9 个直属海事局的局域网及其间的广域网链路,建立了 统一的海事主干网络平台,为海事系统各项业务提供了专门的安全可靠、快速、 准确的业务信息交换通道;开通了海事系统的内部电子邮件系统;建立了海事系 统的i n t e m e t 网站,实现了船舶安全检查、船员考试等海事管理、行政执法服务信 息的网上发布;重点开发建设船员管理、船舶管理和事故应急管理应用系统;兼 顾开发了通航管理、船载客货、行政办公与法规、公用信息应用系统。 经过多年的建设与发展,我国水路通过观测、探测、检测、调查、实验等公 益性业务活动和重大科学工程、重点实验室、观测研究等的建设,以及一系列科 技计划的实施,积累了大量的水运数据。这些宝贵的水运数据资源在科技进步、 第1 章绪论 社会发展、经济增长和运输安全等方面发挥了重要作用。伴随国家信息化建设步 伐的加快,水运数据资源的管理将朝着数字化、网络化和国际化方向发展。在以 信息技术带动产业结构调整,用信息促进水运发展的今天,水运数据资源的高效 管理与传播是十分重要的。为实现建设以营运船舶数据库和水运综合信息管理系 统等水运管理信息化目标,需要建设先进、安全、完善的网络基础设施、安全信 任基础设施和电子政务数据交换平台,为水运管理信息化提供必要的基础支持。 目前,海事系统信息化建设中还存在以下问题: 1 、业务应用系统功能单一,信息共享程度低。 2 、我国航运行业己开发了一些基本的信息管理系统,涵盖了大部分的管理 内容并建立了一些数据库。但是现状存在的问题是:一个应用软件对应一个数据 库,系统间互相分割,互不一致。全国性行业应用系统不多,造成管理信息数据 的应用范围和层次较低,缺乏及时、灵敏、有效的行业信息采集手段,缺乏数据 交换平台支持,不能满足行业管理、行政审批、公共服务对数据采集、业务办理、 决策支持和信息服务的需要。要努力实现信息共享,并分析、挖掘其中的价值, 才是我们最终的目标。 3 、缺少安全信任支撑体系,安全性低,时效性差。 4 、部分网络及系统设备老化,业务支持及存储能力较低。 5 、缺乏直观高效的多媒体办公手段,应急指挥能力低。 6 、信息发布渠道狭窄使社会不能及时得到航运管理信息服务。由于多种因 素和条件限制,导致航运管理信息发布渠道相对狭窄。 1 2 数据交换技术发展现状 。一 传统的数据交换,即电子数据交换( e l e c t r o n i cd a t ai n t e r c h a n g e ,简称e d i ) , 是一种基于计算机应用、通信网络和电子数据处理的电子商务技术( 也可以用于 电子政务中的电子数据处理) ,作为企业间商务往来的重要支持技术和标准已经 有3 0 多年的历史。e d i 的处理机制是先将需要传输的数据按照一个公认的标准形 成结构化的事务处理的报文数据格式,然后将这些结构化的报文数据通过专用网 具有缓存机制的数据交换模型的研究与实现 络进行传输;所有的e d i 报文都是“按照一个公认的标准 形成的,具有一定的 结构特性,e d i 报文能被系统中不同的计算机识别和处理的原理即在于电子数据格 式的标准化;e d i 系统中,信息传输的途径是“企业的计算机一电子数据通信网:一 贸易伙伴的计算机”,中间无需任何人工干预;e d i 的最终用户是计算机应用软件 系统,这种传输是机对机、应用对应用的,这为e d i 与其他计算机应用系统如管 理信息系统的互联提供了便利。e d i 系统的大范围应用,可以减少数据处理费用和 数据重复录入费用,并大大缩短交易时间。 但是,传统的e d i 实现了统一性却没有实现可扩展性,它要求所有的合作伙 伴都必须使用唯一的解决方案,这使得e d i 实现成本过高且过于冗长,如果提出 一个新的解决方案或者某个部门想添加一些附属内容,这意味着整个e d i 系统将 会被修改,而且昂贵的转换软件和增值网络服务一般来说是令人难以接受的1 2 】。 近两年兴起的j m s 消息中间件技术与x m l 技术相结合使得e d i 有了新的发 展,采用x m l 作为消息载体使得e d i 系统更加容易扩展,传输也更加容易,国内 外对于此技术的研究也是方兴未艾3 】【4 1 。虽然j m s 与x m l 的结合可以解决e d i 中的大部分问题,但是从数据库到x m l 文件的映射以及系统的可移植性和灵活性 仍旧困扰着开发者,查询性能优化也成为一个新的噬待解决的问题。 1 3 研究内容及意义 本论文所讨论的e d i 系统主要是基于消息中间件技术,但是在以往e d i 系统 的研究基础上进行了改良,设计了一种具有缓存功能且易于配置和管理的e d i 系 统。整个系统的核心配置完全基于x m l 文件,通过在x m l 配置文件中定义源数 据库、目标数据库、字段映射以及缓存参数,系统可以在多种数据库环境下运行。 另外,本文首次在e d i 系统中加入了缓存功能,设计出了一套扩展性强、便于管 理、性能良好新系统,使得系统的负载大大降低,在提高查询性能的同时又降低 了资源消耗。最后,在充分利用j m s 消息的主题“发布,订阅 模式的基础上,融 合了当前流行的s p r i n g 【8 】框架,用s p r i n g 的i o c 容器功能来管理所有对象,既简 化开发过程又易于维护和修改。 。 第1 章绪论 缓存功能与数据交换的结合使得大规模数据集成成为可能,j m s 的引入增加 了数据交换的实时性,用户也不必再担心海量数据集成到同一个数据库的同时所 带来的性能问题,。因此本系统的研究不仅对于海事系统的升级改造具有重要的参 考价值,而且适用于其他领域的数据共享和交换。 1 4 论文结构 本论文由六个章节组成,第二章主要介绍消息中间件技术的由来及特点,重 点介绍j m s 中的消息传递方式、可靠性以及异步性。 第三章介绍s p r i n g 技术的背景及特点,重点介绍其核心的i o c 和a o p 概念。 第四章给出在s p r i n g 下采用缓存架构的e d i 系统的设计思路及系统架构,深 入分析整个系统的设计及实现方法。 第五章介绍本系统在海事局v t s 系统中的应用情况。 第六章进行总结并提出进一步工作要 具有缓存机制的数据交换模型的研究与实现 第2 章消息中间件技术 2 1 消息中间件技术概述 中间件( m i d d l e w a r e ) 是处于操作系统和应用程序之间的软件,也有人认为它 应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在 一起,构成一个平台( 包括开发平台和运行平台) ,但在这组中间件中必需要有一个 通信中间件,即中间件= 平台+ 通信,这个定义也限定了只有用于分布式系统中才 能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。 按照i d c 的分类方法,中间件可分为六类。 l 、终端仿真屏幕转换:用以实现客户机图形用户接口与已有的字符接口方式 的服务器应用程序之间的互操作; 2 、数据访问中间件:是为了建立数据应用资源互操作的模式,对异构环境下 的数据库实现联接或文件系统实现联接的中间件;在分布式系统中,重要的数据 都集中存放在数据服务器中,它们可以是关系型的、复合文档型、具有各种存放 格式的多媒体型,或者是经过加密或压缩存放的,这类中间件将为在网络上虚拟 缓冲存取、格式转换、解压等带来方便。 3 、远程过程调用中间件:通过这种远程过程调用机制,程序员编写客户方的 应用,需要时可以调用位于远端服务器上的过程; 4 、消息中间件:用来屏蔽掉各种平台及协议之间的特性,实现在不同平台之 间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输,实现应用 程序之间的协同。这是中间件中唯一不可缺少的,是销售额最大的中间件产品。 5 、交易中间件:是在分布、异构环境下提供保证交易完整性和数据完整性的 一种环境平台。在分布式事务处理系统中要处理大量事务,常常在系统中要同时 做上万笔事务。在联机事务处理系统( o l t p ) 中,每笔事务常常要多台服务器上的 程序顺序地协调完成,一旦中间发生某种故障时,不但要完成恢复工作,而且要 自动切换系统,达到系统永不停机,实现高可靠性运行;同时要使大量事务在多 台应用服务器能实时并发运行,并进行负载平衡地调度,实现昂贵的可靠性机和 第2 章消息中间件技术 大型计算机系统同等的功能,为了实现这个目标,要求系统具有监视和调度整个 系统的功能。根据x o p e n 的d t p ( d i s t r i b u t e dt r a n s a c t i o np r o c e s s i n g ) 模型规定, 一个分布式交易处理系统应由事务处理、通信处理以及资源管理三部分组成。b e a 公司的t u x e d o 便是最著名的一个交易中间件产品,东方通科技公司的 t o n g l i n k 和t o n g e a s y 实现了d t p 参考模型规定,另外还有m m 公司的 t x s e r i e r s 是应用广泛的一个交易中间件产品。 6 、对象中间件:在分布、异构的网络计算环境中,可以将各种分布对象有机 地结合在一起,完成系统的快速集成,实现对象重用,在这个方面遵循的标准是 c o r b a 。对象中间件将是未来的主流,目前产品如东方通的t o n gb r o k e r , i n p r i c e 公司的b o r l a n da p p l i c a t i o ns e r v e r 。 2 1 1 在本文中,主要应用的是消息中间件。消息中间件适用于需要在多个进程之 间进行可靠的数据传送的分布式环境,它的一个重要作用是可以实现跨平台操作, 为不同操作系统上的应用软件集成提供服务,一般用在数据交换上,适用于任何 需要进行网络通信的系统。发送者将消息发送给消息服务器,消息服务器将消息 存放在若干队列中,在合适的时候再将消息发送给接收者。在这种模式下,发送 和接收是异步的,发送者无需等待;二者的生命周期也未必相同;发送消息的时 候接收者不一定运行,接收消息的时候发送者也不一定运行。 消息中间件有以下几个显著特点: 1 、异步通信机制、 这是消息中间件的核心本质。“异步 说明不要求通信的双方必须同时在场。 当网络出现某种故障使不同部分间无法互相连接时,或当通信的一方在等待另一 方的响应过程中耗费了过多的时间和网络资源时,“异步”都为我们提供了解决 之道,这种机制保证在忽略通信一方存在的情况下,业务得以继续进行,而且一 旦通信双方的连接恢复后,因中断而积累的消息会快速地传递到通信的另一方, 不会丢失。 具有缓存机制的数据交换模型的研究与实现 ,s e r v e r s i d e p c e s s i n g n 9 吨l l m 23 e i 喧汀s j a t 誊p 翻翻o e ss i1 1 9 2 一l 钧嗍悖i d o p m 。9 鬈鬈i n g f e t u m :- - : 2 勖勖格蚝l d ep 艇觉a 皇- 葺湛i 豹0 图2 1 异步通信序列 f i g 2 1s e q u e n c eo fa s y n c h r o n o u s 图2 1 的序列图演示了异步通信模型。注意第一个d a t a s u b m i s s i o n ( 由服务器 端处理) 和第一个返回的d a t a s u b m i s s i o n ,两个都用圆圈圈上了,这些序列是解耦 的。这个图示还强调了一个重要方面:在这个模型中,可以发生多个提交( 线程) 。 2 、队列化消息传递 “队列化 其实是实现“异步通信 核心本质的手段。当通信的双方不能同 步交换消息时,要传递的消息必须以某种数据结构方式暂时保存下来,通常采用 的数据结构就是“队列 ,消息通过队列来进行存储转发的机制就是“队列化消 息传输,也就是说,消息的发送者和接收者通过“队列 中间媒介进行交互。 图2 2 描述了队列化消息传递模型。 甲甲 第2 章消息中间件技术 图2 2 消息传递队列 f i g 2 2q u e u eo fm e s s a g e 3 、消息的传递可靠、安全、有效 消息安全及时地到达、不丢失、不重复对通信双方都是非常重要的,这是对 分布式应用数据完整性的保证。 消息中间件在客户机与服务器之间起到了协调人的作用,它不但能够支持更 多的用户同时与服务器打交道,还可以表达不同计算机环境中的模型。即使同时 有几百个用户向服务器提交数据请求,消息中间件也能够很好地通过负载均衡来 处理多个连接。事实上,设计人员甚至可以根据对系统资源的要求,为应用分配 多个服务器,客户机不必关心任何服务器的物理位置,消息中间件可以帮助客户 机完成与不同服务器之间的通信。 具有缓存机制的数据交换模型的研究与实现 2 2j m s 2 2 1j m s 介绍 消息中间件技术的设计和开发并没有统一的标准,s u n o n e 提出了, i q v i s ( j a v a m e s s a g es e r v i c e ) f 5 3 技术作为j a v a 平台的消息服务接口规范,它定义了呷整套在j a v a 企业系统中传递消息的规则,提供了一个通用的消息模型,包括点对点( p o i n tt o p o i n t ) 和发布订阅( p u b l i s h s u b s c r i b e ) 两种模式,提供可靠的消息传输、事务和消息 过滤等机制。目前,基于此项规范已经有很多成功的产品,如p r o g r e s s 公司的 s o n i c m q 网,开放源代码的a c t i v e m q t 7 1 等等,本论文所涉及的消息中间件,采用 了开源的a c t i v e m q 。 j m s 类层次结构图如图2 3 、 图2 3j m s 类层次结构图 f i g 2 3j m sc l a s sh i e r a r c h ys t r u c t u r e 第2 章消息中间件技术 1 、j m s 应用组成 ,一个j m s 应用包括下列组成部分: ( 1 ) j m s 客户端:用来发送接收消息的j a v a 程序。 ( 2 ) 非j m s 客户端:用消息系统本地a p i 代替j m s 的客户端。 ( 3 ) 消息:客户端之间用来交换数据而定义的消息集合。 ( 4 ) j m s 提供者:除了消息框架所需要的其它的管理和控制功能外,实现了j m s 规范的消息系统。 ( 5 ) 管理对象:管理员通过j m s 客户端所创建并预先配置的j m s 对象。 2 、删s 管理 j m s 规范中提供两种管理对象: ( 1 ) c o n n e c t i o n f a c t o r y ( 连接工厂) :一种客户端通过j m s 提供者创建连接的 对象; ( 2 ) d e s t i n a t i o n ( 目的地对象) :一种客户端用来制定消息发送的目的地或者 得到所接收消息的发送源头的对象。 j m s 管理对象( 链接工厂和目的地对象) 需要被管理员预先配置放入j n d i 命名空间中,j m s 客户程序在该命名空间中查找被管理对象,并通过j m s 提供者 建立与这些对象的逻辑连接。 3 、j m s 传输模式 ( 1 ) j m s 点对点模式 点对点传输消息建立在消息队列的基础上,每个客户端对应一个消息队列, 客户端发送消息到对方的消息队列中,从自己的消息队列读取消息。队列将发送 给他们的消息一直保留,直到消息被消费或者消息过期。 消息队列由j m s 提供者提供,消息发送端发送消息到消息队列上,接收端从 消息队列中接收消息。所以,消息发送者和接收者实际并不直接相连,它们之间 的消息通信是通过j m s 提供者上的消息队列来完成的,队列的存在使得消息的异 步传输成为可能。和邮件系统中的邮箱一样,队列可以包含各种消息,j m s 提供 具有缓存机制的数据交换模型的研究与实现 者提供工具管理队列的创建、删除。j m s 点到点模式还定义了客户端如何向队列 发送消息、从队列接收消息、浏览队列中的消息。在点到点消息传递模式中,每 一条消息队列中的消息只能被一个客户所接收。一旦消息队列中的消息被消息客 户接收后,该消息就被队列删除,其他消息客户就不能再访问该条消息。同时, 每一条消息都包含明确的目的地址,能够被发送到确定的消息队列上,并保存在 改队列中,直到被其他客户接收为止。消息队列是一个管理对象,预先配置并保 存在命名空间中,所有j m s 客户都可以通过j n d i 查找到他们的实例。 一个队列由系统创建,并长时间存在。无论消费者的客户端是否激活,它都 可以有效地保持消息并发送它。鉴于这个因素,客户端不用做特别的预防措施来 防止消息丢失。点到点消息传输模式如下图2 4 所示: 图2 4 点到点消息传输模式 f i g 2 4p o i n t - t o p o i n tt r a n s m i s s i o nm o d e l 特征:每条消息只有一个消费者;消息的发送者和接收者没有时间上的相关 性。无论接收者在发送者发送消息时是否处于运行状态,它都可以提取消息;接 收者须确认消息的成功处理( 提供反馈) 。 ( 2 ) j m s 发布订阅模式 第2 章消息中间件技术 发布订阅是基于消息主题,将消息定位到某个层次结构的节点。发布订阅通 常是匿名的并能够动态发布消息,且必须保证某个节点的所有发布者( p u b l i s h e r ) 发 布的消息准确无误得发送给这个节点的所有消息订阅者( s u b s c r i b e r ) 。发布订阅消 息发送模式可以使一条消息被多个客户接收。发布者将消息发布到某个主题上, 多个客户可以同时订阅该主题。当然,一个主题也可以接收多个发布者发送过来 的消息。主题使得消息订阅者和消息发布者相互独立,不需要接触即可保证消息 的传送。主题同样也是一个管理对象,预先配置并保存在命名空间中,所有j m s 客户可以通过j n d i 查找到它们的实例。虽然所有的p u b s u b 系统中都存在延迟, 但是消息的延迟可能会动态依赖于j m s 提供者向己存在的订阅者发送消息的速 度,还包括消息在传输过程中由j m s 提供者保留的时间。发布订阅消息传输模式 如下图2 5 所示: 图2 5 发布订阅消息传输模式 f i g2 5p u b s u bt r a n s m i s s i o nm o d e l 特征:每条消息可以有多个消费者;发布者和订阅者之间有时间相关性。可 以通过创建持久订阅使未处于激活状态的订阅者接收系统发送的消息9 1 。 2 2 2j m s 应用模型 具有缓存机制的数据交换模型的研究与实现 l 、主要接口 j m s 支持的两种消息类型p t p 和p u b s u b ,分别称作:p t pd o m a i n 和p u b s u b d o m m n ,这两种接口都继承统一的j m sp a r e n t 接口,j m s 主要接口如下所示: 表2 1j m s 接口 f i g2 1a p i so f m s j m sp a r e n tp t p d o m a i np u b s u bd o m a i n c o n n e c t i o n f a c t o r yq u e u e c o n n e c t i o n f a c t o r y t o p i c 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 q u e u e c o r m e c t i o nt o p i c c o n n e c t i o n d e s t i n a t i o n q u e u e t o p i c s e s s i o n q u e u e s e s s i o nt o p i c s e s s i o n m e s s a g e p r o d u c e rq u e u e s e n d e r t o p i c p u b l i s h e r m e s s a g e c o n s u m e r q u e u e r e c e i v e r ,q u e u e b r o w s e r t o p i c s u b s c r i b e r 以下是对这些接口的简单描述: c o n n e c t i o n f a c t o r y :连接工厂,j m s 用它创建连接 c o n n e c t i o n :j m s 客户端到肼sp r o v i d e r 的连接 d e s t i n a t i o n :消息的目的地 s e s s i o n :一个发送或接收消息的线程 m e s s a g e p r o d u c e r :由s e s s i o n 对象创建的用来发送消息的对象 m e s s a g e c o n s u m e r :由s e s s i o n 对象创建的用来接收消息的对象 2 、j m s 消息模型 j m s 消息由以下几部分组成:消息头,属性,消息体。 消息头( h e a d e r ) :消息头包含消息的识别信息和路由信息,消息头包含一些标 准的属性如:j m s d e s t i n a t i o n ,j m s m e s s a g e l d 等,如表2 2 所示 第2 章消息中间件技术 表2 2j m s 消息头属性列表 7 k t b2 2a t t r i b u t e so fh e a d e r 消息头属性 由谁设置 j m s d e s t i n a t i o n s e n d 或p u b l i s h 方法 j m s d e l i v e r y m o d e s e n d 或p u b l i s h 方法 j m s e x p i r a t i o n s e n d 或p u b l i s h 方法 j m s p r i o r i t y s e n d 或p u b l i s h 方法 j m s m e s s a g e l d s e n d 或p u b l i s h 方法 j m s t i m e s t a m p s e n d 或p u b l i s h 方法 j m s c o r r e l a t i o n 客户 j m s r e p l y t o客户 j m s t y p e客户 j m s r e d e l i v e r e dj m sp r o v i d e r 属性( p r o p e r t i e s ) 除了消息头中定义好的标准属性外,j m s 提供一种机制增 加新属性到消息头中,这种新属性包含以下几种: ( 1 ) 应用需要用到的属性; ( 2 ) 消息头中原有的一些可选属性; ( 3 ) j m sp r o v i d e r 需要用到的属性。 标准的j m s 消息头包含以下属性: j m s d e s t i n a t i o n :消息发送的目的地 j m s d e l i v e r y m o d e :传递模式,有两种模式:p e r s i s t e n t 和 n o n _ p e r s i s t e n t 。p e r s i s t e n t 表示该消息一定要被送到目的地,否则会导致 应用错误。n o n _ p e r s i s t e n t 表示偶然丢失该消息是被允许的,这两种模式使开 发者可以在消息传递的可靠性和吞吐量之间找到平衡点。 j m s m e s s a g e l d :唯一识别每个消息的标识,由j m sp r o v i d e r 产生。 j m s t i m e s t a m p :一个消息被提交给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 d :用来连接到另外一个消息,典型的应用是在回复消息中接 具有缓存机制的数据交换模型的研究与实现 收到原消息。 j m s r e p l y t o :提供本消息回复的目的地址。 j m s r e d e l i v e r e d :如果一个客户端收到一个设置了j m s r e d e l i v e r e d 属性的消 息,则表示可能该客户端曾经在早些时候收到过该消息,但并没有签收 i ( a c k n o w l e d g e d ) 。 j m s t y p e :消息类型的识别符。 j m s e x p i r a f i o n :消息过期时间,等于q u e u e s e n d e r 的s e n d 方法中的 t i m e t o l i v e 值或t o p i c p u b l i s h e r 的p u b l i s h 方法中的t i m e t o l i v e 值加上发送时刻 的g m t 时间值。如果t i m e t o l i v e 值等于零,则j m s e x p i r a t i o n 被设为零,表示 该消息永不过期。如果发送后,在消息过期时间之后消息还没有被发送到目的地, 则该消息被清除。 j m s p r i o r i t y :消息优先级,从0 9 十个级别,o 4 是普通消息,5 - 9 是加急消 息。j m s 不要求j m sp r o v i d e r 严格按照这十个优先级发送消息,但必须保证加急 消息要先于普通消息到达。 消息体( b o d y ) :j m sa p i 定义了5 种消息体格式;也叫消息类型,你可以使 用不同形式发送接收数据并可以兼容现有的消息格式,下面描述这5 种类型 1 0 】: 表2 3 消息体类型 t a b2 3t y p e so fb o d y 消息类型消息体 t e x t m e s s a g e j 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 ej a v a 中的可序列化对象 m e s s a g e没有消息体,只有消息头和属性 3 、开发过程 第2 章消息中间件技术 j m s 应用程序是一个或多个进行消息交换的j m s 客户端,每个客户端可以是 一个消息发送者或者消息接收者,建立一个j m s 客户端需要进行以下步骤: ( 1 ) 通过j n d i 查找c o n n e c t i o n f a c t o r y 对象; ( 2 ) 通过j n d i 查找一个或者多个d e s t i n a t i o n 对象; ( 3 ) c o n n e c t i o n f a c t o r y 根据需要派送的消息来创建一个j m sc o n n e c t i o n 对象; ( 4 ) 使用j m sc o n n e c t i o n 对象来创建一个或多个j m ss e s s i o n 对象; ( 5 ) 使用j m sc o n n e c t i o n 对象和d e s t i n a t i o n 对象来创建所必须的m e s s a g e p r o d u c e r 对象和m e s s a g e c o n s u m e r 对象; ( 6 ) 如果需要发送消息,则通过消息生产者创建一条或多条消息; ( 7 ) 告诉j m sc o n n e c t i o n 对象可以开始发送消息; ( 8 ) 消息接收者运行以后接收消息。 2 2 3a c tiv e m q 介绍 a c f i v e m q 是目前开源领域优秀的j m s 实现,隶属于著名的a p a c h e 基金,它 是一个成熟又功能丰富的j m s 服务器或消息代理,a c t i v e m q 支持许多不同的传输 方式( 如t c p 、s s l 、u d p 、多点传送、内部j v m 等) 和客户机交互( 如推、拉 和发布订阅) 。以一定规模的现有用户为基础,a c t i v e m q 服务器完全可以独立工 作而不依赖任何容器( j 2 e e 或者其他容器) ,还可以与其他j 2 e e 服务器结合使 用。它主要具有以下特点: l 、完全支持j m s l 1 和j 2 e e l 4 规范 2 、支持j a v a ,c ,c + + ,c 舟,r u b y ,p e r l ,p y t h o n ,p h p 等大多数跨语言的客户端 3 、支持s t o m p 协议,因此基于c ,r u b y ,p e r l ,p y t h o n ,p h p 的客户端可以很方便的 和a c t i v e m q 通信 4 、与g e r o n i m o ,s p r i n g 和j b o s s 可以方便得进行整合 5 、支持a x i s ( w e b s e r v i c e 实现) ,因此a c t i v e m q 可以被简单地加入到a p a c h ea x i s 运行环境来进行可靠的消息传递 6 、支持s p r i n g ,因此a c t i v e m q 可以和基于s p r i n g 框架的应用程序进行绑定,或 具
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论