




已阅读5页,还剩48页未读, 继续免费阅读
(计算机应用技术专业论文)消息中间件的应用与研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 本文首先对消息中间件技术进行了研究,随后针对具体应用设计 了一种基于j m s ( j a v a 消息服务) 的新型消息中间件j o m o m 。j o m o m 采用了点对点( p t p ) 的消息传递技术,对x m l 数据格式的消息进行 传输,实现了在分布式结构中可靠地传输异步消息。 文中还给出了在昆明市党政机关电子政务系统中应用该消息中 间件的实例。 最后,对该消息中间件的实现技术进行了归纳和总结。 关键词t 消息中间件;分布式结构;点对点( p t p ) ;队列;j m s a p p l i c a t i o n a n dr e s e a r c h o f m e s s a g e o r i e n t e dm i d d l e w a r e a b s t r a c t i nt h i sp a p e r w ed or e s e a r c ho nt h et e c h n o l o g yo fm 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 ) ,a n dw ed e s i g n an e wk i n do fm o m - - - j q m o mw h i c h b a s e so nt h ej a v am e s s a g es e r v i c et e c h n o l o g y j q m o mi sd e s i g n e dt ou s ei n ap r a c t i c a l a p p l i c a t i o ns y s t e m i nj q m o m ,w e u s et h ep o i n tt o p o i n t ( p t p ) m e t h o d i np t p m e s s a g i n gs y s t e m m e s s a g i n ga p p l i c a t i o n ss e n dm e s s a g e s t o a s p e c i f i cq u e u e e x t e n s i b l e m a r k u pl a n g u a g e ( x m l ) i st h ed a t af o r m a tf o rm e s s a g et r a n s m i t j q m o ma c h i e v e st h eg o a lt ot r a n s m i t t h e a s y n c h r o n o u s ,h i g h l y r e l i a b l e ,s c a l a b l ea n df l e x i b l em e s s a g e i nt h e d i s t r i b u t e da p p l i c a t i o n s i ta l s o g i v e sa n i n s t a n c eo ft h ea p p l i c a t i o no fj q m o mi nt h ee - g o v e r n m e n t a p p l i c a t i o ns o f t w a r e f o rk u n m i n g c i t yh a l l a tl a s t ,w es u m u pt h em e t h o d s u s e dj nj q m o m s y s t e m k e y w o r d s :m o m d i s t r i b u t e da p p l i c a t i o n s p t p ,q u e u e ,j m s 昆明理工大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行 研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含 任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做 出重要贡献的个人和集体,均已在论文中作了明确的说明并表示了谢 意。本声明的法律结果由本人承担。 学位论文作者签名:张吨雨 日期:z 口口弓年弓月9 日 1 1引言 第一章绪论 2 0 世纪8 0 年代,解决软件工程危机提到了议事日程。但是,计算机硬件遵 循摩尔( m o o r ) 定律正大幅度的提高着性能价格比,加上因特网技术和微软公司 的视窗技术的产生和普及,使计算机应用得以空前发展。计算机应用模式也由单 机到局域网、广域网、因特网;由主机终端方式到客户端服务器( c l i e n t s e r v e r ) 、 浏览器服务器( b r o w s e r s e r v e r ) 以及n 层结构方式;应用系统由集中到分布等 等。但是应用软件的开发依然是瓶颈,软件工程危机依然未能彻底解决。计算机 技术应用的目的是实现信息处理自动化,但是应用软件的开发和集成一直处于手 工作坊式阶段,离工厂化、流程作业化、模块装备化、自动化甚远。 随着企业的i t 环境越来越纷繁复杂,五花a f 3 的软硬件产品的面世,由于资 金投入和信息系统建设的渐进性以及产品的服役周期性,不可避免的形成了多厂 商产品并存的局面,企业中可能会拥有多种操作系统、不同的数据库、异构的网 络环境以及数个应用软件等。对于用户和软件开发工程师来说,如何屏蔽不同厂 商产品的差异? 如何减少应用软件系统集成的工作复杂度? 如何把它们结合成一 个有机的协同工作整体,真正实现企业跨平台分布式应用呢? 中间件便是解决之道,它用自己的复杂换取了企业应用的简单。 1 2本课题的国内外研究动态及现状阁 有关机构的统计表明,近5 年来全球中间件的销售额平均年增长率为3 4 , 到2 0 0 4 年总销售额将达到9 7 亿美元。我国中间件近年也进入了快速发展阶段, 预计今后3 年的市场容量将达到9 亿美元左右。 中间件是向应用软件提供运行与开发环境的新兴软件技术。据业内专家介绍, 近些年,中间件产业化速度发展很快,已与操作系统、数据库并列为三大基础软 件。 目前,消息中间件在国内外应用较成熟的产品主要包括:美国i b m 公司的 m q s e r i e s ,中国东方通科技公司的t o n g l i n k 等。 中间件的一个发展动向是向i n t e r n e t 的延伸,典型的如应用服务器技术。尽 管i n t e r n e t i n t r a n e t 技术已在全球范围普及,但由于其自身的技术特点,在构 造许多大型企业级应用时仍面临诸多问题,如并发控制、负载均衡、可靠传输、 数据路由等。电子商务的流行,三层和n 层计算技术的发展,为应用服务器技术 带来了契机,当前w e b 技术和应用服务器的结合是新的热点,同时,应用服务器 和中间件也在相互融合发展。相信不久的将来,w e b 应用服务器+ 中间件将成为 市场的主流,为中间件市场带来无限商机。总之,w e b 技术的发展和市场的演进, 使中间件软件成为分布式应用的关键性基础设掩,中间件的内涵也变得越来越丰 富,种类越来越多,技术越来越复杂,应用范围越来越广阔。 1 3 本论文的研究内容 本课题的研究目标是: 1 结合多层模式电子政务的应用实际,根据分布式应用结构的特点,针对电 子政务的具体应用设计一种基于j m s ( j a v a 消息服务) 的新型消息中间件, 以实现在分布式结构中该消息中间件能可靠地传输异步消息。 基于电子政务系统而设计的消息中间件需具有以下功能: 1 ) 消息传输的可靠性。这是整个设计要实现的基础副示。 2 ) 消息传输的异步性。这可使应用程序调用该消息中间件时,整个系统的 健壮性、灵活性等性能都得到提升。 3 ) 通过使用该消息中间件能使应用软件的开发费用降低。 4 ) 启用消息传输松散耦合的分布式通信。 2 在消息中间件中,采用一种有效的数据格式作为消息传输的数据格式。而 烈l 的跨平台性和强适应性已迅速得到了中间件研究领域的肯定,所以以 x m l 作为消息传输的数据格式将成为一种趋势。本文也将使用删l 作为消 息传输的数据格式。 3 需采用有效的编码方式,实现不同数据和文件格式的转换,最终达到以x m l 作为消息传输的数据格式的目的。 2 1中间件 第二章消息中间件 既然许多问题是由各个不同的厂商的产品并存所引起的,而又不能靠传统 的系统软件( 如操作系统和数据库等) 、工具软件解决,人们便想用另一种软件 来解决。顾名思义,可以把中间件理解成是处在应用软件和系统软件之间的一类 软件,或者是独立于硬件或数据库厂商的一类软件,亦或是客户服务方之间的连 接件,或者是需要进行二次开发的中间产品。总之中间件是在中间,如图2 1 。但 是,并不能把不能归类的软件都归到中间件的范畴,并非所有中间层次的软件都 属于中间件的范畴。 图2 1 中间件的定义示意图 许多组织和专家都对中间件下过定义,但确实都不太精确,所以经常会有 “什么是中间件”这样的问题,这也正说明中间件正处于迅速发展之中。以下是 对中间件定义的一个归纳 3 1 : 2 1 1 中间件的概念 中间件是在分布式计算环境中,实现应用互连、互操作、协同工作、资源 共享的一类独立的系统软件或服务程序。它可以屏蔽异构和分布所导致集成和共 享的各种复杂技术细节,它是建立在操作系统、网络操作系统和数据库系统以及 应用软件之间的可复用的结构或构建群。随着技术与需求的不断发展,中间件还 将整合企业集团乃至社会计算机应用软件的资源。 中间件技术是可使技术问题简单化的软件工程技术和系统集成技术。目前, 中间件已经成为分布式企业计算的关键性基础软件。 一个计算机应用系统不使用中间件是否能够运行? 回答是肯定的,完全可 以。但是这样的应用系统只能在小规模的系统上运行,数据处理量不能太大,计 算机与计算机之间不能相距太远,不能使用广域网,不能处理关键性业务等,总 之,没有中间件的应用系统,如果它的作用是可有可无,只解决一些小的问题, 则完全可以胜任:但是,如果该应用系统需要承担特别大的数据处理量,或者需 要特别高的准确性,如果没有中间件为基础,就可能经常会出问题,而这些问题 会对系统的稳定构成严重的威胁。所以,中间件对处理大规模、大数据量、高可 靠性、广域网、关键性、高准确性的系统有很强的优势。 如同硬件、软件一样,中间件也是计算机系统中一种特定的组成部分。在 中间件产生前,应用软件直接运行在硬件、操作系统、网络操作系统和数据库管 理系统之上,该类技术组成应用软件的底层平台,越底层越复杂,但与用户的业 务并没有直接关系 随着应用软件的发展,人们从单向的科学计算、业务应用( 如工资计算) 逐步发展至u m i s 、m r p 、m r p i i 、e r p 、c i m s 以及s c m 、c r m 、e - b u s i n e s s 、e - c o m m e r c e 。 业务信息集成、业务功能集成、业务流程集成、应用软件模块集成、应用系统集 成、企业内部与外部集成则成为关键。随之而来的是整合企业集团乃至社会计算 机应用软件资源的技术,即广义的中间件,从广义的角度讲,中间件又是不同应 用之间、不同模块之间的适配器( a d a p t e r ) 、粘合剂( g l u e ) 、网关( g a t e w a y ) 、 桥梁( b r i d g e ) 、交换器( s w i t c h ) 和接口( i n t e r f a c e ) ,而且是适用于不同硬 件、操作系统、网络协议、数据库、应用软件之间的可复用的构件或平台及其集 合。是人们常说的实现“无缝集成”、“即插即用”的基础软件。 中间件是构件化软件的表现形式。中间件抽象了典型的应用,应用软件工 程是可以基于标准的中间件进行再开发、定制和部署,而不是原有意义上的编程 或设计,是软件构件化、装配化的具体实现。 2 1 2 中间件产生的技术原因 1 从单一结构到模块化处理 在最初的编程时,程序都是“一题一解”,即“输入输出”、“矩阵生成”、 “求解”浑成一体。这种结构被称为单一程序结构。 由于内存和速度的限制,对大型矩阵的存储要进行复杂的编码处理。为了施 加不同的约束条件,也要进行类似的处理。这时,“模块化”的概念就被逐步引 进。为了节约内存,具有类似处理功能的程序段被相对集中起来组成所谓“模块” ( m o d u l e ) ,可以允许其它程序段调用。 “模块”概念的出现是与规模化联系在一起的,而规模化是现代工业给我们 的重要启示之一,生产一次,重复使用,最小的投入,最大的产出。模块犹如一 座大厦的地基,而且它还具有通用性,可以为其它程序段所共用。规模化同时也 意味着效率,因此,模块的出现也大大的降低了开发成本,提高了工作效率。 中间件作为基础软件的一种,它的基础程序在整个应用系统中的作用就相当 于模块,并且还是作为经常被调用的模块。 同时,基础软件的开发还是一件耗时费力的工作,如果使用标准商业中间件 的话,大部分的编程工作将得以节省,用户可以将注意力集中于个性化的增值应 用方面,并缩短开发周期5 0 - 7 5 ,从而更快地将产品投放市场。在系统中采用中 间件技术产品,那么用户在开发的时候通常只需调用中间件产品其中的几个a p i , 比起直接在系统上进行开发会快很多。而且它也屏蔽掉了很多和应用程序无关的 东西,例如平台之间的兼容问题。 2 面向对象的处理方式 面向对象( o b j e c t o r i e n t e d ) 的处理方式给出了软件系统的体系结构,引入 了软件复用的思维方法,近年来引起了越来越多的人关注。人们提出了多种模型、 语言,设计了各种基类型库。 所谓面向对象的处理方式,就是将系统看成由多个对象组成,通过对象之间 的通信形成系统,为客观世界过渡到软件系统提供途径和编程的思维方法。其主 要特征是: ( 1 ) 类的概念和封装性,实现数据抽象和信息隐蔽,给出了对象类型和参 数化,通过生成实例后组装成系统,提供了实现复用的- t - $ 。 ( 2 ) 继承性,提高了代码复用性。 ( 3 ) 多态性。 那什么是对象? 对象就是变量和相关方法的集合,其中变量表明对象的状态, 方法表明对象所具有的行为。一个对象的变量构成这个对象的核心,包在它外面 的方法使这个对象和其他对象分离开来。 实际上,面向对象的处理方式实现了对象的封装,使用户不必关心对象的行 为是如何实现的这样一些细节。通过对对象的封装,实现了模块化和信息隐藏, 这就有利于程序的可移植性和安全性,同时也有利于对复杂对象的处理。 从方法学的角度进行讨论,面向对象技术具有接近人认识问题的那种归纳、 演绎的功能:从工程实现上,面向对象技术中的“对象”具有类似“预构件”的 品质;从发展前景上,面向对象技术具有适应网络计算、分布处理、资源共享、 并发工程、先期技术验证等需求的潜能。 面向对象的中间件是对象技术和分布式计算发展的产物,世界普遍认为面向 对象是今后中间件发展的主流方向,它提供一种通讯机制,透明地在异构的分布 计算环境中传递对象请求,而这些对象可以位于本地或者远程机器。 3 从集中处理到分布式计算 整个2 0 世纪7 0 年代中期,流行的思想是利用大型设备采用几种信息服务的方 式来争取公司信息服务的全面性和综合性,我们将其称之为集中处理的方式。 随着规模的扩大,集中处理方式的灵活性就降低了,这就削弱了信息服务部 门的响应能力。而这种响应能力的减弱是取消集中处理方式的主要原因。 分布式计算( d i s t r i b u t e dc o m p u t i n g ) “”的出现以及广泛采用是计算机发展 历史上的一次革命,它不仅是一种技术上的概念,也是一种结构上的概念。 分布式计算的结构:一般来说,分布式计算网络会按照地理位置或功能来考 虑设计( 即物理上的分布和逻辑上的分布) ,而大多数网络是这两方面的结合。 在分布式计算系统的中心则通过集中的信息服务部门( 由业务领域所分派的) 或 决策组织( 其中用户和信息服务分担管理责任) 来控制。 正是由于分布式计算系统具有这样的一种结构形式,因此,与集中处理方式 比较起来它具有明显的优点。 分布式计算很好的解决了集中分散的问题,因为它的概念本身就是建立在集 中和分散这两种信息服务都能实现的原则基础上的。集中分散的问题归结起来就 是建立综合的信息系统( 集中) 和对用户服务( 分散) 这两者结合的问题,规模 的大小已不再是争论点。从理论上来说,分布式计算能将这两个领域最好的结合 在一起,所以信息系统的综合也就很容易实现了。 分布式处理系统还具有较高的运行效率,因为其中某个计算机系统的失效并 不会危及整个公司的工作。事实上,在一个设计周到的分布式数据处理系统中, 任何一个计算机子系统都能用来使整个系统正常工作。这就很好的克服了以前利 用大型设备采用几种信息服务方式的缺陷。所以说网络发展经历的第三次浪潮是 基于网络的分布式计算和应用。 随着分布式计算发展这个必然趋势,中间件在分布式计算的实现中则起着相 当重要的作用。因为,不同硬件平台、不同网络环境以及异构数据库之间的差距 也随之出现,那么应该如何屏蔽它们之间的这种差距呢? 这就需要中间件来解决这 个问题。中间件对各种硬件平台、操作系统、网络数据库产品以及客户端实现了 兼容和开放,它同时还能整合多种企业应用模式,提高系统效率,保障传输可靠, 安全加密,缩短开发周期等等。 4 从c l s 模式到三层体系跚 传统的客户机朋艮务器结构是指服务器层和客户层两层,包括远程数据访问和 存储过程调用。在两层结构系统中,客户端提供用户界面、运行逻辑处理应用, 而典型服务器端接收客户端s q l 语句并对数据库进行查询,然后返回查询结果。 在两层结构给系统带来灵活性的同时,也逐渐暴露出其客户端和服务器端负 担过重的现象。一方面,所有的业务全放在客户端处理,网络的交通很容易堵塞, 而且业务逻辑也不容易扩充。另一方面,所有的处理过程都在数据库层进行,只 是将最终结果返回到客户端。这种结构的业务逻辑需采用专用语言开发,很难再 移植到其他的数据库上去。也缺少相应的调试工具,具有明显的局限性。此外, 随着企业应用的不断扩充和新应用的不断增加,不同硬件平台、不同网络环境、 不同数据库之间的互操作,多种应用模式并存,系统效率过低,传输不可靠,数 据加密、开发周期过长等等问题也令人头痛。 随着i n t e r n e t i n t r a n e t 的兴起,二层结构的局限性越来越大,这时三层结构 模式应运而生。 三层结构模式是当今先进的协同应用程序开发模型,它完全不同于二层结构 把业务逻辑都放在客户端实现( 即胖终端方式) 。三层结构把用户端的业务逻辑 独立出来,并与数据库服务器中存储过程合并在一起,构成应用层,以提高计算 能力,实现灵活性。在这种结构中用户端仅仅是处理图形用户界面( g u i ) 。这种方 案将客户机月艮务器系统中各种部件划分为三层服务( 即客户端服务、中间层服务 和数据库服务) 。这种三层结构将业务逻辑组件集中于中间层,把业务执行服务 从用户界面和数据服务中分离出来,可以减少系统整体的管理和维护费用。目前 的另一种趋势是采用具有交互功能的浏览器,即形成瘦终端的工作方式,为此, 中间又增加了一层,称为w e b 服务器层,形成了四层体系结构。这类多层结构的 分布系统,各服务器和终端机之间都是通过网络连接起来的,并有大量信息和数 据进行传递。对每个应用系统而言,在设计和实现时需要开发的,仅是在应用服 务器上的业务逻辑部分的软件,除此之外,还必须要设计处理分布系统所特有功 能的软件,而目前的系统软件( 操作系统和支撑软件) 都不支持。为此出现了中间 件。而中间件在这种多层结构中的应用有以下优点: 首先,当客户数大量增加时,我们采用一个中间层,把客户和数据库隔离开 来,客户只需要连接在中间层上,业务逻辑与客户的业务界面也是分离的,软件 的开发和维护相对来说都比较独立,就像键厅里设了训练有素的服务员一样,极 大的减轻网络的压力。 其次,中间层的业务逻辑采用标准的语言开发( 如j a v a 语言) ,与平台无 关,程序可以很容易的从n t m i c r o s o f rs e r v e r2 0 0 0 或u n i x l i n u x 移植到别的大 型机器上。同时,我们使用的是标准的数据访问接口,与数据库也无关。当业务 逻辑和需要处理的数据不断增加时,以前的做法可能是通过硬件升级,加一些c p u 或内存。若采用三层结构,业务逻辑是在多个服务器上实现的,两台不够用,可 以再加,可以是很少的机器达到很好的性能,甚至是一个大型机的性能,因此采 用三层结构可以极大的减少硬件投资。 最后,三层结构的中间件还提供全程交易保护功能,即要么全部提交,要么 全部放弃,数据具有高度的完整性。因为采用了三层结构,使得访问可以隔离在 不同的层次,间,安全性的维护与管理靴比较容易宴现。 另外三层结构是一个基于组件的开发模式,中间件一般采用一些组件或对象, 每一个业务逻辑都对应一些组件,就像车体和构成车体的若干部件一样,不仅使 开发团队化,而且使功能重组非常容易,大大地提高了生产率。以下是对两种结 构的性能比较 指标两层结构三层体系结构 所有的业务逻辑都必须安装在客可以将部分或全部的业务逻辑控 客户端的户端,客户端必须有足够的能力制安装在应用服务器上,以减少 负载对这些工作进行处理,使客户端客户端的负载 过于庞大,负载重效率低 每个客户端都必须和数据库直接只有应用服务器和数据库直接相 对数据库相连,而每一个连接,都会占用连,由应用服务器处理客户端对 服务器性数据库的资源,加重数据库的负数据库的连接请求,降低了对数 能的影响载,如果连接数目太多,就有可据库资源的占用 能使数据库的性能急剧下降,甚 至会导致数据库的崩溃 客户端直接使用s q l 语句访问后数据以交易包的形式传输,网络 网络流量台数据库,网络流量较大流量小,同时客户端可以共享应 和负载用服务器中的公共数据( 如数据 字典等) ,节省带宽,提高了反 应速度 系统结构客户端直接连接后即数据库,结结构较复杂,编程的工作量和难 及工作量构简单,编程简单,工作量较小度较大 表2 1 两层结构与三层结构的比较 2 1 3 中间件要解决的问题 中间件是一个通道,保障应用信息的可靠传递;中间件是一个桥梁,达成商 务构件的互连互通;中间件是一个框架,促成企业应用的完整集成;中间件是一 个平台,实现分布式应用的j r 匾币l j 部署。 世界著名的咨询机构t h es t a n d i s hg r o u p 在一份研究报告中归纳了中间 件的十大优越性o ”: 3 4 5 7 8 9 1 0 应用开发:经调查,业务逻辑程序和应用逻辑程序仅占总程序量 的3 0 ,而基础程序占了7 0 ! 在这里面,单单就使用传统意义上 的中间件一项就可以节省2 5 一6 0 的应用开发费用。若是以新一代 的中间件系列产品来组合应用,同时配合以可复用的商务对象构 件,则应用开发费用可节省至8 0 。 系统运行:没有使用中间件的应用系统,其初期的资金及运行费 用的投入要比同规模的使用中间件的应用系统多倍。也就是说, 2 0 0 万美元的应用系统,若是用商业中间件,则仅需1 0 0 万美元。 开发周期:时间限制是所有应用系统开发项目的天敌。而基础软 件的开发有时又是一件极耗时的工作。若是用标准商业中间件则 可缩短开发周期5 0 - 7 5 。如果一个关键应用系统每运行一个月可 以挣来或节省1 0 0 万资金,那么应用系统开发缩短一个月,就意味 着1 0 0 万美元费用的节省。 减少项目开发风险:研究表明,没有使用标准商业中间件的关键 应用系统开发项目的失败率高于9 0 。 合理运用资金:借助标准的商业中间件,企业可以很容易的在现 有或遗留系统之上或之外增加新的功能模块,并将它们与原有系 统无缝集合。另外,许多企业都认识到点,两层结构的应用系 统不能有效的适应i n t e r n e t 环境,而原有的一些退役的系统反而 更适合i n t e r n e t 。因此,依靠标准的中间件,可以将退役的系统 改头换面成新潮的i n t e r n e t i n t r a n e t 应用系统。考虑到建造新 系统的花费,将它与改造旧系统开支相比较,投入到后者的资金 可节省出几百万。 应用集合:依靠标准的中间件可以将现有的应用、新的应用和购 买的商务构件融合在一起进行应用集合。 系统维护:购买标准商业中间件,节省系统维护费用较多。 质量:标准中间件的规范化模式可以有效地保证应用系统质量及 减少新旧系统维护开支。 技术革新:产商进行。 增加产品吸引力 总之,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简 单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上, 不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负 担。 中间件作为新层次的基础软件,其重要作用是将不同时期、在不同操作系 统上开发的应用软件集成起来,彼此像一个天衣无缝的整体协调工作,这是操作 系统、数据库管理系统本身傲不了的。中间件的这一作用,在技术不断发展之后, 使以往在应用软件上的劳动成果仍然物有所用,节约了大量的人力、财力投入。 2 1 4 中间件在应用系统的位置 节点、进程和客户端月臣务端之间的关系是中间件的核心概念,它们之间不同 的变换组合,构成了整个基于中间件的应用系统。节点是这个系统的基础元素, 节点间不同的连接构成了中间件网络;在节点上运行的客户应用程序或服务应用 程序构成了节点上的客户进程或服务进程( 也可能是线程) ;不同节点上的进程 间的数据交换构成了中间件的基本操作。 一个完整的计算机应用系统通常需要完成某种应用主题,如:账务管理、库 存管理等。为了符合应用目的的需要,在很多时候需要把多台计算机构成一个计 算机应用系统,在这些计算机之间用网络连接起来,在这个计算机应用系统中一 台计算机被称为系统中的一个节点;一个应用系统由多台计算机组成,每台计算 机完成相对独立操作的任务。 计算机应用系统中的节点根据需要被分成不同类型的节点,有时多台计算机 需要使用同一个数据集合,因此,需要将数据集中在一个节点上,形成一个数据 保存处理的中心,其它节点都根据操作人员的指令对这个节点上的数据提出操作 请求,保存这些数据的节点根据请求对本节点上的数据进行处理,集中保存和处 理数据的节点被称为服务节点,也被称为服务端( s e r y e r ) ;发出请求和得到处 理结果的节点被称为客户节点,也被称为客户端( c l i e n t ) : 在个节点上的软件可以分为三个层次:应用程序、操作系统和两层之间的 中间层。应用程序用于描述具体对应用数据如何进行处理的逻辑关系,这种逻辑 关系被称为业务逻辑。在客户端上的应用程序被称为客户程序,在服务端上应用 程序被称为服务程序;操作系统主要用于管理和维护计算机的正常运行;在操作 系统和应用程序之间的中间层也被称为中间件,在般意义上说,中间件的最基 本任务是通信管理。 这种基于中间件的应用系统相对于传统的应用系统来讲,具有明显的优势, 这些优势由于中间件从应用程序中抽取了大量的复杂的控制逻辑,使应用程序的 开发大为简化,降低了开发成本。同时,由于中间件的作用,使应用系统的可靠 性、完整性和处理效率大幅度提高。中间件的基本结构如图2 2 。 图2 2 中间件的基本结构 以中间件为基础的应用系统是一个基于三层体系结构的客户端服务端模型 的应用系统。它不但可以提供不同节点间应用进程的关系的管理、负载均衡的功 能,还可以提供应用调度等功能。通过其中包含的通讯管理模块,可以提供可靠 的数据传输、网络监控、流量控制等功能,这样就可以构筑一个完整、可靠的应 用系统所必须具备的环境。 2 2 消息中间件 消息中间件是用于传送消息的中间件,在各种应用系统中,具有非常广泛的 应用。消息中间件的作用是在分布式的应用环境中,在不同的计算机之阃传递消 息。 2 2 1 消息的概念和属性 在日常生活中,消息是指由一个主体告知另一个主体的对于某种事件 的描述,如果一个消息能被成功传送,需要四个条件:消息本身,消息的 发送者和接收者,以及消息的载体。消息是正在被传送的信息。例如:某 人将一个新闻告知另一个人;单位将决定通知某人;某人向单位提出要求 等。 在分布式应用中,特别是在b s 结构应用中,消息指不同的应用进程 之间传递、交换的信息,由消息的内容及接收者名单组成。消息的内容及 格式由消息的提供者及接收者协商而定。在形式上,消息可表现为一个小 的数据包,亦可表现为一个很大的文件。 在以消息中间件为核心的中间件系统中,为了使消息可以传输,在传 输消息的时候,除了需要将消息提交给消息中间件以外,同时,还需要将 这个消息的有关的属性传送给消息中间件,以便消息中间件掌握消息的特 征和处理要求。 1 消息有以下属性: 消息的标识:用于在消息的传输过程中唯一标识一条消息,可以 是一串数字,也可以是数字和字符的混合串。它的有效期是从消 息的产生开始,直至消息的生命周期结束。 消息的关联标识:它包括消息的应用类型标识和消息的别名,前 者用于标识处理消息的应用程序,后者是为了方便消息使用者对 消息的记忆,这些标识都是针对一种消息的应用类型而定的。 消息格式的版本:用于区别不同版本的消息,这些版本的变化是 由消息中间件或应用程序的升级而引起的。 消息的处理类型:这里描述消息是由什么方式被处理的,主要有 3 种方式: 1 ) 请求消息:消息是由应用程序发送给消息中间件,由消息中 间件将消息传送给消息的接收者。 2 ) 响应消息:应用程序接收到消息以后,返回一条消息给消息 的原发送者。 3 ) 报告消息:消息中间件本身产生的消息,用于将某种情况通 知应用程序,如传送出错等; 2 消息的存放类型:用于表述存放的模式和消息存放的形式。 1 ) b u f 消息:消息存放在内存中,是某种形式的数据块。 2 ) 文件消息:消息是一个保存在磁盘或内存中的一个文件。 3 ) 复合消息:由多个b u f 消息或文件消息组成的混合体,进行 统一投递。投递完成后再进行分解。 3 消息投递的同步控制:用于描述消息的投递者对于消息投递情况 的关心程度。分为四级,级别越高表示对消息的关注程度也越高, 发送方需要等待的时间也越长。 1 )第一级:消息的投递者仅仅将消息放入消息队列就返回,这 是一种纯异步的消息投递操作。 2 )第二级:消息的投递者将消息提交给消息的投递代理后返回。 3 )第三级:消息的投递者将消息进行投递以后,需要等待消息 传送到远端队列以后返回。 4 )第四级:消息的投递者将消息进行投递以后,需要等待消息 从远端队列中取出后返回。 4 消息的可靠程度:用于描述消息投递时所需要的可靠程度,也就 是消息需要以怎样的可靠程度传送到目的节点,消息的投递者将 消息进行投递以后,需要等待消息。 可靠传输:无论传输的过程如何,消息被发送且仅被发送一 次,保证消息被传送到。可通过消息中间件发送和接收消息,消 息先登记在消息中间件提供的可靠队列( 需可靠传输消息的缓存 队列) 中,如在发送过程中遇到故障时,可根据可靠队列的登记 信息重传消息。消息中间件提供了文件的断点续传功能。从传输 失败点继续发送先前传输失败的文件,而不是将整个文件重新发 送,这样既有效减少高故障率网络上的冗余通讯量,又避免极端 情况下消息的反复重传,如频率极高的网络抖动、文件传输的反 复失败。 非可靠传输:消息可能被传输一至多次。不能保证消息一定 被送到且的地。 5 生命周期:消息的生命周期是指消息自创建开始需要在应用系统 ( 通常在队列) 中被保存的最长时问值,但消息超过该生命周期 后,消息就成为死信,则该消息被认为传送失败,并按死信事件 的规则进行处理。消息的生命周期由用户通过管理程序进行设 定,用户需要设定一个合理的消息生命周期( 客户可使用j m s 在 消息被发送时对s e t j m s e x p i r a t i o n 字段进行设置) ,如果该周 期太长影响消息投递处理的效率,如果太短死信又太多。 6 优先级:表示消息的重要程度,优先级高的消息享受这样优先权, 它可以被插入消息队列、可以被优先传输和优先服务。消息中间 件利用管理程序进行设置,并有以下处理措施:队列高优先级的 优先,低优先级消息也有传输机会:传输优先控制:传输速度优 先控制;传输抢占优先控制,特权级的可抢占其它非特权级的消 息,后台级的可被任何非后台级的消息处理操作抢占;接收方对 优先级高的消息优先进行相关的服务。 7 辅助传输措施:通过设置标志,在消息传送过程中,消息可以被 加密和压缩。 1 ) 消息加密:指由消息中间件的节点完成对消息的加密和解密 操作。过程如下:首先,通过消息中间件提供的接口函数在消 息传送结构中设置相应的标志,消息中间件系统在收到准备传 送的消息包时,发现加密标志后会自动对数据进行加密,传送 完后,接收数据的节点,如果发现被传输的数据已经被加密, 则对数据进行解密。然后再将解密后的数据提交给应用程序。 如图2 3 。 设置加密标志f _ 一1 发送交易数据b - f 区叵卜压亟 亟丑叫去密钥i i 系统处理 图2 3 消息的加密 2 ) 消息压缩:首先,通过函数设置相应的标志,系统在收到准 备传送的消息时会自动对数据进行压缩,传送完后,再对数据 进行解压缩。然后再提交给应用程序,流程见图2 4 。 图2 4 消息的压缩 2 2 2 消息中间件的作用和功能 要说清这个问题可用一个生活中的实例来比喻。把分布式系统看作北京市区 的交通系统,网络看作市区马路,通过交通工具( 汽车) 实现通信,每分钟将有几 万辆车在马路上行驶,如果没有相应的交通设施和管理规划,北京市将会乱成一 团,发生各种交通事故。消息中间件的作用就相当于修好马路,安装红绿灯,设 立交通管理机构,制定出交通规则,也就是我们要建网和制定出通信协议,使之 能在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据 传输。勇b 么要实现这个目标,消息中间件需实现以下功能: 2 2 2 1 节点管理 1 节点的概念 节点是指虚拟计算机,是一套由中间件构建起来的应用运行环境。个节点 可以与一个实际的业务机构相对应。多个节点也可以在一台实际的机器上运行。 一个节点的运行系统由常驻系统内的通信管理模块和客户端服务端关系管理模 块、管理程序和客户端服务端应用进程、以及附属于这些程序的参数文件组成。 消息中间件的基本功能之一就是节点管理,节点管理的任务有两个,一个是 管理好本地节点本身,另一个是管理好本地节点的周边节点。 在一个消息中间件为基础的应用系统中,至少存在着两个节点( 接收与发送 的通讯节点) ,否则消息中间件就无法发挥其作用。 在一个使用消息中间件的应用系统中,一个节点必须与其它节点连接才能够 对消息进行传递,因此一个节点除了需要包含自身的描述参数以外,还需要描述 其周边与这个节点相连接的节点,而对方的节点也需要进行与本节点相对应的描 述。 如果应用程序需要在两个或两个以上节点问进行数据交换,则在这些节点上 各需要有一个进程进行相应的信息交换。 如果一个节点上的进程需要向另一个节点上的进程发送信息,则该进程需要 通过中间件系统提供的接口函数,将信息提供给客户端月臣务端关系管理模块,客 户端月匣务端关系管理模块在对信息进行处理后,通过通信管理模块将信息发送到 指定的节点。 如果一个节点上的通信管理模块收到一条信息,则通信管理模块需要将这一 信息传送给客户端月日务端关系管理模块,如果收到的信息是客户端月鼹务端关系 请求,则客户端月务端关系管理模块将根据请求中的相关信息启动对应的客户端 服务端关系进程,如果是应答信息则传送给正在等待的客户端n 务端关系进程。 中间件的网络结构中,与本地节点直接相邻的上一个层次的节点,即接收消 息的节点,被称为中心节点又叫该发送消息节点的上级节点,也被称为服务端。 如果一个客户进程请求信息,经过处理以后生成应答信息答复对方,则该服务进 程所在的节点为对方节点的服务方。与本地节点直接相邻的下一个层次的节点, 即发出消息的节点,被称为该接收消息的节点的下级节点,也被称为客户端。在 多数的应用系统中,上级节点比下级节点集中了更多的处理功能和处理量,在整 个系统中上级节点处在比下级节点更重要的地位。为了更加清晰的描述出其中的 关系,可设三个节点,分别为a 、b 和c 。在节点a 上有应用程序a 。用于向其它 节点发送消息;节点b 上有应用程序b ,它用于从a 节点上接收消息,再发送到c 节点上;在节点c 上有应用程序c 用于接收从b 节点上发来的消息,如图2 5 。 接收消息接收消息 图2 5 上下级节点示意图 在这种情况下,需设置这些节点的参数: a 节点:上级节点b ; b 节点:上级节点c 和下级节点a ; c 节点:下级节点b ; 端节点是一种类型的节点,是一个与本地相对应的概念。在由中间件构成的 网络中,叶节点也叫前端节点。 中心节点是另一种类型的节点,是一个与本地相对应的概念。在由中间件构 成的网络中,所有叶节点的上级节点都称为中心节点,并且与其在网络层次结构 中的位置相关。 2 节点的连接管理 节点的连接管理模块与周边节点建立的连接包括向其它节点发出建立连接的 请求、接收或拒绝其它节点发出的建立连接的请求;根据需要关闭与其它节点的 连接。在与其它节点的连接维持的过程中,对连接进行监控,以便及时发现和解 决有关问题。 在节点问建立连接的方式有两种,常连接和按需动态连接。 所谓常连接就是一个节点启动后就发起与一个周边节点的连接,中间由于任 何原因断开,需要重新建立连接。保证在除了客观因素无法连通的情况,节点一 直连通。 按需动态连接是只有在有数据传输的情况下,才建立连接并保证连接传输连 通。 两个节点间连接发起的条件是:有用户数据传输请求发生或数据传输过程中 两个节点间的连接中断:两个节点间连接断开条件是:两个节点的连接连通以后, 在一定的时间内没有用户数据传输或空闲时间到达一定值,在这种情况下,就需 要断开两个节点之间的连接。 2 。2 2 2 通讯路由管理 路由是消息发送节点与消息接收节点之间的连通路径,两个节点间的路径可 以是非常简单,只有两个节点,且直接相连;也可以是非常复杂,多个消息发送 节点与多个消息接收节点分布在一个非常复杂的网状结构的应用系统中动态传输 消息,而且这些节点之间互不直接相邻。在这种环境中,两个节点间消息的传送 路径就显得非常重要,如果路径设计合理,可以保证整个网络均衡的传送消息, 否则,就会出现在整个网络中,某条路径负荷量过大,而其它节点又负荷过小, 甚至出现瓶颈。因此,设置路由功能可实现整个网络的消息均衡传送。 1 缺省路由协议 缺省路由协议是消息传送中间件最基本的协议,其思想是,当找不到一条明 确的消息传送路径时,就将需要传送的消息交给上级节点。这时,只要上级节点 连通,消息中间件就认为路由存在。 2 静态路由协议 单路由也就是说两点之间只能有一条路径,多上级的出现使两节点之间的路 径不再唯一,多路由管理的支持势在必行,可以通过多上级管理和静态路由表的 方式实现。另外为了实现两个不同系统的互联和通讯,还可用静态路由表的方式 进行虚b 理。 3 动态树型路由协议 在消息传送树型网络中,如果两个节点不相邻,则两个节点间传送消息的路 径是可以动态调整的。某个节点在具有多条路径可以将消息传送给上级的目标节 点的情况下,发送信息的节点在自己传送消息的路由发生改变时,也选择了与以 前不同的路径传送消息的时候,会动态的把这些路由改变的信息告诉接收信息的 节点,而接牧消息的上级节点通过动态路由协议收到下级节点的路由改变信息, 来了解和维护下级节点传送消息给它的路由环境信息。 4 子网路由协议 在实际应用中,缺省路由协议和动态树型路由协议在规模不大的系统中具有 很好的效果。但当系统再大时,上面的路由协议不能满足需要,因此,需要通过 子网路由协议来设置路由,所谓子网就是一个消息传送网络中的一部分,它由整 个网络中的若干个相邻,而且相互具有某种直接或间接连接关系的节点组成,子 网中还可以包括子网。 子网的路由协议是通过节点的命名规则来将网络内的若干节点组织成子网 络,一个子网络内的所有节点使用相同的网关向网外发送消息。如果一个发送消 息的节点属于多个层次的子网,在消息发送的时候,必须经过每个层次的子网网 关,在一个子网中的节点,其地址( 节点名) 具有某些相同的特征,例如,子网 中的某些部分相同,不同的子网这一特征必须不同。 5 子网 指与某个网络节点相连的下级节点所代表的网络分支,一个子网是一个树型 结构的网络。即一个节点在一个子网中只能有一个上级节点,但一个节点可以同 时属于不同的子网。对于一个多层次的网络系统,网络是由多层的子网构成的, 也就是在一个树型结构的网络中,还可以有由子树结构的节点组成的子网。同在 一个子网的节点,其地址( 节点名) 具有某些相同的特征,必须使用相同的掩码, 不同的子网这一特征必须不同,必须使用不同的掩码。 6 掩码 掩码是借用t c p i p 的一个概念,是用来定义予网和辅助路由的。由于消息传 送中间件与t c p i p 所处的位置和实现的机理不同,因此掩码的含义也有所不同。 消息传送中间件的掩码是用来定义子网节点名特征的一个数值,表示一个子网中 所有节点名前几个字符必须相同,不同的子网前几个字符必须不同。 2 2 2 3 队列服务 消息中间件需使用两种队列,包括系统标准队列和用户共享内存文件模拟的 队列,系统标准队列也叫做i p c 队列,由系统负责管理;用户共享内存文件模拟 的队列也被称作消息队列,是消息中间件管理的对象,并负责对队列的操作等。 消息中间件队列包括这样几类,用户队列、发送队列、死信队列和事件队列。 用户队列是用户自己通过队列管理器创建的,发到应用程序的消息都是先放到用 户队列里;发送队列也就是传输队列,是要发送消息的缓冲池;通信管理模块从 发送对列中取消息发送:死信队列用来存放发送和接受失败的消息;事件队列存 放系统产生的所有的事件,并等待事件处理器来处理。 应用程序在消息传输时需要使用对列,在消息发送的时候需要使用系统核心 中建立的传输对列,应用程序在接收消息的时候需要使用由用户创建的用户队列, 在这些对列放置的内容包括这条消息的标识和地址参数、消息数据块和附
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑工程质量控制教案
- 浙教版信息技术八年级下 第六课 制作逐帧动画作品 教学设计
- 四川省成都市高中生物 第七章 现代生物进化理论 7.2 现代生物进化理论的主要内容(2)教学设计 新人教版必修2
- 光伏系统培训
- 农村五保供养中心管理合同协议书
- 前列腺增生术后护理诊断
- 2025年度股权投资分配合同书
- 职工劳务合同范本建筑工程
- 个人门窗安装协议书样本
- 精密锯子买卖合同
- 公路桥梁和隧道工程施工安全风险评估指南_图文
- 田径运动会各种用表、检录表、统计表(朱)
- 固体矿产勘查原始地质编录细则
- 如何加强思想政治教育-增强教育的时代感和感召力
- 奖励协议书范本
- IEC61215:2021-2地面光伏组件-测试内容,,中文
- 机械完整性管理ppt课件
- 中国药科大学药物分析第六版第十四章中药制剂分析ppt课件
- 钢中马氏体组织形态、稳定化
- 内窥镜PACS系统解决方案
- 离心式鼓风机设计(毕业论文)
评论
0/150
提交评论