




已阅读5页,还剩74页未读, 继续免费阅读
(计算机应用技术专业论文)基于xmlmom分布式通讯与协调体系的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学位论文数据集 i i l lll1 1 1 1 11 i i i l l l l l l l liil y 18 10 4 6 3 中图分类号 t p 孙写 学科分类号 与加、峄o 论文编号 i 的i 口瑚7 d ”b 密级 溶甙 学位授予单位代码 1 0 0 1 0 学位授予单位名称北京化工大学 作者姓名 杏瓠 学号 w 甲o 芎i b 获学位专业名称 裥孙穆哦撼苹 获学位专业代码 d j 肛。乏 课题来源 商蛐撤荔佥 研究方向 计翮鼢蝴x 黼 论文题目 耘) c j 【i 旷f c i 刚铆耐涨懒同侑黝计屯 关键词 易械多1 急肆溉博 ) c 舭l 瓠一机泐 论文答辩日期 - 纱0 7 , 占;i 论文类型毒风研眵 学位论文评阅及答辩委员会情况 姓名职称 工作单位学科专长 指导教师 黯勃蠢提枯帮协太尊潍聚刚渡 评阅人1 弧蝴鼬蠲寸痹似大学罄1 i l 圬糊 评阅人2 解 i 评阅人3 评阅人4 评阏入5 椭员蝴 瓣南l驽燃帆渤黍i j i 馈复 答辩委员l 剞描翻黼械删而猢 答辩委员2 锨杰懈舢太肖岛殊2 主工聿皇 答辩委员3 答辩委员4 答辩委员5 注:一论文类型:1 基础研究2 应用研究3 开发研究4 其它 二中图分类号在中田图书资料分类法 查询 三学科分类号在中华人民共和固田寥标准( g b tt 3 7 4 5 - 9 ) 誓学科分类与代码中 查询 四论文缡号由单位代码和年份及学号的后四位姐成 摘要 、, 摘要 近年来,随着企业对计算要求的不断提高,计算机应用系统开始由集 中式向分布式发展。软件的体系结构也从c s 模式转向了多层应用体系 结构。以工业故障诊断系统为例,在很多工业故障诊断系统平台的开发中, 需要将原有的软件模块进行整合,或者出于技术发展的需要加入新的软件 模块,所有的这些相关软件模块协同工作,使系统相互之间能够进行数据 交换或信息共享但是,由于各个软件模块之间的相互独立,系统环境的 异构性h 数据标准的不一致,协同工作机制的复杂性,使得软件系统的设 计与开发具有较大的风险和困难。 本文从工业故障诊断系统建设过程中遇到的上述一些实际情况出发, 通过对分布式消息中间件,x m l 等技术的研究,提出了一种基于消息的发 布一订阅模式,x m l 做为中间数据格式的分布式故障诊断系统的通讯协调体 系模型该体系模型主要包括服务配置管理消息收发管理。消息 的发布一订阅( p u b l i s h e r - s u b s c r i b e ) 管理消息队列管理状态检 测模块等最终,利用a c e 技术实现了基于x m l - m o m 的工业故障诊断系统的 通讯协调体系框架。 相比传统的分布式中间件来说,基于x m l - m o m 的通讯协调体系促进了分 i - 布式计算环境中各个组件之间的异步通信,降低了系统间的耦合性,增强 - 了系统的可扩展性,不仅简化了工业故障诊断系统应用的开发过程,对工 业故障诊断系统今后的升级改造、功能扩充都有重要意义 士学位论文 n 出版订阅 、 ,:、jj一 a b s t r a c t i nr e c e n ty e a r s ,a l o n gw i t ht h ee n t e r p r i s et ot h e c o m p u t a t i o nr e q u e s t u n c e a s i n g e n h a n c e m e n t ,t h ec o m p u t e ra p p l i c a t i o ns y s t e ms t a r t e db yc e n t r a l l y t ot h ed i s t r i b u t i o n a ld e v e l o p m e n t t h es o r w a r e s y s t e ms t r u c t u r ea l s oc h a n g e d t h e m u l t i l a y e ra p p l i c a t i o ns y s t e ms t r u c t u r ef r o mc s p a r e r n f o r e x a m p l e ,i n d u s t r i a lf a u l td i a g n o s i ss y s t e m ,i nm a n yi n d u s t r i e sf a u l td i a g n o s i s s y s t e mp l a t f o r mf o rt h ed e v e l o p m e n t ,t h en e e dt oi n t e g r a t ee x i s t i n gs o f t w a r e m o d u l e s ,o rf o rt h ed e v e l o p m e n to ft e c h n o l o g y , t h en e e df o rn e ws o r w a r e m o d u l e s ,a l lo f t h e s es o f t w a r em o d u l e sw o r k t o g e t h e rt oe n a b l et h ee x c h a n g e o fi n f o r m a t i o nb e t w e e n s y s t e m so ri n f o r m a t i o ns h a r i n g h o w e v e r , b e c a u s et h e v a r i o u ss o f t w a r em o d u l e sa r ei n d e p e n d e n t , a n dt h es y s t e me n v i r o n m e n ta r e h e t e r o g e n e o u s ,i n c o n s i s t e n c i e so fd a t as t a n d a r d sf o r , c o m p l e xo fc o o p e r a t i v e w o r k ,i tm a k e st h ed e s i g na n dd e v e l o p m e n to fs o r w a r es y s t e m sw i t hg r e a t e r r i s k sa n dd i 伍c u l t i e s f r o mi n d u s t r i a lf a u l td i a g n o s i ss y s t e me n c o u n t e r e di nt h e p r o c 。e s so f b u i l d i n gs o m eo ft h e s er e a ls i t u a t i o n s ,b yr e s e a r c hd i s t r i b u t e dm i d d l e w a r e , x m la n do t h e rt e c h n o l o g i e s ,d e s i g nb a s e do nam e s s a g ep u b l i s h s u b s c r i b e m o d e l ,x m la st h ed a t af o r m a to ft h em i d d l e , c o m m u n i c a t i o nc o o r d i n a t e s y s t e mm o d e lo fd i s t r i b u t e df a u l td i a g n o s i ss y s t e m m a i n l yi n c l u d e s s e r v i c ec o n f i gm a n a g e m e s s a g et r a n s m i s s i o n sm a n a g e om e s s a g e l u 卜一一蔓 代 、 、心- 0 ijql 目录 目录 第一章绪论1 1 1 研究背景l 1 2 课题提出。l 1 3 论文工作内容2 1 4 论文组织结构3 第二章相关技术研究5 2 1 分布式系统概述5 2 1 1 分布式系统的定义5 2 1 2 分布式系统模型及组成5 2 2 中间件技术概述6 2 2 1 中间件的定义6 2 2 2 中间件的分类7 2 2 3 中间件技术的比较1 2 2 3a c e 技术概述1 2 2 3 1a c e 概述1 2 2 3 2a c e 的结构和功能1 3 2 4 l 技术概述1 5 2 4 1x m l 技术概述1 5 2 4 2 订l 文档组成1 6 2 4 2 1x m l 文档模式1 6 2 4 2 2x s l 1 7 2 4 2 3x l 帐1 7 2 4 3 煳l 编程接口1 8 第三章基于x m i , - m o m 中间件的总体设计1 9 3 1x m l - m o m 的通讯协调机制的设计目标1 9 3 2 系统总体结构设计1 9 3 3 系统组成模块设计。2 l 3 3 1 服务管理模块2 l 3 3 2 消息处理模块2 9 v 作者及导师简介6 3 v l 、 | q j v 目录 c o n t e n t s c h a p t e r 1i n t r o d u c t i o n 1 1 1b a c k g r o u n do f r e s e a r c h 1 1 2p r o p o s a lo f p r o b l e m 1 1 3m a i nc o n t e n t so ft h i sp a p e r 2 1 4s h u c t l l r eo f p a p e r s 。:3 c h a p t e r2r e s e a r c ho fr e l a t e dt e c h n o l o g i e s 5 2 1d i s t r i b u t e ds y s t e m s 5 2 1 1d e f i n i t i o no f d i s t r i b u t e ds y s t e m s :5 2 1 2c o m p o n e n to f d i s t r i b u t e ds y s t e m s 5 2 2m i d d l e w a r et e c h n o l o g y 6 2 2 1d e f i n i t i o no f m i d d l t w v a l e 6 2 2 2c a t e g o r yo f m i d d l e w a r e 7 2 2 3c o m p a r eo f m i d d l e w a r e 1 2 2 3a c et e c h n o l o g y ? 1 2 2 3 1a c e 1 2 2 3 2c o m p o n e n ta n df u n c t i o no f a c e 1 3 2 4x m l t e c h n o l o g y 1 5 2 4 1 捌l :1 5 2 4 2c o m p o n e n t o f v i l d o c m e n t 1 6 2 4 2 1m o d e lo f x 】、i l d o c r n e n t 1 6 2 4 2 2 : :s l f :1 7 2 4 2 3x l i n k 1 7 2 4 3i n t e r f a c eo f x 】、i l d e v o l o p m e n t 1 8 c h a p t e r3o v e r a l ld e s i g no ft h e b a s e do nx m l - m o mm l d d l e w a r e 19 3 1t h ed e s i g na i m so f x m l - m o mc o m m u n i c a t i o n sc o o r d i n a t em e c h a n i s m 1 9 3 2o v e r a l ld e s i g no f s y s t e m 1 9 v 一 v i i i 第一章绪论 1 1 研究背景 第一章绪论 工业过程故障诊断系统对于防止工业生产中重大事故的发生,保证国家人民生命 财产安全,节约经费和取得更大的经济效益有着重大的意义但是,由于故障诊断技 术的不断发展,也出现了一些新的问题导致原来的故障诊断系统的体系结构不再适应 当前的形势。主要包括以下几个方面的问题: 1 在进行故障诊断时需要多个诊断模块配合工作进行诊断,这样会使数据流量增 大从而导致单机运算能力的不足因此,需要将各个诊断模块分别放在不同的 软硬件环境中进行工作这样诊断模块将要在网络环境中配合工作 4 2 由于各个诊断模块运行在不同的软硬件环境中,由此产生的异构性会导致各个 诊断模块之间无法进行数据交互 3 由于诊断模块自身或者所处的软硬件环境发生错误,使得整个故障诊断系统无 法正常进行工作甚至于瘫痪的情况 4 随着技术的不断发展,原有功能模块的程序可能需要进行重新开发或者优化, 在开发中可能会采取新的技术例如开发模式、算法、数据结构等甚至增加或 者删除某个功能模块而这也必然会整个系统结构的不稳定甚至变更,由此会 带来的系统的可扩展性方面的不足 5 由于故障诊断平台由多个相关功能模块组成,且各个相关功能模块之间会进行 资源共享系统的各个模块由于需要共享资源,所以会与其他模块发生相互作 用这导致了多模块间的协作逻辑的复杂性,使得整个系统的通讯管理非常困 难 1 2 课题提出 为了解决上述故障诊断系统中存在的问题,我们拟采用分布式中间件技术来解决 系统的异构性问题,使各诊断模块可正常的进行数据交互同时为了解决各模块间通 信以及模块间配合工作的问题,我们设计了一套模块间的通信协调机制 随着计算机技术和网络技术的高速发展和应用的普及,分布式计算技术已成为计 北京化工大学硕士学位论文 算机软件领域的主流技术。特别是i n t e m e t 的出现,使网络分布计算的应用范围更加 广阔,无论是在生活中,还是在工业和科学领域中,分布式系统都变得越来越重要。 但是,因为分布式应用程序的异构( 包括操作系统、编程语言、数据库等异构特点) 以及复杂的通信机制,开发和配置仍是一个主要问题。中间件是开发大型分布式应用 中的一个重要组成部分,随着网络技术的持续发展以及对越来越复杂的分布式应用的 需求,中间件技术势必成为这些应用最具竞争的解决方案,使用中间件环境的目的是 隐藏分布式系统的异构性,并提供一个在分布式组件间通信的平台。消息中间件是目 前中间件技术发展的热点。分布式应用系统借助消息中间件在不同的技术之间共享资 源,管理计算资源和网络通信。消息中间件适用于任何需要进行网络通信的系统,负 责建立网络通信的通道,提供公用的通信手段,并且独立于网络和操作系统,进行数 据或文件发送。消息中间件为开发者提供了公用于所有环境的应用程序接口,当应用 程序中嵌入其函数调用,它便可利用其运行的特定操作系统和网络环境的功能,为应 用执行通信功能,从而满足企业内部对系统伸缩性和扩展性的要求 利用中间件技术来构建分布式故障诊断系统具有以下重要意义: 1 提高系统的可靠性 网络上的各个现场工作站均能够独立完成分布式处理,具有故障自诊断功能,某 一个节点发生故障时并不会影响别的节点的正常工作。 2 提高系统的扩展性 网络能适应新技术的发展而扩充或者升级,只需要更新相应节点或者将新节点直 接加入系统 3 提高网络的互联能力 可以实现网络各段间、同类以及异型网络之间的互联,形成较大的开放性计算机 网络系统 4 降低系统成本 硬件价格呈现下降趋势,网络接口集成度逐渐提高,信号传输电缆数量减少,建 网费用相对较低同时,网络上的各个工作站均可以实现软、硬件资源的共享,也提 高了整个系统的性能价格比 5 提高系统功能 网络系统具有高度互联的特性,支持多用户、多任务并发执行,可承担较多的工 作负荷工作节点数量可以很多,覆盖范围大,可通过网络进行远程诊断,便于通过 共享各类信息来实现分散监测、集中诊断和综合控制 1 3 论文工作内容 2 第一章绪论 本文在对现有消息中间件进行研究的基础上,设计了一个基于x m l 技术和m o m 技 术的通讯协调体系,并且完成了a c e 消息中间件的主要功能模块详细设计和实现。 本文的主要工作可分为以下几部分: 1 ) 研究消息中间件技术,a c e 中间件技术和x m l 技术。仔细分析了消息中间件的优缺 点,在此基础上总结出了消息中间件的定义和特点。 2 ) 设计了x m l - - m o m 消息中间件的整体层次和框架,分析核心模块的内部结构 3 ) 在消息中间件设计的基础上,实现了消息订阅服务,即消息订阅服务的主要功能 模块。 4 ) 利用x m l 技术实现了对模块的配置,以及通信协议扩展性方面的管理,即配置服 务的主要功能模块。 5 ) 为了提高消息系统的性能,网络层采用a c e 技术,结合p r o a c t o r 模式实现消息的 异步发送和接收 6 ) 利用心跳协议对网络中服务器的状态进行检查。 7 ) 将消息中间件分为四层:消息服务层、消息处理层、消息收发层 消息服务层是整个消息中问件的核心,提供了消息订阅管理等主要功能 消息处理层由消息管道和消息处理模块组成,负责对发送和接收的消息进行处理, 如消息格式转换,具体由x m l 包装后的消息格式文件来决定 消息收发层是逻辑消息与物理消息的交界层,主要负责消息的接收和消息发送 1 4 论文组织结构 论文组织结构如下: 第二章:介绍了分布式中间件技术概念、中间件的定义和中间件的分类,重点介 绍消息中间件的特性,并且讨论了消息中间件的现状同时介绍了a c e 中间件技术和 煳l 技术 第三章。讨论了基于x m l - m o m 通讯协调体系模型的层次框架,并对各个模块的功 能作了介绍 第四章;在x m l - m o m 通讯协调体系模型整体设计的基础上,详细介绍了主要模块 的详细设计与实现 第五章:总结与展望 3 大学硕士学位论文 第二章相关技术研究 第二章相关技术研究 本章将详细讨论分布式系统的概念以及模型,中间件技术的定义和分类,同时重 点研究了消息中间件,对现有的几种消息中间件进行了比较。另外还讨论了与课题相 关的a c e 中间件技术和x m l 技术的特点。 2 1 分布式系统概述 2 1 1 分布式系统的定义 随着网络技术的迅速发展和信息高速公路的建立,使得知识共享和传播变得越来 越容易,经济的全球化趋势日益明显,这些极大地促进了分布式系统的发展然而, 对于分布式系统有着很多不同的定义,至今还没有一种令人满意或者能够被所有人接 受的定义根据国内外的研究成果【l l ,分布式系统的概念大致定义为:运行一系列紧密 合作的多处理单元上的系统,实现分布式控制、资源共享、动态扩展、任务调度等多 项功能,同时考虑系统的并发性、分布性、可靠性、安全性、共享性与保密性等特性 的开放系统 2 1 2 分布式系统的模型及组成 分布式系统主要模型有两类:客户服务器模式与对等模式,具体见图2 1 1 5 。甲甲 旧卜 冈络一圳1 圆圆 的硬件固件层i 基础层) ,它的上层是分布式操作系统或进程通信层,接着为系统服 分布式系统应用层 分布式系统服务层 分布式操作系统或进程通信层 计算机及网络等硬件层 图2 i 2 分布式系统示意 f i g 2 i 2d i s t r i b u t i o n a ls y s t e mh i n t s 2 2 中间件技术概述 2 2 1 中间件的定义 中间件( m i d d l e w a r e ) 是基础软件的一大类,属于可复用软件的范畴顾名思义, 中间件处于操作系统软件与用户的应用软件的中间中间件在操作系统、网络和数据 库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的 环境,帮助用户灵活、高效地开发和集成复杂的应用软件嘲 中间件的定义一直比较模糊,在众多关于中间件的定义中,比较普遍被接受的是 6 第二章相关技术研究 国际数据公司( i d c ) 的描述s 中间件是一种独立的系统软件或服务程序,分布式应 用软件借助这种软件在不同的技术之间共享资源【3 】,中间件位于客户机、服务器的操 作系统、网络和数据库之上,分布式软件之下,如图2 2 1 ,管理计算资源和网络通 信。从中间件的定义可以看出,中间件是一类软件,而非一种软件;中间件不仅仅实 现互连,还要实现应用程序之间的互操作;中间件是基于分布式处理的软件,定义中 特别强调了其网络通信功能【4 j 。 图2 2 1 中间件在系统中的位置 f i g 2 2 1m i d d l e w a r ei ns y s t e mp o s i t i o n 2 2 2 中间件的分类 给中间件分类是一件困难的事情,因为其涉及的范围十分广泛,在不同的角度或 不同的层次上,对其的分类也会有所不同,因此至今还没有一个比较明确的定义但 由于中间件需要屏蔽分布式环境的异构性和复杂性,它必须能够为上层的应用程序提 供分布环境下的通信服务不同类型的中间件提供不同目的的通信服务,而且其实现 机制也不一样,因此我们可以根据通信类型的迥异把中间件分为以下六类1 5 1 6 1 1 7 1 = 数据 库中间件( 咖) 、远程过程调用中间件( r p c ) 、对象请求代理( o r b ) 、事务处理监控 ( t 刚) 、专用中间件( 蹦) 和消息中间件( m 伽) 1 ) 数据库中间件( d m ,d a t a b a s em i d d l e w a r e ) 数据库中间件通常是数据库供应商的产品,它只提供数据库连接,与o d b c 的某 些功能相近,其应用比较固定大多数的客户服务器系统都有一个客户程序存取服 务器上的数据库,如果这个客户程序设计为只存取一种数据库类型,并且将来也是如 此,那么采用数据库中间件十分理想以o r a c l e 为例,s o l * n e t 中间件就为客户和 服务器之间提供了最紧密的联系同样,很多关系数据库系统都提供了中间件技术, 7 北京化工大学硕士学位论文 这些中间件系统完成不同分支的s q l 或者s q l 和非s q l 数据库之间的转换,从一 定意义上讲,这些系统更侧重于数据库转换而不是中间件本身。 2 ) 远程过程调用中间件( r p c ,r e m o t ep r o c e d u r ec a l l ) 请求应答协议指程序的发送者首先向接收者发送一个需要应答处理结果的请求, 然后阻塞至结果的返回。r p c 机制是早期开发分布式应用时经常采用的一种同步请求 应答协议。一个应用程序使用r p c 来执行位于不同地址空间的程序,但从效果上来 看和执行本地程序一样r p c 是嵌入到客户服务器应用程序中的,因而不能单独作 为一个中间件层。当应用程序被编译的时候,编译器会在客户和服务器应用程序上建 立不同的码根,当应用程序需要进行r p c 功能的时候,这些码根就会被调用,在客 户和服务器之间实现同步的通信。码根能够提供数据转换和通信服务,因而能够为应 用程序屏蔽不同的操作系统和网络协议。r p c 调用示意见图2 2 2 。 存户端应舶 服务器戍甩 用户玛饭 l 职务嚣码根 体蛤层 伯输层 网络 弼络 图2 2 2 远程过程调用示意图 f i 9 2 2 2l o n g - d i s t a n c et r a n s f e r h i n t s r p c 一般只提供请求回复的同步通信机制,因而在通信的时候要求客户端和服务 器端都正常工作。但由于网络的复杂性和程序的稳定性问题,必须提供一些机制让处 于阻塞状态的客户端进行恢复,这些机制有:设定请求时间、重传失败的请求和把请 求转发到别的服务器使用r p c 的应用程序的复杂性会随不同的r p c 而不同, 例如r p c 提供的恢复机制越复杂,使用该r p c 的应用程序就越复杂使用异步通信 方式的r p c 比较少,而且实现比较困难嗍 3 ) 对象请求代理( o r b ,o b j e c tr e q u e s tb r o k e r s ) 面向对象的技术一直是软件界努力追求的目标,传统的对象技术通过封装、继承 及多态提供良好的代码重用功能,但这些对象只存在单独的程序中,外面的世界并不 知道它们的存在,也无法访问它们阴o r b 中间件提供一个标准的构件框架,能使不 同厂家的程序构件通过不同的地址空问、网络和操作系统互相交互访问当一个程序 的对象向其它对象发出请求或接受其它对象的响应时,请求就会传递给o r b o r b 激 活或找到可以实现请求的对象、传递参数、调用响应的方法、返回结果等发出请求 的客户端对象并不知道和服务方对象通信、激活或存储了服务方对象的机制,也不知 道服务方对象位于何处,使用了什么语言和操作系统o r b 工作示意见图2 2 3 0 第二章相关技术研究 毒 象服务 3 激活调 2 查找臆务器, 、并传递参数 服务器对叙) 图2 2 3o r b 工作示意图 f i 9 2 2 3o r bw o r kh i n t s 来自不同厂商的构件只要可以通过o r b 互相通信,就可以利用o r b 把它们集合 到不同的系统,这样就大大提高了分布式对象系统的协同处理能力。构件的具体实现、 位置及所依附的操作系统对客户来说都是透明的,客户只需关心构件接口的使用方 法,这种信息的隐藏加强了系统的可维护性 现在主要有三种o r b 技术【i 川: 对象管理组织( o m g ) 的通用对象请求代理体系结构( 删 微软的对象组件模型( c 伽) j a v a 的远程方法调用( 蹦i ) 4 ) 事务处理监控( t 蹦,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 ) 事务处理监控最早出现在大型机上,为其提供支持大规模事务处理的可靠运行环 境随着分布计算技术的发展,分布应用系统对大规模的事务处理提出了需求,比如 商业活动中大量的关键事务处理事务处理监控界于c l i e n t 和s e r v e r 之间,进行 事务管理与协调、负载平衡、失败恢复等,以提高系统的整体性能它可以被看作是 事务处理应用程序的“操作系统糟总体上来说,事务处理监控有以下功能:进程管理, 包括启动s e r v e r 进程、为其分配任务、监控其执行并对负载进行平衡事务管理, 即保证在其监控下的事务处理的原子性、一致性、独立性和持久性通讯管理为 c 1 l e n t 和s e r v e r 之间提供了多种通讯机制,包括请求响应、会话、排队、订阅发 布和广播等事务处理监控能够为大量的c l i e n t 提供服务,比如飞机定票系统如 果s e r v e r 为每一个c l i e n t 都分配其所需要的资源的话,那s e r v e r 将不堪重负 但实际上,在同一时刻并不是所有的c l i e n t 都需要请求服务而一旦某个c l i e n t 请求了服务,它希望得到快速的响应事务处理监控在操作系统之上提供一组服务, 对c l i e n t 请求进行管理并为其分配相应的服务进程,使s e r v e r 在有限的系统资源 下能够高效地为大规模的客户提供服务 事务处理界于客户和服务器之间,进行事务管理与协调、负载平衡、失败恢复等, 以提高系统的稳定性和整体性能总体上来说,事务处理中间件有以下三大功能i i o j 9 北京化工大学硕士学位论文 进程管理:包括启动服务器进程、为其分配任务、监控其执行并对负载进行平 衡。 事务管理:即保证在其监控下的事务处理的原子性、一致性、独立性和持久性。 通信管理:为客户和服务器之间提供了多种通信机制,包括请求响应、会话、 排队、订阅发布和广播等。 5 ) 专用中间件( p m ,p r o p r i e t a r ym i d d l e w a r e ) 许多客户服务器开发工具和大型客户服务器应用都有它自己的中间件技术,这 些专用中间件,例如s a p 公司的r 1 3b a s i s ,是专门为特定的工具或应用环境优化 定制,但是却很难使用到现有的客户服务器环境、工具及其它应用中。 6 ) 消息中间件( 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 ) 消息中间件为分布式应用提供可靠的异步数据传输。在分布式应用中,消息通常 指不同应用进程之间传递、交换的信息,消息由消息的内容及消息的接收者的地址组 成,消息的内容及格式由消息的提供者和消息的接收者协商而定。在形式上,消息可 表现为一个小的数据包,亦可表现为一个很大的文件消息的处理流程是由消息的提 供者将要传送的消息提交给消息的发送者,。消息的发送者将消息交给消息的接收者 消息的发送者是指产生该消息的实体,主要指应用进程,消息的接收者是指某消息所 指定的接收实体,消息的接收者并不一定接收到该消息,它只是该消息的原定接收者 消息的传送者是指负责从消息提供者获取消息,并将消息的内容传送到消息接收者的 实体,消息的传送者有时不只是一个实体,而是特定实体的集合,它们共同扮演消息 传送者角色i 嘲 在应用系统结构中,分为消息发送端和接收端,发送端发送消息,接收端接收消 息,连接发送端和接收端的是数据传送网络发送端和接收端分别由四层组成,如图 2 2 4 所示 应用层,它由用户的应用程序构成,发送端应用负责数据的生成和发送,接 收端应用负责数据的接收和处理( 如加密解密) ,消息的发送和接收均通过消息 中间件层进行 消息中间件层,消息中间件收到应用消息传送的请求后,通过操作系统的端 口传输控制对消息进行传输在传送过程中,通过发送端消息中间件和接收端消 息中间件之间的协调,保证消息传递的可靠性和准确性接收端的消息中间件在 接收到消息后将消息传送到接收端的应用 端口控制层,根据网络传输协议,具体控制对消息中间件提交消息的传输 传输通过网络设备进行,对方的端口控制层负责数据的接收,接收后传送给消息 中间件 设备层,该层是指具体的物理设备,如计算机中的端口设备、集线器、交换 器和路由器等,它负责具体数据流从发送端到接收端传输 i o 第二章相关技术研究 发送端和接收端之间传送的数据包括这样一些内容: 消息体,指需要传送的消息。当应用程序将消息提交给消息中间件时,该消 息包括两部分内容,一部分是消息头,一部分是消息体。消息体是需要传送的数 据本身,消息头是消息体的传送属性如长度、目的地地址等。 传输包,指在消息体上根据操作系统和网络设备中的层次结构,加上t c p i p 的数据包头,形成传输数据包,以便网络设备进行数据包的传输。 数据流,指将数据包中的字符和编码数据,转换成二进制的数据流,在网络 设备上进行实际的传输。 应用程序 虑用程序 2 2 4 基于消息中间件的分布式应用程序结构 f i g 2 2 4b a s e do nm e s s a g em i d d l e w a r ed i s t r i b u t i o n a la p p l i c a t i o ns t r u c t u r e 通过消息中间件,一些原本互相孤立的业务可以组合成一个可靠的、灵活的系统, 很多应用基于事件驱动模型借助消息机制,可以方便的实现客户方和服务方的通信, 通知服务方进行相应的处理现在越来越多的分布式应用构筑在消息中间件上,通过 消息中问件的a p i ,把应用扩展到不同的操作系统、硬件平台和网络环境,提高应用 系统的处理效率,优化编程过程,保证应用系统的安全稳定能力,增加对应用系统的 控制能力消息中间件的核心安装在需要进行消息传递的系统上,在它们之间建立 逻辑通道,由消息中间件实现消息发送 消息中间件是面向连接的,特别适用于对象技术通常,消息中间件可以既支持 同步方式,又支持异步方式,但目前普遍采用的是异步消息中间件它提供更强的容 错性,在系统故障时可以保证消息的正常传输,因而近年来发展迅速异步消息中间 件大致分为两类一点到点方式( p o i n t - t o - p o i n t ) 和发布订阅方式 ( p u b l i s h s u b s c r i b e ) p t p 采用点对点传输消息方式,建立在消息队列的基础上, 每个节点对应一个消息队列,发送方发送消息到接收方的消息队列中,从自己的消息 队列读取消息p u b li s h s u b s c r i b e 是将消息定位到某个层次结构栏目的节点上, 北京化工大学硕士学位论文 p u b l i s h s u b s c r i b e 通常采用匿名动态发布消息的方式,p u b l i s h s u b s c r i b e 必须保 证某个节点的所有发布者( p u b l i s h e r ) 发布的信息准确无误地发送到这个节点的所有 消息订阅者( s u b s c r i b e r ) 。发布订阅方式由于更加智能有效,实际上已成为异步消 息中间件的事实标准。 2 2 3 中间件技术的比较 最初的数据库中间件仅提供了数据库的访问,没有程序调用和对象的传递;o r b 实现了将客户请求发送到远程的对象实现:事务处理中间件提供了队列机制,在功能 上确保消息的正确传递;支持端一端同步通信的远程过程调用( r e m o t ep r o c e d u r e c a l l ,r p c ) ,其消息的传送依赖于服务进程和接收进程的执行状态,除了要完成用户 规定的任务,还必须处理在通信中遇到的各种问题( 如通信的失败、位置的不断变化 等) ,这增加了网络用户的开发负担【1 3 1 同样采用同步通信机制的面向对象的中间件 ( o b j e c t - - o r i e n t e dm i d d l e w a r e ,0 0 岫,有许多互操作需求不能用请求一应答同步调 用来实现,并且管理多线程机制需要额外的开销【1 4 l 。最终m o m 提供了事件驱动的、异 步的、非阻塞的、确定的、基于消息的通信方法。与传统的基于请求响应通信方式 的客户服务器系统不同,异步处理方式不要求通信进程正在运行,因此m 伽具有较 大的灵活性和可扩充性。m o m 使得在i n t e r n e t 环境下,不断开发出来的不同类型的应 用程序和数据资源之间的快速、可靠、可扩展的连接成为可能一 2 3a c e 中间件技术 2 3 1a c e 技术概述 本文利用a c e 中间件技术来对整个系统实现,下面我们对a c e 中间技术进行概述 a c e 自适配通信环境( a d a f r r i v ec o m m u n i c a t i o ne n v i r o n m e n t ) 是可以自由使用、开 放源码的面向对象( 0 0 ) 构架( f r a m e w o r k ) ,在其中实现了许多用于并发通信软件的 核心模式a c e 提供了一组丰富的可复用c + + 包装外观( w r a p p e rf a c a d e ) 和构架组 件可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理 器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服 务动态( 重) 配置、并发执行和同步等掣啊 c e 的目标用户是高性能和实时通信服务和应用的开发者它简化了使用进程间 通信、事件多路分离、显式动态链接和并发的0 0 网络应用和服务的开发此外,通 过服务在运行时与应用的动态链接,a c e 还使系统的配置和重配置得以自动化 - 2 第二章相关技术研究 使用a c e 的好处有: 增强可移植性:在a c e 组件的帮助下,很容易在一种o s 平台上编写并发网 络应用,然后快速地将它们移植到各种其他的o s 平台上。而且,因为a c e 是开放源码的自由软件,你无需担心被锁定在特定的操作系统平台或编译器 上 更好的软件质量:a c e 的设计使用了许多可提高软件质量的关键模式,这些 质量因素包括通信软件灵活性、可扩展性、可复用性和模块性 更高的效率和可预测性:a c e 经仔细设计,支持广泛的应用服务质量( o o s ) 需求,包括延迟敏感应用的低响应等待时问、高带宽应用的高性能,以及实 时应用的可预测性 更容易转换到标准的高级中间件:t a o 使用了a c e 提供的可复用组件和模式 它是c o r b 的开发源码、遵循标准的实现,并为高性能和实时系统作了优化。 为此,a c e 和t a o 被设计为能良好地协同工作,以提供全面的中间件解决方 案 2 3 2a c e 的结构和功能 a c e 的关键组件和层次关系如t t l 6 1 ( 如图2 3 1 所示) l 回回 国圆固姐盛 啊亡丁一 2 3 1a c e 组件层次关系 f i g 2 3 ia c em o d u l el e v e lr e l a t i o n s 1 3 北京化工大学硕士学位论文 图中a c e 各组件功能描述如下。 1 ) a c e0 s 适配层 该层用c 写成,直接驻留在本地o s 妒i 之上。它提供轻型的类f o s i xo s 适配层, 将a c e 中的其他层及组件和以下与o sa p i 相关联的平台专有特
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年注册验船师资格考试(C级船舶检验专业能力)测试题及答案一
- 2025年环境保护与可持续发展知识测试题及答案
- 2025年油气管道维护与操作实务中级面试模拟题及答案
- 2025年物流师职业资格认证考试预测题解析
- 株洲管理知识培训班课件
- 福州七中2026届化学高一第一学期期末联考试题含解析
- 2025年人工智能算法工程师中级晋升面试题详解集萃
- 2025年酒店管理专业课程期末考试题库
- 2025年金融分析师考试模拟试题及标准答案公布
- 2025年建筑师面试指南模拟题与答案详解
- 食管癌病人护理查房
- 七年级班主任开学第一课课件
- XXX有限公司报销审核制度
- WS/T 427-2013临床营养风险筛查
- GA/T 1047-2013道路交通信息监测记录设备设置规范
- GJB9001C内审员培训讲学课件
- 五牌一图(完整版)
- 幼儿园绘本故事:《十二生肖》 课件
- 激光跟踪仪使用手册
- 新媒体运营知识考核试题与答案
- 金属材料的主要性能ppt课件(完整版)
评论
0/150
提交评论