(通信与信息系统专业论文)hulftmessage消息客户端代理机制研究和应用开发.pdf_第1页
(通信与信息系统专业论文)hulftmessage消息客户端代理机制研究和应用开发.pdf_第2页
(通信与信息系统专业论文)hulftmessage消息客户端代理机制研究和应用开发.pdf_第3页
(通信与信息系统专业论文)hulftmessage消息客户端代理机制研究和应用开发.pdf_第4页
(通信与信息系统专业论文)hulftmessage消息客户端代理机制研究和应用开发.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(通信与信息系统专业论文)hulftmessage消息客户端代理机制研究和应用开发.pdf.pdf 免费下载

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

文档简介

武汉理正大学硕士学位论文 摘要 中间件技术是实现分布式系统灵活和协调运作的一组软件技术。它是位于 操作系统之上和疫用软件之下的一个软件层,负责处理不兼容的操作系统或文 件结构,调节客户机与服务器或服务器与服务器之间的通信。在分布式系统中, 提供了公共的编程机制。作者的主要研究工作如下: ( 1 ) 介绍了研究的背景和意义,中间件的概念和分类,以及智能客户端, 特别介绍了消息中间件。分析了h u l f l m e s s a g e 研发所用到的相关技术理论,包 括异步遴信模式,j a v a 消息服务,s o c k e t 通信技术,多线程技术以及a n t 构件 工具。 2 ) 分析了3 种智麓客户端湖络通信方式:n e te n t e r p r i s es e r v i c e s ,。n e t r e m o t i n g 和本系统采用的消息队列。对他们进行比较得出采用消息队列这种网络 通信方式的优点。深入分析了数据并发冲突的原因和解决方案。 ( 3 ) 分析了消息中间件原理和消息收发的状态流程。客户端通过本消息代 理提取服务器的信息的流程,给出了本消息中间件h u l f l m e s s a g e 设计方案,并 分析了各个功能模块在本消息中间件中的作用。本消息客户端代理由于电文数 目多,电文信息量大,所以配置文件比较大,预计在3 万行左右,读取此配置 文件如若采取传统的基予d o m 的解析方式,速度会比较慢。褥且占用比较大的 内存空间,针对这些问题,提出了基于s a x 模型解析本消息中间件x m l 文件的 有效算法。另努本消息中闻件采用b l o e k i n g q u e u e 来接收消息,有效的进行拥塞 控制,实现了消息的异步通信。阐述了各个主要模块的功能及实现方法。从一 个整体的角度,分别对系统逻辑状态、各模块的开扇、信息获取、用户程序的 执行的实现进行了详细的讲解。整个系统的状态有七种:e x e c ,i n i t 。s t a r t , i d l e ,e n d ,t e r m ,e x i t 。其中前三种是系统启动时所要经历的状态,i d l e 状 态就是系统运行的状态,循环和服务器进行通信。露面三个关闭阶段静状态分 别对应着前面的三个状态。 ( 4 ) 对系统的程序结构和处理过程做了测试,测试结果表明,本消息中阀 件达到了的设计程序中收发消息的预期。 关键词:消息中闻件,多线程,异步通信 武汉理王大学硕士学位论文 a bs t r a c t m i d d l e w a r ei sac l a s so fs o f t w a r et e c h n o l o g i e sd e s i g n e dt oh e l pm a n a g et h e c o m p l e x i t ya n dh e t e r o g e n e i t yi n h e r e n ti nd i s t r i b u t e ds y s t e m s 。i ti sd e f i n e da sal a y e r o fs o f t w a r ea b o v et h eo p e r a t i n gs y s t e mb u tb e l o wt h e a p p l i c a t i o np r o g r a mt h a t p r o v i d e sac o n l m o np r o g r a m m i n ga b s t r a c f i o na c r o s sad i s t r i b u t e ds y s t e m a sa n e f f i c i e n tw a y , 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 ) c a ns o l v et h ed i s t r i b u t e d n e t w o r kc o m m u n i c a t i o np r o b l e m s t h ea u t h o r sm a i nr e s e a r c hw o r ka r ea sf o l l o w s : ( 1 ) r e s e a r c ho nt h eb a c k g r o u n da n ds i g n i f i c a n c eo ft h ec o n c e p to fm i d d l e w a r e a n dc l a s s i f i c a t i o n ,e s p e c i a l l yo nt h en e w sm i d d l e w a r e h u l f t - m e s s a g eo ft h er e s e a r c h a n dd e v e l o p m e n to fr e l a t e dt e c h n o l o g yu s e db yt h et h e o r y , i n c l u d i n ga s y n c h r o n o u s c o m m u n i c a t i o nm o d e ,j a v an e w ss e r v i c e s ,s o c k e tc o m m u n i c a t i o n st e c h n o l o g y , m u l t i t h r e a d e dc o m p o n e n tt e c h n o l o g i e sa n dt o o l sa n t 。 ( 2 ) a n a l y s i so ft h e t h r e ek i n d so fs m a r tc l i e n tn e t w o r km e a n so f c o m m u n i c a t i o n :n e te n t e r p r i s es e r v i c e s ,n e tr e m o t i n ga n dt h eu s eo ft h es y s t e m m e s s a g eq u e u e 。t h e yd r a wc o m p a r i s o n st ot h em e s s a g eq u e u eu s i n gt h en e t w o r k c o m m u n i c a t i o n sa d v a n t a g e s i n - d e p t ha n a l y s i so ft h ed a t aw i t l lt h ec a u s e so fc o n f l i c t a n ds o l u t i o n s 。 ( 3 ) a n a l y s i so ft h en e w sm i d d l e w a r ep r i n c i p l ea n ds e n da n dr e c e i v e i n f o r m a t i o no nt h es t a t u sp r o c e s s 。c l i e n ta g e n 撼e x t r a c t e di n f o r m a t i o nt h r o u g ht h e s e r v e rp r o c e s s e st h ei n f o r m a t i o ni sp r e s e n t e di nt h i sn e w sm i d d l e w a r eh u l f l - m e s s a g e d e s i g na n da n a l y s i so ft h ev a r i o u sf u n c t i o n a lm o d u l e si nt h en e w si nt h er o l eo f m i d d l e w a r e t h ec l i e n ta g e n tb e c a u s eo ft h en u m b e ro fm e s s a g e ,t h em e s s a g e i n f o r m a t i v e ,m o r ec o n f i g u r a t i o nf i l e s ,i se x p e c t e di na b o u t3 0 ,0 0 0l i n e s ,r e a dt h i s p r o f i l ee v e n tt ot a k et h et r a d i t i o n a ld o m b a s e do nt h ea n a l y t i c a lw a y , s p e e dw i l lb e s l o w e r a n do c c u p ym o r em e m o r ys p a c e ,t h el i g h to ft h e s ep r o b l e m s ,b a s e do nt h e s a xm o d e lt or e s o l v et h i sm e s s a g em i d d l e w a r ex m lf i l ea ne f f e c t i v em e t h o d i n a d d i t i o nt h eu s eo fm i d d l e w a r en e w sb l o c k i n g q u e u et or e c e i v en e w sa n de f f e c t i v e f o rc o n g e s t i o nc o n t r o l ,a n dt h en e w so f a s y n c h r o n o u sc o m m u n i c a t i o n 珏 武汉理z 大学硕士学位论文 ( 4 ) e x p o u n d e do ne a c ho ft h em a j o rf e a t u r e sa n di m p l e m e n t a t i o no ft h em o d u l e m e t h o d f r o ma no v e r a l lp o i n to fv i e w , t h el o g i co ft h es y s t e m ,r e s p e c t i v e l y , a n dt h e o p e n i n go fe a c hm o d u l e ,a c c e s st oi n f o r m a t i o n ,u s e r so ft h ei m p l e m e n t a t i o no f p r o c e d u r e st oa c h i e v ead e t a i l e de x p l a n a t i o n t h es t a t u so ft h ew h o l es y s t e mh a s s e v e n :e x e c ,r n i t , s t a r t , i d l e ,e n d ,t e r m ,e x i t t h r e eo ft h e mb e f o r et h e s y s t e mi sa c t i v a t e db yt h ee x p e r i e n c et ot h es t a t e ,i d l es t a t ei st h es t a t eo ft h es y s t e m i sr u n n i n g ,c y c l i n ga n dc o m m u n i c a t i o n ss e r v e r s c l o s eb e h i n dt h et h r e es t a g e so ft h e s t a t er e s p e c t i v e l y , c o r r e s p o n d i n gt ot h et h r e ep r e v i o u ss t a t e 。 ( 5 ) t h es y s t e m ss t r u c t u r ea n dp r o c e d u r e sf o rt h ep r o c e s st od ot h et e s tr e s u l t s s h o wt h a tt h en e w sr e a c h e dt h em i d d l e w a r ei nt h ed e s i g np r o c e s se x p e c t e dt os e n d a n dr e c e i v em e s s a g e s 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 ,m u l - t h r e a d ,a s y n c h r o n o u s c o m m u n i c a t i o n i i i 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取德的研究 成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人 已经发表或撰写过的研究成果,也不包含为获褥武汉理工大学或其它教育机构的 学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已 在论文中作了骧确的说明并表示了谢意。 签名:掷日期:碰:冱 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权保 留、送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 武汉理鼍大学硕士学位论文 1 1 研究背景及意义 第1 章绪论 计算机技术迅速发展。从硬件技术看,c p u 速度越来越高,处理能力越来 越强;从软件技术看,应用程序的规模不断扩大,特别是i n t e r a c t 及w w w 的如 现,使计算机的应用范围更为广阔,许多应用程序需在网络环境的异构平台上 运行。这一切都对新一代的软件开发提出了新的需求。在这种分布异构环境中, 通常存在多种硬件系统平台( 如p c ,工作站,小型概等) ,在这些硬件平台上又 存在各种各样的系统软件( 如不同的操作系统、数据库、语言编译器等) ,以及 多种风格各异的用户赛面,这些硬件系统平台还可能采用不同的网络协议和网 络体系结构连接。如何把这些系统集成起来并开发新的应用是一个非常现实而 困难的勰题。 为解决分布异构问题,人们提出了中间件( m i d d l e w a r e ) 的概念f l lf 鼬。中间件 是位于平台( 硬件和操作系统) 和应用之间的通用服务【2 i 【1 2 】【3 们,如图1 1 所示,这 些服务其有标准的程亭接口和协议。针对不同的操作系统和硬件平台,它们可 以有符合接口和协议规范的多种实现。 | 应用| 。 1 应用l li 串停 ( 分布系统服务) 硬件硬件 操作系统操作系统 图1 1中闻件 也许很难给中间件一个严格的定义,但中间件应具有如下的一些特点:满 足大量应用的需要;运行予多种硬件和o s 平台;支持分布计算,提供跨网络、 武汉理王大学硕士学位论文 硬件和o s 平台的透明性的应用或服务的交互;支持标准的协议;支持标准的接 口。嘲i s 1 3 7 1 由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已 成为许多标准化工作的主要部分f 瓣lf 洌。对于应用软件开发,中间件远院操作系 统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应 用环境,不管底层的计算枧硬件和系统软件怎样更新换代,只要将中闻俘井级 更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而 保护了企业在应照软件开发和维护中的重大投资。 中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色 的中间件产品。但至今中间件还没有一个比较精确的定义,因此,在不同的角 度或不同的层次上,对中间件的分类也会有所不同。由予中间件需要屏蔽分布 环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务, 我们将这种通讯服务称之为平台。基予星的和实现橇制的不同,我们将平台分 为以下主要几类:远程过程调用( r e m o t ep r o c e d u r ec a l 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 ) ;对象请求代理( o b j e c tr e q u e s tb r o k e r s ) 。 它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播 等等,在这些基本的通讯平台之上,可构筑各种框架,为应用程序提供不同领 域内的服务,如事务处理监控器、分布数据访问、对象事务管理器0 t m 等。平 台为上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内的应 用的系统结构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提 供处理这些事件的代码。当事件发生时,框架则会调用用户的代码。用户代码 不用调用框架,用户程序也不必关心框架结构、执行流程、对系统级a p i 的调 用等,所有这些由框架负责完成。因此,基于中间件开发的应用具有良好的可 扩充性、易管理性、高可用性和可移植性。髂1 i 4 1 1 1 2 国内外研究水平和发展趋势 国外中间件起步较早,始于上世纪8 0 年代末。成立于1 9 9 5 年的b e a ,从 n o v e l l 手里购买了t u x e d o 后,b e a 利用其强大的资金、技术优势,开始在全球 市场推广中间件产品,几乎所向披靡,很快成为全球最大的独立中间件厂商, 个别产晶的市场份额甚至占到全球市场的7 0 。计算机业巨头i b m 早在上个世 纪9 0 年代初,就及时调整了其产晶策略,将中间件产品作为其今后开发的重点 2 武汉理互大学硕士学位论文 之一。从2 0 0 0 年起,i b m 投入l o 亿英磅的瓷金改进w e b s p h e r e 网站开发工具, 想要建立一个完整的电子商务平台,巩固实力。同时,i b m 采用了捆绑销售的 策略,买硬件送中间件,用低产品价格占领市场,以高服务费用实现利润。据 i d c 估计,全球中闻佟和商业软件收入将从1 9 9 9 年的2 7 亿美元增长到2 0 0 4 年 的近9 7 亿美元,增长2 5 5 。而业内人士认为,未来基于i n t e m e t 的电子商务体 系将有7 9 建筑在中间件的基础之上。孱际上做中闻件的厂商已有几十家, m i c r o s o f t 、h p 、s u n 、o r a c l e 等国际大公司也早已涉足电子商务中间件。 我溷的中间件发展非常迅速,在与国际巨头的打拼中成长壮大。但由于技 术及资金等方面的原因,国产中间件的市场份额还非常低。有调查数据显示, 在国内中间件市场,2 0 0 3 年国产厂商仅占有1 1 的市场份额。随着中间件市场 的急剥增长和政府、军队、制造业对国产中闻件需求的不断增加,到2 0 0 6 年国 产厂商有望占据2 8 2 的市场份额。国产中间件厂家主要有:中创软件、东方通、 上海普元、金蝶、中关树科技、点壹科技等进入二十一世纪震,我国中闻彳孛市 场的发展进入了一个新的时期。经过几年的酝酿,国内中间件市场业已迈过萌 芽期,进入快速发展的成长裳。2 0 0 1 年中爨中阌件市场规模超过4 亿元人民币, 增长率达到7 0 以上,且高速增长势头强劲。一批上市公司如托普软件、东软 集团、中创软件、天大天财等均以中间件为投资项圈向股票市场募集资金,开 始进入中间件领域。2 0 0 2 年我国中间件规模达到5 亿。到2 0 0 3 年,中国中间 件软件市场的销售总额超过9 亿元,中国中间件软件产业开始迈入规模发展阶 段。2 0 0 4 年上半年,中囡中闻件软俘市场的销售总额就达到6 9 亿元,比2 0 0 3 年同期增长3 4 ,不仅保持连续增长趋势,而且增长率也持续上升,市场发展 形式缀好。2 0 0 4 全年,中闻件软件市场销售规模为1 2 7 亿元,同比增长2 6 3 。 预计2 0 0 5 年市场销售规模为1 6 8 亿元,比2 0 0 4 年增长3 1 5 。中囡中间件软 件市场正呈一种稳步增长并迅速成长之势。但总的来说,中囡的中闻件市场才 刚刚开始,潜力睡大。 中间件被认为是软件领域最有前途的行业1 2 2 l 。国内中间件市场的应用,一直 以金融、电信的市场份额为主,两者之和超过了5 0 。国内知名中闻俘厂商和 公司都把注意力集中到这两个行业,中间件技术在金融、电信的应用中日趋成 熟和完善。近期瞩凑中闻件在石化、公安、税务、交通、电力、社会保险、铁 路、烟草、物流和制造行业的大中型企业将会产生更多的需求机会,大有后来 居上之势。2 0 0 4 年的中闻件市场,最突出的是政府机构的增长,具有关资料显 3 武汉理工大学硕士学位论文 示,耳前政府行业的中闻件市场份额己达到2 0 ,财政、税务、社保、公安等 金字工程建设和地方政府建设是重点。 中间件产业是一个科技密集型的新兴离科技产业,在目前国外厂商都在地 注视着囡内市场的状况下,要想使国内企业健康发展,政府的弓| 导和扶持无疑 是非常重要的。我国有关部门和机构都密切关注和重视这一新兴高科技尖端产 业,积极扶持和譬| 导,提供我国审阑件企业以强有力的支持,培育有核心竞争 力和科技自主创新能力的优秀中间件企业,让中间件产业成为构筑国家软件竞 争力的一部分,使其成为增强综合国力的有力武器。随着中闻件行业的日益觏 范、成熟乃至国际化,国内外的中间件企业将不可避免地进行大竞争、调整和 改进,我国中间件厂商能否打破了国外品牌一统天下的局面,在市场竞争中脱 颖而出,从而造就一批最专监、最优秀的民族软件企业,我们将拭蜀以待。 1 3 主要研究内容和论文组织结构 1 3 。1 研究内容 本文研究h u l f l m e s s a g e 是面向消息的中间件。先从中间件开始介绍,然后 介绍了消息中闻件,h u l f l - m e s s a g e 消息中阀件用到的一些技术,如异步通信模 式,j m s 消息服务,s o c k e t 通信,j a v a 多线程技术,以及a n t 构件工具。 接下来介绍了般消息进行的状态流程和h u l f l - m e s s a g e 系统功能和结构, 组成系统的各个功能模块核心处理模块c o n t r o l l e r , 消息处理模块m s g p r o c e s s o r , 命令处理模块c o m m a n d p r o c e s s o r , 线程管理模块t h r e a d m a n a g e r 和时间模块 t t m e p r o c e s s o r 。以及在异步通信模式下消息发送和接受流程。 之后是实现章节,介绍了具体实现的很多细节。从开发环境的搭建,开发 工具( 编码工具e c l i p s e 和u m l 制图工具j u d e ) 的斑震深入到系统整体的逻辑 实现。包括各个模块之间的开始和结束,状态的转移,接受用户发来的命令以 及信息的获取。 然后是系统的测试,以及确认系统运行的正确性。最后分析了中间件技术 的发展趋势 1 3 2 论文组织结构 本论文章节分为6 章,每个章节的内容介绍如下: 4 武汉理工大学硕士学位论文 第1 章绪论部分对豳内外消息中间件研究水平和发展趋势进行了概述,对 研究消息中间件的意义进行了阐述,最后揭示了课题意义和研究内容。 第2 章介绍了中间件的概念和分类,并分析了h u l f t - m e s s a g e 消息中间件所 用到的一些技术,异步通信模式,j a v a 消息服务,s o c k e t 通信,j a v a 多线程和 a n t 构建工具。 第3 章阐述h u l t 熏- m e s s a g e 消息中闻镩的系统设计,重点阐述了各个模块的 功能以及消息的收发。 第4 章阐述h u l f t - m e s s a g e 消息中闻件的实现,包括开发环境的搭建,系统 逻辑的状态,消息的获取和用户程序的执行。 第5 章对系统进行测试并对测试的结果进行分析。 第6 章对h u l f t m e s s a g e 消息中间件进行了总结,指出该程序的优缺点,并 对未来消息中间件的发展提出展望。 5 武汉理忑大学硕士学位论文 第2 章相关理论和技术 消息队列技术是分布式应用间交换信息的一种技术1 5 1 1 7 1 。消息队列可驻留在 内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程 序可独立地执行它们不需要知道彼此的位置、或在继续执行前不需要等待接 收程序接收此消息。 在分布式计算环境中,为了集成分布式应用,开发者需要对异构网络环境 下的分布式应用提供有效的通信手段。为了管理需要共享的信息,对应用提供 公共的信息交换橇制是重要的。 设计分布式应用的方法主要有:远程过程调用( r p c ) 一分布式计算环境( d c e ) 的基础标准成分之一;对象事务监控( 0 t m ) 基于c o r b a 的面向对象工业标准 与事务处理( t p ) 监控技术的组合:消息队y u ( m e s s a g e q u e u e ) 一构造分布式应用的 松耦合方法。 2 1 中间件的概念和分类 中间件,是在网络环境下一种起承上( 网络应用软件) 启下( 操作系统) 作用的基础软件。其主要作用是管理各静嬲络资源,为穗络应用软件提供有效 的开发、部署和运行平台,它所对应的解空间更靠近网络应用所面临的问题空 间,因藤可视为支持快速构建网络应用的基础软件。 中间件通常是由一个a p i 定义的软件层,它负责处理不兼容的操作系统或 文件结构,调节客户机与服务器或服务器与服务器之间的通信,通常工作在网 络层或传输层之上并且和下层的逶信服务相互独立。其工作机制为:客户端的应 用程序需要从网络中的某个地方获取一定的数据或服务,这些数据或服务可能 处于一个运行着不同操作系统和特定查询语言数据库的服务器中。客户祝躔爱务 器应用程序负责寻找数据的部分只需访问一个中间件系统,由中间件完成到网 络中找到数据或服务,进两传输客户请求,重组答复信息,最后将结果送回应用 程序的任务。 中间件基本可以分为以下几类: 数据库中间件( d m ,d a m b a s em i d d l e w a r e ) 6 武汉理互大学硕士学位论文 远程调用中间件( r p c ,r e m o t ep r o c e d u r ec a l l ) 面向消息中间件( m o m ,m e s s a g eo r i e n t e dm i d d l e w a r e ) 对象请求代理( o r bo b j e c tr e q u e s tb r o b e r s ) 事务处理管理( 职m ,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 ) 专用中间件( p m ,a r o p r i e t a r ym i d d l e w a r e ) d m 通常是数据库供疲商的产晶,它只提供数据麾的连接,其应用比较固定, 大多数的客户机j l 陵务器系统都有个客户程序存取服务器上的数据库,采用中 间件是非常理想的。 r p c 使客户机朋睦务器的计算更进一步,应用程序的开发者就像使用一个函 数调用本地数据库一样,使用远程过程调用去访问一个远端服务器上的数据, 同时,一个r p c 也可以将程序控制传递到远端服务器上。 m o m 比r p c 更进步,它基于消息传递和消息队列,可以提供一个更可 靠的连接,避免? 因溺终或服务器的错误蔼导致的系统瘫痪,这种技术可以在 客户机和服务器之间提供同步或异步连接,并且消息能够在任意时刻即时传送 或存储转发,和r p c 相比,m o m 适合需要多个数据和进程可靠传送的分布式环 境。 o r b 被视为从面向对象技术到分布式技术的推动力量,它可以包含更复杂 的分布式请求或服务信息,并且可以用于非结构或非关系的数据库中。t p m 主 要是对需要快速的、可靠的多用户给出复杂的分布式环境控制。p m 是许多客户 机,服务器开发王具和大型客户祝躜陵务器应用都有其专用的中闻件。 2 。2 消息中间件 面向消息的中间件( m o m ) 指的是利用高效可靠的消息传递机制进行平台 无关的数据交流,并基予数据通信来进行分布式系统的集成。通过提供消息传 递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、 语言、应用程序、硬件和软件平台。蠢前流行的m o m 中闻件产品有i b m 昀 m q s e r i e s 、b e a 的m e s s a g e q 等。消息传递和排队技术有以下三个主要特点:( 1 ) 通讯程序可在不同的时闻运行:程序不在网络上直接相互通话,两是阈接地将消 息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息 放入适滥的队列时,目标程序甚至根本不霈要正在运行;即使目标程序在运行, 也不意味着要立即处理该消息。( 2 ) 对应用程序的结构没有约束:在复杂的应用 7 武汉理工大学硕士学位论文 场合中,通讯程序之间不仅可以是一对一的关系,还可以进行一对多和多对一 方式,甚至是上述多种方式的组合。多种通讯方式的构造并没有增加应用程序 的复杂性。( 3 ) 程序与网络复杂性相隔离:程序将消息放入消息队列或从消息队 列中取绻消息来进行通讯,与此关联的全部活动,比如维护消息队列、维护程 序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是m o m 的 任务,程序不直接与其它程序逶话,并量它们不涉及隧络通讯的复杂性。 基于消息的中间件m o m 提供了一个完整的处理环境,允许开发者及用户 连接不周系统之闻的数据和代码,或采用致的界面进行应用处理的互连。 m o m 提供了一个高层应用接口,为不同系统提供操作核心。m o m 产品的工作 主要是通过将信息以消息的方式在程序问传递来完成。 m o m 一般可以分为两种形式:消息传递( m e s s a g ep a s s i n g ) 和消息队列 ( m e s s a g eq u e u i n g ) 。 消息传递在建立大型的分布式应用中比较常见。其主要的模式是广播订购 ( p u b l i s h s u b s c r i b e ) 方式。采用该方式,应用程序既可以订购,也可以广播。该通 信模型提供了位置透骥性。程序只需要简单地将消息以主题方式发送出去,由 中间件来负责将消息传递给所有订购该主题的程序。m o m 主要通过a g e n t s 技术 来实现p u b l i s h - s u b s c r i b e 方式应用。当程序广播消息时,首先与一个代理进行连 接,将消息传递给代理。代理负责路由消息给相应的程序。由于代理可以实现 消息的动态路由功能,因此,该方式能够提供较好的容错性能,但它缺乏m o m 的异步特性,不太适合长时间网络断开的情况。 消息队列方式允许程序无需直接建立起连接即可发送和接收消息。程序只 须简单地将消息发送给消息队列,由消息队列负责消息的传递,对应矮程序完 全透明。消息队列采用异步方式,为信息提供了一个安全的存储方式,特别适 用于不是直接连接的应用,如移动用户、发送方或接收方进程可能处子不活动 状态的应用。它的缺点是需要一些配置工作,性能不是很高,而且如果队列丢 失,整个系统将受到影响【n ll 捌。 m o m 可以克服基予r p c 的中间件的限制,提供基于消息的异步通信机 制,因此m o ma p i 调用不会阻塞应用程序,同时m o m 不会占用大量的网络带 宽,可以跟踪事务,通过将事务存储在磁盘上,可以恢复系统及网络赦障。常 见的m o m 产品有:d e c 的m e s s a g e q 、i b m 的m q s e r i e s 、m i c r o s o f t 的m s m q 。 s 武汉理王大学硕士学位论文 2 3 智能客户端 2 0 0 4 年微软提出了智能客户端( s m a r tc l i e n t ) 的概念。智能客户端代表了 一种全新的开发模式,它同时具有c s 架构的丰富溺户体验和b s 架构的蒿单 部署及容易维护的优点,既有w i n d o w s 程序的强大用户界面,又可以享受w e b 应焉井级和更新的便捷。它是微软公司。n e t 设诗思想的具体实现,是一种新型 技术架构的典型代表。 简露言之,智能客户端是易于部署和管理的客户端应用程序,它通过统筹 使用本地资源和到分布式数据资源的智能连接,从而提供自适应的、快速响廒 的和丰寓的交互式体验。 智戆客户端应用程序通常吴有形形色色的要求,因此在设计和实现方面会 有较大的差异。但是,所有智能客户端都具有以下的特征: ( 1 ) 使焉本地资源 使用平台和底层操作系统的基础功能,从而提供内容丰富、响应迅速的用 户界面和强大的客户端处理能力,例如,它使用户能够在本地执行复杂的数据 操作、可视化、搜索或排序操作。利用客户端的软硬件资源,能够降低应用系 统中服务器端的工作负载,使智能客户端应用系统更加紧密的与用户的工作环 境集成,提高使用者的工作效率、降低培训的成本。另矫通过智能客户端应用 程序集成或协调其他客户端应用程序,还可以提供一致且高效的总体解决方案。 ( 2 ) 使用溺络资源 智能客户端应用程序应该尽可能地通过网络连接使用各种不同来源的数据 与服务,它不应该是独立的应用程序,两应该构成更大的分布式解决方案的一 部分。智能客户端应用程序的连接性质使其可以提供有价值的数据整合、分析 和转换服务,使用户可以实时地或者在一段时间内协作完成任务。在许多情况 下,智能客户端应用程序可以向用户提供类似于门户的功能,从而将完全不同 的数据和服务加以协调并集成到总体解决方案中。 ( 3 ) 支持偶尔连接的用户 智能客户端设计为向偶尔连接到网络的用户提供功能,使用户可以在明确 脱机、使用低带宽或高延迟网终,或者连接时断时续的情况下继续高效地工作。 对于移动应用程序,智能客户端还可以优化网络带宽,例如,通过将请求批量 发送到服务器,以便更好地使用代价昂贵的连接。即使当客户端大多数时闻都 擘 武汉理互大学硕士学位论文 连接到网络时,智能客户端应用程序也可通过以智能方式缓存数据和管理连接 来改善系统性能和可用性。 ( 4 ) 提供智能安装和更新 传统胖客户端所具有最大的闷题之一就是在部署或更新应用程序的时候, 由于具有大量复杂的安装要求,并且可能通过注册组件或者在公共位置安装 d l l 来共享代码,从恧导致应用程亭脆弱性和更新困难。焉智能客户端应用程 序则可以在其运行或位于后台时对自身进行自动部署与更新。 2 4h u l f t m e s s a g e 消息中间件用到的相关技术 2 。4 1 两种通信模式 ( 1 ) 同步通信 由双方控制同步通信。双方必须主动参与,而且在处理前必须确认消息的 接收,也称作阻塞。当通信量增加的时候,需要更多的带宽,这样的实现非常 容易受到硬件、软件、网络错误的影响,导致延迟消息和通信阻塞。超出透信 能力时会经常丢失消息。 ( 2 ) 异步通信 在异步通信中,双方都是对等的,可以随意发送和接收消息,不需要消息 的实时确认。请求者发送消息后,可以继续进行其他的处理,也称为非阻塞调 用。h u l f t m e s s a g e 就是采用的这种方式。 2 。4 。2j a v a 消息服务 j a v a 消息服务,即j a v am e s s a g es e r v i c e ( j m s ) ,是一个j a v aa p i ,它定义 了一个松耦合的应用通信机制,使j 2 e e 组件能异步的发送接收消息 2 6 1 1 努1 。j m s 提供者的应用程序可以运行在异构的平台上,不受硬件和操作系统的限制。同 时,它能和趸向消息的中闻件相互通信。采用面向消息中间件( m 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 ) 的异步消息传送具有如下重要优点: ( 1 ) 不直接交换信息,丽是发往被m o m 称为圜标的抽象地址,因此通信的 任何一方能在对方停止响应时继续工作。 ( 2 ) 有助于提高可靠性。支持异步通信的中间件提供可靠的消息传递机制。 ( 3 ) 发送消怠的程序不会在消息发送时被锁定,极大地提高了性能。 1 0 武汉理工大学硕士学霞论文 异步消息经过一个中转站,按照存储转发的方式传递,即接收方当时尚未运 行,发送方也能顺利发送消息;一旦接收方开始运行,消息就会被传送到接收方。 j m s 的队列和主题都是能够收集消息的中转对象。消息就根据实际情况被发送 到这两种中转对象中,然焉再壶应用程序从其中接收消息。这两种对象的消息传 送机制不同,分别对应于j m s 的两种通信方式点对点和发表与订阅。 前者是点对点传输消患,对应图2 。l ,建立在消息队列的基础上,每个客户 端对应一个消息队列,客户端发送消息到对方的消息队列中,从自己的消息队 列读取消息。后者对应予图2 2 ,是将消息定位到某个层次结构栏目的节点上, 通常是匿名的并能够动态发布消息,并且必须保证某个节点的所有发布者发布 的信息准确无误地发送到所有消息订阅者。 发布者 图2 。1 消息队列示意图 订阅者 图2 2 发表与订阅示意图 消息传递和排队技术有以下三个主要特点1 6 1 2 4 1 : ( 1 ) 通讯程序可以在不同的时间运行。程序不在网络上直接相互通话,而 是闻接地将消息放入消息队列,进行消惠传递。因为程序间没有直接的联系, 武汉理工大学硕士学位论文 所以他们不必同时运行。消息放入适当的队列时,躁标程序甚者不需要再运行, 即使目标程序在运行,也不意味着要立即处理该消息。 ( 2 ) 对应用程序的结构没有约束。在复杂的应用场合中,通讯程序之间不 仅可以是一对一的关系,还可以进行一对多和多队一的方式,甚至是上述多种 方式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。 ( 3 ) 程序与霹络复杂性隔离。程序将消息放入消息队列或放消息队列中取 出消息来进行通讯,与此相关联的全部活动,比如维护消息队列,维护程序和 队列之闻的关系、处理网络的重新启动和在网络中移动消息等都是消息中间件 的任务,程序不直接与其它程序通信,并且不涉及网络的复杂性。 j m s 定义了j a v a 中访问消息中间件的接口。j m s 只是接口,并没有给予实 现,实现j m s 接豳的消息中间件羹唾j m sp r o v i d e r ,这样的消息中间件可以从j a v a 里通过j m s 接口进行调用。 j d b cj m s 客户端可以使用j d b c 接躁,可以将j d b c 和j m s 包含在一个 事务里。这种包含可以在e j b 里,也可以直接调用j t a ( j a v at r a n s a c t i o na p i ) 接 嚣实现。j a v a b e a n s 可以耀j m ss e s s i o n 发送接收消息。 对于e j b 组件来说,j m s 和j d b c 一样,是一个很重要的企业级服务资源。 目前的e j b 规范定义客户端只能网步调用e j b ,未来的规范将会定义通过一个 j m s 客户端发消息异步调用e j b 组件。 j m s 消息由两部分构成:h e a d e r 和b 0 0 y 。h e a d e r 包含消息的识别信息和路 由信息,b o d y 包含消息的实际数据。 根据数据格式,j m s 消息可分为以下五种: ( 1 ) b y t e s m e s s a g e 消息是字节流。 ( 2 ) m a p m e s s a g e 消息是一系列的命名和值的对应组合。 ( 3 ) o b j e c t m e s s a g e 消息是一个流化的j a v a 对象。 ( 4 ) s t r e a m m e s s a g e 消息是j a v a 中的输入输出流。 ( 5 ) t e x t m e s s a g e 消息是一个字符串,这种类型将会广泛用于x m l 格式的 据。 j m s 消息优先级,j m s 根据消息的轻熏缓急将消息分为0 - 9 十个级别。o 4 是普通消息,5 - 9 是加急消息。j m s 不要求消息中闻件严格按照这十个优先级发 送消息,但必须保证加急消息要先于普通消息到达。j m s 规范定义了一些可用 于在进程闻发送消息的对象: 1 2 武汉理互大学硕士学位论文 j m s 管理的对象。有两种j m s 管理的对象:目的地和连接工厂。这两种对 象都是由系统管理员通过环境管理工具创建的。 目的地。这是一种服务器端的对象,通过这个对象进行消息的发送和接收。 j m s 队列就是一种冒的地对象。 连接工厂。这是一种服务器端的对象,负责配置和创建到一个特定目的地 的连接。j m s 队列的j m s 连接工厂就是一种q u e u e c o n n e e t i o n f a e t o r y 。 连接。这是一种到一个j m s 提供者( 而不是到一个目的地) 的虚拟连接。 它被用来创建会话。用于访问队列的一个连接就是一种q u e u e c o n n e c t i o n 。 会话。这是个潜在的消息传送和接收的事务性的工作单元。会话用于创 建消息、消息生产者和消息消费者。用于访问队列的一个会话就是一种 q u e u e s e s s i o n 。 消息。这是一种可以从消息网的地发送到消息消费者的对象。消息的类型 隧要发送的对象类型的不同瑟不同。例如,为本期提供的示铡代码就使用? t e x t m e s s a g e 对象。

温馨提示

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

最新文档

评论

0/150

提交评论