(计算机应用技术专业论文)消息中间件的研究及在多银行代缴费平台中的应用.pdf_第1页
(计算机应用技术专业论文)消息中间件的研究及在多银行代缴费平台中的应用.pdf_第2页
(计算机应用技术专业论文)消息中间件的研究及在多银行代缴费平台中的应用.pdf_第3页
(计算机应用技术专业论文)消息中间件的研究及在多银行代缴费平台中的应用.pdf_第4页
(计算机应用技术专业论文)消息中间件的研究及在多银行代缴费平台中的应用.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机应用技术专业论文)消息中间件的研究及在多银行代缴费平台中的应用.pdf.pdf 免费下载

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

文档简介

东北大学硕士学位论文 摘要 消息中间件的研究及在多银行代缴费平台中的应用 摘要 本论文是结合沈阳供电公司利用多银行代缴居民电费的具体项目完成的。在项目实施前的 调研阶段,详细了解了供电公司居民电费收取的现状和银行利用中间业务平台进行代收代付业 务的开展情况,提出了一种利用中间件产品构建数据转换传输平台系统的思想,给出了利用消 息中间件开发银行代收代付应用业务的商户端的解决方案。以供电公司利用i b mm q s e r i e s 中 间件构建多银行代缴居民电费平台为实例,阐述了在异种操作系统和分布数据库的复杂情况 下,利用消息中间件所带来的优势。消息中问件的使用使系统具有良好的可扩展性和可移植性, 把含有多个数据库、多种操作系统的企业应用结合成一个协同工作的有机整体,真正实现了企 业的分布式应用。方案不仅适用于银行代理业务的商户端应用,也适用于任何需要进行数据转 换和传输的系统。 本文首先讨论了整个多银行代缴费平台的设计方案,并讨论了其优缺点。然后具体阐述了 系统的设计方案与实施方案,包括总体设计、软件设计、硬件设计、数据库设计和网络安全设 计等。对系统的几个主要模块做了详细的分析,包括设计难点、内部接口和数据库设计等。尤 其针对沈阳供电公司复杂的分布式异构系统结构进行了基于消息中间件的信息传递解决方案 设计。 然后,对设计中的主要问题如异构系统之间消息传递处理、日志管理、不停机生产运行和 系统安全等进行了深入分析,并给出了分析结论。文章在结尾部分还给出了对将来系统升级的 展望,和升级期间双轨运行的解决方案。 关键词消息中间件m q s e r i e s 分布式应用代收代付 东北大学硕士学位论文a b s t r a c t s t u d y o f m e s s a g i n g m i d d l ew a r ea n d a p p l i c a t i o n i n m u l t i b a n k p a y f e ep l a t f o r m a b s t r a c t t h i sp a p e ri sa c c o m p l i s h e db a s e do nt h ep r o j e c to f t h e s h e n y a n g e l e c t r i cc o m p a n yo f t ou t i l i z e m u l t i b a n kt oc h a r g et h er e s i d e n t se l e c t r i cf e e i nt h es t a g eo f i n v e s t i g a t i o na n dr e s e a r c h ,w eh a v e u n d e r s t o o di nd e t a i lt h ec u r r e n ts i t u a f i o no f t h ee l e c t r i cc o m p a n y c o l l e c t i n gt h er e s i d e n t s e l e c t r i cf e e , a n dt h ed e v e l o p m e n ts i t u a t i o no ft h eb a n kc h a r g et h ef e eb yt h e i rt h i r dp a r t yp a y m e n t p l a t f o r m a n i d e ao fu s i n gm i d d l e w a r et oc o n s t r u c tt h ed a t at r a n s f e rp l a t f o r mi s p r o p o s e di nt h ep a p e r t h e s o l u t i o nt od e v e l o pt h et h i r d p a r t yp a y m e n ts y s t e mu s i n gm e s s a g i n gm i d d l e w a r ei sg i v e n t a k i n gt h e p l a t f o r m e l e c t r i c c o m p a n yb u i l tf o re x a m p l e w h i c hu s e di b mm q s e n e sm i d d l e w a r et o a l l o w r e s i d e n t st o p a yt h e i re l e c t r i c i t y f e ei nd i f f e r e n tb a n k s ,t h ea d v a n t a g e so fu s i n gm e s s a g i n g m i d d l e w a r ei nt h ec o m p l e xe n v i r o n m e n t c o n s i s t i n g o fm u l t i - o sa n dd i s t r i b u t e dd a t a b a s ea r e d e s c r i b e d t h eu s eo fm i d d l e w a r em a k e st h es y s t e mt oh a v eg o o de x p a n s i b i l i t ya n dp o r t a b i l i t y t h e r e a ld i s t r i b u t e da p p l i c a t i o nc a l lb ei m p l e m e n t e db yi n t e g r a t i n gt h ee n t e r p r i s ew i t l lm u l t i - d a t a b a s ea s w e l la sm u l t i s y s t e m i ti sn o to n l ys u i t a b l ef o rc l i e n to fb a n ka g e n c yb u ta l s oa n ys y s t e mr e q u i r i n g t h ed a t ac o n v e r s i o na n dt h et r a n s m i s s i o n t h ed e s i g no ft h em u l t i - b a n kp a yf e ep l a t f o r mi sd i s c u s s e da tf i r s ti nt h ep a p e r , a n di t s a d v a n t a g e sa n dd i s a d v a n t a g e sa r ed i s c u s s e di nd e t a i l t h e nt h ed e s i g na n di m p l e m e n t i n gs c h e m eo f t h e s y s t e mi se x p l a i n e d i n d e t a i l ,i n c l u d i n gg e n e r a ld e s i g n ,s o f t w a r ed e s i g n ,h a r d w a r ed e s i g n , d a t a b a s ed e s i g na n dn e t w o r ks e c u r i t ye t c s e v e r a lm o d u l e sa r ea n a l y s i z e di nd e t a i l ,i n c l u d i n gd e s i g h d i f f i c u l t y , i n t e r n a l i n t e r f a c ea n dd a t a b a s e d e s i g ne s p e c i a l l y , f o rc o m p l e x i t yo fd i s t r i b u t e da n d h e t e r o g e n e r o u ss y s t e m s t r u c t u r eo fs h e n y a n ge l e c t i r c c o m p a n y , a ni n f o r m a t i o n t r a n s m i s s i o n s o l u t i o nb a s e do nt h em e s s a g i n gm i d d l e w a r ei sd e s i g n e d t h em a i nd e s i g np r o b l e m sa r e d e e p l ya n a l y z e ds u c ha s t h ei n f o r m a t i o nt r a n s m i s s i o ni nt h e m u l t i - s y s t e m ,t h el o gm a n a g e m e n t ,n o n - i n t e r r u p tr u n n i n g a n dt h e s y s t e ms e m a i t y , a n dt h e c o n c l u s i o no f a n a l y z i n gi sg i v e n i nt h el a s tp a r to f t h ep a p e r ,t h ep r o s p e c to f s y s t e mu p g r a d ei nt h e f u t u r ei sg i v e n ,a n dt h ed o u b l et r a c k r u n n i n g s o l u t i o nw h e n s y s t e mu p g r a d i n g i sp r o p o s e d 。 k e y w o r d sm e s s a g i n gm i d d l e w a r e ,i b mm q s e f i e s ,d i s t r i b u t e da p p l i c a t i o n ,t h i r dp a r t yp a y m e n t i i - 东北大学硕士学位论文声明 声明 本人声明所呈交的学位论文是在导师的指导下完成的。论文中 取得的研究成果除加以标注和致谓 的地方外,不包含其他人已经发表 或撰写过的研究成果,也不包括本人为获得其他学位而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确 的说明并表示了谢意。 本人签名: 日期: 司也 东北大学硕士学住论文 第一章引言 第一章引言 1 1 中间件技术的背景 随着科技的发展和用户需求的扩充,企业的业务环境越来越纷繁复杂,应运而生的中间件用 自己的复杂换取了整个企业分布式应用的简单,把可能含有多个数据库、多种操作系统甚至异构 网络环境的企业应用结合成一个协同工作的有机整体,真正实现了企业的分布式应用。 九十年代初,客户机月务器计算模式开始成为一种主流技术,这种模式将数据统存储在数 据服务器上,客户端提供用户界面,实现有关的业务逻辑,服务器接受客户端数据查询语句并对 数据库进行操作,返回结果,即所谓的“胖终端”的解决方案。这种结构曾给人们带来过相当的 灵活性,但存在一个很大的缺点,当客户的业务逻辑有所改变,包括应用n _ r 新n 后台数据的所有 稃序模块就都必须进行修改、重新编译和链接。并且,由于这种模式将用户界面、业务逻辑与数 据源绑定,也消耗客户机的大量资源。 系统接口之间的消息传送一直是一个复杂而且重要的问题,随着用户量的递增和业务需求的 扩充,数据传输和消息传递越来越成为一个瓶颈问题。尤其是为了适应已经存在的不同平台和异 构系统的不同数据格式,并且项目往往还受到开发时间的制约,分布式系统间数据的传送就显得 更重要。早期,数据传输的实现方式为传盘或者通过t c p i p 传文件。为了实现可靠、稳定的数据 传输,人们开始采用s o c k e t 方式。s o c k e t 的优点在于节省成本,通过编程即可实现。但是随着业 务量的剧增和多种系统的接入,它的局限性也随之显现。首先,随着交易量的增大,它的响应速 度变慢,并且稳定性也随之降低;其次,双方或者多方的接口往往由不同人员开发,这可能由于 实现方式的不一致而影响系统的正常运行:并且,对于类似银行业务,用户在实现时不得不考虑 二次提交等因素以保证交易的完整性和一致性。 随着用户业务需求的增长和i n t e m e t 的普及,两层结构的局限性更加突出,客户端和服务器 端负担过重,数据的存取越来越受到限制,难以管理日益庞大的客户端机群,也难以扩大到大企 业的域网或国际互联网,这些弊端大大阻碍着企业应用的发展。在复杂的市场形势面前,企业 为了提高自己的核心竞争力,在业务处n _ k 对应用系统提出了更高的需求,三层结构模式把用户 端的业务逻辑独立出来,并与数据库服务器中的存储过程合并在一起,构成应用层,以达到提高 计算能力和灵活性的目的。简单说来,就是在原有的客户端和服务器的两层结构之间增加了一层 组件,这层组件包括事务处理逻辑、应用服务,以及数据查询代理等,这种“瘦终端”的解决方 案使客户端和服务器端的负载相应减轻,跨平台、传输不可靠等问题也得以顺利解决。增加的这 层组件就是中间件,它以极其灵活的方式将服务器的信息处理能力传递给企业应用,已经成为分 布式应用不可缺少的一部分。 东北大学硕士学位论丈第一章引 言 1 2 项目状况以及采用消息中间件m q s e r i e s 的必然性 沈阳电力公司多银行代缴电费平台是购电营销系统与银行的接口,是利用已经存在的网络和 银行提供代收代付业务的接口来实现利用银行的设备进行电费缴纳的系统。沈阳电力公司内部网 络连接如图1 1 所示。 图11 供电公司内部网络连接示意图 f i 9 1 1 t h e n e t w o r k m a p o f e l e c t r i cc o m p a n y 其中,各个区的用户数据分散在6 台a s 4 0 0 小型机上,多银行缴费平台需要通过前置机接 收银行发来的各种类型的业务消息,根据用户号进行路由分发到相应的区局,再把处理的结果返 同给银行。由于前置机的操作系统为w i n d o w sn t ,而各台主机的操作系统为o s 4 0 0 ,这就存在 着需要解决跨平台应用的问题。并且用户数据分布在六台a s 4 0 0 上,也存在着分布式数据的处 理问题。如果用传统的s o c k e t 网络编程来实现,有着显而易见的缺陷。一方面,由于操作系统本 身的网络管理功能太弱,在o s 4 0 0 及w i n d o w sn t 下的s o c k e t 编程难度较大,e 口使能够实现, 其稳定性、可靠性仍难以保证。另一方面,鉴于难度较大,势必导致整个项目开发周期的延长, 这样一来,还将影响到其他相关项目的整体进度。 而这些问题对于m q s e r i e s 中间件而言,都可以轻易的解决。其一,这些操作系统平台m q s e r i e s 均能进行良好的支持,对于o s 4 0 0 和n t 来说,开发人员只需要利用m q s e f i e s 提供的编程接口 m q i 进行简单的通信管理编程,通过配置即可实现消息的传递,项目的开发周期大大缩短。其二, m q s e r i e s 自身的特性保证了消息传递的一致性,系统的安全性,数据的完整性,并且能很好的保 证系统的效率。 东北大学硕士学位论文第二章消息中问件技术与s o c k e t 通信技术 第二章消息中间件技术与s o c k e t 通信技术 2 1 中间件技术应用的背景 & 期以来,人们一直使用“客户端服务器”的两层结构,即客户端提供用户界面、运行逻辑 处理应用,而服务器接受客户端数据查询语句并对数据库进行查询,然后返回查询结果。这种方 式给人们带来了相当的灵活性,但也有个很大的缺点,就是一旦客户的业务逻辑有所改变,包 括应用程序和后台数据的所有程序模块部必须重新修改、编译、连接,工作量相当大。另# l - e h 于 这种结构将用户界面、业务逻辑和数据源绑定在一起,会消耗客户机的大量资源。 在复杂的市场形势面前,两层结构的弊端显得更加突出了。企业为了提高自己的核心竞争力, 任业务处理上对应用系统提出了更高的要求。要适应不同地区、不同标准的具体情况,必须具备 灵活、可扩展的工作流定制机制;网络传输量增大,需要进一步确保数据传输的稳定性;因为涉 及到金额等关键业务数据,必须保证阿络数据传输的准确性。传统的客户端假务器结构很难适应 这样灵活多变的应用需求。为了克服这些缺陷,三层结构应运而生。 三层客户胴务器结构构建了一种分割式的应用程序。系统对应用程序进行分割后,划分成不 同的逻辑组件,主要分为以下三层。 用户服务层:提供信息浏览,服务定位。主要是实现用户界面,并保证用户界面的友好性、 统一牲。 业务处理层:实现客户的全部业务逻辑。 数据服务层:实现数据定义、存储、备份、检索等功能,主要有数据库系统实现。 这三个层次共同组成应用系统。使用这种模型,可以将系统需求划分成可以明确定义的服务, 例如事务服务、名字服务等。将这些服务以组件的形式实现,一个组件可以实现系统中的一种或 翥多种服务,是这些服务的物理封装。根据系统的功能、性能等各方面的需求,系统管理员可以 在网络上灵活的部署这些组件。并且根据业务的改动可以灵活的对这些服务组件进行修改,而不 影响其它的组件,从而降低维护的费用。 所谓“三层”,形象地说,就是在原有的二层结构( 客户端和服务器端) 之间增加了一层应用, 将原先客户且务器结构中由客户端实现的部分功能剥离出来,放到中间这一层来实现。同时,由 丁人规模应用系统软件也通常要求在软硬件平台各不相同的网络上运行,所以一种基于标准的又 独立于计算机硬件以及操作系统的中间件就应运而生了。顾名思义,中间件就是处于应用软件和 系统软件之间的一类软件,它独立于硬件厂商或数据j 车厂商,是客户方与服务方之间的连接件, 是需要进行二次开发的中间产品。一般认为:中间件是一种独立的系统软件或服务程序,应用它 可以在不同的硬件平台之间实现资源共享。中间件置于客户机服务器的操作系统上,管理计算资 源和网络通信。中间件的突出特点一是网络的通信功能,它不仅要实现互连。还要实现数据之间 的相互交换和应用之间的相互操作;二是能使用户可以不再关心整体系统中硬件平台、操作系统、 3 一 东北大学硕士学位论文第二章消息中间件技术与s o c k e t 通信技术 数据库这些底层应用环境的不同,而将注意力集中在应用逻辑处理的开发上面。 中间件也是进行跨平台操作的最好工具,可以为不同操作系统上的应用软件集成提供便利, 它对各种硬件平台、操作系统、网络数据库产品和客户端实现了兼容和开放,很好的保持丁平台 的透明性。中间件还实现了交易的一致性保护和完整陛保护,极大的提高了系统的可靠性。据有 关资料统计,在关键应用系统中,业务逻辑程序、应用逻辑程序仅占总程序量的3 0 ,而基础程 序却s 了7 0 ,使用中间件不仅可以缩短开发周期5 0 0 r 7 5 ,降低开发成本8 0 ,还可以减少项 目开发的风险。标准商用中间件的使用可以使开发人员集中于系统的业务逻辑,并且可以将不同 的应用程序进行无缝接合,还可以方便地进行向下兼容的技术革新。中间件也是构件化软件的一 种表现形式,一个很有说眼力的例子是,曾有一位b e a 客户从m 平台迁移到s u n 平台,原来 开发的2 0 0 万行c 语言代码仅仅花了三个小时就重新编译完成,没有遇到任何问题。如果没有中 间件,是不可能如此高效地实现如此的平台迁移的。 2 2 中间件技术概述 中间件其实是处于操作系统和应用程序之间的类软件,也有人认为它应该属于操作系统中 的一部分,因为人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台( 包括开发平 台和运行平台) 但在这组中间件中必需要有一个通信中间件。为解决分布异构问题,人们提出了 中间件的概念。中间件是位于平台( 硬件和操作系统) 和应用之间的通用服务,这些服务具有标准 的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实 现。中间件应具有如下特点: ( 1 ) 满足大量应用的需要; ( 2 ) 运行于多种硬件和o s 平台: ( 3 ) 支持分布计算,提供跨网络、硬件和o s 平台的透明性的应用或服务的交互; ( 4 汶持标准的协议: ( 5 1 支持标准的接i z l 。 由丁= 标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工 作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程 序接口定义了一个相对稳定的高层应用环境,不管底层的计算棚硬件和系统软件怎样更新抉代, 只要将中间件升级更新。并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而 保护了企业在应用软件开发和维护中的重大投资。 关于中间件,一种流行的定义是“中间件= 平台+ 通信”,也就是说,“中间件是一种独 立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位 于客户机服务器的操作系统之上,管理计算资源和网络通讯。”这个定义也限定了只有用于分布 式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。 中间件是在计算机硬件和操作系统之上,支持应用软件开发和运行的系统软件,它能够使应 用软件相对独立于计算机硬件和操作系统平台,为当今的大型分布式应用措起了个标准的平台, 把大型企业分散的系统和技术组合在起,实现大型企业应用软件系统的集成。 中间件具有标准的程序接口和协议,可以实现不同硬件和操作系统平台上的数据共享和应用 4 东北走学硕士学位论文第二章消息中间件技术与s o c k e t 通信技术 且操作。在具体实现上,中间件是一个用a p i 定义的分布式软件管理框架,具有强大的通信能力 和良好的可扩展性。 中间件最突出的优点是它可以实现网络的通信功能,不仅实现了互连,还实现了数据之间的 相互交换和应用之间的相互操作;其次,它可以使用户不再关心整体系统中硬件平台、操作系统、 数据库这些底层应用环境的不同,而将注意力集中在应用逻辑处理的开发上面。在分布式系统中 应剧中间件,可以大幅度提高应用软件系统的开发效率,增强系统稳定性,使系统更加便于维护 和管理,同时具有良好的伸缩性和可扩展性,充分保护用户投资,降低系统投资的风险。自从中 间件出现伊始,它就广泛地用于银行、电信、证券、保险、电力、交通、政府以及军事等部门, 成为构筑网络分布式应用的关键技术。 中间件解决的问题描述如下: 首先,应用的互连和互操作是中间件要解决的第一位的问题。不管这些应用分布在什么硬件 平台上,使用了什么数据库,透过了多么复杂的阿络,或是同一电脑中的不同应用系统。这里所 说的互连莉i 互操作是应用之间而不是说系统之间的,因为中间件是一种应用级的软件,是一种应 用集成的关键构件个好的中间件产品要能解决应用互连带来的各种问题,通讯要支持各种通 讯协议、各种通讯服务模式、传输各种数据内容、数据格式翻译、流量控制、数据加密、数据压 缩等;中间件的核心要解决名字服务、安全控制、并发控制、可靠性保证、效率保证等。应用开 发要能提供基于不同平台的丰富的开发接口、支持流行的开发工具、支持流行的异构互连接口标 准;系统管理要解决对中间件本身的配置、监控、调谐,为系统的易用易管理提供保证。 其次,针对不同的应用领域,对中间件又有着各种不同的要求。由于实际的应用环境千差万 别,不能指望有一种包罗万象的中间件解决所有的问题。对于邮件系统需要提供存储转发功能; 对工作流应用需要以条件满足状态将信息从一个应用传递到另一个应用;对联机交易处理系统, 需要保证数据一致性、不停机作业、大量并发的高效率;对于一个数据采集系统需要保证可靠传 输,等等。 中间件的真正作用是如何能保证交易的一致性,并把各个系统连接起来。从理论上讲,中间 件有以f 的 :作机制;客户端上的应用程序需要从网络中的某个地方获取一定的数据或服务,这 些数据或服务可能处于个运行若不同操作系统和特定查询语言数据库的服务器中。客户胡务器 应用程序中负责寻找数据的部分只需访问个中间件系统,由中间件完成到网络中找到数据源或 服务,进丽传输客户请求、重组答复信息,最后将结果送回应用程序的任务。 中间件正是构件化软件的一种表现形式。中间件抽象了典型的应用模式,应用软件制造者可 以基于标准的中间件进行再开发,这种操作方式其实就是软件构件化的具体实现。中间件所带来 的好处已经在数不清的应用中得到了体现。 2 3 消息中间件 2 31 消息中间件及i b mm q s e r i e s 消息中间件的最大优点在于它能够在客户端和服务器间进行同步和异步的连接,并且在任何 东北大学硕士学位论文第二章消息中间件技术与s o c k e t 通信技术 时刻都可以将消息进行传送或者存储转发,它也不会占用大量的网络带宽,还可以跟踪事务,通 过将事务存储到磁盘上是件网络故障时系统的恢复。它非常适用于需要在多个进程之间进行可靠 的数据传送的分布式环境。消息中间件主要用作系统之间的异步通讯,特别是异种系统。消息中 间件是中间件产品中唯一不可缺少的,是需求量最大的产品。 m q s e r i e s 是毋m 的商业通讯中间件。m q s e r i e s 提供一个具有工业标准、安全、可靠的消息 传输系统,其功能是控制和管理一个集成的商业应用,使得组成这个应用的多个分支应用即模块 之间通过传递消息完成整个工作流程。m q s e r i e s 基本由一个信息传输系统和个应用程序接口组 成,其资源是消息和队n ( m e s s a g i n g m a d q u e u i n g ) 。m q s e r i e s 的关键功能之一是确保信息可靠传输, 即使在网络通信不可靠或者出现异常时也能保证信息的传输。m q s e r i e s 非常适用于高价值消息的 处理和大数据量应用程序,它可以防止消息的重复传送,确保消息一次且仅一次 ( o n c e a n d - o n l y - o n c e ) 的传递。m q s e r i e $ 的异步消息处理技术能够保证当网络或者通信应用程序本 身处于忙状态或者发生故障时,系统之间的信息不会丢失,也不会阻塞。利用m q s e r i e s ,还可以 实现程序与网络复杂性的隔离。程序将消息放入消息队列或从消息队列中取出消息来进行通讯, 与此关联的全部活动,比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和 在网络中移动消息都是m q s e r i e s 的任务,程序不直接与其他程序进行通话,并且f 电f 门不涉及网 络通讯的复杂性。而且,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 m 公司推出的专门用于网络上以工业标准传输大量数据、异步( 脱机) 业务处理、 不同应用系统整合的通讯中间件产品,其市场占有率高达7 2 ,其功能、技术、成熟度、用户群 均在同类产品中首屈一指。在国内绝大多数大型数据传输项目中都选用了m q s e r i e s 。作为支持平 台最广泛的传输中间件产品,m q s e r i e s 支持r s 6 0 0 0 a i x 、a p p l em a e o s 、a t & tg i s 、d i g i t a l v a x v m s 、d i g i t a lu n i x ,d o s ,h p u x 、m v s e s a ,o s 2 ,o s 4 0 0 ,s n i s i n i x ,s c ou n i x , p y r a r m dd x o s x ,s u ns o l a r i s ,s u n o s ,t a n d e m n u n s t o p k e m e l ,u n l x w a r e ,v s e e s a 、w i n d o w s 3 1 、w i n d o w s n t 、w m d o w s 9 5 、w i n d o w s 2 0 0 0 等3 5 种平台。它通过1 1 个简单的m q i 函数,完 成系统之间消息的传送或存储转发,大大简化了异构系统之间的整合。 采用m mm 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 的异步消息处理技术能够保证当网络或者通信应用程序本身处于“忙” 6 东北大学硕士学位论文第_ 7 - - 章消息中问件技术与s o c k e t 通信技术 状态或发生故障时,系统之间的信息不会丢失,也不会阻塞。这样的可靠性是非常关键的,否则 人笸的金钱和客户信誉就会面临极大的损害。 同时,m q s e r i e s 是灵活的应用程序通信方案。m q s e r i e s 支持所有的主要计算平台和通信模 式,也能够支持先进的技术( 如i n t e m e t 利j a v a ) ,拥有连接至主要产品( 如l o t u sn o t e s 和s a p r 3 等1 的接e 1 。 2 3 2 消息中间件i b mm q s e r i e s 原理 2 3 2 1m o s e r i e s 组成 m q s e r i e s 基本由一个消息传输系统和一个应用程序接口组成,其资源是消息和队列 ( m e s s a g i n ga n dq u e u i n g ) 。 队列管理器( q u e u em a n a g e r ) :管理队列的系统,实现阿络通信,保证消息安全可靠地传输 到目的地。用于确保队列之间的信息提供,包括网络中不同系统上的的远程队列之间的信息提供。 并保证网络故障或关闭后的恢复。m q s e r i e s 的所有应用都是建立在某个队列管理器上。在整个通 信网络上,队列管理器的名字必须唯一。它的属性包括名字、应用平台、系统控制命令水平、最 大优先级、字符集、触发间隔、以及最大打开旬柄数等。 队列:一个安全的信息存储区。因为信息存放在队列中,所以应用程序可以相互独立地运行 以不同的速度,在不同的时间,在不同的地点。消息是通过队列进行存取,它可以顺序存取,也 可按键字存取,视具体应用而定。队列分本地队列( l o c a l q u e u e ) 、远地队y l j ( r e m o t e q u e u e ) 、传 输队y t j ( t r a n s m i s s i o nq u e u e ) 等。 本地队列:对程序而言,本地队列属于该程序所连接的队列管理器。 远程队列:该队列不属于该程序所连接的队列管理器,而只是远端队列管理器的队列在本地 的定义。 传输队列:它是一个本地队列,保存了指定要发送到远端的消息。 死信队列:它是一个本地队列,用于存放无法传递的消息。 通道( c h a n n e l ) :在两个队列管理器之间建立起来的数据传输链路。通道是在两个队列管理 器之间i 刚言路径。它具有唯一的方向性;在两端定义要匹配;同传输队列相关联。包括发送通道、 接收通道、请求通道、服务通道。两边对应通道的名字一定要相同。 应用程序接口:应用程序和信息系统之间通过m q s e l i e s a p i 实现的接口。m q s e r i e s a p i 在所 有m q s e r i e s 平台上是一致的。a p l 只有1 1 个调用,2 个关键动词:发送( p u t ) 和接收( g e t ) 。 23 2 2m q s e r l e s 异步通讯原理 消息中间件主要用作系统之间的异步通讯特别是异种系统。目前国内使用的消息中间件主 要有i b mm q s e r i e s ,微软的m s m q 等。i b m m q s e r i e s 几乎可以在任何主流操作系统之间通讯, 如a s 4 0 0 ,w m d o w s i j n i x 等等,通过一个简单的编程模型,大大简化了异构系统之间的整合, 适用于大中型软件系统。m s m q 主要应用于w i n d o w s 平台上的异步消息通讯。一个m q s e f i e s 的 例子是,银行系统中,当你的工资到账后,主机a s 4 0 0 产生一个到账消息放到m q s e r i e s 的消息 墨! ! 苎兰塑主兰竺垄圭 苎三主堕墨塑笪垫查量! 旦竺! ! ! 璺笪垫查 队列中,w i n d o w s 平台上的消息发送软件从m q s e r i e s 的消息队列中取出这条消息,通过短讯平 台发送短消息到你的手机上。m q s e f i e s 异步通讯原理如图2 1 所示。 一_ 7 厂一1 韶憨箩a 却m “渤4 | ;卜圳k ”咖f ”n 玎啦”j “g e t q i ” | “g e t q 2 一、一、一 s y s t e m a q 1 秽| 够。 t r a n s r l l i 耱i o l t q 1 p u e s y s t e m b 蹦2 1 异步通讯 f i 9 21a s y n c h r o n o u sc o m r t l u l l i c a t i o n 图2 ,1 中,虽然应用程序a 和应用程序b 运行于同一系统a ,它们不需要直接的通讯。应用 籍 j 享a 向队列1 发送一条信息,而当应用程序b 需要时就可以得到该信息。 如果信息传输的目标改为在系统b 上的应用程序c ,这种变化不会对应用程序a 产生影响, 廊片! j g 序a 向队列2 发送一条信息,系统a 的m q s e r i 发现q 2 实际上在系统b ,它将信鼠放 到本地的一个特殊队列传输队列f i b n s m i s s i o n q w u e ) 。系统a 的m q s e r i e s 然后建立一条到系 统b 通讯联接,传递这条信息到系统b ,并等待确认。只有m q s e r i e s 接到系统b 成功地收到信 息的确认后,才从传输队列中移走信息。如果通讯线路不通,或系统b 不在运行,信息会留在传 输队列中,直到被成功地传送到目的地。这是m q s e r i e s 最基本而最重要的技术确保信息传输。 事实上,m q s e r i e s s e r i e s 具有特殊的技术防止信息重复传送,确保信息次且仅次 ( o n c e a n d - o n l y - o n c e ) 传递。 2 3 23m q s e r l e s 公用编程接口 m q s e r i e s 产品提供了公共应用程序编程接e l ,如图2 2 所示,即消息队列接口( m q i ) ,它可 剧于应用程序运行的任何平台。由应用程序发出的调用和它们交换的消息是公共的。这使得编写 和维护应用程序比使用传统方法更容易。同时也方便了消息排队应用程序从一个平台向另一平台 的移植。 各种m q s e r i e s i 调用如下: m q s e r i e s b e g i n :启动一个将由队列管理器进行定标的工作单元 m q s e r i e s c o n n :连接至一个队列管理器 s 东北大学硕士学位论文第二幸消息中间件技术与s o c k e t 通信技术 图2 2 公共应用程序编程接口 f i g2 2p u b l i ca p p l i c a t i o np r o g n u m n i n gi n t e r f a c e m q s e r i e s c o n n x :连接至一个队列管理器并指定一些选项 m q s e r i e s d i s c :断开与队列管理器的连接 m q o p e n :打开个对象 m q c l o s e :关闭一个对象 m q p u t :放入一个消息( 队列已打开) m q p u t l :放入一个消息 m q g e t :获取一个消息 m q c m i t :提交更改 m q b a c k :撤消更改 9 东北大学硕士学住论文 g - , 消息中间件技术与s o c k e t 通信技术 m q i n q :询问对象属性 m q s e t :设置对象属性 其中,m q p u t l = m q o p e n + m q p u t + m q c l o s e 编程时般不用。 2 3 23m q l 流程 用m q i 编写应用程序时,进行数据传输的发送方流程为: m q c o n n m q o p e n - m q p u t - m q c l o s e - m q d i s c 用m q i 编写应用程序时,进行数据传输的接收方流程为: m q c o n n 一- m q o p e n - m q g e t m q c l o s e m q d i s c 图2 3 m q i 流程 f i 9 2 3 m q i f l o w m q i 流程为:m q c o n n ,m q o p e n , m q p u t m q g e t , m q c l o s e ,m q d i s c m q c o n n :建立与队列管理器的连接 m q d s c :断开与队列管理器的连接 m q o p e n :打开队列 m q p u t :向队列里放置消息 m q g e t :从队列里获取消息 m q c l o s e :关闭队列 m q p u t l :向队列里放置消息( o p e n p u t c l o s e ) m q i n q :查询对象属性 m q s e t :设置对象属性 m q p u t l :m q o p e n + m q p u t + m q c l o s e 与数据库连接时,m q s e r i e s 提供了同步点的控制: m q c m i t :如果对数据库的修改成功,则用该函数将处理提交: m q b a c k :而如果对数据库的修改失败时,则将所作的出来回滚。 以应用程序希望通过m q s e r i e s 发送消息为例,其调用过程大致为:( a ) 与队列管理器建立连 接;( b ) 打开目标队列;( c ) 发送消息:( d ) 关闭目标趴列;( e ) 拆除与队列管理器的连接;调用的过 稗如图2 3 所示。 - l o 东北大学硕士学位论文第二章消息中间件技术与s o c k e t 通信技术 2 4 消息中间件在系统中的应用 24 1 m 0 $ e r i e s 在系统中的应用 消息中间件在等今的企业中有很多应用,现以多银行代缴电费的系统为例说明m q s e r i e s 在 企业系统中的应用。 此系统是银行中间业务的一个分支,其主要功能是供电公司与各银行利用现有的互联网技术, 通过银行的服务电话或营业网点实现足不出户或就近轻松缴纳电费,使供电公司的收费窗口延伸 到各银行、各自b 政储蓄的网点,有效解决了供电公司用户缴费难的问题,首次将银行代收代付业 务延伸到了居民电力收费系统。系统属于三层结构的典型应用,在电力前置机和主机内部子系统 之间的通讯方面,采用了i b mm q s e r i e s 通讯中间件。通过使用这种成熟的产品,使得在设计和 实现时不必过多考虑通讯的实现方式问题,避免了异种系统之间s o c k e t 通讯的复杂编程,而把精 力集中在业务处理上。由于客户的硬件环境的局限,前置机是w m d o w sn t ,主机是i b m a s 4 0 0 小型机,利用m q s e r i e s 的通用性和跨平台性,使得各层的功能和数据完全独立,保证了系统的 平台无关性、开放性,集成性、安全性和灵活性。使用这种方式的最大好处还有,客户的主机服 务器将在明年年初更换成m mr s 6 0 0 0 ,操作系统从m mo s 4 0 0 更换到a i xu n i x ,利用 m q s e r i e s 可以方便、可靠的实现系统的无缝切换,充分保证系统的可扩展性。 系统的总体架构图如图2 4 所示。 f i g2 4s y a l h i t e e t u r c 其中,在w i n d o w sn t 前置机和各个区局的a s 4 0 0 主机之问采用了m q s e r i e s 进行消息的传 递。n t 前置机和各个a s 4 0 0 服务器上均安装了m q s e r i e s 的s e r v e r 软件,利用队列和通道的机 制进行消息传输,m q s e r i

温馨提示

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

评论

0/150

提交评论