(计算机软件与理论专业论文)跨中间件的异构消息安全传输模型.pdf_第1页
(计算机软件与理论专业论文)跨中间件的异构消息安全传输模型.pdf_第2页
(计算机软件与理论专业论文)跨中间件的异构消息安全传输模型.pdf_第3页
(计算机软件与理论专业论文)跨中间件的异构消息安全传输模型.pdf_第4页
(计算机软件与理论专业论文)跨中间件的异构消息安全传输模型.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机软件与理论专业论文)跨中间件的异构消息安全传输模型.pdf.pdf 免费下载

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

文档简介

摘要 消息中间件在企业信息系统间数据交换和共享过程中起关键性作用,不同系统所实 现的功能不同,消息的表现形式也就存在较多的差异,如可以把文本、声音、图象、 m p 3 或其它形式的数据流作为消息来相互传送,因此大规模分布式环境下的消息传输 极可能需要不同消息中间件来协同完成,而现有的消息中间件之间不存在统一的标准, 对异构消息的支持也各异,因此跨中间件的消息传输首先需要解决消息的标准化问题, 其次还要保证消息传输过程中的安全性。 本文提出并实现了一个跨中间件、异构、安全的消息传输模型,把不同形式的消息 如文本、图片以及m p 3 等都看成二进制流,通过b a s e 6 4 等技术把它们标准化为任何 消息中间件都支持的x m l 文档,并使用d e s 算法进行加密,以保证消息传输过程的 机密性和完整性。同时,针对长消息标准化过程中存在的时延,模型设计了一个基于多 线程技术的负载平衡算法,并行处理长消息的标准化过程。 功能测试和性能分析表明本文所提出并实现的模型可行、有效,负载平衡算法在服 务器能力承载范围内均匀地分摊了工作负担,最大地提高了产出。 关键词:消息传输中间件、异构消息、负载平衡、安全传输 a b s t r a c t m o m sp l a yak e yr o l ei nt h ep r o c e s so fi n t e r a c t i n ga n ds h a r i n gd a t aa m o n ge n t e r p r i s e i n f o r m a t i o ns y s t e m s s i n c et h ed i f f e r e n ts y s t e mh a sd i v e r s ef u n c t i o na n dt h e r ea r ev a r i o u s m e s s a g ef o r m a t ss u c ha st e x t ,v o i c ef f e q u e n c y ,i m a g e ,m p 3a n ds oo n ,i ti sp o s s i b l et h a tt h e r e a r ed i f f e r e n tm o m st ow o r kt o g e t h e ri nt h el a r g e s c a l ed i s t r i b u t ee n v i r o n m e n t h o w e v e r m o m sh a v en o ta na g r e e ds t a n d a r da n d s u p p o r td i f f e r e n tm e s s a g ef o r m a t s s o s t a n d a r d i z i n g m e s s a g ef o r m a ti st h ef i r s tt h i n gt ob et r e a t e di nt h ep r o c e s so ft r a n s m i s s i o na m o n gm o m s a tt h es a m et i m e ,t h ei s s u eo fs e c u r i t ys h o u l db eu n d e rc o n s i d e r a t i o n t h i sp a p e rp u t sf o r w a r da n dr e a l i z e sam o d e lo fs e c u r eh e t e r o g e n e o u sm e s s a g e st r a n s m i s s i o na m o n g m o m s ,w h i c ht r e a t st h em e s s a g e sa st h es t r e a mo fb i t s ,e x p r e s s e st h em e s s a g ef o r m a t sv i a x m lw i t ht h es u p p o r to fb a s e 6 4a n ds oo n ,a n de n s u r e st h ec o n f i d e n t i a l i t ya n di n t e g r a l i t yv i a a l g o r i t h mo fd e s a tt h es a m et i m e ,t h ea l g o r i t h mo fl o a de q u a l i z a t i o ni sb r o u g h tf o r w a r dt o d e a l 、v i t ht h ep r o c e s so fs t a n d a r d i z a t i o na g a i n s tt h ed e l a yt i m e t h ef u n c t i o nt e s ta n dp e r f o r m a n c ea n a l y z et e l lu st h a tt h em o d e li sf e a s i b l ea n de f f e c t i v e a n d t h ea l g o r i t h mo fl o a de q u a l i z a t i o np r o r a t e st h eb u r d e n ,w h i c he n h a n c e st h ec a p a b i l i t yo ft h e m o d e l k e y w o r d s :m e s s a g et r a n s m i s s i o nm i d d l e w a r e ;h e t e r o g e n e o u sm e s s a g e ;l o a de q u a l i z a t i o n ; s e c u r et r a n s m i s s i o n 独创性声明 本人所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表 或撰写过的研究成果。与我一同工作的同事对本研究所做的任何贡献均已在论文中作了 明确的说明并表示了谢意。如不实,本人负全部责任。 学位论文作者签名:蘑履丹 签字日期:2 0 0 6 年6 月2 日 学位论文版权使用授权说明 河海大学、中国科学技术信息研究所、国家图书馆、中国学术期刊( 光盘版) 电 子杂志社有权保留本人所送交学位论文的复印件或电子文档,可以采用影印、缩印或其 它复制手段保存论文。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的 保密论文外,允许论文被查阅和借阅。论文全部或部分内容的公布( 包括刊登) 授权河 海大学研究生院办理。 学位论文作者签名:蘑履丹 签字日期:2 0 0 6 年6 月 河海大学硕士学位论文跨中间件的异构消息安全传输模型 1 1 研究背景 第一章绪论 计算机技术的不断推陈出新,带来了消息化发展的新浪潮,人们感受到 了计算机及网络技术所带来的好处,于是对电子化、信息化应用的需求也越 来越迫切。信息技术以其强大的渗透力,深入到社会经济生活的各个方面。 在商业金融等领域,电子数据交换作为一种新的商务手段正在被广泛使用。 数据交换是一种计算机应用技术,根据事先达成的协议,将信息按照一 定的标准进行格式化处理,并把这些格式化的数据,通过计算机通信网络在 其计算机系统之间进行交换和自动处理。作为计算机通信技术的一部分,数 据交换技术可以应用于制造业、运输业、零售业以及卫生保健和政府部门等 各种经济部门之中。 面向消息的中间件( m e s s a g e o r i e n t e dm i d d l e w a r e ,简称为m o m ) 是 一种特定的中间件,它利用高效可靠的消息传输机制进行平台无关的数据交 换,并基于数据通信来进行分布式系统的集成。 1 2 消息中间件 1 2 1 消息 消息( m e s s a g e ) 是通信的双方需要传输的一个信息单元,是一种流动 状态数据。它可以是各式各样的媒体,如文本、声音、图象等等。客户端程 序( 通常是企业应用程序) 之间通过消息的传输来达到通讯的目的【1 1 。 在分布式应用,特别在客户n 务器( c l i e n t s e r v e r ,简写为c s ) 结构 应用中,消息被经常使用,不同的应用进程之间传输、交换的信息统称为消 息。消息分为消息头和消息主体两部分组成。消息头标志消息的编号、接收 者等状态信息,起辅助控制消息传输作用。消息主体包含消息的具体内容、 应用数据。在形式上,消息可表现为一个小的数据包,亦可表现为一个很大 的文件,内容和格式由消息提供者和消息接收者来约定。 消息提供者( 消息发送者或消息生产者) 是指生产该消息的实体,如应 用程序;消息接收者( 消息消费者) 是指某消息的指定接收实体。消息的接 收者并不一定接收到该消息,它只是该消息的原定接收者。消息传输者是指 负责从消息的提供者获取消息,并将消息的内容传输到消息接收者的实体。 河海大学硕士学位论文跨中间件的异构消息安全传输模型 消息传输者有时不只是一个实体,而是特定实体的集合,它们共同扮演消息 传输者角色。 1 2 2 消息中间件概述 中间件( m i d d l e w a r e ) 位于应用与操作系统之间,屏蔽底层操作系统、 网络以及数据库的异构性和复杂性,简化网络分布应用的开发、管理和维护, 从2 0 世纪8 0 年代末到现在,取得了长足的发展,得到了工业界和学术界的青 睐,已成为分布式系统的主流技术之一引。中间件的引入源于开发分布式应 用的需要。简而言之就是用于连接异构的客户到同一个服务器上的软件总和 1 3 4 j 。一般认为,中间件系统主要归为如下4 种类型:分布式元组( d i s t r i b u t e d t u p l e s ) 、远程过程调用( r e m o t ep r o c e d u r ec a l l ) 、分布式对象( d i s t r i b u t e d o b j e c t ) 和面向消息的中间件。它们的差别在于提供的编程抽象性及跨越网 络和硬件平台的异构性【5 j 。 面向消息的中间件,简称消息中间件,是实现应用之间进行广泛用途的 消息传输的一类中间件。消息中间件简化了应用之间数据的传输,屏蔽底层 异构操作系统和网络平台,提供一致的通讯标准和应用开发,确保分布式计 算网络环境下可靠的、跨平台的信息传输和数据交换1 6 j 。 消息中间件以消息的形式提供了宏观的抽象性,消息队列可以跨网络进 行访问,非常灵活,这种灵活性使得它可以自由地组织和配置那些存放和提 取消息的程序之间的拓扑关系【7 1 。消息中间件基于消息队列的存储转发机 制,为应用程序提供一种异步通信方式,它不需要应用程序和通信介质( 或 网络) 以及远程应用程序之间的耦合,也不需要进行通信的应用程序同时运 行。消息中间件在t c p i p 网络体系结构中处于应用层,如图1 1 所示,网络 应用程序( n a p ) 建立在消息中间件之上,实现各种分布式应用服务。 n a p 应用层 m o m t c p传输层 i p网络层 以p xs 太p l其 数据 网p 2i 他 链路层 5p 图1 1m o m 在t c p i p 网络体系结构中的位置【7 】 河海大学硕士学位论文 跨中问件的异构消息安全传输模型 1 2 3 消息中间件特点 消息中间件一个很明显的特点就是消息传输不一定是实时的,但消息传 输一定是可靠的哺】。应用消息中间件方式进行消息传输时,每个子系统间并 不直接通信,而是将企业消息发送给消息中间件,由它负责传输消息。由于 消息发送者可以不等待回应而继续执行,因此消息是否能够被正确处理并不 会影响到消息发送者。这种模式下,发送和接收是异步的,发送者无需等待。 基于消息中间件的消息传输技术不但解决了消息传输的同步问题,同时 也很好地解决了紧耦合问题。在分布式系统中,多数进程( 在网络中执行于 不同接点上) 通过发送和接收消息进行交互,在这样的环境中,非常需要降 低发送和接收进程的耦合度。这样,即使出现网络失败和临时故障,可以继 续执行其他进程,而无须等待。为达到进程间的松耦合,通常考虑使用消息 中间件【9 1 。 1 2 4 消息中间件传输模式 消息中问件有三种基本的工作模式【l o 】:点对点模式、发布订阅模式以 及消息队列模式。通常将点对点模式和发布订阅模式统称为消息传输模式。 1 点对点模式 在点对点模式中,一个客户端将消息传送给指定的一个或多个客户端。 其特点为: 位置不透明 通信双方需要事先知道对方的标识,这种标识可能是通信对方的名称或 其它可以通过中间件系统名字服务确定其位置的名称。 面向连接的 应用程序之间需要建立直接的专用的通信通道。 2 发布订阅模式 在发布订阅模式中,多个客户端发布消息,多个客户端订阅消息。发 布消息的客户端只需要简单地将消息以主题方式发送出去,由消息代理来负 责将消息传递给所有订购该主题的订阅消息的客户端。发布订阅模式由于 更加智能有效,事实上已成为消息中间件的非正式标准。 其特点为: 通过消息代理进行通信 在发布订阅模式中,客户端之间不再需要建立直接的专用的通信通道, 它们之间的通信都通过消息代理进行,发布消息的客户端将消息传递给消息 河海大学硕士学位论文 跨中间件的异构消息安全传输模型 代理,由消息代理负责路由消息给相应的订阅消息的客户端。由于消息代理 可以实现消息的动态路由功能,因此,该方式能够提供较好的容错性能。 不须与对方直接建立连接 在发布订阅模式中,客户端无需与对方直接建立连接即可发送和接收 消息,客户端只需简单地将消息发送给消息代理,由消息代理负责消息的传 递,对应用程序完全透明。 多维空间上松耦合 发布订阅模式最大的优点是发布者和订阅者在多维空间上是松耦合 的,这种模式下,客户端和服务器不需要知道对方的地址和具体的数量,这 就简化了应用的配置,并且使组件更易重用。具体体现在: 1 ) 空间非耦合:发布者和订阅者不必相互知道; 2 ) 时间非耦合:发布者和订阅者不必同时在线: 3 ) 数据流非耦合:发布订阅是异步模式。 3 消息队列模式 在消息队列模式中,消息发送到一个队列里,目的地可以在任何时候查 看该队列。消息队列类似运行得很好的电子邮件系统:传输质量得到保证, 但你不知道收件人是否阅读到报文。 其特点为: 通过队列进行通信 使用消息队列,应用程序之间不再需要建立直接的专用的通信通道,它 们之间的通信都通过消息队列进行。这样做的好处在于,应用程序之间不再 需要保持完全同步,通信时,应用程序只需将一个消息放入消息队列,而不 必关心与之通信的对方是否存在或是否准备好处理这个消息。 不须与对方建立连接 消息队列方式允许程序无需与对方直接建立连接即可发送和接收消息。 程序只须简单地将消息发送给消息队列,由消息队列负责消息的传递,对应 用程序完全透明。 支持异步方式 消息队列采用异步方式,为信息提供了一个安全的存储方式,特别适用 于不是直接连接的应用,如移动用户、发送方或接收方进程可能处于不活动 状态的应用。 1 2 5 消息中间件传输原理 消息中间件适用于需要在多个进程之间进行可靠的数据传输的分布式 河海大学硕士学位论文跨中间件的异构消息安全传输模型 环境。它主要负责建立网络通信的通道,进行数据或文件的发送。其优点在 于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以 将消息进行传送或者存储转发。另外消息中间件不会占用大量的网络带宽, 可以跟踪事务,并且通过将事务存储到磁盘上实现网络故障时系统的恢复。 其工作原理如图1 2 所示。 一一 l 客户端口m o m 列客户端i 。一 一 图1 2 消息中间件工作原理【1 】 消息中间件连接多个客户端程序,为用户提供可靠便捷的数据同步和异 步的传输。举一个简单的例子:在一个广域网环境下,使用消息中间件可以 保证两个在不同子网内的数据库系统可以可靠地进行数据交换,而不用投入 过多的资金在网路改造上。 这是一种传统的结构,这种结构有很多不足之处,例如当有许多客户端 的情况下,中间件有可能会由于网络及系统资源瓶颈造成无法完成数据的正 常传输,从而造成系统无法正常工作。为解决这个问题,一种跨中间件的消 息传输结构得到了广泛应用,如图1 3 所示: 图1 3 基于多路由的消息中间件工作原理 在这种结构中,客户端之间的消息传输不再仅仅依赖于一个中间件平 台,每个消息的传输是由多个中间件平台协同完成的。这保证了即使由于网 络故障或系统负载过大,消息依然可以正常传输。如果有客户端发送消息, 这个消息有可能并不是直接发送给指定的接收端,而可能是由通过多个中间 件平台之间路由过去的。 1 2 6 消息中间件比较 消息中间件可以屏蔽平台和协议上的差异进行远程通信,实现应用程序 之间的协同。目前,典型而且比较成熟的消息中间件产品有i b m 的 河海大学硕士学位论文 跨中间件的异构消息安全传输模型 w e b s p h e r em q 【l l 】、b e a 的w e b l o g i cj m s 和东方通科技t o n g l i n k q 等。 它们的优点在于提供高可靠的同步和异步通信,缺点在于不同的消息中间件 产品之间不能互操作,开放性差【1 2 】。表1 1 给出了不同消息中间件产品之间 的一些差别。 表1 1 消息中间件的差别比较 名称 w e b s p h e r em qw e b l o g i cj m s t o n g l i n k q j m s 标准支持 支持支持 支持协议t c p i p 协议;s n a 协议t c p i p 协议t c p i p 协议 确保到达确保成功且仅有一次 可以保证消息不重发,不确保成功且仅有一次 重传,并且接受方一定能 收到。可以在多个不同的 平台、系统之间可靠的进 行消息传输 可靠传输保证不保证保证 保密传输确保不确保确保 永久性消息支持支持支持 事务处理支持 支持支持 触发机制丰富一般无 日志系统有无有 支持语言 c 、c + + 、j a v a 、 只支持j a v ac 、c + + 署口j a v a r p g 、p l 1 等 1 3 跨中间件消息传输的存在问题 在网络环境的异构平台上,通常存在多种硬件系统平台( 如p c ,工作 站,小型机等) ,在这些硬件平台上又存在各种各样的系统软件( 如不同的 操作系统、数据库、语言编译器等) ,以及多种风格各异的用户界面,这些 硬件系统平台还可能采用不同的网络协议和网络体系结构连接。因此,在分 布异构环境中,如图1 - 3 中的基于多路由的消息传输过程中,可能存在多种 不同的消息中间件,协同完成跨中间件的消息传输。所以,在这种网络环境 中进行基于消息中间件的消息传输会面临如下主要挑战: 1 ) 通过消息中间件进行消息传输的不同应用程序多半是用不同语言开 发的应用( 比如:j a v a 应用、c 应用和其它语言的应用) ,因此,不同机器 不同应用有着不同的数据表示,不同的消息格式。比如:一个帐务系统同一 个c r m 系统对客户对象是有着不同的概念。基于这个,一个系统可能将消 息存储在关系表中,另一个可能存储在文件中,这些文件可以表现为不同格 式,比如:文本、图形( 包括:j p g 、g i f 、b m p 、t i f 、p n g 等格式) 、音 频( 包括:m p 3 、w a v 、w m a 等格式) 和视频等等。而系统问消息传输要 求我们不修改系统的任何部分,以便使它们更好地一起工作。 河海大学硕士学位论文跨中间件的异构消息安全传输模型 2 ) 消息中间件为企业提供数据传输已经有很多年了,但是消息中间件 始终没有一个统一的标准,导致消息中间件产品的实现和接口各异,因此, 不同消息中间件系统之间的互操作存在一定困难,不能实现无缝连接,在消 息的格式表示和存储方式上也存在差异; 3 ) 目前还不能很好地将各种消息中间件平台中的功能特性进行融合、 匹配,定制成一个特定的消息中间件解决方案【l3 1 ,所以很难协调和解决不 同应用程序之间的不同; 因此,异构消息格式( 在不同应用中的不同数据表示) 是分布异构环境 中跨消息中间件消息传输的一个难题。 1 4 国内外研究现状 j a v a 消息服务( j a v am e s s a g es e r v i c e ,简称j m s ) 是s u n 提出的j a v a 消息服务规范,是用于访问消息系统的独立于厂商的应用程序接口( a p i ) 。 它为j a v a 程序提供了创建、发送和接收消息的方法【l 引。我们可以通过j m s 访问独立于厂商的消息服务系统。但j m s 只是接口,并没有给予实现。一 些供应商为实现j a v a 组件能通过可靠的异步消息交换进行通讯,实现了j m s 应用程序接口( a p i ) u 5 】。实现j m s 接口的消息中间件叫j m s 提供者( j m s p r o v i d e r ) ,这样的消息中间件可以从j a v a 里通过j m s 接口进行调用。j m s 客户端都是建立在j a v a 技术上的,从而也能使用其他j a v aa p i ,如j d b c 数据库连接,使用j a v ab e a n 组件模型,j d n l 名字服务,j t a 客户端事务处 理控制以及j 2 s e 和j 2 e ea p i 来实现企业级应用服务程序【l 引。 j m s 规范定义了标准的j a v a 应用消息传输机制,提供异步点到点通信 与发布订阅模式 1 ”。规范中的消息由两部分组成:消息头部和消息主体。 消息头部由路由信息以及有关该消息的描述组成。消息主体则携带着应用程 序的数据,消息主体中的数据类型有:简单文本( t e x t m e s s a g e ) 、可序列化 对象( o b j e c t m e s s a g e ) 、属性集合( m a p m e s s a g e ) 、字节流( b y t e s m e s s a g e ) 、 原始值流( s t r e a m m e s s a g e ) 等。j m s 实现程序能在单一域中确保信息异步 的传输。当试图连接多个j m s 消息传输域时,通常需要某种定制的桥接, 以使消息可以在多个域之间进行可靠的转发。其缺点是对定制桥的严重依 赖;而且,j m s 一般只是允许用j a v a 语言编写的程序与其它消息交换设施 通讯。 b e a w e b l o g i c 也提供一些不同的方法,来满足在不同域之间的这种松 耦合和可靠的消息传输。m e s s a g i n gb r i d g e 是一种由w e b l o g i c 应用服务器 提供的j 2 e e 设备,用于转发两个j m s 提供者的消息。我们可以使用 河海大学硕士学位论文 跨中间件的异构消息安全传输模型 m e s s a g i n gb r i d g e 将消息从一个j m s 提供者的目的地( 队列或者主题) 移至 另外一个j m s 提供者的目的地。因此,当w e g l o g i c 应用程序需要与第三方 j m s 提供者( 比如i b mm q ) 进行交互时,m e s s a g i n gb r i d g e 就可以承担这 个中间角色。其缺点是部署复杂;而且,只能适应部分的消息中间件,即实 现了j m s 规范的消息中间件。 e d w a r dc u r r y 等提出了一种使用“拦截”机制来增强消息中间件功能的 方、法【j ,旨在使用这样一种模式:p o s a 拦截模式,以构造一个容易定制和 扩展功能的消息中间件平台。其采用的方法是:使用一种称为“c h a m e l e o n ” 的框架如图1 4 所示,以实现消息中间件平台能便捷地动态扩充其功能。 “c h a m e l e o n ”使消息中间件的功能被包装并添加到核心服务中。一旦消息 中间件的功能被包装,各种消息中间件的功能即可被融合并匹配到一起,以 创建自制的消息传输方案。其特点是,为制定核心消息服务的交互,需要定 义大量标准。 c l i e n t s i d ev i r t u a lm a e h i n e s e r v e r - s i d ev i r m a lm a c h i n e c h a m e l e o nc l i e n t s ii c c h a m e l e o ns e r v e r - s i d e c l i e n t - s i d ec h a i n g i o b a lc h a i n f o r w a r d e r i d i s p a t c h e r h a n d l e r l i c h a i n p a c km e s s a g e s e r v i c e s e x t r a c tm e s s a g e l 。 c o n t e x t h a n d l e r n j h a n d l e r n i i i m l o c a ld i s p a t c h e r s 一- 、i h a n d l e r1 s一 r 、4 1 一一一一一:d e s t i n a f i o nc h a i nd e s f i n a t i o nc h a i nd e s t i n a t i o nc h a i n c m e s s a g e i c o n t e ) 【t ii fd i s p a t c h e rl iiii 。( c l l i e n t - a m n d ,f 上士0 s e r v e 卜s i d e ) d y n a m i cp r o x y p jf f 刁 c l i e n tp r o d u c e st ( s e r v e r - s i d e m e s s a g e o n l y ) f c l i e n t 图1 4c h a m e l e o n 框架i j 综上所述,已有的工具和方法具有各自不同的功能与作用,从不同程度 不同角度缓解了异构消息中间件之间的不兼容性和难以互操作性。本文基于 对这些方法的分析研究,为实现不同消息中间件在消息格式上的兼容,白行 设计并开发了一个跨中间件的异构消息安全传输模型,简称为消息传输模 型,解决分布异构环境中跨中间件的异构消息安全传输问题。 1 5 本文研究工作 本文具体研究目标是在分析研究不同消息中间件特性的基础上,提出分 布异构环境中对异构消息执行安全传输的方案,并设计开发一个模型,用于 河海大学硕士学位论文跨中问件的异构消息安全传输模型 实现异构消息在网络环境中的安全传输。通过一个典型的案例验证和展示所 实现的模型的正确性和有效性。 模型需要解决以下三个主要技术问题: 1 ) 在分布异构网络环境中,为实现跨中间件的消息传输,对用户提供 的异构消息进行格式标准化,以实现异构消息在不同消息中间件之 间进行可靠传输; 2 ) 为防止消息在网络传输过程中被黑客截获,采用某种加密算法对用 户消息进行加密传输,以保证用户消息的安全性; 3 ) 建立负载平衡机制,实现模型对用户消息的高性能处理。 1 6 本文组织 本文共分六章,第一章为绪论( 即本章) 。说明了本文的研究背景与选 题依据,分析了相关领域的研究现状,并介绍了本文的研究工作。其余章节 的内容如下: 第二章,详细介绍了两种典型消息中间件产品i b m 的w e b s p h e r e m q 和b e a 的w e b l o g i cj m s 的原理与实现机制。 第三章,给出了模型设计的目标与要求,介绍了模型涉及到的相关技术, 如多线程、x m l 、b a s e 6 4 编码及数据加密等技术。在此基础上,详细阐述 了跨中间件的异构消息安全传输模型的设计思想。 第四章,说明了模型实现的概况,并详细阐述了跨中间件的异构消息安 全传输模型的具体实现,包括模型对消息的标准化、加密等功能实现和对模 型性能的优化实现。 第五章,阐述了测试环境和测试方法,并对测试结果进行了分析,验证 和展示了所实现模型的正确性与有效性。 第六章,对本文的研究工作进行总结,提出对下一步工作的展望。 另,本文中的所有图片,除特别声明外,均是作者使用s i o2 0 0 3 绘制。 9 河海大学硕士学位论文跨中间件的异构消息安全传输模型 第二章w e b s p h e r em q 与w e b l o g i cj m s 介绍 在确立课题研究目标后,选择两种典型的、功能强大的消息中间件是首 先必须解决的问题。在进行了多方面的比较与分析后,决定采用如下两大比 较成功的消息中间件:i b m 的w e b s p h e r em q 和b e a 的w e b l o g i cj m s 作 为本课题的消息传输服务工具。 2 1w e b s p h e r em q 消息中间件 w e b s p h e r em q 是i b m 的消息处理中间件,它的异步消息处理技术能保 证当网络或者通信应用程序本身处于“忙”状态或发生故障时,系统之间的 信息不会丢失,也不会阻塞。通过使用w - e b s p h e r em q ,用户可以简单方便 地开发出可靠、高效的分布式应用系统。 2 1 1 基本概念 对于w e b s p h e r em q 的基本概念包括消息( m e s s a g e ) 、队列( q u e u e s ) 、 通道( c h a n n e l s ) 、消息队列接口( m e s s a g eq u e u ei n t e r f a c e ) 、队列管理器 ( q u e u em a n a g e r s ) 等,具体含义如下: 1 ) 消息:是对使用它的应用程序有意义的以字节为单位的字符串。消 息可以用来实现在相同或不同平台上应用程序间的通信。w e b s p h e r em q 消 息由两个部分构成:应用程序数据和消息描述符。应用程序数据的内容和结 构由使用它的应用程序定义:消息描述符标识消息,并包含其他控制消息, 如消息类型和消息的优先级,如图2 1 所示。 i 一8 s c a 删g ed e s 。c ,r 巾协r 广却叫沁甜i 0 删舭a 一 i ( m q m d ) il iiiliiililliiiiiilllliiilliliilli m e s s a g e i d c o n t r o l i n f o r m a t i o n ,q n a m e 4 a c c o u n tn a m e -a m o u n tr e q u e s t e d lliffliiliiiiiiliiiilil 图2 1w e b s p h e r em q 消息组成【嵋1 2 ) 队列:用于存储消息的数据结构,直到它被应用程序处理。其工作 方式如下:a ) 程序a 形成对消息队列系统的调用,此调用告知消息队列系 统,消息准备好了投向程序b ;b ) 消息队列系统发送此消息到程序b 驻留 处的系统,并将它放到程序b 的队列中;c ) 适当时间后,程序b 从它的队 列中读取此消息,并处理此消息。 1 0 河海大学硕士学位论文跨中间件的异构消息安全传输模型 3 ) 通道:通道是m q 系统中队列管理器之间传递消息的管道,它是建 立在物理的网络连接之上的一个逻辑概念,也是m q 产品的精华。在m q 中,包括三大通道类型,分别是消息通道、m q i 通道和c l u s t e r 通道。 4 ) 消息队列接口:由三部分组成,分别是a ) 函数接口:应用程序通 过函数可以访问队列管理器和它的部件;b ) 数据结构:应用程序使用提供 的数据接口实现把数据传递给队列管理器,或从队列管理器中获得数据;c ) 基本数据类型:用来实现从队列管理器传递数据,或从队列管理器中获得数 据。 5 ) 队列管理器:在w e b s p h e r em q 中,队列管理器是基本的软件系统, 队列管理器可看成是队列和其他对象的容器。w e b s p h e r em q 中的每一个队 列都属于一个队列管理器,队列管理器为应用程序和w e b s p h e r em q 部件 ( 一些管理工具) 提供对队列管理器中对象的访问。 2 1 2 体系结构 w e b s p h e r em q 的体系结构如图2 2 所示【1 8 】,它是由许多对象组成的, 主要包括队列管理器、队列、通道、进程定义等对象。队列管理器是由一组 m q 进程和一些内存空间组成。它实现了应用程序通过m q i 调用可以访问 m q 的对象。 图2 2w e b s p h e r em q 的体系结构l l 剐 队列管理器为应用程序提供了排队服务,并管理属于它的队列,它确保: 根据接收到的命令更改对象属性; 当满足相应条件时,生成特殊事件( 如触发器事件或检测事件) ; 按照发送m q p u t 调用的应用程序的请求,将消息放入正确的队列。 如果不能完成,则将通知应用程序并给出适当的原因码。 河海大学硕士学位论文 跨中间件的异构消息安全传输模型 所以,在使用w e b s p h e r em q 时,首先需要创建一个队列管理器,然后 在队列管理器中创建队列和通道等其他对象: 1 ) w e b s p h e r em q 和消息排队 w e b s p h e r em q 使应用程序通过使用消息排队来实现消息驱动处理,使 用对应的消息排队软件产品实现在不同平台之间进行通信。从而使应用程序 屏蔽了低层的通信结构。 w e b s p h e r em q 提供了消息队列接口( 或m q i ) 的公共应用程序编程接 v l ,如果应用程序使用了m q i ,将非常容易将应用程序从一个平台移植至 另一个平台;同时,还提供了高级消息句柄a p i ,它使程序员更容易在企业 内或企业间部署商业流程集成的智能网络,这称为应用程序消息接口 ( a m i ) 。a m i 将许多通常由消息传递应用程序执行的消息处理功能移动到 中间件层,在此将代表应用程序应用企业定义的一组策略。 2 ) 与时间无关的应用程序 程序不在网络上直接相互通信,而是间接地将消息放入消息队列。因为 程序没有直接的联系,所以它们不必同时运行。消息放入适当的队列时目标 程序可以是忙的。消息的到达并不影响程序的当前处理,也不意味程序需要 立即处理该消息。消息放入队列时接收程序甚至根本不需要正在运行。接收 程序可以在需要的时候开始执行。 3 ) 消息驱动处理 当消息到达队列时满足了触发条件,它们可以使用自动触发应用程序。 4 ) 队列管理器的进程 启动了队列管理器之后,将会启动一组进程,如图2 3 所示。以u n i x 平台为例,如下是部分进程的功能: 图2 3 队列管理器进程【1 8 】 以a m q c 开头的进程是和通道相关的进程: a m q h a s m x 进程是负责记录曰志的进程( l o g g e r ) ; 1 2 河海大学硕士学位论文 跨中间件的异构消息安全传输模型 a m q h a r m x 进程是负责日志格式化( 仅在线性日志中使用) 的进程; a m q z l l p 0 进程是检查点处理器( c h e c k p o i n tp r o c e s s o r ) 的进程; a m a z l a a 0 进程是本地队列管理器的代理( l o c a lq u e u em a n a g e r a g e n t s ) ; a m q z x m a 0 进程是执行控制器( e x e c u t i o nc o n t r o l l e r ) 。 2 1 3 工作原理 w e b s p h e r em q 的工作原理如图2 4 所示【19 1 ,虽然应用程序a 和应用程 序b 运行于同一系统a ,它们不需要直接的通信。应用程序a 向消息队列 l ( q 1 ) 发送一条消息,而当应用程序b 需要时就可以得到该消息。 消 图2 4m q 工作原删1 列 如果消息传输的目标改为在系统b 上的应用程序c ,这种变化不会对应 用程序a 产生影响,应用程序a 向消息队列2 ( q 2 ) 发送一条消息,系统 a 的w e b s p h e r em q 发现q 2 实际上在系统b ,它将消息放到本地的一个特 殊队列传输队列( t r a n s m i s s i o nq u e u e ) 。然后系统a 的w e b s p h e r em q 建立一条到系统b 的通信连接,传输这条消息到系统b ,并等待确认。只有 w e b s p h e r em q 接到系统b 成功地收到消息的确认后,才从传输队列中移走 消息。如果通信线路不通,或系统b 不在运行,消息会留在传输队列中, 直到被成功地传送到目的地。这是w e b s p h e r em q 最基本同时也是最重要的 技术可靠消息传输。 事实上,w e b s p h e r em q 具有特殊的技术来防止消息重复传输,确保消 息一次且仅一次( o n c e a n d o n l y o n c e ) 传递。 2 1 4 命令集合 有三种命令集合,可用于管理w e b s p h e r em q ,分别是控制命令、m q s c 命令和p c f 命令。控制命令是用来维护队列管理器本身的管理命令;m q s c 河海大学硕士学位论文跨中间件的异构消息安全传输模型 命令用来管理队列管理器对象,包括队列管理器本身、通道、队列和进程定 义;w e b s p h e r em q 可编程命令格式( p c f ) 命令使得管理任务能编写到应 用程序中。 在程序中可以创建队列和进程定义并更改队列管理器,使用w e b s p h e r e m q 管理接口( m q a i ) 可以更容易地访问p c f 消息。p c f 定义了命令和回 复消息,应用程序通过这些命令和回复消息实现和队列管理器之间的信息交 换,通过w e b s p h e r em q 的应用程序可以实现对m q 对象的管理,包括:队 列管理器、进程定义、队列和通道。应用程序可以通过一个本地队列管理器 集中管理网络中的任何本地和远程管理器。 每一个队列管理器有一个管理队列,应用程序可以发送p c f 命令消息 到管理队列中,每一个队列管理器也有一个命令服务器,它是为管理队列中 的消息而服务的。因此,在网络中的任何队列管理器中可以处理p c f 消息, 通过使用定义的回复队列,回复消息可以被返回给应用程序。p c f 命令和回 复消息是使用m q i 进行发送和接收的。 在p c fj a v a 接口中,提供了c m q c ,c m q c f c ,c m q x c ,m q c f h , m q c f i l ,m q c f i n , m q c f s l ,m q c f s t , p c f a g e m ,p c f m e s s a g e , p c f m e s s a g e a g e n t ,p c f h e a d e r , p c f p a r a m e t e r , p c f e x c e p t i o n 等若干类,每个 类有其相应的属性和方法,通过对这些类的属性设置和方法调用,我们就可 以通过j a v a 编写p c f 程序,实现对m q 的系统管理编程。比如:接收消息 时使用的p c f p a r a m e t e r 接口中的方法如表2 1 所示。 表2 1 消息接收使用的主要方法 方法名描述 a d d p a r a m e t e r o 给p c f 消息增加一个整型参数 g e t s t r i n g p a r a m e t e r v a l u e 0 以字符串形式返回指定字符串参数的值 i n i t i a l i z e ( )通过读一条m q 消息初始化一个p c f 头的内容 s i z e ( ) 返回p c f 头的二进制大小 w r i t e 0 把p c f 头的内容写到一个m q 消息中 2 2w e b l o g i cj m s 消息中间件 j m s 是一组j a v a 应用接口,它提供创建、发送、接收、读取消息的服 务。j m sa p i 定义了一组公共的应用程序接口和相应语法,使得j a v a 应用 能够和各种消息中间件进行通信。w e b l o g i cj m s 是一个纯j a v a 实现的支持 c s 架构的实现j m s 规范的服务器产品,它能与其它的j 2 e e 服务完美地集 成在一起。 1 4 河海大学硕士学位论文跨中间件的异构消息安全传输模型 2 2 1 基本概念 消息传输系统的中心就是消息。在w e b l o g i cj m s 消息服务系统中,一 条消息分为三个组成部分: 1 ) 头( h e a d e r ) :是个标准字段集,客户端和供应商用它来标识和路由 消息。 2 ) 属性( p r o p e r t y ) :支持把可选头字段添加到消息。如果您的应用程 序需要不使用标准头字段对消息编目和分类,您就可以添加一个属性到消息 以实现这个编目和分类。提供s e t p r o p e r t y ( ) 和g e t p r o p e r t y ( ) 方法以设置和获取各种j a v a 类型的属性,包括o b j e c t 。 3 ) 消息的主体( b o d y ) :包含要发送给接收应用程序的内容。每个消息 接口特定于它所支持的内容类型: s t r e a m m e s s a g e :包含j a v a 基本数值流,用标准流

温馨提示

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

评论

0/150

提交评论