已阅读5页,还剩68页未读, 继续免费阅读
(计算机应用技术专业论文)p2p消息中间件的研究与设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
p 2 p 消息中间件( p p m m ) 的研究与设计 p 2 p 消息中间件的研究与设计 中文摘要 中间件系统、操作系统和数据库系统是计算机科学领域内的基础技 术,很多应用系统都使用到了中间件系统或者中间件系统的概念。消息 中间是中间件技术的发展热点,它作为一个消息系统,利用高效可靠的 消息传递机制将信息以消息的形式从一个应用程序传送到另一个或者多 个应用程序。本文设计和实现了一个基于p 2 p 技术的消息中间件。 首先,比较c s 模式和p 2 p 模式的优缺点,详细分析c s 模式消息 中间件的不足后,引入了p 2 p 消息中间件。 其次,给出了p 2 p 消息中间件整体框架的设计,将其分为消息服务 管理层、消息处理层、消息收发层及网络层。为了提高整个消息中间件 的性能,网络层采用j a v an i o 技术,综合r e a c t o r 模式实现了消息的异 步发送和接收。 最后,在整体设计的基础上给出了主要模块的详细设计与实现。在 论文结尾对p 2 p 消息中间件特点作了总结,并提出了今后需要进一步研 究与完善的内容。 关键字:消息中间件,p 2 p ,p 2 p 消息中间件,集中式消息中间件, 消息生产者,消息消费者 作者:蒋一新 指导老师:孙涌 r e s e a r c ha n dd e s i g no f p 2 pm e s s a g e - o r i e n t e d m i d d l c w a r e r e s e a r c ha n d d e s i g no f p 2 pm e s s a g e d r i e n t e d m i d d l e w a r e a b s t r a c t m i d d l e w a r es y s t e m ,o p e r a t i n gs y s t e ma n dd a t a b a s es y s t e ma r et h eb a s i c t e c h n o l o g yi nc o m p u t e rs c i e n c ed o m a i n s m i d d l e w a r es y s t e ma n di t sc o n c e p t a r eu s e di nal o to fa p p l i c a t i o ns y s t e m s m e s s a g e o r i e n t e dm i d d l e w a r ew h i c h s e r v e r sa sam e s s a g es y s t e mi st h ed e v e l o p m e n tf o c u so ft h em i d d l e w a r e t e c h n o l o g y i tu s e sh i 【g h e f f i c i e n ta n dr e l i a b l et r a n s m i s s i o nm e c h a n i s mt os e n d i n f o r m a t i o nf r o mo n ea p p l i c a t i o nt oa n o t h e ra p p l i c a t i o no rt oal o to f a p p l i c a t i o n si nt h ef o r mo fm e s s a g e i nt h i sd i s s e r t a t i o n ,p 2 pm e s s a g e o r i e n t e d m i d d l e w a r e ( p p m m ) i sp r o p o s e d f i r s t l y , c o m p a r ea d v a n t a g e sa n dd i s a d v a n t a g e sb e t w e e nc sa n dp 2 p , a f t e rad e t a i l e da n a l y s eo fd i s a d v a n t a g e so fc s - b a s e d 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 ,p 2 pm e s s a g e o r i e n t e dm i d d l e w a r ei si n t r o d u c e d t h e n ,p p m mi sd e s i g n e d ,a n dp p m mi t s e l fi sd i v i d e di n t of o u rl a y e r s ,t h e s e r v i c em a n a g el a y e r , t h ep r o c e s s i n gl a y e r , t h ed i s p a t c h i n gl a y e ra n dt h e n e t w o r kl a y e r i no r d e rt oi m p r o v ep e r f o r m a n c eo fs y s t e m ,i nt h en e t w o r k l a y e r , w e u s ej a v an i ot e c h n o l o g ya n dr e a c t o r p a t t e r n t or e a l i z et h e a s y n c h r o n o u ss e n d i n ga n dr e c e i v i n go f m e s s a g e s f i n a l l y , t h ed e t a i l e dd e s i g na n dt h er e a l i z a t i o no ft h em a i nm o d u l ea r e g i v e db a s e do nt h eo v e r a l ld e s i g n a tt h ee n do ft h ed i s s e r t a t i o ni sc o n c l u s i o n o f t h i sd e s i g nf o l l w e db yf u t u r ew o r k s k e yw o r d s :m o m ,p 2 p ,c e n t r a l i z e dm e s s a g e - o r i e n t e dm i d d l e w a r e , p 2 pm e s s a g e - o r i e n t e dm i d d l e w a r e ,p r o d u c e r ,c o n s u m e r l l w r i t t e nb yj i a n gy i x i n s u p e r v i s e db ys u ny o n g 苏州大学学位论文独创性声明及使用授权声明 学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进行研究工 作所取得的成果。除文中已经注明引用的内容外,本论文不含其他个人或集 体已经发表或撰写过的研究成果,也不含为获得苏州大学或其它教育机构的 学位证书而使用过的材料。对本文的研究作出重要贡献的个人和集体,均已 在文中以明确方式标明。本人承担本声明的法律责任。 研究生签名:叠雄只期:勿形 、 学位论文使用授权声明 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论文合作部、 中国社科院文献信息情报中心有权保留本人所送交学位论文的复印件和电 子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内 容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅 和借阅,可以公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包括 刊登) 授权苏州大学学位办办理。 研究生签名 导师签名 同期: 同期: 耐歹以 知吃二一 p 2 p 消息中间件( p p m m ) 的研究与设计 1 1 研究背景 第一章绪论 计算机技术和网络技术的高速发展和应用的普及,分布式计算技术 已成为计算机软件领域的主流技术。特别是i n t e r n e t 的出现,使网络分布 计算的应用范围更加广阔,无论是在每天生活中,还是在工业和科学领 域中,分布式计算系统都变得越来越重要。i n t e m e t 可以使人们在全球范 围内更方便通信、协作,高性能的计算机解决了科学和商业问题的速度 也远胜以前。 但是,因为分布式应用程序的异构( 包括操作系统、编程语言、数 据库等异构特点) 以及复杂的通信机制,开发和配置仍是一个主要问题。 中间件是开发大型分布式应用中的一个重要组成部分,随着网络技术的 持续发展以及对越来越复杂的分布式应用的需求,中间件技术势必成为 这些应用最具竞争的解决方案,使用中间件环境的目的是隐藏分布式系 统的异构性,并提供一个在分布式组件间通信的平台。 消息中间件是目前中间件技术发展的热点。分布式应用系统借助消 息中间件在不同的技术之间共享资源,管理计算资源和网络通信。消息 中间件适用于任何需要进行网络通信的系统,负责建立网络通信的通道, 提供公用的通信手段,并且独立于网络和操作系统,进行数据或文件发 送。消息中间件为开发者提供了公用于所有环境的应用程序接口,当应 用程序中嵌入其函数调用,它便可利用其运行的特定操作系统和网络环 境的功能,为应用执行通信功能,从而满足企业内部对系统伸缩性和扩 展性的要求。 目前中间件市场上出现大量的消息中间件产品,典型的如i b m 的 m q ,b e a 的m e s s a g e q ,北京东方通科技公司的t o n g l i n k q 。 然而,大多数消息中间件是以c s 网络模式为基础集中式消息中间 件。3 ,即所有的消息服务由中心消息服务器( s e r v e r ) 来提供,各个通信节 第一章绪论p 2 p 消息中问件( p p m m ) 的研究与设计 点( c l i e n t ) 通过消息服务器来实现信息交互。这样,随着通信节点的不 断大量增加,必然会造成消息服务器端通信“瓶颈”,即造成消息服务 器“单点拥挤幽1 和单点失败”叫嘲1 等弊点,严重影响整个消息 系统通信效率,而且,一旦服务器崩溃,整个消息系统也随之瘫痪。 1 ) “单点拥挤”:各个节点必须通过单独的消息服务器实现通信,随 着需要通信节点数量的不断增加,势必会增加消息服务器负担,造成消 息服务器端网络拥挤,从而影响消息服务器的性能,大大影响整个消息 系统通信效率。 2 ) “单点失败”:在整个通信网络中一旦消息服务器发生故障,所有 节点之间的通信将会终止。 1 2 课题提出 针对c s 模式的集中式消息中间件1 2 1 2 4 1 通信出现的“瓶颈”问题,许 多消息中间件开发商采用消息中间件集群技术来实现消息服务器负载平 衡和容错,但是从理论上看,随着通信节点数量的不断膨胀,还是不能 从根本上解决“单点拥挤”和“单点失败”等弊点。 本课题对c s 网络模式与p 2 p 网络模式优缺点进行比较,在之基础 上,提出了p 2 p 消息中间件的设计方案,为解决c s 模型消息中间件的 “单点拥挤”和“单点失败”等缺点提出了一种新的解决思路。 特别强调,本课题重在对消息中间件的进行研究与设计,并没有对 p 2 p 网络进行深刻的研究,而是把p 2 p 技术的消除“单点拥挤”和“单 点失败”等优点运用来消息中间件的设计中。 需要通过p 2 p 消息中间件1 】【2 l 实现通信,应用程序或者应用程序的各 个部分所在的网络节点相互之间建立连接,各个通信节点本身既是服务 器,又是客户机。应用程序或者应用程序的各个部分通过部署在本地的 p 2 p 消息中间件。”( p p m m ) 发生通信,而不通过中心服务器进行信息交 互。这样,通信网络中部分节点的通信失败不会影响其他通信节点,而 且能够减少消息服务器端通信的拥挤。 l o p 谤息中问件( p p m m ) 的研究与设计 1 3 论文工作 本文在对现有消息中间件进行研究基础上,设计一个基于p 2 p 技术 的消息中间件,并且完成p 2 p 消息中间件主要功能模块详细设计和实现。 本文的主要工作可分为以下几部分: 1 ) 研究消息中间件和p 2 p 技术,仔细分析c s 模式和p 2 p 模式的优 缺点,在此基础上总结出c s 模式的集中式消息中间件和p 2 p 消息中间 件的定义及其特点。 2 ) 设计p 2 p 消息中间件的整体层次框架,分析核心模块的功能和内 部结构。 3 ) 在p 2 p 消息中间件设计的基础上,实现了消息队列服务,即点对 点消息服务的主要功能模块。 4 ) 为了提高消息系统的性能,网络层采用了j a v an i o 技术,结合 r e a c t o r 模式实现消息异步发送和接收;另外,系统定期对各个节点之问 的网络连接状态进行检查,及时关闭通信节点之间长时间空闲的连接, 通过对网络连接状态的检测来决定网络中通信节点的状态。 在设计中,将p 2 p 消息中间件分为四层:消息服务层、消息处理层、 消息收发层和网络层。 消息服务层是整个消息中间件的核心,提供了消息队列服务、消息 服务角色的管理、消息订阅管理等主要功能。 消息处理层由消息管道和消息处理模块组成,负责对发送和接收的 消息进行处理,如消息格式转换、消息的加密解密等,消息管道中的模 块可以根据应用程序的需要添加和删除,具体由配置文件来决定。 消息收发层是逻辑消息与物理消息的交界层,主要负责消息的接收 和消息发送。为了提高处理消息的能力,防止消息发送“瓶颈”的发生, 为每个消息接收者构造一个消息分发器,负责对应消息接收者消息的发 送工作。 网络层主要负责底层消息的发送和接收,同时对通信节点的状态进 行检测,把节点状态变化情况及时通知其他节点。 第一章绪论p 2 p 消息中间件( p p m m ) 的研究与设计 1 4 论文组织 论文以下章节的结构如下: 第二章:简单介绍p 2 p 技术概念、中间件的定义和中间件的分类, 重点介绍消息中间件的特性,最后在分析c s 模型和p 2 p 技术的基础上 给出了集中式消息中间件和p 2 p 消息中间件的定义。 第三章:首先给出了p 2 p 消息中间件的特点,然后给出了系统的整 体层次框架,并对各个模块的功能作了介绍。 第四章:在p 2 p 消息中间件整体设计的基础上,详细介绍了主要模 块的详细设计与实现。 第五章:设计测试方案对系统的性能进行测试,并得出有价值的实 验结果。 第六章:总结与展望 p 2 p 消息中问件( p p m m ) 的研究与设计 第二章相关技术 第二章相关技术 本章将介绍p 2 p 技术和消息中间件技术,详细研究与分析c s 模型 与p 2 p 技术的优缺点,在此基础上总结出集中式消息中间件和p 2 p 消息 中间件的定义。 2 1p 2 p 概述 2 1 1p 2 p 的基本概念 计算机对点互连网( p e e r - t o p e e r ,简称p 2 p ) 技术是目前流行于计算 机网络领域研究的一个热点,但p 2 p 并不是一个新的概念。互联网在早 期阶段,即a p r a n e t 阶段,采用的就是p 2 p 模式。由于当计算机的处 理能力、存储空间以及网络带宽等限制,并没有采用p 2 p 模式,而采用 客户机服务器( c s ) 模式。现在,由于计算机和网络的性能出现了飞跃 性的提高,由于c s 模式本身的不足,学术界和企业界重新开始关注p 2 p 技术。 在p 2 p 网络中,不存在中心服务器,所有的节点既是客户机,享用 其他节点提供的服务,同时又充当服务器,为其他节点提供服务。p 2 p 中的节点都是对等的,节点之间进行直接的连接与共享。p 2 p 模式能使互 联网上的闲置的资源得到充分的利用,网络的容错性能也大大提高。在 p 2 p 网络中,信息的传播更加迅速,同时也优化了网络的带宽利用情况。 学术界与企业界并没有给出p 2 p 统一的定义。p 2 p 技术主要指由硬 件形成网络连接后的信息控制技术,主要代表形式是在应用层上基于p 2 p 网络协议的客户端软件。i b m 为p 2 p 下了如下定义:系统依存于边缘化 ( 非中心服务器) 设备的主动协议,每个成员直接从其他成员而不是从 服务器的参与中受益:系统的成员同时扮演服务器与客户端的角色;系 统应用的用户能够意识到彼此的存在,构成一个虚拟或实际的群体。p 2 p 网络是互联网整体架构的基础,互联网最基本t c p i p 协议没有客户端和 p 2 p 消息中问件( p p m m ) 的研究与设计 服务器的概念,在通讯过程中,所有的设备都是平等的一端。 目前,p 2 p 技术已被应用于文件共享3 1 、分布式计算【3 】、协同工作口i 、 即时通讯t 3 1 等许多领域。 2 1 2p 2 p 的形式0 4 p 2 p 技术改变了“内容”所在的位置,使其正在从“中心”走向“边 缘”,也就是说内容不再存于主要的服务器上,而是存在所有用户的p c 机上。p 2 p 使得p c 重新焕发活力、不再是被动的客户端,而成为具有服 务器和客户端双重特征的设备。 关于p 2 p 对等网的分类,目前尚不统一,大致可以分为纯粹的p 2 p 和混合的p 2 p 两类。 1 ) 纯p 2 p 分散式网络踊1 网络中没有服务器,链状的节点之间构成个分散式网络。通过基 于p 2 p 对等网协议的客户端软件搜索网络中存在的对等节点,节点之间 不必通过服务器,可直接建立连接。这种p 2 p 网络模型优点在于允许用 户设定自己的规则和建立自己的网络环境;不仅能够在i n t e m e t 下有效地 工作,而且对于l a n 和i n t r a n e t 也非常有用。存在的问题:由于没有中 心管理者,网络节点难以发现;不易管理且安全性较差。如图2 1 纯分散 式p 2 p 网络结构图。 嚣2 i 纯分散式p 2 p 闷终 图2 2 混台式p ”饲络 2 ) 混合式p 2 p 网络 各节点之间可以直接建立连接,但网络的构建需要服务器,通过集 中认证,建立索引机制。然而这里的服务器仅用于辅助对等节点之间建 6 p 2 p 消息中间件( p p m m ) 的研究与设计第二章相关技术 立连接,一旦连接成功,服务器不再起作用,对等节点之间直接进行通 信。这不同于c s 模式中的服务器,也可以认为是弱化了服务器的作用。 这种p 2 p 网络模型和纯分散式p 2 p 网络相比,易于发现网络节点、易于 管理且安全性较好,但也有类似c s 模式的缺陷,如容错性差等。如图 2 2 混合式p 2 p 网络结构图。 2 1 3p 2 p 模式与c s 模式的比较 p 2 p 技术与c s 模式互联网技术的根本区别在于两者的拓扑结构不 同,或者说两个系统中节点的连接方式不同。分布式网络拓扑结构存在 四种基本形式:集中式拓扑、环型拓扑、树型拓扑和分散式拓扑。由这 四种基本的拓扑结构相互结合还可以形成各种混合式拓扑结构,部分p 2 p 技术属于纯分散式拓扑,其余多属于带有服务器的混合式拓扑c s 模式 为集中式拓扑。当前互联网的主要技术模式是c s 模式,要求设置拥有 强大处理能力和大带宽的高性能计算机,配合高档的服务器软件,将大 量的数据集中存放在服务器上,而且还要安装多样化的服务软件,在集 中处理数据的同时可以对互联网上其他p c 提供服务,发送或接收数据, 提供处理能力及其他应用。与服务器联机并接受服务的客户端性能可以 相对弱小。而p 2 p 技术的特征之一就是弱化服务器的作用,甚至取消服 务器。 目前较为流行的是c s 模式,c s 模式具有以下特点m 1 : 1 ) 集中计算方法,信息和数据都保存在服务器端。只有服务器有控 制能力,客户端基本上是一个只有高性能的i o 设备。 2 ) 服务器及网络的带宽决定了网络的性能。每台服务器所提供的信 息数量受到自身存储空间大小的影响,而所支持的客户访问数量受到服 务器c p u 及网络带宽的限制。 3 ) 被发布信息的分布和生存期十分稳定。 4 ) 被发布信息的存储与管理比较集中,互联网上所有可以公开访问 的信息都保存在服务器上,服务器根据适当的算法和规则管理本地信息, 应答客户端的请求。 第二章相关技术 p 2 p 消息中间件( p p m m ) 的研究与设计 p 2 p 模式是非中心结构,其主要特点为: 1 ) 每个对等点具有相同的地位,既可以请求服务也可以向其他节点 提供服务,同时扮演着c s 模式中的客户端和服务器的双层角色,还可 以具有路由器和高速缓存存储器的功能,从而弱化了服务器的功能,甚 至消除了服务器。 2 ) p 2 p 模式的网络中,每个对等实体可以充分利用网络上其他对等 点的信息资源,如处理器周期、高速缓存和磁盘空间等。 通过上面的比较,我们不难看出p 2 p 模式相对于c s 模式的一些主 要优点8 】: 1 ) p 2 p 模式最主要的优点就是资源利用率高。在p 2 p 网络上,闲置 资源又有机会得到利用,所有节点的资源总和构成了整个网络的资源, 整个网络可以被用作具有超大存储能力和巨大计算处理能力的超级计算 机。c s 模式下,即使客户端有大量闲置的资源,也无法被利用。 2 ) 随着网络中节点的增加,在c s 模式下服务器的负载就越来越重, 形成了系统的瓶径,一旦服务器崩溃,整个网络系统也随之瘫痪。而在 p 2 p 网络中,每个对等点都是一个活动的参与者,每个对等点都向网络贡 献一些资源,如存储空间、c p u 周期等。所以,对等点越多,网络性能 越好。网络随着规模的增大而越稳固。 但是,p 2 p 也有其不足之处,如p 2 p 不易管理,安全性差等缺点。 2 2 中间件及消息中间件 计算机技术的迅速发展。硬件上,c p u 速度越来越高,处理能力越 来越强;软件上,应用程序的规模不断扩大,特别是网络的出现,使计 算机的应用更加广阔,许多应用程序需在网络环境的异构平台上下运行。 这一切都对新一代软件开发提出新的要求。在这种分布异构的环境中, 通常存在多种硬件平台( 如p c ,工作站,小型机等) ,在这些硬件平台 上又存在着各种各样的系统软件( 如不同的操作系统,数据库,语言编 译器等) ,以及多种风格各异的用户界面,这些硬件平台还可能采用不 同的网络协议和网络体系结构连接。如何把这些系统集成起来并开发新 p 2 p 消息中闻件( p p m m ) 的研究与设计 的应用是一个非常现实又困难的问题。 2 2 1 中间件的定义 中间件( m i d d l e w a r e ) 是基础软件的一大类,属于可复用软件的范畴。 顾名思义,中间件处于操作系统软件与用户的应用软件的中间”。中间件 在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于 自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开 发和集成复杂的应用软件“。 中间件的定义一直比较模糊,在众多关于中间件的定义中,比较普 遍被接受的是国际数据公司( i d c ) 的描述:中间件是一种独立的系统软 件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资 源1 ,中间件位于客户机、服务器的操作系统、网络和数据库之上,分 布式软件之下,如图2 3 ,管理计算资源和网络通信。从中间件的定义可 以看出,中间件是一类软件,而非一种软件;中间件不仅仅实现互连, 还要实现应用程序之间的互操作;中间件是基于分布式处理的软件,定 义中特别强调了其网络通信功能“。 主机 分布式软件 中问件a p l 中问件 操作系统a p i 操作系统l 苎剑l 竺刭l ! 剑 网络 主机 分布式软件 中间件a p l 中间件 操作系统a p i r r _ r _ 操作系统削l 兰型倒 图2 3 中间件在系统中的位置 最早具有中间件技术思想及功能的软件是i b m 的c i c s ,但由于c i c s 9 第二章相关技术 p 2 p 消息中间件( p p m m ) 的研究与设计 不是分布式环境的产物,因此人们一般把t u x e d o 作为第一个严格意义上 的中间件产品。t u x e d o 是1 9 8 4 年在当时属于贝尔实验室开发完成的,但 由于分布式处理当时并没有在商业应用上获得像今天一样的成功, t u x e d o 在很长一段时期里只是实验室产品,后来被n o v e l l 收购,在经过 n o v e l l 并不成功的商业推广之后,1 9 9 5 年被现在的b e a 公司收购。尽管 中间件的概念很早就已经产生,但中间件技术的广泛运用却是在最近1 0 年之中。b e a 公司1 9 9 5 年成立后收购t u x e d o 才成为一个真正的中间件 厂商,i b m 的中间件m q s e r i e s ( w e b s p h e r em q ) 也是9 0 年代的产品, 其它许多中间件产品也都是最近几年才成熟起来。国内在中间件领域的 起步阶段正是整个世界范围内中间件的初创时期。东方通科技早在1 9 9 2 年就开始中间件的研究与开发,1 9 9 3 年推出第一个产品t o n g l r n k q 。 而中科院软件所、清华大学、国防科技大学等研究机构也对中间件技术 进行了同步研究。可以说,在中间件领域,国内的起步时间并不比国外 晚多少。 2 2 2 中间件的分类 给中间件分类是一件困难的事情,因为其涉及的范围十分广泛,在 不同的角度或不同的层次上,对其的分类也会有所不同,因此至今还没 有一个比较明确的定义。但由于中间件需要屏蔽分布式环境的异构性和 复杂性,它必须能够为上层的应用程序提供分布环境下的通信服务。不 同类型的中间件提供不同目的的通信服务,而且其实现机制也不一样, 因此我们可以根据通信类型的迥异把中间件分为以下六类“”“们“:数据 库中间件( d m ) 、远程过程调用中间件( r p c ) 、对象请求代理( o r b ) 、 事务处理监控( t p m ) 、专用中间件( p m ) 和消息中间件( m o 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 的某些功能相近,其应用比较固定。大多数的客户服务器系统 都有一个客户程序存取服务器上的数据库,如果这个客户程序设计为只 存取一种数据库类型,并且将来也是如此,那么采用数据库中间件十分 p 2 p 消息中问件( p p m m ) 的研究与设计 理想。以o r a c l e 为例,s q l * n e t 中间件就为客户和服务器之间提供了最 紧密的联系。同样,很多关系数据库系统都提供了中间件技术,这些中 间件系统完成不同分支的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 4 。 r p c 一般只提供请求回复的同步通信机制,因而在通信的时候要求 客户端和服务器端都正常工作。但由于网络的复杂性和程序的稳定性问 题,必须提供一些机制让处于阻塞状态的客户端进行恢复,这些机制有: 设定请求时间、重传失败的请求和把请求转发到别的服务器。 客户端应用 服务器应用 用户码根 服务器码根 传输层 传输层 网络 网络 图2 4 远程过程调用示意图 使用r p c 的应用程序的复杂性会随不同的r p c 而不同,例如r p c 提供的恢复机制越复杂,使用该r p c 的应用程序就越复杂。使用异步通 第二章相关技术p 2 p 消息中间件( p p m m ) 的研究与设计 信方式的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 5 。 图2 5o r b1 :作示意图 来自不同厂商的构件只要可以通过o r b 互相通信,就可以利用o r b 把它们集合到不同的系统,这样就大大提高了分布式对象系统的协同处 理能力。构件的具体实现、位置及所依附的操作系统对客户来说都是透 明的,客户只需关心构件接口的使用方法,这种信息的隐藏加强了系统 的可维护性。 现在主要有三种o r b 技术”: 对象管理组织( o m g ) 的通用对象请求代理体系结构( c o r b a ) 微软的对象组件模型( c o m ) p 2 p 消息中间件( p p m m ) 的研究与设计 j a v a 的远程方法调用( r m i ) 4 ) 事务处理监控( t p 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 ) 事务处理监控最早出现在大型机上,为其提供支持大规模事务处理 的可靠运行环境。随着分布计算技术的发展,分布应用系统对大规模的 事务处理提出了需求,比如商业活动中大量的关键事务处理。事务处理 监控界于c l i e n t 和s e r v e r 之间,进行事务管理与协调、负载平衡、失败 恢复等,以提高系统的整体性能。它可以被看作是事务处理应用程序的 “操作系统”。总体上来说,事务处理监控有以下功能:进程管理,包括 启动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 都分配其所 需要的资源的话,那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 在有限的系统资源 下能够高效地为大规模的客户提供服务。 事务处理界于客户和服务器之间,进行事务管理与协调、负载平衡、 失败恢复等,以提高系统的稳定性和整体性能。总体上来说,事务处理 中间件有以下三大功能“。 进程管理:包括启动服务器进程、为其分配任务、监控其执行并对 负载进行平衡。 事务管理:即保证在其监控下的事务处理的原子性、一致性、独 立性和持久性。 通信管理:为客户和服务器之间提供了多种通信机制,包括请求 响应、会话、排队、订阅发布和广播等。 5 ) 专用中间件( p m ,p r o p r i e t a r y m i d d l e w a r e ) 许多客户服务器开发工具和大型客户服务器应用都有它自己的中 p 2 p 消息中问件( p p m m ) 的研究与设计 间件技术,这些专用中间件,例如s a p 公司的r 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 ) 消息中间件为分布式应用提供可靠的异步数据传输。在分布式应用 中,消息通常指不同应用进程之间传递、交换的信息,消息由消息的内 容及消息的接收者的地址组成,消息的内容及格式由消息的提供者和消 息的接收者协商而定。在形式上,消息可表现为一个小的数据包,亦可 表现为一个很大的文件。消息的处理流程是由消息的提供者将要传送的 消息提交给消息的发送者,消息的发送者将消息交给消息的接收者。消 息的发送者是指产生该消息的实体,主要指应用进程,消息的接收者是 指某消息所指定的接收实体,消息的接收者并不一定接收到该消息,它 只是该消息的原定接收者。消息的传送者是指负责从消息提供者获取消 息,并将消息的内容传送到消息接收者的实体,消息的传送者有时不只 是一个实体,而是特定实体的集合,它们共同扮演消息传送者角色心o “3 。 在应用系统结构中,分为消息发送端和接收端,发送端发送消息, 接收端接收消息,连接发送端和接收端的是数据传送网络。发送端和接 收端分别由四层组成,如图2 6 所示。 应用层,它由用户的应用程序构成,发送端应用负责数据的生成 和发送,接收端应用负责数据的接收和处理( 如加密解密) ,消 息的发送和接收均通过消息中间件层进行。 消息中间件层,消息中间件收到应用消息传送的请求后,通过操 作系统的端口传输控制对消息进行传输。在传送过程中,通过发 送端消息中间件和接收端消息中间件之间的协调,保证消息传递 的可靠性和准确性。接收端的消息中间件在接收到消息后将消息 传送到接收端的应用。 端口控制层,根据网络传输协议,具体控制对消息中间件提交消 息的传输。传输通过网络设备进行,对方的端口控制层负责数据 的接收,接收后传送给消息中间件。 p 2 p 消息中问件( p p m m ) 的研究与设计 第二索相关技术 设备层,该层是指具体的物理设备,如计算机中的端口设备、集 线器、交换器和路由器等,它负责具体数据流从发送端到接收端 传输。 发送端和接收端之间传送的数据包括这样一些内容: 消息体,指需要传送的消息。当应用程序将消息提交给消息中间 件时,该消息包括两部分内容,一部分是消息头,一部分是消息 体。消息体是需要传送的数据本身,消息头是消息体的传送属性 如长度、目的地地址等。 传输包,指在消息体上根据操作系统和网络设备中的层次结构, 加上t c p i p 的数据包头,形成传输数据包,以便网络设备进行数 据包的传输。 数据流,指将数据包中的字符和编码数据,转换成二进制的数据 流,在网络设备上进行实际的传输。 应用程序应用程序 图2 6 基于消息中间件的分布式应用程序结构 通过消息中间件,一些原本互相孤立的业务可以组合成一个可靠的、 灵活的系统,很多应用基于事件驱动模型。借助消息机制,可以方便的 实现客户方和服务方的通信,通知服务方进行相应的处理。现在越来越 多的分布式应用构筑在消息中间件上,通过消息中间件的a p i ,把应用扩 展到不同的操作系统、硬件平台和网络环境,提高应用系统的处理效率, 优化编程过程,保证应用系统的安全稳定能力,增加对应用系统的控制 第二章相关技术p 2 p 消息中间件( p p m m ) 的研究与设计 能力。消息中间件的核心安装在需要进行消息传递的系统上,在它们之 间建立逻辑通道,由消息中间件实现消息发送。 消息中间件是面向连接的,特别适用于对象技术。通常,消息中间 件可以既支持同步方式,又支持异步方式,但目前普遍采用的是异步消 息中间件。它提供更强的容错性,在系统故障时可以保证消息的正常传 输,因而近年来发展迅速。异步消息中间件大致分为两类:点到点方式 ( 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 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 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 3 集中式消息中间件 集中式消息中间件( 集中式消息系统) 的结构图如图2 7 所示。在 传统的集中式消息系统中,消息服务集中在网络中的一台中心服务器上, 需要通信的应用程序或者应用程序的各个部分通过中心服务器提供的队 列或者主题实现相互之间的通信,中心服务器负责消息的管理和路由。 由于服务主要集中在一台中心服务器上,随着通信节点的不断增加,势 必会产生单点拥挤、单点失败等“瓶颈”效应。 1 ) 单点拥挤:假如存在应用程序a 和应用程序b 通过消息服务器 进行通信,用户不但要求这两个应用程序能够通信,而且要保证相互之 间能够及时响应;这时,假如有应用程序c 和应用程序d 也要通过相同 的消息服务器通信,而且在一小时内交互的消息达到几十万;在这种情 况下,应用程序c 和应用程序d 的通信必然会影响应用程序a 和应用程 序b 的通信效率,而且,随着其他需要通信的应用程序的加入,会使得 整个消息系统的运行效率进一步降低。 p 2 p 捎息中问件( p p m m ) 的研究与设计第二章相关技术 2 ) 单点失败:由于所有的消息服务都集中在一台服务器上,当该服 务器发生故障,将会造成整个消息系统瘫痪。 另外,由于消息系统中所有的消息服务都集中在消息服务器上,势 必要求消息服务器有较高的硬件环境。 c o m p o n e n ti c o m p o n e n t4 图2 7 集中式消息中间件 2 4p 2 p 消息中间件 c o m p o n e n tlc o m p o n e n t2 c m p o n e n t3 c o m p o 悯t 4 圈2 8p 2 p 消息中间什 基于p 2 p 网络模型的特点,在p 2 p 消息系统中,需要通信的应用成 用程序或者应用程序的各个部分所在的节点相互之间直接连接,通信网 络中的每个通信节点本身既是服务器,又是客户机。应用程序或者应用 程序的各个部分通过部署在自身节点上的p 2 p 消息中间件( p p m m ) 发生 通信,而不通过中间代理直接进行信息交互( 如图2 8 ) 。 这样,随着需要通信节点的不断增加,消息系统的整个通信效率不 会明显的减少,而且,当通信网络中的某个节点发生故障,不会影响与 该节点无关的其他节点的正常通信,因此可以消除传统集中式消息系统 中存在的“单点失败”及“单点拥挤”等缺点,可以说p 2 p 消息中间件 在理论上可以支持无数节点同时通信。 p 2 p 消息中间件在设计中基本上按照纯p 2 p 分散式网络的模型来组 织通信网络中的节点,本课题并没有在p 2 p 网络管理上进行深刻的研究, 而是把p 2 p 技术消除“单点拥挤”和消除“单点失败”的优点应用于消 第二章相关技术 p 2 p 消息中甸件( p p m m ) 的研究与设计 息中间件的设计中。 2 5j a v a 异步i o t z 5 1 在消息中间件中网络层消息的接收和发送采用了j d k l 4 中的异步 i o 技术,本文用到的技术包括缓冲器、通道和选择器。下面对该技术作 简单的介绍。 1 缓冲器 这里在采用了直接缓冲,引入它是为了提高程序地运算速度。直接 缓冲器速度快,不是因为它地硬件速度,而是j a v a 运用环境可以直接存 取数据到缓冲器占用地内存。 通常,j a v a 虚拟机处理数据时,关键点是当数据流经过j v m 和操作 系统时,j v m 需要从系统缓冲器复制所有数据以供用户程序,或者将j v m 中的数据写入系统缓存。而直接缓冲器则希望减少j v m 与系统缓存之间 地复制,实际上就是让操作系统承担这一工作。因此,直接缓冲器的性 能直接依赖于操作系统。 2 通道 通道功能类似于传统i o 的s t r e a m 。但是通道具有双向性,既可以 读出,又可以写入。而s t r e a m 只能进行单方向操作,在n i o 中,所有的 数据通过通道读写。 通道表示连到一个实体的连接,可以异步地关闭和中断。所以,如 果一个线程在某条通道的i o 操作上阻塞时,那么另外
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体验经济时代木制名片盒作为企业社交货币的情感附加值与资本化路径
- 从单机销售到运维服务转型中磁性排屑器项目的商业模式创新与估值逻辑
- 2026年漯河职业技术学院高职单招笔试数学试题库含答案解析3套试卷
- 2026年湖南软件职业学院高职单招笔试职业适应性测验试题库含答案解析2套试卷
- 2026年湖南交通职业技术学院高职单招笔试职业适应性测验试题库含答案解析2套试卷
- 2026年湖北中医药高等专科学校高职单招笔试化学试题库含答案解析2套试卷
- 2026年海南经贸职业技术学院高职单招笔试语文试题库含答案解析2套试卷
- 2026年浙江育英职业技术学院高职单招笔试职业技能测验试题库含答案解析3套试卷
- 2026年浙江医药高等专科学校高职单招笔试英语试题库含答案解析3套试卷
- 2026年泰州职业技术学院高职单招笔试化学试题库含答案解析2套试卷
- 第一章 机械运动 评价卷(含答案)人教版物理(2024)八年级上册
- 中职教材形象设计课件
- 《品篆刻之美》课件 2025-2026学年人美版(2024)初中美术七年级上册
- 农业园区管理课件
- 早产儿肠内营养管理
- 中铁品牌建设管理办法
- DZ/T 0223-2011矿山地质环境保护与恢复治理方案编制规范
- 美术步辇图课件
- 中风恢复期护理
- 污水处理基础知识+工艺培训(全)课件
- 2023年上海浦东新区劳动人事争议仲裁院辅助人员招聘拟聘笔试参考题库(共500题)答案详解版
评论
0/150
提交评论