基于 JMS 消息中间件的研究与设计

VIP免费
3.0 林婧 2024-09-29 9 4 1.87MB 91 页 15积分
侵权投诉
I
消息中间件是当前多层、分布式应用中间层软件的重要组成部
分,它不仅能为分布式系统提供创建、发送、接收消息可靠通用的
方法,而且有利于实现可靠、高效、跨平台数据传输和分布异构数
据集成对多层、分布式系统构建具有举足轻重的作用。
本文将在系统分析和研究消息中间件技术,特别是JMS规范及
技术的基础上,设计和实现了一套符合JMS规范的消息中间件系
统。本文的主要工作内容和贡献如下:
1. 系统研究了消息中间件的理论基础,分析研究消息中间件
的规范 JMS总结了 JMS 的消息结构、消息分类、消息的传输方式
API 规范。在此基础上设计一套自有的消息中间件消息协议。
2. 基于自有的消息中间件消息协议,设计一套符合 JMS 规范
的消息中间件系统,并加以实现。
该系统实现了 PTP Sub/Pub 两种消息传输模式,在客户端:
实现方便、快速接入;在消息服务器端:实现服务器的集群管理、
消息监听、消息多队列管理、多线程并行工作、日志记录、消息的
事务、消息的流量控制、消息的持久化等功能。
3. 对已实现消息中间件产品系统的进行消息处理能力,进行
了测试和验证。
关键词:消息中间件;JMS 中间件规范;JAVA 消息服务
Abstract
II
Abstract
The current, messaging middleware is multi-tier, middletier dis
tributed software applications an important part,which not only provi
de reliable general methods of creating, sending,receiving messages f
or distributed systems, but also help to achieve reliable, efficient, cro
ss-platform datatransmission and distribution of heterogeneous data
integration, it plays an important role for building multi-layer and
distributed system.
This article will analyze and study the messaging middleware tec
hnology, in particular, on the basis of the JMS specification n, design
and implementation of a set of norms in line with Specification of J
MS messaging middleware systems.The main content of this work an
d contributions are as follows:
1. Studied the theoretical basis for messaging middleware, mess
aging middleware specificationanalysis JMS. Summed up the JMS
message structure, message classification, the message transmission a
nd API specifications, On this basis, designed a proprietary messagin
g middleware messaging protocol.
2. Based on proprietary messaging middleware messaging proto
col, a set of messaging middleware systems was designed to meet th
e JMS specification, and achieved.
The system implements the PTP and Sub/Pub two message tran
sfer mode, in the client: for easy, quick access; in the message serve
r: a server-cluster management, news monitoring, more queue of
news management, multi-threaded parallel , logging, message transac
tions, message persistence capabilities.
3. The capabilities of messaging processing for the messagi
g middleware system have been tested and verified.
Keywords: Messaging middleware; JMS middleware specificati
on; JAVA Message Service
1 ................................................................................... 1
1.1 研究背景和选题意义............................................................ 1
1.2 消息中间件技术发展的现状与趋势.................................... 2
1.3 论文主要工作内容................................................................ 3
1.4 论文的组织结构安排............................................................ 3
2 消息中间件的相关技术................................................ 5
2.1 JMS 概述................................................................................. 5
2.2 JMS 消息传输模型................................................................. 5
2.2.1 点对点消息模式......................................................... 5
2.2.2 发布/订阅消息模式................................................... 6
2.2.3 持久/非持久订阅....................................................... 7
2.3 JMS 消息结构......................................................................... 8
2.3.1 消息头......................................................................... 8
2.3.2 消息属性..................................................................... 9
2.3.3 消息体 ..................................................................................... 10
2.4 JMS API ........................................................................................... 11
2.4.1 JMS 消息类 .............................................................................. 11
2.4.2 JMS 主要控制 ...................................................................... 11
2.4.3 JMS 异常类 .............................................................................. 13
2.5 基于 JMS 的消息通信协议 ......................................................... 13
2.5.1 TCP 协议 .................................................................................. 13
2.5.2 系统消息协议 .......................................................................... 16
2.5.2.1 消息协议头 .................................................................. 17
2.5.2.2 协议头字段 .................................................................. 18
2.6 本章小结 .......................................................................................... 20
3 MSwap 系统设计 ...................................................................... 21
3.1 MSwap 系统简介 ............................................................................. 21
3.2 MSwap 系统主要性能指标........................................................... 21
3.3 MSwap 系统功能 ............................................................................. 23
3.4 技术难点和技术路线 .................................................................... 24
3.5 MSwap 系统概要设计 .................................................................... 26
3.5.1 MSwap 系统体系结构 .............................................................. 26
3.5.2 MSwap 系统客户端设计 .......................................................... 28
3.5.3 MSwap 系统服务器设计 .......................................................... 32
3.5.3.1 接收投递队列模块 ...................................................... 35
3.5.3.2 数据库操作模块 .......................................................... 36
3.5.3.3 流量控 ...................................................................... 39
3.5.3.4 事务控 ...................................................................... 41
3.6 本章小结 .......................................................................................... 42
4 MSwap 系统实现 ...................................................................... 43
4.1 通信协议消息实现 ....................................................................... 43
4.2 客户端系统实现 ............................................................................ 47
4.2.1 文件解析 ................................................................................. 48
4.2.2 JNDI 管理器 ............................................................................ 49
4.2.3 消息协议 ............................................................................. 50
4.2.3.1 请求协议类 ................................................................. 51
4.2.3.2 响应协议类 ................................................................. 53
4.2.4 API 使用 .................................................................................. 54
4.2.4.1 消息发 ...................................................................... 54
4.2.4.2 消息接 ..................................................................... 55
4.3 服务器系统实现 ............................................................................ 58
4.3.1 JNDI 服务 ................................................................................ 58
4.3.2 消息服务 ............................................................................. 59
4.3.2.1 消息接收模块 ............................................................. 59
4.3.2.2 消息队列模块 ............................................................. 61
4.3.2.3 消息投递模块 ............................................................. 63
4.3.2.4 数据库操作模块 ......................................................... 65
4.3.2.5 公共功能模块 ............................................................. 72
4.4 系统负载均衡及其实现 .............................................................. 73
4.5 本章小结 ......................................................................................... 75
5 系统测试 ..................................................................................... 76
5.1 测试环境 ......................................................................................... 76
5.2 测试解析 ......................................................................................... 76
5.3 测试总结 ......................................................................................... 80
6 论文工作总 .......................................................................... 81
6.1 论文总结 ......................................................................................... 81
6.2 下一步工作展望 ............................................................................ 82
............................................................................................................... 83
参考文献 ....................................................................................................... 84
1
1
1
1.1 研究背景和选题意
因特网的迅猛发展和应用系统规模的不断扩大,极大的促进了
企业信息系统发展。传统的、基于客户/服务器模式的企业信息管
理系统,早已不能满足当今企业信息化发展的需求。为了适应信息
的全球化发展,面向企业的信息系统正不断向着具有多层体系结构
的、分布式方向发展。而作为大型分布式系统中间层主体的中间件
及其相关技术,对多层、分布式系统的构建具有举足轻重的作用[1]
同时,中间件也已经与操作系统和数据库管理系统并驾齐驱,成为
基础软件的三驾马车之一。特别是最近几年来,绝大多数的分布式
软件系统几乎都是在中间件的基础上开发的。可以说,中间件已成
为构建现代软件系统必不可少的利器。因此,中间件的研究具有非
常重要的研究意义和市场价值[2]
中间件是位于平台(硬件和操作系统)和应用之间的通用服务,
这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件
平台,它们可以有符合接口和协议规范的多种实现[3]我国的中间
件发展比较早,起步阶段正是整个世界范围内中间件的初创时期,
东方通科技早在1992年就开始中间件的研究与开发,并于1993年推
出第一个产品TongLINK/Q随着理论的深入和技术的累积,国内中
间件的产品早已进入了商品化阶段,金蝶的Apusic和中创软件的
Inforbus都是比较成功的中间件产品。国外的中间件产品较国内发
展更早也更成熟,IBMMQSeriesOracleWebLgoic和微软的MSMQ
等中间件产品,都是世界范围内较为流行的中间件产品。这些中间
件产品已被广泛的应用于银行、电信、政府、电子商务等行业,
谓无处不在[4,5]
中间件按完成功能的不同,可分为消息中间件、数据访问中间
件、对象中间件、远程过程调用中间件等[6]这些中间件大多基于
1
2
RMIDCOMCORBA等中间价技术。但是,随着大规模多层、分布式
系统的出现,这些技术极大的限制了系统的体系和功能的扩展,
点对点通信、同步通信和客户端服务对象的生命周期紧密耦合等问
题。然而,消息中间件通过其面向消息的服务,很好的解决了上述
问题,其也成当前业界研究的重点和热点。同时,消息中间件也是
本文研究的核心。
1.2 消息中间件技术发展的现状与趋势
消息中间件是使用高效、可靠的消息传输机制进行应用系统之
间的消息交互,利用消息的通信来达到分布式系统各个应用的信息
交互,实现一个大型系统的集成。消息中间件可以跨平台操作,
不同操作系统上的应用交互提供有效的途径,从而满足企业对系统
伸缩性和扩展性的要求。但是,现在许多消息中间件产品价格昂贵,
一些中小公司更是不愿意支付这笔不菲的费用,所以会自制一些成
本较低的消息中间件系统来满足自身需求,这种做法对公司经济效
益的提升是显而易见的。这也是本论文研究的意义所在[7,8],设计
出适合中小公司自身使用的消息中间件系统,以满足自身的消息中
间件需求。
当前,采用Java语言开发的消息中间件主要有两种:一种是近
几年比较流行的基于Mina框架的消息中间件;一种是传统的基于
JMS(Java Message Service) 规范的消息中间件。
基于Mina的消息中间件摒弃了传统的JMS规范,采用基于JAVA
NIO非阻塞模型的、遵循TCP-Socket协议的轻量级架构体系,使得
只要是遵循TCP-Socket协议的软件都可以与这类消息中间件产品
进行通信。这类消息中间件依靠Mina的网络通信支持,实现和维护
相对简单,但是在消息中间件的可靠性和通用性上,因为其没有较
为规范的API定义,会造成系统通用性差和可靠性弱等缺点。使其
只能成为轻量级消息中间件开发技术,只能支持业务较为简单和企
业内部系统使用,很难被广泛应用于大型的消息中间件产品中[9,10]
1
3
JMSSUN公司提出的旨在统一各种消息中间件系统接口的规
范。JMS定义了一套通用的接口和相关语义,提供一套基于Java
台关于面向消息中间件的API在遵守API的前提下,不同的应用程
序之间或分布式系统之间都可以实现消息的传递,而且JMS还屏蔽
了操作系统和硬件的差异,也正是因为这些突出的优点,JMS已成
为当今比较流行的消息中间件接口规范,被各大软件公司和开源组
织所接受[11,12]。其中较为成功的消息中间件有ApacheActiveMQ
QpidOpenJMS[13]正是由于JMS技术规范性和成熟性,使其在今
后的消息中间件产品中还会扮演重要的角色,也是今后消息中间件
产品规范的主流趋势。所以,本论文也将采用JMS实现一个产品级
消息中间件系统MSwap雏形,以满足中小企业对消息中间件系统
的需求。
1.3 论文主要工作内容
本论文的主要工作如下:
(1) 系统研究中间件和消息中间件的理论基础,分析研究消息
中间件的规范 JMS总结其消息结构、消息分类、消息的传输方式
API 规范。
(2) 深入分析 TCP 协议的具体协议头,并研究其确认机制,在
此基础上定制一套自有的消息中间件消息协议。
(3) 在前述研究的基础上,设计一套符合 JMS 规范的消息中间
件系统,并加以实现。
(4) 对已实现的消息中间件系统进行消息处理能力的性能测
试。
1.4 论文的组织结构安排
本论文主要是基于 JMS 规范,结合运用 JNDINIO JDBC
技术,设计实现的一个消息中间件系统。具体章节结构安排如下:
1章,绪论。介绍论文的选题背景、选题意义;消息中间件
1
4
产品的应用研究现状与发展趋势,并说明本文的主要研究内容和论
文结构安排。
2章,研究总结本文研究的相关技术与理论。包括 JMS 体系
规范、现有的常用中间件技术体系,以及 JMS 消息通信协议。
3章,描述 MSwap 系统的功能需求与设计方案。描述 MSwap
系统的体系结构,说明 MSwap 消息中间件系统的客户端、命名服
务和服务器的功能组成关系。此外,还将具体给出针对 MSwap
统客户端、服务的总体设计和主要功能模块设计。
4章,描述 MSwap 系统的具体实现,给出系统的协议消息
实现,以及客户端和服务端主要模块的详细设计和实现。
5章,MSwap 系统的测试与验证。对本文所研发的消息中
间件系统 MSwap 的性能进行压力测试和验证。
6章,总结与展望。对论文工作进行总结,同时指出论文中
的不足,展望下一步工作计划。
2 消息中间件的相关技术
5
2 消息中间件的相关技术
2.1 JMS概述
JMS( Java Message Service)Java 消息服务,是 Sun 公司
提出 J2EE 平台中消息中间件的规范。该规范定义了 JMS 客户端访
JMS 服务器的接口和语义,为 Java 应用程序访问 JMS 消息服务
器提供了创建、发送、接收和读取消息的可移植、通用的接口方法。
按照 JMS 规范编写的应用程序能够与实现 JMS 标准的任何 JMS 服务
器上进行消息传输,这样各个消息中间件厂家开发出来的消息中间
件系统就可以方便的在符合 JMS 规范平台上进行移植。同时,JMS
也可以和其他 J2EE 技术进行协作应用,极大的提高了消息应用系
统的移植性和扩充性[14,15]
2.2 JMS消息传输模型
JMS 规范中定义了两种消息的传输模式:点对点模式(PTP
Point-To-Point) 和 发 布 /订 阅 模 式 (Pub/Sub
Publish-Subscribe)JMS 规范将两种模式统一,允许客户端应用
使用两种模式混合,发送消息的目的地是队列还是主题不用进行区
分,在消息的服务器端,会对消息的队列或主题进行统一的管理,
对消息客户端来说消息的队列和主题是透明的。
2.2.1 点对点消息模式
点对点消息模式(如图2-1所示)是基于消息队列方式进行消
息的发送与接收。之所以是“点对点”是因为消息发送和接收的
客户端都是唯一的,消息发送者发送消息到消息服务器的一个指
定队列,消息服务器的消息发送线程会将该队列中的消息发送给
一个消息接收者。一个队列可以有多个消息发送者和多个消息接
收者,但是要求每个消息只有一个消息接收者。消息服务器会采
摘要:

摘要I摘要消息中间件是当前多层、分布式应用中间层软件的重要组成部分,它不仅能为分布式系统提供创建、发送、接收消息可靠通用的方法,而且有利于实现可靠、高效、跨平台数据传输和分布异构数据集成,对多层、分布式系统构建具有举足轻重的作用。本文将在系统分析和研究消息中间件技术,特别是JMS规范及技术的基础上,设计和实现了一套符合JMS规范的消息中间件系统。本文的主要工作内容和贡献如下:1.系统研究了消息中间件的理论基础,分析研究消息中间件的规范JMS,总结了JMS的消息结构、消息分类、消息的传输方式和API规范。在此基础上设计一套自有的消息中间件消息协议。2.基于自有的消息中间件消息协议,设计一套符合J...

展开>> 收起<<
基于 JMS 消息中间件的研究与设计.pdf

共91页,预览10页

还剩页未读, 继续阅读

作者:林婧 分类:大学教育 价格:15积分 属性:91 页 大小:1.87MB 格式:PDF 时间:2024-09-29

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 91
客服
关注