基于JMS和XML的信息交换中消息队列管理模型设计

时间:2022-10-04 02:21:17

基于JMS和XML的信息交换中消息队列管理模型设计

(1.南昌大学 信息工程学院,江西 南昌330031;2.江西省公安厅交警总队直属二支队三大队,江西 南昌333000)

摘要:该文介绍了JMS的基本工作原理,并在此基础上提出了基于JMS和XML技术信息交换模型的设计,并着重提出信息交换中消息队列管理模型的研究。此模型基本上能解决信息交换中信息量大且容易阻塞的问题。

关键词:JMS;XML;信息交换;信息交换模型;消息队列;消息队列管理

中图分类号: TP302.1文献标识码: A 文章编号:1009-3044(2009)28-7966-02

The Design of the Message Queue Management Model from Exchange of Information Based JMS and XML

GUAN Zhao-xu1, LIAO Li-tao2

(1.College of Information Engineering, Nanchang University,Nanchang 330031, China; 2. Jiangxi Public Security Department, Nanchang 333000, China)

Abstract: This article describes the basic working principle of JMS, and on this based on the JMS and XML-based information exchange model for the design, and highlight the exchange of information in the message queue management model studies. This model has been able to solve the information exchange is informative and easy to congestion.

Key words:JMS;XML;information exchange;information exchange model;message queue;message queue management

随着信息技术的迅猛发展,特别是 Internet技术的发展,如何实现网络环境下异构数据源之间的数据交换,是企业信息化过程中要解决的关键问题。应用 JMS(Java message ser-vice)和XML(extensible markup language)技术, 为远程异构数据源之间的数据交换提供了一种新的有效解决方案, 以XML为交换载体的数据管理模式逐渐成为 Web应用的一种趋势。数据交换是一项很重要的数据库技术, 它影响到应用系统的可移植性与二次开发能力, 能够最大限度的利用现有资源避免重复开发造成的浪费。因此必须对信息进行管理。本文在利用JMS(Java Message Service)和XML(extensible markup language)技术的模型上对信息队列管理模型进行研究和设计。

1 模型的分析与设计

本文是在JMS和XML技术的基础上建立的信息系统,如图1所示,其中JMS服务器主要包括三个模块,消息队列管理模块、持久化管理模块、安全管理模块,如图2所示。消息队列管理模块是该系统的一个模块,主要功能是有效方便的管理消息中的对列。

1.1 JMS 和 XML 技术简介

JMS即Java Message Service的简称,它提供了Java 消息服务的 API ,被用来支持开发面向消息的分布式计算系统。JMS的目的就是提供给消息系统客户一个固定的接口,而且与底层的消息提供者无关,这样客户端的应用程序可以在不同的机器和操作系统中移植,而且能在不同的消息系统产品之间转移。在JMS 中,消息的处理是异步的,消息发送者可以发送消息而无须等待响应。与基于RPC的同步处理模型相比,JMS的这种松耦合的异步处理机制大大提高了系统的性能。

XML以一种开放的自我描述方式定义数据结构, 所组织的的数据对于应用程序和用户都是友好的、可操作的, 而且其本身具有跨平台性、高度可扩展性、结构化及简单易用等特性, 已成为一种通用的数据交换标准。为了保持 XML 文档的有效性, 必须明确确定文件中的信息遵守哪些结构, 需要通过XML 的模式来保证。 以下是两种定义 XML 文档的模式: DTD(document type definition)和 XML Schema。两者有如下区别:

1) XML Schema是XML文档, 而DTD有自己特殊的语法

2) XML Schema利用名域将文档殊的节点与Schem说明相联系, 一个 XML 文档可以有多个对应的 Schema, 而一个XML 文档只能有一个相对应的 DTD;

3) XML Schema 内容模型是开放的,可以任意扩充,而DTD 将无法解析扩充的内容;

4) DTD 只能把内容类型定义为一个字符串,而 XMLSchema 允许把元素类型定义为整形、布尔型、日期型等其数据类型。

2 消息队列调度算法分析

消息交换在不同的企业、部门和单位有着不同的行业标准,不同性质的企业对各种的信息有着不同的需求,例如,一些企业比较注重新的产品的推广,那么它对添加这一操作比较注重,赋予该操作的权限也将比较高。因此各种不同的信息就应该分离出来,并且对它们进行统一的管理。但是这样对优先级比较低的队列是比较的不利,同时等待的时间也是一个比较重要的数据,这样就形成了一个动态的优先级的管理。该模块的功能分成两个部分:一、从XML文件中提取出不同的操作信息,将它们以不同的粒度进行封装成消息投进不同的消息队列中去。二、对不同的消息队列进行调度管理。

