




已阅读5页,还剩55页未读, 继续免费阅读
(系统理论专业论文)基于corba的异步消息中间件的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
昆明理工大学硕士学位论文摘要 基于c o r b a 的异步消息中间件的研究 摘要 中间件是位于硬件、操作系统平台和应用程序之间的通用服务系统, 具有标准的程序接口和协议,可实现不同硬件和操作系统平台上的数据 共享和应用互操作。之前有不少是基于c o m d c o m 的异步或者同步消息 中间件,本文重点研究了基于c o r b a 的异步消息中间件,利用c o r b a 技术开发了一个异步消息中间件,实现了客户问的通信。 首先,利用d e l p h i 6 建立一个工程,实现服务器功能,接着建立一个 实现客户端访问的工程。在服务器端和客户端编写基本的调用方法,客 户端通过调用服务器端的方法进行消息的发送与接收。 接着,在服务器端定义一个消息队列,该消息队列是根据f i f o 的原 则进行操作的。并且用户都有其全局唯一的i d 。当客户端之间发送消息 时服务器端首先接收到消息发送者发送的消息,然后把它们存储在消 息队列中,消息队列中存储的不但有消息内容,还有消息发送者与接收 者的i d 号,等待消息接收者的接收请求。当消息接收者登录客户端向服 务器发送接收请求后,消息队列根据消息接收者的i d 号在消息队列中进 行搜索,如果有该用户的消息,从消息队列中取出并发送回客户端。 最后,在消息队列中实现了一个重新排列消息队列的算法。当消息 接收者接收完消息后,消息队列要把已经取出的消息进行删除,然后重 新排列消息队列,以便满足f i f o 原则。在消息队列重排算法中,当消息 取出后,每取出的两条消息之间的消息前移,把驻留在消息队列中的消 息分段进行前移,每移动一次,后面移动的消息前移的位数增加位。 通过以上的工程建立算法实现,就可以实现用户间的异步通信。 消息发送时,用户和服务器之间实现同步通信,以便于查看,消息是否 发送到了服务器端。 关键词:消息中间件c o r b a异步消息队列 服务器客户端 分布式算法先进先出 曼堕奎塑主兰堡堡塞 垫要 t h er e s e a r c ho fa s y n c h r o n o u sm o m b a s e do nc o r b a a b s t r a c t m i d d l e w a r ei sac o m m o ns e r v e rs y s t e mb e t w e e nh a r d w a r e ,o p e r a t i o n s y s t e ma n da p p l i c a t i o np r o g r a m ,a n dh a s s t a n d a r dp r o g r a mi n t e r f a c ea n d p r o t o c 0 1 i tc a ns h a r ed a t aa n dc o - o p e r a t ea p p l i c a t i o no nd i f f e r e n th a r d w a r e a n d o p e r a t i o ns y s t e m f o r m e r l y ,t h e r ea r e m a n ya s y n c h r o n o u s o r s y n c h r o n o u sm o mb a s e do nc o m d c o m ,i nt h i sp a p e rim a i n l yr e s e a r c ho n t h ea s y n c h r o n o u sm o mb a s e do nc o r b a ,a n dd e v e l o p e dam o mb a s e do ne c o r b a st e c h n o l o g y ,r e a l i z e dt h ec o m m u n i c a t i o nb e t w e e nc l i e n t s a tf i r s t ,iu s ed e l p h i 6b u i l dap r o j e c ta st h es e r v e r ,t h e nb u i l dt h eo t h e r p r o j c o ta st h ec l i e n tt oc a l lo nt h es e r v e r a tt h es er v e ra n dc l i e n t1w r i t et h e v i s i t e db a s ep r o d u c e s t h ec l i e n tu s e st h ep r o d u c e st os e n do rr e c e i v c m e s s a g e s e c o n d l y ,id e f i n eam e s s a g eq u e u ea tt h es e r v e r t h eq u e u eiso p e r a t e d a tt h ep r i n c i p l eo ff i r s t - i n f i r s t - o u t a n dt h ec l i e n t si di su n i q u e w h e n c l i e n t ss e n dm e s s a g e ,t h es e r v e rf i r s t l yr e c e i v e st h em e s s a g ef r o mt h ec l l e n t t h e nt h es e r v e rs a v e st h em e s s a g ei ni t sm e s s a g eq u e u e ,i nt h em e s s a g e q u e u e ,t h e r ea r em e s s a g ec o n t e n t ,t h ei d so ft h es e n d e ra n dt h er e c e i v e r t h em e s s a g eq u e u ew a i t st h er e q u e s to ft h er e c e i v e r w h e nt h er e c e i v e rl o g s o nt h ec l i e n t ,a n ds e n d sar e q u e s tt ot h es e r v e r ,t h es e r v e rs e a r c h e st h e m e s s a g eo ft h er e c e i v e ri nt h em e s s a g eq u e u eb yi t si d i ft h e r ei st h e r e c e i v e r sm e s s a g e ,t h es e r v e rw i l lt a k eo u ti tf r o mt h em e s s a g eq u e u ea n d s e n d si tt ot h ee l i e n t a tl a s t ,t or e a l i g nt h em e s s a g eq u e u ew h e nm e s s a g ei st a k e no u t ,i r e a l i z eaa l g o r i t h m w h e nt h er e c e i v e rt a k e so u ti t se n t i r em e s s a g e ,t h e m e s s a g eq u e u ew i l l d e l e t et h e m a n dt h e nt h em e s s a g eq u e u ew i i lb e r e a l i g n e d ,i ts a t i s f i e st h ef i f o sp r i n c i p l e i nt h ea l g o r i t h m ,w h e nt h e m e s s a g ew a st a k e no u t ,t h em e s s a g eb e t w e e nt w op i e c e s o ft a k e no u t m e s s a g ew i l lb em o v e df o r w a r d ,m o v ef o r w a r dt h em e s s a g ei nt h em e s s a g e q u e u eo n eb yo n es e c t i o n e a c hm o v e t h ep l a c en u r o b e ro ft h el a t t e r 墨堕墨塾兰堕圭兰垡鎏奎 一 一i 塑 m e s s a g et os h i f tf o r w a r dw i l lb ea d d e do n e w h e np r o j e c t sw e r eb u i l ta n da l g o r i t h mw a sr e a l i z e d ,c l i e n t s can c o m m u n i c a t ee a c ho t h e r w h e nt h em e s s a g ei ss e n d ,t h ec l i e n ta n d t h e s e r v e rs y n c h r o n o u s l yc o m m u n i c a t ee a c ho t h e rt o s e ew h e t h e rt h em e s s a g e s e n d st ot h es e r v e ro rn o t k e yw o r d s :m o m ( m e s s a g e o r i e n t e dm i d d l e w a r e ) c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ) a s y n c h r o n o u sm e s s a g eq u e u e s e r v e rc l i e n t d i s t r i b u t e da l g o r i t h m s f i f 0 ( f ir s t i n f i r s t 一0 u t ) i i i 昆明理工大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下( 或 我个人) 进行研究工作所取得的成果。除文中已经注明引蔗构内 容外,本论文不合任何其他个人或集体已经发表或撰写过的研究成 果对本文的研究做出重要贡献的个人和集体,均已在论文中作了明 确的说明并表示了谢意。本声明的法律结果由本人承担。 学位论文作者签名:五矗a 耘 日期:z dd f 年f 月r日 关于论文使用授权的说明 本人完全了解昆明理工大学有关保留、使用学位论文的规定,即: 学校有权保留、送交论文的复印件,允许论文被查阅,学校可以公布 论文的全部或部分内容,可以采用影印或其他复制手段保存论文。 ( 保密论文在解密后应遵守) 导师签名:瘦! 墨论文作者签名:至豳塾 日 期:塑 生! 目!旦 注:此页放在封面后,目录前。 昆明理工大学碗士学位论文 基于c o r b a 的异步消息中间件的研究 第一章绪论 1 1 中间件介绍 1 1 1 中间件的产生及定义 1 1 1 1 中闻件的产生及存在性 随着对各种旧有应用的不断扩充和新应用的不断增加,各企业的i t 部门厦临的闻题也越来越多。诸如:不同硬件平台、不同网络环境、不 同数据库之间的互操作,多种应用模式并存,系统效率过低,传输不可 靠。数据加密,软件开发周期过长等等。想要解决这些问题,如果单纯 依赖传统的系统软件或工具软件已经不能满足要求。而对于用户来说, 迫切需要的是一种能简捷、屏蔽和疏通复杂的基础技术细节,使企业的 计算机系统开发与管理变得轻松的企业应用方式。为了解决诸如此类的 问题,中间件应运而生,并且伴髓着分布式应用的迅猛发展,中间件这 新兴的软件领域已经悄然崛起。特别是近十多年来,中间件的需求和 应用呈现加速增长势头,并成为近几年来增长最快的软件发展方向。在 全球范围内,中间件正成为软件行业新的技术与经济增长点,i n t er n e t 的 蓬勃发展和网络计算机的需求剧增,使位于平台( 操作系统、硬件) 与 应用程序之间的中间 牛产品恰逢时机,崭露头角。i b m 、b e a 、o r a c l e 、 m i c r o s o f t 及s u n 等国外厂商早已涉足其中,而国内研究与推,1 中间件产 品的公司也日渐增多。不论在何种平台上,用中间件都可以在企业范匿 内定位、访问、操作和移动数据,而无须深入地了解企业信息系统和网 络的复杂性。中间件能够解决网络分布计算环境中多种异构数据资源的 互联共享问题,实现多种应用软件的协同工作,足网络分布式应用软件 的网络“操作系统”1 2 6 1 。此外,利用中间件还可以大幅提高应用软件系 统的开发效率,增强系统的稳定性,使系统的维护管理工作更为简易, 使系统的可伸缩性和可扩展性更为理想,以便充分保护用户投资。隧着 网络的普及,中间件正成为软件行业新的经济增长点。 中间件是构件化软件的一种表现形式。中间件抽象了典型的应用模 式,应用软件开发人员可以基予标准的中间件进行二次开发,其开发方 式的实质就是软件构件化的具体实现。中间件是软件技术发展的种潮 流,被誉为发展最快的软件品静,近年来势强劲,当然,这也是源于市 昆明理工大学硕士学位论文 基于c o r b a 的异步消息中间件的研究 场在全球范围内对中间件的支持。毫无疑问,中间件正成为软件行业新 的技术与经济增长点之一。 国际数据集团( i d c ) 在日前发表的一份报告中预计,全球中间件和 商业软件收入将从1 9 9 9 年的2 7 亿美元增长到2 0 0 4 年的近9 7 亿美元, 增长2 2 5 。在中国,有关数字同样让人兴奋,1 9 9 8 年中间件的市场总 值达1 2 3 4 亿美元;1 9 9 9 年为1 7 亿美元;预测到2 0 0 4 年将达到9 0 。3 亿 美元,年增长率为3 9 7 ,远远高于软件业的平均增长水平。l9 9 9 年, n a s d a q 股市上投资回报率最高的并非某些名声显赫的网站,而是全球最 大的独立中间件厂商b e a 公司。其股票升幅高达8 8 4 6 。时至今日, b e a 公司的营业收入已经连续l8 个季度保持高速增长 3 5 1 。 1 1 1 2 中间件的概念及思想 中间件,又称中间软件( m i d d l e w a r e ) 或支撑软件,是位于硬件、操 作系统平台和应用程序之间的通用服务系统,它为平台和应用软件之间 的数据交换提供高效率的数据通道和功能调用,并具有标准的程序接口 协议,可实现不同硬件和操作系统平台上的数据共享和应用互操作。中 间件具有以下一些特点: ( 1 ) 运行于多种硬件和操作系统平台: ( 2 ) 提供跨网络、硬件和操作系统平台的透明性的应用或服务交互; ( 3 ) 支持标准的协议和接口。 中间件在操作系统、网络之上,应用软件和数据库的下层,在功能 上,向下它可以传递和处理上层用户的各种请求,向上可以屏蔽下层的 实现细节,提供运行与开发的环境,帮助用户灵活、高效地开发和集成 复杂的应用软件。因此,中间件起到了承上启下的作用,为用户构造分 布应用提供了强有力的支持。 在众多关于中间件的定义中,普遍被接受的是i d c 的表述:中问件 是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不 同的技术之间共享资源,中间件是位于客户机服务器的操作系统之上, 管理计算资源和网络通信。该定义表明,中间件是类软件,而非一种 软件;中间件不仅仅实现互连,还要实现_ 敝用之闻的互操作;中间件是 基于分布式处理的软件,最突出的特点是其网络通信功能。 在实际使用中,把一组中间件集成在一起构成一个平台( 包括开发 平台和运行平台) 其中必须要有一个通信中闯件来完成中阀件之问的通 2 昆明理工大学硕士学位论文 基于c o r b a 的异步消息中闻件的研究 信【“。因此,中间件应包括平台和通信两个部分,即中间件= 平台+ 通信。 图1 1 是对这一定义的解释。 j应用编程接口( a p i ) l 中间件 平台接口 i 操作系统 i 硬件平台 平台接口 l 操作系统 l 硬件平台 图1 1 中间件示意图 下面谈一下中间件的思想。假设有疗个应用,m 个操作系统,为了使 所有的应用在所有的操作系统上都能工作,就可能需要n x m 个接口。而且, 每增加一个新的操作系统,就要重新改写n 个应用的源代码;每丌发个 新的应用,就要考虑实现m 个不同的版本,以工作于m 个操作系统之上。 应用 软件 操作 系统 2 图1 2 中间件的加入减少了接口数目 而中间件的出现使得这些都变得简单。开发应用程序时不必再关心底层 操作系统的类型,而只需关心于应用的逻辑处理。它使原来的网状接口 3 昆明理工大学硕士学位论文 基于c o r b a 的异步消息中间件的研究 类型变成了沙漏状接口类型,如图1 2 所示。接口数目从月m 降到了n + 珑。 当玎和m 都很小的情况下,这种差异并不明显,但随着n 和研不断地增大, 这种差异将极大地增加开发应用软件的困难,并降低系统整体运行的效 率和性能。因此,中间件的出现是分布式系统发展的产物,是软件构架 演进的必然。 1 1 2 中间件分类 因为很多中间件之间有重复之处,所阻对中间件的分类只能根据其 侧重点的不同进行。根据中间件所起的作用及采用的技术,可以将其分 为以下六种: ( 1 ) 基于数据库的中间件1 2 6 1 基于数据库的中间件是所有中间件中最普遍、最成熟的一种。基于数 据库的中间件允许应用程序同本地或异地的数据库进行通信。它提供了 一系列应用程序接口a p l ,通过中间层而不考虑操作系统及网络来访阀数 据库。并且在很多情况下,a p i 被隐藏在开发工具中而不被开发者了解。 o d b c 、j d b c 都是基于数据库的中间件标准。通过o d b c 访问数据库的 方式是绝大多数应用程序使用数据库的方式,具有良好的数据库独立性, 可以避免应用程序对不同类型数据库使用不同的a p i 。j d b c 实际上就是 一系列用于特定数据库的j a v a 类库,它源于o d b c 体系结构。在基于数 据库的中间件领域中目前还提出了应用分割技术,即将用户的些应 用逻辑放到中间层,为客户机“减肥”,这也为n c ( n e t w o r kc o m p u t e r ) 等 的弓l 入打下了基础,并增强了应用程序的处理性能、安全性和并发性。 目前,很多数据库前端开发工具都支持应用分割技术。 ( 2 ) 基于r p c 的中间件 r p c 程序代码调用远端过程并将结果返回。当使用r p c 时,只需要 编写很少的网络程序代码,大部分代码由i d l ( i n t e r f a c ed e f i n el a n g u a g e , 接口定义语言) 生成。r p c 应用不仅可以调用在远方节点上的子程序, 甚至可以在不同操作系统环境下运行。它使程序员不必考虑网络的细节, 仍可采用自己熟悉的c a l l r e t u r n 语法。r p c 一般采用c a l l r e t u r n 模式, 多用于应用程序之间的通信,而且采用同步方式。r p c 程序之间的同步 通信一般采用r e q u e s t w a i t r e p l y 方式,因此,对小型简单的不需要采用 异步通信方式的应用比较适合,但对大型复杂的应用不太适合,因为它 需要程序考虑网络或系统的故障、处理多个网络连接、可移植性、缓冲 t 昆明理工大学硕士学位论文 基于c o r b a 的异步消息中间件的研宄 及流量控制和进程之间的同步等多种问题。 ( 3 ) 基于t pm o n i t o r 的中间件 t pm o n i t o r 是一种复杂的中间件产品,它为应用处理提供了一种通信 机制,它允许开发者在t pm o n i t o r 环境中定义事务服务。t pm o n i t o r 位 于客户机和数据库服务器之间,采用三层或多层模型。客户通过 t r a n s a c t i o nr p c ( t r p c ) 机制在t pm o n i t o r 中调用事务,t pm o n i t o r 运行 事务来连接数据库,并将处理结果返回给客户端。t pm o n i t o r 提供一系 列服务,如应用管理、管理控制和应用之间的消息传递等。常见的属性 包括全局事务协调、分布式两阶段提交、资源管理器支持、协调故障恢 复、高可用性、安全性、网络负载平衡等。在t pm o n i t o r 中,事务有一 个明确的起止点,如果事务失败,t pm o n i t or 可以回滚事务,不会使系 统处于不完整、不一致状态。t pm 0 n i t o t 同时可以复用数掘库请求。因 为每个客户调用事务,而不足直接和数据库进行连接,因此t pm o n i t o r 可以协调数据库请求,传统的c o f i n e c t i o n p e r c l i e n t 的限制( 在客户机 服务器环境中) 可以去掉。并且t pm o n i t o r 还可以在同一个事务中读写 异构数据库中的信息,并保持异构数据库的完整性。 ( 4 ) 基于o r b 的中间件 基于o r b 的中间件主要是采用面向对象的技术,o r b 可以看作是与 编程语言无关的面向对象的r p c 应用。它的成员函数可以采用类似 o b je c t f u n c t i o n ( ) 方式调用远端的对象。目前,o r b 存在两个彼此竞争的 标准:c o r b ao r b 和d c o mo r b 。当使用o r b 时,i d l 用j + 定义对象 之间的接口,它类似于r p c 中的i d l 定义过程的接口。o r b 特别适用, 对象接口变化不频繁,不会导致代码经常被重新编译及链接的情况:理 想的要求是,一个o r b 就应赋予每个对象( 与其它对象特别是远程的对 象进行通信时) 以下的分布透明性:位置、访问路径、重定位、数据表 示、通信机制、调用机制、存储机制、机器类型、程序语言、操作系统、 安全机制等。对以上各方面的任何变更都无须将这个特定对象重新编译 ( 或重新链接、重新加载等) 。其整体效果是对任何一个对象无论是服务 者还是请求者实现动态更改,都不会影响到其它的对象。 ( 5 ) 基于消息的中问件m o m ( m e s s a g e o r i e n t e d m i d d l e w a r e ) 基于消息的中间件m o m 提供了一个完整的处理环境,允许开发者及 用户连接不同系统之间的数据和代码,或采用一致的界面进行应用处理 5 昆明理工大学硕士学位论文 基于c o r b a 的异步消息中简件的研究 的互连。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 ) 方式。采用该方式,应用 程序即可以订阅,也可以发布。该通信模型提供了位鼹透明性。程序只 需要简单地将消息以主题方式发送出去,由中间件来负责将消息传递给 所有订阅该主题的程序。消息队列方式允许程序无需直接建立起连接即 可发送和接收消息。程序只须简单地将消息发送到消息队列,由消息队 列负责消息的传递,对应用程序完全透明。消息队列采用异步方式,为 信息提供了一个安全的存储方式,特别适用于不直接连接应用,如移动 用户、发送方或接收方进程可能处于不活动状态的应用。 ( 6 ) 应用服务器 应用服务器是门新的技术,总体来说应用服务器通过把用户接口、商 业逻辑和后端服务分割开来,向开发者提供了一种创建、部署和维护企 业规模的w e b 应用的模块化方式,为要转向w e b 的用户提供了高性能多 线程的环境。应用服务器将应用从w e b 服务器和数据库中分离出来,是 多层体系结构中的关键。它为处理大量的用户与事务提供了一个更为结 构化更完善的解决方案。常见的应用服务器产品有b e aw e b l o g i c 、i b m w e b s p h e r e 、i p l a n e ta p p l i c a t i o ns e r v e r 、o r a c l ei n t e r n e ta p p l i c a t i o ns e r v e r 、 s i l v e r s t r e a ma p p l i c a t i o ns e r v e r 等。 l 。1 3 中间件的基本原理 中间件是一种连接型软件,它包含一套授权服务。可以通过一个网 络在一台或多台机器上运行多个进程。中间件是实现主机应用向客户服 务器应用移植,以及异构平台间通信的基础。在2 0 世纪9 0 年代,该技 术在提供互操作以支持向客户服务器体系结构的转移方面不断演进,其 中最著名的技术有通用对象请求代理体系结构( c o r b a ) 、组件对象模型 分布式组件对象模型( c o m d c o m ) 、远程方法激活( r m i ) 等。 中间件是存在于网络某一系统节点上,介于应用、操作系统和网络 服务之间的一套分布式软件。与操作系统和网络服务相比,中间件提供 了一套功能更全的应用编程接口( a p i ) ,进而允许一个应用在网络中透 明定位,并提供与其他应用或服务豹交互,独立于网络服务,可靠性强, 6 昆明理工大学硕士学位论文 基于c o r b a 的异步消息中闻件的研究 在扩容的同时不损失其功能。 中间件的核心在于网络通讯。中间件软件属于o s i 七层模型的第五 层会话层,向下是基于套接字通信实现与传输层的“原语请求服务”,向 上是基于消息队列和共享内存机制实现与应用层的信息传输。大多数中 间件产品多是依赖消息队列和通信技术实现的。 如图1 3 所示,中间件在客户端与服务器端各有一个通信守护进程 m s c l i 和m s s e r ,并提供了含有m s g s n d ( ) 、m s g r e v ( ) 函数的接口函数, 通过消息队列机制为应用层服务。通信守护进程通过r e c v ( ) 、s e n d ( ) 系 统调用进行数据交换。在建立了通信联接和消息队列后,通信守护进程 完成数据客户端与服务端之间的传递。 客户 应用程序 a p p s er 中间件s 端守护进 程m ss er r e c v s e n d s o c k e t 服务器 图1 3 中间件结构组成 m s g r e v o m s g s n d o 消息队列 ms g s n d o m s g r e v ( ) 昆明理工大学硬士学位论文 基于c o r b a 的异步消惠中同件的研究 整个模型的数据通信、传输过程如图1 4 所示。 消 m s g r e vm s g s n d 消 o 息 避 传传 粤 息 队 m s g s n d 输 输 m s g r c v 队 列 _ _ 一r e c v 层层s e n d 卜列 , 0 - - - - - _ 一 客户进程守护进程守护进程服务进程 m s s e r m s c l im s s e ra p p s e r 图1 4 用中间件实现业务系统数据通信 ( 1 ) 客户端向服务端提交一笔交易。a p pc l i 中的中间件接口函数 调用m s g s n d ,将数据提交到消息队列,m s c l i 调用m s g r c v 读取消患队 列中的数据,通过s e n d 将数据传送到服务端。m ss e r 调用r e c v 将客户 端数据接收过来,通过m s g s n d 将数据存放到消息队列中,调用m s g r c v , 从消息队列中读出数据,交a p ps e r 进行相应的业务处理。 ( 2 ) 服务端向客户端反馈业务处理结果。a p p s e r 将业务处理的结 果通过ms g s n d 送到消息队列中,由m s s er 调用m s g r c v 从消息队列中读 出结果数据,通过s e n d 将结果数据反馈给客户端。m s c l i 调用r e c v 将 服务端结果数据接收过来,通过m s g s n d 将数据存入到消息队列中, a p pc l i 通过中间件函数或标准数据接口,调用m s g r c v ,从消息队列中 读出结果数据,交a p pc l i 做相应的业务处理。 这样,基于中间件通信方式的一笔交易就完成了。 1 2 本文研究内容 针对目前基于c o r b a 标准的消息中间件在异步传输方式中存在的 问题,进行了以下几方面的研究工作: 1 ) 对c o r b a 标准进行了分析 要研究基于c o r b a 标准的消息中间件就需要对该标准进行相应的 研究,以便利用c o r b a 特有的性质,即通过o r b 数据传输软总线进行 通信。由于c o r b a 标准比其它三种标准的网络通信性能好、支持语言和 平台多、可扩展性强等特点,便利用这些优点进行消息中间件的研究。 8 昆明理工大学厩士学位论文 基于c o r b a 的异步消息中间件的研究 接个模型的数据通信、传输过程如图1 4 所示。 一 消 m s g r e v m s g s n d 捎 叶 息 避 传 传 驾 息 队 m s g s n d 输输 m s g r c v 队 列 _ 一r e c v 层层 s e n d 卜 列 一 卜一 客户进程守护进程 守护进程服务进程 m s s e r m s c 1 im s s e ra p p s e r 图1 4 用中间件实现业务系统数据通信 ( 1 ) 客户端向服务端提交一笔交易。a p pc i i 中的中间件按l 1 函数 调用m s g s n d ,将数据提交到消息队列,m s c l i 调用m s g r e v 读取消息队 列中的数据,通过s e n d 将数据传送到服务端。m ss e t 调用r e c v 将客户 端数据接收过来。通过m s g s n d 将数据存放到消息队列中,调用ms g r c v , 从消息队列中读出数据,交a p p s e r 进行相应的业务处理。 ( 2 ) 服务端向客户端反馈业务处理结果。a p ps er 将业务处理的结 果通过ms g s n d 送到消息队列中,由m s se r 调用m s g r e v 从消息队,0 中读 出结果数据,通过s e n d 将结果数据反馈给客户端。m sc i i 调用re c v 将 服务端结果数据接收过来,通过m s g s n d 将数据存入到消息队列中 a p p c l i 通过中间件函数或标准数据接口,嘲用m s g r c v ,从消息队列中 读出结果数据,交a p pc l i 做相应的业务处理。 这样,基于中间件通信方式的一笔交易就完成了。 1 2 本文研究内容 针对目前基于c o r b a 标准的消息中问件在异步传输方式中存在的 问题,进行了以下几方面的研究:f 作: 1 ) 对c o r b a 标准进行了分析 要研究基于c o r b a 标准的消息中间件就需要对该标准进行相应的 研究,阻便利用c o r b a 特有的性质,即通过o r b 数据传输软总线进行 通信。由于c o r b a 标准比其它三种标准的网络通信性能好、支持语言和 平台多、可扩展性强等特点,便利用这些优点进行消息中间件的研究。 平台多、可扩展性强等特点便利用这些优点进行消息中间件的研究。 r 昆明理工大学硕士学位论文 基于c o p r a 的异步消息中间件的研究 2 ) 运用d e l p h i 6 对异步消息中间件进行开发 用d e l p h i 6 0 作为开发工具,把c o r b a 的接口在d e l p h i 6 0 的i d i 。 文件中进行描述。由于同步技术,在性能、健壮性、可扩展性上都存在 一些缺点,使得异步处理模型在分布式应用上比起同步处理模型更具有 吸引力。在同步通信机制中,客户发出调用后,必须等待对象完成处理 并返回结果后才能继续执行;并且消息的发送与接收端必须同时在线; 异步处理模型由于采用了非阻塞调用的机制,大大提高了程序的可扩展 性及健壮性,使得消息发送者和接收者不必同时在线,并且客户不必在 等待返回结果时而处于阻塞状态,并为分布式应用带来了更好的性能。 本文就是利用异步处理机制,对基于c o r b a 的异步消息中间件进行研 究。 3 ) 利用消息队列模式 在消息队列模式中,消息发送到一个队列里,接收者可以在任何时 候查看该队列。消息队列类似于电子邮件系统:传输质量得到保证,但 你不知道收件人是否阅读到报文。利用消息队列模式的好处在于,应用 程序不再需要保持完全同步,通信时,应用程序只需将一个消息放入消 息队列,而不必关心与之通信的对方是否存在或是否准备好处理这个消 息。消息队列方式允许程序无需与对方直接建立连接即可发送和接收消 息。程序只须简单地将消息发送给消息队列,由消息队列负责消息的传 递,对应用程序完全透明。消息队列采用异步方式为信息提供了一个 安全的存储方式,特别适用于不是直接连接的应用,如移动用户、发送 方或接收方进程可能处于不活动状态的应用。当消息接收者从消息队列 中取出消息后,如何对消息对列进行重新排列? 在本文中设计了一个算 法来解决消息队列的重新排列问题。 9 昆明理工丈学殛士学位论文 基于c o r b a 的异步消息中闻件的研究 第二章中间件的开发技术 2 1 开发中间件的三种标准 目前较为流行的三种中间件技术为:o m g 组织制定的c o r b a 标准、 m i c r o s o f t 的c 0 m d c 0 m 标准和s u n 公司的j a v ar m i 。c o r b a 技术是 最早出现的,l9 9 1 年o m g 颁布了c o r b a l 0 标准,在当时是很适用的; m i c r o s o f t 的c o m 系列,从最初的c o m 发展成现在的d c o m ,形成了 m i c r o s o f t 一套分布式对象的计算平台;s u n 公司的j a v a 平台,在其最早 推出的时候,只提供了远程的方法调用,在当时并不能被称为分布式对 象计算,只是属于网络计算里的一种,接着推出了j a v a b e a n s ,也还不足 以和上述两大标准抗衡,而其目前的版本j 2 e e ,推出了e j b ,除了语言 外还有组件的标准以及组件之闻协同工作通讯的框架。就形成了目前的 三大标准。下面分别介绍一下这三种技术。 2 1 1 三种主流中间件技术概述 ( 1 ) c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e - - 一通用对 象请求代理结构) c o r b a 是由o m g ( o b j e c tm a n a g e m e n tg r o u p 一一对象管理集团) 组织 提出的一种面向对象的中间件技术。c o r b a 被设计和架构为服务于用不 同程序语言书写、运行于不同平台上的对象系统。c o r b a 依赖于o r b 中间件在服务器和客户之间进行通信。o r b 扮演一个透明地连接远程对 象的对象。每个c o r b a 对象提供一个界面,并且有一系歹0 的方法与之相 联系。o r b 负责为请求发出相应的实现,并且把请求传递给c o r b a 服务 器。o r b 为客户提供透明服务,客户永远也不需要知道远程对象的位置 以及用什么语言实现。 c o r b a 是基于对象管理体系结构的( o b j e c tm a n a g e m e n t a r c h i t e c t u r e ,即o m a ) ,o m a 为构建分布式应用定义了非常广泛的服务。 o m a 服务划分为三层,分别称为c o r b a s e r v i c e s ,c o r b a f a c i l i t i e s 和 a p p l i c a t i o n o b j e c t s 。当应用程序需要访问这些服务时,就需要o r b 通信 框架。这些服务在o m a 中实际上是不同种类的对象定义。并且为了支持 分布式应用,定义了很广泛的功能。c o r b a 界面和数据类型是用o m g 接1 3 定义语言定义的。c o r b a 在不同对象代理之间使用i i o p ( i n t e r n e t 1 0 昆明理工大学硕士学位论文 基于c o r b a 的异步消息中问件的研究 i n t e r - o r bp r o t o c 0 1 ) 进行通信,使用t c p 作为网络通信协议。 ( 2 ) c o m d c o m ( c o m p o n e n to b j e c t d i s t r i b u t e dc o m 一组件对象 模型,分布组件对象模型) m i c r o s o f t 韵分布式c o m ( d c o m ) 扩展了组件对象模型技术( c o m ) , 使其能够支持在局域网、广域网甚至i n t e r n e t 上不同计算机的对象之间的 通讯。使用d c o m ,应用程序就可以在位置上达到分布性,从而满足客 户和应用的需求。 在c o m d c o m 环境中,客户可以调用进程内对象,可以通过本地代 理调用本地另外个进程内的对象,也可以通过远程代理调用本地另外 机器上的对象。c o m d c o m 不仅提供对象的创建和管理等功能,还包括 三个基本组件:永久存储、智能名字和统一的数据传输。c o m 以及这些 组件的结合形成了c o m 的体系结构,它描述了如何创建对象、对象之间 如何通信、如何存储对象、如何标识对象以及如何与对象交换数据。 ( 3 ) j a y ar m i ( j a v ar e m o t em e t h o di n v o c a t i o n - - 一j a v a 远程方法调 用) j a v a 作为一个在i n t e r n e t 时代诞生的面向网络开发的语言,在j a v a l 1 版本中引入了r m i 。r m i 的设计目的是为了能够无缝的与j a v a 语言其它 方面结合起来,支持分布式程序设计。r m i 本质上是j a v a 的r p c ( r e m o t e p r o c e d u r ec a t l ,远程过程调用1 。通过r m i ,一个程序可以用本地调用方 法相同的方式调用位于网络上其它机器上的j a v a 对象。r m i 的核心是远 程对象的概念,远程对象实现了一个远程界面,在这个远程界面中声明 了可以被其它对象从远程机器上调用的方法,从而实现了客户程序跨网 络的远程调用。r m i 的特点是远程对象不必事先安装在客户端,需要时 可以动态下载。 2 1 2 三种技术的比较 2 1 2 1 三种技术的共同点 它们都继承和发展了r p c 的思想,即用通常本地调用的语义对分布 式应用程序间的交互操作进行封装,根据以远程过程调用方式表示的分 布程序间的交互界面自动生成s t u b ( 码根) 和s k e l e t o n ( 服务器框架) , 由它们负责完成远程请求的打包、发送和接收。简化了分布式系统的开 发,降低了程序员的工作量。 它们都基于面向对象的思想,分布式程序远程访问。的基本组成元素 1 1 昆明理工大学硕士学位论文 基于c o r b a 的异步消息中间件的研究 是对象,都支持面向对象分析设计中的继承、封装、多态等思想。 2 1 2 2 三种技术的不同之处 ( 1 ) 体系结构 c o r b a 是。个完整的、开放的、稳定的分布计算体系。o m g 的目的 是以面向对象技术为核心,构建一组完熬的分布软件开发标准。c o r b a 体系包含了从对象管理体系o m a 、接口定义语言i d l ( i n t e r f a c ed e f i n i t i o n l a n g u a g e ) 、对象请求代理o r b 、对象服务、对象建模等一系列全面的面 向对象软件开发的体系结构以及开发工具。 c o m d c o m 是w i n d o w s 平台o l e 不断发展的产物。它缺少完整 的体系结构。r m i 是j a v a 语言的功能的增强,也没有完整的体系结构。 ( 2 ) 对象服务 c o r b a 规定了一整套的对象服务,如命名服务、事务服务、安全服 务、消息服务等。这些服务都是分布式应用系统所必须的基本服务,它 为应用软件的开发提供了极大的方便,同时也增强了系统的通用性。 d c o m 的服务当前只提供一种受限的命名服务、事务服务以及与n t 的安 全性集成。r m l 只提供一种基于u r l 的简单的命名服务。 ( 3 ) 跨平台支持能力 对应用的跨平台支持是c o r b a 的初始目标和基本核心,始终是 c o r b a 所关注的焦点,当前o r b 可运行在3 0 多种的平台上,支持的 m i c r o s o f t 操作系统平台甚至比d c o m 还要多。d c o m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年专业服务行业共享经济市场前景分析报告
- 2025年电子游戏行业虚拟现实技术应用前景预测报告
- 2025年零售行业移动支付应用前景研究报告
- 2025年金融行业区块链数字货币应用前景研究报告
- 2025年人类基因编辑行业伦理风险与医疗应用前景研究报告
- 商场全员安全培训制度课件
- 2025年区块链技术在金融行业应用前景分析研究报告
- 宁波市2025浙江宁波市交通运输局局属事业单位招聘3人笔试历年参考题库附带答案详解
- 国家事业单位招聘2025中国文联所属单位招聘拟聘用人员笔试历年参考题库附带答案详解
- 吉林省2025年度柳河县事业单位域外人才回引笔试历年参考题库附带答案详解
- 2025民乐辅警考试真题
- 2025年吉林省中考数学试卷真题(含答案详解)
- 综治中心培训课件
- PCR基本知识课件
- GB/T 45716-2025半导体器件金属氧化物半导体场效应晶体管(MOSFETs)的偏置温度不稳定性试验
- 医学美容技术专业教学标准(高等职业教育专科)2025修订
- 新生儿溢奶吐奶呛奶处理指南
- 初中英语单元整体教学设计现状调查研究
- 服务安全风险管理制度
- 武警考试题库及答案
- 2024年四川省委网信办遴选公务员真题
评论
0/150
提交评论