(计算机应用技术专业论文)j2ee平台下消息中间件及其安全性的研究.pdf_第1页
(计算机应用技术专业论文)j2ee平台下消息中间件及其安全性的研究.pdf_第2页
(计算机应用技术专业论文)j2ee平台下消息中间件及其安全性的研究.pdf_第3页
(计算机应用技术专业论文)j2ee平台下消息中间件及其安全性的研究.pdf_第4页
(计算机应用技术专业论文)j2ee平台下消息中间件及其安全性的研究.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(计算机应用技术专业论文)j2ee平台下消息中间件及其安全性的研究.pdf.pdf 免费下载

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

文档简介

摘要 分布式系统设计的一个重要问题就是如何让在不同节点上运行的各部分 协同工作,分布节点间能够协同工作的关键问题是节点间的有效通信。节点 间有效通信需要一个可靠的消息传递服务,消息中间件为分布式系统节点间 可靠的消息传递提供了卓有成效的解决方案。消息中间件作为一种进程间松 藕合的通信手段,使分布节点之间的协同工作有了更大的灵活性同时,消 息的机密性、身份认证等问题成为了网络信息安全研究的重中之重。身份认 证在网络安全中发挥着重要的作用。本文的研究重点是建立一个统一身份认 证系统,实现对用户的统一管理、统一认证和统一授权。 本论文首先简单地分析了j m s 规范和消息中间件的定义和分类,以及消息 中间件的两种通信模型:点对点模型和发布订阅模型。j a v am e s s a g es e r v i c e ( j m s ) 是由s u n m i c r o s y s t e m s 公司提出的基于j a v a 技术的消息中间件的规范。 它有效地屏蔽了网络协议、应用实现的具体技术、操作系统和数据库的细节。 然后,在对消息中间件相关技术进行理论分析和技术研究的基础上,提出全 新的l y m o m 消息中间件。 本论文把重点放在系统的身份认证系统的设计和实现上。在分析了公钥密 码学和私钥密码学以及各种认证机制后,本论文提出了一个通用安全认证系 统( c s a s ) 的解决方案。系统建立在k e r b e r o s 的底层认证机制之上,k e r b e r o s 是一个著名的分布式环境下的认证协议。本文利用基于公钥体制的加密技术 改进了k e r b e r o s 协议,使用随机数方法替换了原来的时间戳技术以防止重播 攻击,摒弃原有协议的不足之处,设计出更高安全性的身份认证协议,使得 整个协议的安全性和适应性得到了进一步的提高。系统还采用了通用安全服 务应用程序编程接口( g s s a p i ) ,通用安全服务应用程序编程接口为应用服 务提供了统一的接口,这组接口与底层k e r b e r o s 机制相结合,从流程和机制 上保证了系统的安全性,大大提高了系统的兼容性和可扩展性,凡是遵循该 接口的应用系统都可以方便地集成到该系统。此外,使用了l d a p 标准协议存 储和管理用户信息,增强了系统的可维护性。 本文研究的消息中间件以及安全认证系统在当前的企业应用整合中具有 重要的意义。 关键词:消息中间件,k e r b e r o s ,g s s - a p i a b s t r a c t a ni m p o r t a n tp r o b l e mt h a tt h ed i s t r i b u t e ds y s t e mi sd e s i g n e di sh o wt ol e te v e r y p a r to p e r a t e do nd i f f e r e n tn o d e sw o r ki nc o o r d i n a t i o n , a n dt h ek e yp r o b l e mi s e f f e c t i v ec o m m u n i c a t i o na m o n gt h e s en o d e s t h ee f f e c t i v ec o m m u n i c a t i o nn e e d sa r e l i a b l em e s s a g et r a n s m i s s i o ns e r v i c ef o rt h en o d e s m e s s a g e o r i e n t e dm i d d l e w a r e h a so f f e r e df r u i t f u ls o l u t i o nf o rr e l i a b l em e s s a g et r a n s m i s s i o na m o n gt h ed i s t r i b u t e d n o d e s b e c a u s em e s s a g e o r i e n t e dm i d d l e w a r ei st h el o o s ec o m m u n i c a t i o nm e a i 塔 a m o n gp r o c e s s e s ,t h ec o o p e r a t i o no fd i s t r i b u t e dn o d e sh a v eh e a v yf l e x i b i l i t y a tt h e s a m et i m e ,t h ec o n f i d e n t i a l i t y , a u t h e n t i c a t i o n , e r e o fm e s s a g eb e c o m et h em o s t i m p o r t a n tt h i n g s i nt h es t u d yo fn e t w o r ki n f o r m a t i o ns a f e t y t h ei d e n t i t y a u t h e n t i c a t i o ni sv e r yi m p o r t a n ti nt h en e t w o r ks e c u r i t y t h em a i nr e s e a r c hi n t h i s p a p e ri s t os e tu pa nu n i f i e da u t h e n t i c a t i o ns y s t e mw h i c hc a nc o m p l e t eu n i f i e d a u t h e n t i c a t i o na n da u t h o r i t ya n da d m i n i s t a t i o n a tf i r s t , t h ep a p e rs i m p l ya n a l y s i z ej m ss t a n d a r d , d e f i n i t i o na n dc l a s s i f i c a t i o no 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 n d t w ok i n d so fc o m m u n i c a t i o nm o d e l s : p o i n t t o - p o i n tm o d e la n dp u b l i s h s u b s c r i b em o d e l j a v am e s s a g es e r v i c e ( j m s ) i sa s p e c i f i c a t i o nf o rm o m b a s e do nj a v at e c h n o l o g yc r e a t e db ys u nm i c r o s y s t e m s i t m a k e st h eh e t e r o g e n e i t yo fn e t w o r kp r o g r a m m i n gl a n g u a g e ,o sa n dd a t a b a s e t h e n , b a s e do nt h et h e o r ya n a l y s i sa n dt e c h n i c a lr e s e a r c ht ot h er e l e v a n tt e c h n o l o g yo 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 ,ip r o p o s en e wl y m o r nm o m t h ep a p e re m p h a s i z e st h ed e s i g na n di m p l e m e n to fu s e ra u t h e n t i c a t i o ns y s t e m a f t e ra n a l y s i z i n gp u b l i ck e yc r y p t o g r a p h y , p r i v a t ek e yc r y p t o g r a p h ya n ds o m e d i f f e r e n ta u t h e n t i c a t i o nm e c h a n i s m s ,t h i sp a p e rp u t sf o r w a r das e c u r i t ys o l u t i o n n a m e dc o m m o ns e c u r i t ya u t h e n t i c a t i o ns y s t e m ( c s a s ) i ti sb a s e do nk e r b e r o s m e c h a n i s m k e r b e r o si saf a m o u sd i s t r i b u t e da u t h e n t i c a t i o np r o t o c a l t h ep a p e r i m p r o v e sk e r b e r o sp r o t o c o lb a s e do np u b l i ck e ye n c r y p t i o nt e c h n i q u e a n du s e r a n d o mn u m b e rm e t h o dt or e p l a c et i m es t a m pt e c h n i q u e ,w h i c hp r e v e n t sr e p l a y a t t a c k i ta b a n d o n st h ew e a kp o i n t so fo r i g i n a lp r o t o c 0 1 t h en e wp r o t o c o lh a sa h i g h e rs e c u r i t ya n da d a p t a b i l i t y t h es y s t e mi se x t e u s i b l ea n dc o m p a t i b l eb e c a u s eo f m a k i n g u s eo f g e n e r i c s e c u r i t y s e r v i c e a p p l i c a t i o np r o g r a m m i n g i n t e r f a c e ( g s s - a p 0 g s s - a p ip r o v i d e sa p p l i c a t i o nw i t hc o m m o ni n t e r f a c e s ,a n d t h e yw o r kw i t hk e r b e r o st o g e t h e rt om a k es u r et h es y s t e ms e c u r i t yi nt h ef l o wa n d m e c h a n i s m a n yo t h e rs y s t e mc a n b ei n t e g r a t e di n t ot h i ss y s t e mt h r o u g hg s s - a p i i n a d d i t i o n , l d a pi su s e dt os t o r ea n dm a n a g eu s e r s i n f o r m a t i o n , a n ds t r e n g t h e nt h e s y s t e mm a i n t a i n a b i l i t y t h er e s e a r c ho nm e s s a g e - o r i e n t e dm i d d l e w a r ea n ds e c u r i t ya u t h e n t i c a t i o ns y s t e m h a v et h ev i t a ls i g n i f i c a n c ei nt h ec u r r e n te n t e r p r i s ea p p l i c a t i o nc o n f o r m i t y k e y w o r d s :m e s s a g e - o r i e n t e dm i d d l e w a r e ,k e r b e r o s ,g s s - a p i h i 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及 取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得 武汉理工大学或其它教育机构的学位或证书而使用过的材料。与我一 同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说 明并表示了谢意。 签名: 牛嗍:碑孥 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即 学校有权保留、送交论文的复印件,允许论文被查阅和借阅;学校可 以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段 保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:牛导师签名:烨日期: ( 注:此页内容装订在论文目录前) 武汉理工大学硕士学位论文 第1 章绪论 1 1 论文研究背景和意义 进入二十一世纪,当前社会步入了信息时代,计算机技术与网络技术以更 快的速度发展,特别是i n t e r n e t 的日益普及,现代企业信息系统的分布性、 异构性和自治性的特征日益明显,分布式计算技术逐渐成为计算机软件领域 的主流技术。无论是在日常生活中,还是在工业和科学领域中,网络分布计 算都变得越来越重要。 但是,在分布式环境下,硬件平台和软件平台都不可能做到统一。旧式的 应用软件直接使用操作系统、网络协议和数据库等进行开发,所以开发者不 得不面临许多很棘手的问题,如操作系统的多样性,繁杂的网络程序设计和管 理,复杂多变的网络环境,以及数据分散处理带来的不一致性、性能和效率、 安全问题等。这些问题与用户的业务没有直接关系,但又必须解决,耗费了大 量的时间和精力。于是,有人提出将应用软件所要面临的共性问题进行提炼、 抽象,在操作系统之上再形成一个可复用的部分,供成千上万的应用软件重复 使用。这一技术设想最终形成了中间件产品。 现在,中间件已经成为开发大型分布式应用中的一个重要组成部分,并且随 着网络技术的持续发展以及对越来越复杂的分布式应用的需求,中间件技术势 必成为这些应用最具有竞争力的解决方案。使用中间件环境的目的是隐藏分布 式系统的异构性,并提供一个在分布式组件间通信的平台。所以,从技术上讲, 中间件是介于应用软件和系统软件之间的一类软件,它使用系统软件所提供的 基础服务( 功能) ,衔接网络上应用系统的各个部分或不同的应用,能够达到资 源共享和功能共享的目的。 消息中间件是目前迅速发展的中间件技术之一消息中间件适用于任何需要 进行网络通信的系统,负责建立网络通信的通道,提供公用的通信手段,并且 独立于网络和操作系统,进行数据或文件传送。对开发者来说,消息中间件提 供了公用于所有环境的应用程序接口,当应用程序中嵌入其函数调用时,它便 可利用其运行的特定操作系统和网络环境的功能,为应用执行通信功能,从而 武汉理工大学硕士学位论文 满足企业内部对系统伸缩性和扩展性的要求。 例如,消息中间件在企业应用集成( e n t e r p r i s eh p p l i c a t i o ni n t e g r a t i o n , e a i ) 中的作用将会日趋明显。在分布式环境下,业务单位四处散布,包罗万象 的应用运行在不同的软、硬件平台上,消息中间件可以提供应用集成所必需的 数据的递送、收集、翻译、过滤、映射和路由等功能,屏蔽了不同的硬件平台、 数据库、消息格式、通信协议之间的鸿沟与差异,提供应用到应用之间的高效、 便捷、安全的通信能力。 g a r t n e rg r o u p 根据调查统计,企业在开发应用的过程中,3 0 9 6 4 0 9 6 的费用 都浪费在开发和维护与企业业务逻辑无关的各种接口上【。随着企业或企业之间 应用数量上的增加,应用问的通信接口日渐增多,不同的平台、不同的语言与 技术所带来的难度成倍的增长。1 9 9 6 年,g a r t n e rg r o u p 就预测:消息中间件 由于降低了企业机构内部应用的复杂交互,将变得和数据库管理系统、数据仓 库一样重要。 同时,由于越来越多的服务发布在网络的各个节点上,被暴露在各种网络攻 击下,所以信息安全就成为一个急需解决的课题。身份认证是安全技术的一个 重要方面,它用于鉴别用户身份,限制非法用户访问网络资源。在安全的网络 通信中,涉及的通信各方必须通过某种形式的身份验证机制来证明他们的身份, 验证用户的身份与所宣称的是否一致,然后才能实现对于不同用户的访问控制 和记录。身份认证是安全系统中的第一道关卡,用户在访问安全系统之前,首 先经过身份认证系统识别身份,然后由安全系统根据用户的身份和授权数据库 决定用户是否能够访问某个资源。完善的身份认证体系对维护网络安全起着十 分重要的作用1 2 】。 另一方面,人们在搭建认证中心系统时经常会遇到的问题是,由于它要求对 已存在的应用系统本身做出改动,所以经常受到冷遇。考虑到这一点,提供一 个标准化的安全a p i 就显得格外重要。信息安全领域内最主要的进展之一就是 由i t u 制定了标准化的安全a p i 框架,即通用安全服务应用程序编程接口 ( g s s - a p i ) 。g s s a p i 的优点在于它能够使应用程序具有通用性,它的安全处理 不依赖于任何特定的操作平台、安全机制、安全服务的类型以及传输协议,因 此,应用g s s a p i 具有良好的可移植性。 2 武汉理工大学硕士学位论文 1 2 国内外研究现状 在全球信息经济缓慢回升的过程中,中间件技术继续作为许多大型软件厂商 的核心战略,现在新建的信息系统不基于中间件的已经很少。 消息中间件技术经过近2 0 年的发展,市场上已经出现了大量的消息中间 件产品。当前国外比较成熟的消息中间件产品主要有i b m 的m q s e r i e s 、b e a 的m e s s a g e q 和m i c r o s o f t 的m s m q 等,国内在此领域的起步时间并不比国外 晚多少,例如东方通科技公司在1 9 9 5 年就推出了第一个中间件产品 t o n g l i n k q ,另外还有很多公司也转到这个方向。但是现有的产品距其应遵 循的一些原则还有一定的差距。多数流行的中间件服务使用专有的a p i 和运 行平台,使得网络应用需建立在单一厂家的产品上,来自不同厂家的产品很 难实现互操作,自然地应用开发者在这些中间件服务之上建立自己的应用就 可能承担很大的风险,因为当他们一旦选择了某一个公司的产品,那么以后 就需要继续使用这个系列的产品了,不能再选择其他的产品,否则前期的投 入将可能丧失殆尽。 所以,由于技术上缺少一个开放的消息标准作为实现消息中间件的基础, 使得消息中间件的使用范围深受限制。j l i s ( j a v a m e s s a g es e r v i c e ) 就是s u n 公司提出的j a v a 消息服务规范,主要用于访问消息系统的独立于厂商的应用 程序接口( a p i ) ,它提供给应用程序创建、发送、接收和读取消息的接口1 3 】。 j i s 的出现,使统一各种m o m 系统接口成为可能。当前j m s 的最新版本是 j m s i 1 。 在认证方面,传统的身份认证机制是基于用户名密码的,采用分散的用 户管理,即用户在现实世界中的身份通过账号映射成为网络世界中的用户标 识,这种身份标识是分别被每个系统保存的,无法相互传递。这就迫使用户 必须在每个系统中都有一组独立的用户名和密码,在进入不同系统时都要重 新提交自己的身份标识,来通过系统的认证。 大量的口令密码给用户带来了不小的麻烦,为了记住它们,用户不得不选择 一些简单的信息作为口令,这样一来大大降低了安全性,特别是在企业级的 应用中,简单的口令将带来巨大的安全隐患。对管理者而言,则有多个用户 数据库需要被管理。 基于效率和安全的因素,人们迫切需要改变传统的认证方式和访问控制方 3 武汉理工大学硕士学位论文 式,设计出一种更为高效、安全的网络安全机制,从而简化网络资源的访问 控制,加强安全审计。单点登录的概念由此产生。所谓单点登录,就是指用 户只需在网络中主动地进行一次身份认证,随后便可以访问其被授权的所有 网络资源,而不需要再主动参与其它的身份认证过程。这些资源可能处于不 同的计算机环境中。 1 3 研究内容和目标 中间件系统的主要目的是整合各种异构系统中的资源,使其协调工作,现 行的消息中间件都能充分的发挥这种功能。但是,随着中间件应用的广泛深入, 人们对消息中间件的性能,如数据的安全性、系统用户的可管理性等方面提出 了更高的要求,而现行的消息中间件不能满足客户这三方面的要求,这无疑限 制了现在消息中间件的发展。基于以上的原因,本文对现有的消息中间件的结 构做了详细的分析,以保证数据的安全性和消息服务的安全访问为主要目标, 提出一个新的消息中间件模型以及一个通用安全认证系统。 本文的主要工作如下: 1 遵循j l i s l 1 规范,设计消息中间件的体系结构:其消息中间件需满足以 下要求: 1 ) 消息传输的安全性; 2 ) 消息传输的异步性; 3 ) 消息的点对点、订阅发布。 2 采用新一代数据加密标准a e s 加密算法对传递的消息进行加密,使用r s a 算法传递加密密钥,并对所发的消息签名: 3 分析k e r b e r o s 认证协议,结合公钥加密体制对其进行改进,增强其安全 性; 4 利用g s s - a p i 框架为消息中间件设计一个安全认证系统,同时考虑其扩 展性和兼容性。 1 4 论文组织 本论文共分为六章,每章的内容论述如下。 第一章是绪论,主要给出当前课题的研究背景和国内外现状,以及本论文 4 武汉理工大学硕士学位论文 的研究内容和目标。 第二章主要介绍j m s 规范及相关的技术,包括中间件概念和分类、c o r b a 技术规范以及本文要采用的通讯协议j a c o r b 。 第三章介绍网络安全相关技术,包括数据安全性概念、对称加密算法和非 对称加密算法,然后重点介绍了身份认证技术,其中详细说明了本文中采用 的k e r b e r o s 认证机制。 第四章是系统设计部分,提出了l y m o m 消息中间件的整体设计思想以及基 于改进的k e r b e r o s 认证机制的一个通用安全认证系统( c s a s ) 的解决方案 第五章是c s a s 系统的实现部分,通过g s s a p i 实现了上一章设计的通用 安全认证系统,最后给出了c s a s 在l y m o m 消息中间件系统中的应用。 5 武汉理工大学硕士学位论文 第2 章j m s 规范及相关技术 2 1 中间件简介 2 1 1 中间件概念 随着计算机技术的飞速发展,各种各样的应用软件需要在各种平台之间进行 移植,或者一个平台需要支持和管理多种应用系统,软、硬件平台和应用系统 之间需要可靠和高效的数据传递或转换,使系统的协同性得以保证。这些,都 需要一种构筑于软、硬件平台之上,同时对更上层的应用软件提供支持的软件 系统,而中间件正是在这个环境下应运而生。 中间件比较流行的定义是:中间件是一种独立的系统软件或服务程序,分布 式应用软件借助这种软件在不同的技术之间共享资源【4 l 。中间件位于客户机服 务器的操作系统之上,管理计算资源和网络通讯。 从中间件的定义可以看出,中间件是一类软件,而非一种软件;中间件不 仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件, 定义中特别强调了其网络通讯功能。 中间件处于应用软件和系统软件之间,是一种以自己的复杂换取企业应用 简单化的可复用的基础软件。 通常意义下,中间件应具有以下的一些特点:满足大量应用的需要;运行 于多种硬件和0 s 平台;支持分布式计算,提供跨网络、硬件和0 s 平台的透明 性的应用或服务的交互功能;支持标准的协议;支持标准的接口。 程序员通过调用中间件提供的大量a p i ,实现异构环境的通讯,从而屏蔽异 构系统中复杂的操作系统和网络协议。 中间件提供客户机与服务器之间的连接服务,这些服务具有标准的程序接 口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范 的多种实现。 由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已 成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和 网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环 6 武汉理工大学硕士学位论文 境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新, 并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了 企业在应用软件开发和维护中的重大投资。 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件 在不同的技术之间共享资源。中间件软件管理着客户端程序和数据库或者早期 应用软件之间的通讯。 中间件在分布式的客户和服务之间扮演着承上启下的角色,如事务管理、 负载均衡以及基于w e b 的计算等。 利用这些技术有助于减轻应用软件开发者的负担,使他们利用现有的硬件 设备、操作系统、网络、数据库管理系统以及对象模型创建分布式应用软件时 更加得心应手。由于中间件能够保护企业的投资,保证应用软件的相对稳定, 实现应用软件的功能扩展;同时中间件产品在很大程度上简化了一个由不同硬 件构成的分布式处理环境的复杂性,所以它的出现正日益引起用户的关注 2 。1 2 中间件分类 中间件主要分为两大类,一类是底层中间件,用于支撑单个应用系统或解 决单一类的问题,包括交易中间件( t p m ) 、应用服务器( w a s ) 、消息中间件( m o m ) 、 数据访问中间件( u d a ) 等;另一类是高层中间件,更多的用于系统整合,包括 企业应用集成中间件( e a is u i t e s ) 、工作流中间件( w o r k f l o w ) 、门户中间件 ( p o r t a l ) 等,它们通常会与多个应用系统打交道,在系统中的层次较高,并 大多基于前一类的底层中间件运行闭。 2 2j m s 简介 j a v a 消息服务( j m s ) 是s u n 公司开发的用于访问大多数m o m 产品所提供的 服务的通用a p i 。j m s 只是定义了j a v a 中访问消息中间件的接口,并没有提供 具体实现,不同的消息中间件厂商提供具体的实现。 2 2 1 远程方法调用和j m s c o r b a 、d c o m 和r m i 等r p c 中间件技术已经广泛应用于各个领域,但是面对 规模和复杂度都越来越高的分布式系统,这些技术也显示出其局限性。 7 武汉理工大学硕士学位论文 同步通信:客户发出调用后,程序将阻塞,必须等待服务对象完成处理 并返回结果后才能继续执行; 紧密耦合:客户进程和服务对象进程耦合紧密,如果由于服务对象崩溃 或者网络故障导致客户的请求不可达,客户端会接收到异常; 点对点通信:客户的一次调用只发送给某个单独的服务端对象。 面向消息的中间件( m e s s a g eo r i e n t e dm i d d l e w a r e ,m o m ) 较好地解决了以 上问题。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列 中,在合适的时候再将消息转发给接收者。在这种模式下,发送和接收是异步 的,发送者只要把消息发送出去,程序将继续执行而无需等待。二者的生命周 期可以不同:发送消息的时候接收者不一定运行,接收消息的时候发送者也不 一定运行。系统支持一对一或者一对多通信:对于一个消息可以发送给一个或 者多个接收者嘲。从消息系统的特点可以看出,j m s 非常适合于工作流处理,它 的消息传输也是可靠的。 已有的m o m 系统包括i b m 的m q s e r i e s 、m i c r o s o f t 的m s m q ,以及b e a 的 m e s s a g e q 等。由于没有一个通用的标准,这些系统很难实现互操作和无缝连接。 j m s 是s u n 提出的旨在统一各种m o m 系统接口的规范,它包含点对点( p o i n tt o p o i n t ,p t p ) 和发布订阅( p u b l i s h s u b s c r i b e ,p u b s u b ) 两种消息模型,提 供可靠消息传输、事务和消息过滤等机制。 2 2 2j m s 体系结构 j m s 是j a v am e s s a g es e r v i c e 的简称,它提供了j a v a 消息服务的a p i 。需 要注意的是,j m s 本身不是消息服务,它只是提供了消息客户端和消息服务器通 信的一些抽象的j a v a 接口和类。消息服务的体系结构如图2 - 1 所示。 l 应用程序 l 】 1 j m s a p i i 1 【1 【1 【 limbm。m,o,s。er;。ie。rs m i c r o s o f tm s m qb e am e s s a g e o j m sp r o v i d e rj m sp r o v i d e r 图2 - 1j a v a 消息服务体系结构 8 武汉理工大学硕士学位论文 从图中可以看出,不同种类的p r o v i d e r 及j a v a 应用程序通过j m sa p i 来 交互。j m sa p i 充当了在不同的消息中间件之间进行通信的总线。 在一个分布式系统中,假如应用程序a 要和应用程序b 通信,它将使用 j a v a 消息a p i 和消息中间件通信,消息中间件再和应用程序b 通信。因此, j m s 为不同的企业级应用程序提供了松散耦合的集成方法,不同应用程序是通 过异步消息来通信的。 使用消息系统有以下的优点: 和平台无关; 和网络位置无关; 在不同类型的网络环境下互操作性良好; 具有好的扩展性和良好的伸缩性。 2 2 3j m s 消息模型 l 、消息结构 消息是j m s 的核心概念,j l s 客户端和j i i s 服务提供者是通过消息来进行通 信的。任何类型的消息必须实现j a v a x j m s m e s s a g e 接口。j u s 消息由以下几个 部分组成。 消息头( h e a d e r ) :它包含的值通常用于标识和路由消息; 属性( p r o p e r t i e s ) :可选的头部字段,可以是应用程序特定的属性, 也可以是标准的属性和厂商专有的属性; 消息体( b o d y ) :j m s 定义了五种不同类型的消息体格式,它们是 b y t e s m e s s a g e 、m a p m e s s a g e 、o b j e c t m e s s a g e 、s t r e a m m e s s a g e 和 t e x t m e s s a g e 7 1 。它们的具体描述信息如表2 - 1 所示。 表2 _ lj m s 的5 种消息类型 一”,+ 堋 ” t :w 1 ”j r # ! “一”m 4 4 ! 消息类型一。 。一。,。浚躺一。一。 t e x t m e s s a g ej a v a 1 a n g s t r i n g 对象,如x m l 文件内容 m a p m e s s a g e名值对的集合,名是s t r i n g 对象,值是j a v a 任何基本类型 b y t e s m e s s a g e 字节流 s t r e a m m e s s a g ej a v a 中的输入输出流 o b j e c t m e s s a g ej a v a 中的可序列化对象 9 武汉理工大学硕士学位论文 2 、消息域 在面向对象的编程中,对象之问通过消息传递信息,实质是将数据从一个单 元传送到另一个单元。j a v a 消息服务和对象之间传递消息有一定的共同之处, 但是也存在很大的区别。在应用开发中,不可能每个通信都是同步进行的,有 时存在异步通信的需要:另外,异步通信还可以节省资源。消息分发系统使两 个分开的非耦合的应用程序可以可靠地进行异步通剧8 】。j m s 是一种j 2 e e 平台 提供的j a v a 消息服务,它提供了应用程序编程接口。 j m s 支持两种类型的通信: 点对点( p o i n tt op o i n t ) ; 发布订阅( p u b l i s h s u b s c r i b e ) 。 1 ) 点对点模型 p t p 模型是基于队列的,发送方发消息到队列,接收方从队列接收消息,队 列的存在使得消息的异步传输成为可能。和邮件系统中的邮箱一样,队列可以 包含各种消息,j m sp r o v i d e r 提供工具管理队列的创建和删除功能。j m sp t p 模型定义了客户端如何向队列发送消息,从队列接收消息,以及浏览队列中的 消息1 9 】。 点对点通信模型要求每个消息只有一个消息使用者。例如,订单处理系统可 以使用这种通信模型接收客户订单。如果多个客户注册同一个队列,则消息只 向一个客户发送。j m s 没有定义谁有优先权收到消息,它只保证一个客户收到消 息。尽管消息只有一个接收者,但是却可以有多个发送者。点对点的消息发送 模型如图2 2 所示。 图2 2 点对点的消息发送模型 2 ) 发布订阅模型 p u b s u b 模型定义了如何向一个内容节点发布和订阅消息,这些节点被称为 主题( t o p i c ) 。 主题可以被认为是消息的传输中介,发布者( p u b l i s h e r ) 发布消息到主题, 订阅者( s u b s c r i b e r ) 从主题订阅消息。主题使得消息订阅者和消息发布者保 持相互独立,不需要接触即可保证消息的传送【姗。 l o 武汉理工大学硕士学位论文 此模型适用于一般广播应用程序,消息发送给多个消息分发客户。多个应用 程序可以发送消息,多个客户也可以接收消息。消息可以由一个或者多个发送 者以一个主题发送,所有预定了该主题的客户都可以收到消息。发布订阅的消 息通信模型如图2 3 所示。 图2 - 3 发布订阅的消息发送模型 消息分发服务器收到消息可以同步或者异步发送给客户,因此消息发送模型 可以分为以下两种。 同步发送模型:客户注册感兴趣的消息队列或者订阅主题并等待入站消 息。如果目标没有消息,则客户受到封锁,直到消息到达消息分发服务 器。 异步发送模型:客户并不等待消息到达,只是订阅消息分发服务器,希 望消息分发服务器在消息到达时发出通知。 2 2 4 管理对象 管理对象是在j m s 应用程序之外产生并维护的对象,提供了访问消息提供程 序、连接已定义队列和主题的通用手段。程序员使用名字服务( 如j a v a 名字和 目录接口,j n d i ) 来定位管理对象,目前的一种趋势是使用j a v a 管理扩展( 3 m x ) 来对被管理对象进行管理,任何j 姒兼容的管理软件都支持多种协议来控制被 管理对象【1 1 1 。使用管理对象,可以推迟到应用程序运行时才将这些对象绑定到 应用程序,这样,就可以在替换这些对象时不必修改和重新编译原代码。在j i s 中有两类管理对象。 1 、连接工厂 连接工厂对象建立了与下层j m s 提供程序的连接,它包含了j m s 提供者建立 连接所用的连接配置信息,这些信息包括提供者运行的主机、它侦听的端口; 连接工厂还提供在建立连接过程中用户认证。将工厂对象保存为管理对象在j m s i i 武汉理工大学硕士学位论文 提供程序之间提供了可移植性。 2 、目标文件 目标对象代表发出的消息的目标或进入的消息的源。将目标对象保存为被管 理对象使你可以在不修改代码的情况下改变最终目的地,提供了很大的运行灵 活性。 2 2 5j m s 接口 j m sa p i 是编写通用消息处理代码的核心,本节将概要介绍这些接口除了 表2 1 中介绍的用于创建和处理消息的接口外,j m s 中还有点对点模型与发布 订阅模型都用到的通用接口( 如表2 - 4 所示) 以及这两种模型各自专用的接口 ( 如表2 5 、2 6 所示) 1 1 2 。 表2 - 4j m s 通用接口 j m s 接口 ;一 说明。x x = 。, c o n n e c t i o n f a c t o r y连接工厂,用于建立与j m s 提供者的连接 c o n n e c t i o n 连接,应用与j m s 提供者之间的链路 d e s t i n a t i o n目的地,川s 消息的发送目标,是一个队列或一个主题 s e s s i o n会话,用于对消息的收发过程进行管理。它建立在连接之 上,负责创建生产者和消费者、消息对象、处理事务等 m e s s a g e p r o d u c e r生产者,消息的来源。有两种生产者:发送者和发布者, 发送者将消息发送到p t p 模型下的队列,发布者将消息发 布到p u b s u b 模型下的主题 m e s s a g e c o n s u m e r消费者,消息的接收者。有两种消费者:接收者和订阅者, 接收者从p t p 模型下的队列中取走消息,订阅者从p u b s u b 模型下的主题中接收消息 武汉理工大学硕士学位论文 表2 - 5j m s 点对点模型接口 ” j m s 接口说明 。 q u e u e点到点消息的目的地。将消息发往队列,并在创建发 送方和接收方时指明队列 q u e u e s e n d e r发送消息到指定队列。定义了发送消息的方法s e n d q u e u e r e c e i v e r 从指定队列接收消息 q u e u e s e s s i o n为某一连接创建发送方、接收方以及各种类型的消息 q u e u e c o n n e c t i o n建立与j i s 提供程序的连接,用于为应用程序创建会 话 q u e u e c o n n e c t i o n f a c t o r y一个与具体提供程序相捆绑的类,用于创建与j m s 提供程序的连接,通常在j n d l 名字空间中查找它 表2 - 6j m s 发布订阅模型接口 ;。j m s 接匠 说明 。 t o p i c发布订阅消息的目标地址。将消息发往主题,主题 订阅者将接收到消息的拷贝,对于某一主题允许有多 个发布者和订阅者 t o p i c p u b l i s h e r发布消息到指定主题,定义了发布消息的方法 p u b l i s h t o p i c s u b s c r i b e r订阅某一主题,同时支持阻塞和非阻塞的r e c e i v e 调用,另外也提供对已注册消息监听器的异步调用 t o p i c s e s s i o n为指定的连接创建发布人、订阅人以及各种类型的消 息 t o p i c c o n n e c t i o n建立与2 4 s 提供程序的连接,用于为应用创建会话 t o p i c c o n n e c t i o n f a c t o r y一个与具体提供程序相捆绑的类,用于创建与j m s 提供程序的连接,通常在j n d l 名字空间中查找它 2 3c o r b a 技术规范 o m g 是一个拥有8 0 0 多个成员的非盈利性国际组织,其目标是推动对象技术 ( o t ) 的理论和实践在软件行业中的应用,特别是在分布式应用系统方面,为实 现这一目标,o m g 采用的方法是,为面向对象的应用提供一个公共框架,如果符 武汉理工大学硕士学位论文 合这一框架,就可以在多种硬件平台和操作系统上建立一个异质的分布式应用 环境【1 3 l 。 c o r b a 是对象管理组织o m g 在其对象模型体系结构0 m a 框架下以对象请求代 理o r b 为核心制定的分布式对象处理标准,它定义了对象之间通过o r b 透明发 送请求接收响应的机制,保证在分布异质环境下对象之间的互操作性。 2 3 1 对象管理体系结构( o m a ) o m g 所开发的对象可交换性规范,通常也被称为“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 定义了两种组成:核心对象模 型( c o r eo b j e c tm o d e l ) 和o m a 参考体系结构( o m ar e f e r e n c ea r c h i t e c t u r e ) 。 核心对象模型陈述的是和对象、接口、操作等相关的概念。c o r b a 就是核心对象 模型改良后的产物。0 l i a 参考体系结构则定义了底层服务基础建设,以及允许对 象相互交换的机制。0 m a 参考体系结构包括对象请求代理( o r b ) 、对象服务( 也 称为c o r b a 服务) 以及一些常见机制1 1 4 】。 在0 m a 对象模型中,对象是一个被封装的实体,它具有一个不可改变的标识, 并能给客户用户提供一个或多个服务。客户只能通过已经定义好的界面才能访 问对象。客户向对象发出请求,通过上述界面以获得某些服务。请求信息包括 目标对

温馨提示

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

评论

0/150

提交评论