调度是系统资源管理的核心机制之一,消息队列管理调度策略是采用多队列排队机制,这就涉及到多种不同类型的队列进行有区别的服务,其中包括操作分类、队列管理和分组调度。分类:就是将消息中的不同的操作分离成不同的队列。队列管理:将每一种的操作以一定的粒度来处理队列中的信息,这就要求将队列中的消息分成若干组,然后对其中的一种进行调度处理。分组调度:决定下一次的调度时调度那种操作的队列。调度算法的原理:

1) 最大信息处理量Umax算法

最大信息处理量算法是选择一个队列,使其单位时间内被处理的消息队列被处理,直到该队列处理完全再让其他队列进行处理。

2) 轮询调度算法

这种算法循环的调度各个队列中的操作分组,就被调度上的概率而言,对四个队列,每个队列被服务的概率都是四分之一,也就是说每个队列以相同的概率占用系统资源,这种基于轮询的调度算法是最公平的。但是由于各个队列的U不同,服务U值小的队列的比重增大,那么吞吐量势必大大减小,影响到整个系统的性能。

由于该模型的自身需求,所以要兼顾到信息处理量和公平两个原则,而在不同的业务方面考虑对不同的操作的优先级的不同,这样就可以基本上解决信息交换的顺利进行。

该模块的数据流图如图3所示。

3 消息队列管理模块设计

该模块是建立在一个消息系统的基础上,是对该信息系统的消息队列进行管理,是该系统的一个构件。

1) 消息队列管理模型

在该模型中包括消息解析器、添加队列、删除队列、修改队列、查询队列、调度器和处理队列。其中解析器包括两个主要的功能:解析并分离出不同的操作和将不同的操作封装成为消息。四种队列是用来接收来自解析器中的不同的消息。调度器:计算不同的队列中的优先级别,根据优先级别对队列中的消息进行调用。处理消息队列用来接收调度器调度的消息,然后系统对该队列中的消息进行处理,如图为消息队列管理模型图如图4。

2) 调度算法的设计原理

本文中系统的调度算法策略主要涉及到三个主要参数:不同操作优先级别(bi)、平均等待时间(t)和信息处理量(U);

a) 优先级别bi

在整个系统中,不同的操作的优先级别是一个固定的值,代表着该系统对不同操作的重视程度。添加、删除、修改和查询的优先级别分别为:bi (0

b) 平均等待时间t

在一次调度时刻,调度的消息是以组(即一定的粒度n)来调度的,因此,等待时间将是该组的平均时间。而每一个消息的等待时间为调度时的时间和进入该队列的时间之差,即T=Tk-Tm其中Tk 为调度时刻的时间,Tm为该消息进入对列时的时间,因此,t=(T1+T2+…+Tn);为了确保每个队列都尽可能的被调度,当平均等待时间t越长,该队列的优先级别就越高,即队列的优先级别以平均等待时间成正比。

c) 累积信息处理量U

U为该队列从某时刻起到一次调度时的总的累积信息量,例如:在某一调度决策时刻t,四个队列的累积信息处理量Ui,在该时刻每一个队列准备调度的消息量为Ui,因此下一个调度时刻的累积信息处理量为:Ui +Ui;整个队列的优先级别B以平均等待时间t成正比,以操作的优先级别成正比,以累积信息处理量成反比。

因此队列的优先级别为:

Bi=(Qi×bi)×t/U;

其中Qi(Qi

4 结束语

消息队列中间件对企业分布式应用系统的开发具有很大的吸引力,它向开发者展现了一种灵活、 丰富且非常简单的通信模式。JMS提供了一组与具体实现无关的接口,各种分布式应用程序可通过这组接口来访问支持JMS的消息中间件。而随着消息交换的数据量越来越大,消息队列管理的重要性也就越来越大。现在JMS 技术已得到了广泛的工业支持,有着广阔的前景。

参考文献:

[1] 冯磊. JMS 给中间件市场加热[J] .信息系统工程,2007(1).

[2] 沈良忠,黄德才.JMS和 XML 的分布式应用研究[J].铁路计算机用,2004.

[3] 孙剑.XML数据交换标准在物流行业的推广前景[J].物流技术与应用,2005.

[4]黄忠国.分组调度算法在船闸调度中的应用研究 [D].大连海事大学硕士学位论文 , 2006.

[5] 罗晓斌,懂守斌,徐浩,等. 基于 JMS的异步消息处理技术及应用.计算机工程, 2002.

上一篇:VHF/UHF虚拟无线电监测系统建设 下一篇:基于校园网的教学管理信息系统的设计与实现