基于消息的模型

2024-10-12

基于消息的模型(精选7篇)

基于消息的模型 篇1

1. 引言

即时消息传递(Instant Messaging,IM)是基于互联网协议的应用程序,它能够使应用不同类型设备的用户进行一对一的通信。IM最流行的形式是聊天,在聊天的同时可以在计算机之间交换短文本消息。

直接使用WinSock API函数来完成上述功能,不但要记忆很多的WinSock API函数调用格式,还要了解设计WinSock API网络编程的算法。对于编写Windows应用程序来说,还要涉及复杂的消息驱动机制,设计事件处理函数来处理套接字发送、接收数据等事件。

为了简化WinSock网络编程,使用户专注于应用程序算法的设计,Microsoft的基本类库(Microsoft Foundation Class或MFC)提供给Visual C++两个用于WinSock编程的类-CAsyncSocket和CSocket。这两个类在不同程度上对WinSock API函数进行了封装,在编程时使用经过封装的MFC WinSock类使编程工作大大简化,而且,这两个类都提供了事件处理函数,通过对事件处理函数进行重载,用户可以在应用程序中很方便地对套接字发送、接收数据等事件进行处理。

2. 有关定义

(1)套接字(socket)是对通信端点的一种抽象,一个正在被使用的套接字都有它的类型和与其相关的进程,提供了一种发送和接收数据的机制。

(2)Windows Sockets(Winsock)规范是一套网络编程接口,提供一套库函数调用和相关语义,是一个面向网络通信编程的API。应用程序调用Windows Sockets的API实现相互之间的通讯,Windows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。

(3)MFC:Microsoft的基本类库(Microsoft Foundation Class或MFC)提供了两个用于WinSock编程的类-CAsyncSocket和CSocket。这两个类在不同程度上对WinSock API函数进行了封装。

3. 即时消息传递系统工作原理

即时消息传递系统的原理与打电话类似,当系统的一端正在等待另一端打开通信连接时,就像您在等待某人给您打电话时,一直在留心电话铃响。与此同时,另一端试图同第一端连接,这种方式就类似于向某人打电话。一旦两端间建立了连接,它们之间就可以互相发送和接收信息了,正像两个人打电话交谈一样。最后,如果一方或双方完成了对话,连接即被关闭,就像打完电话后把电话挂断一样。

4. 时消息传递系统工作流程

服务器要创建一个用于侦听的套接字,为该套接字分配地址之后,调用listen()函数使它处于侦听状态;客户机在创建套接字完毕后,为套接字分配地址,然后调用connect()函数,请求与服务器套接字连接;服务器套接字在收到客户机的连接请示后,调用accept()函数,该函数创建一个用于连接的套接字。应用该套接字和客户机上的连接套接字,用户就可以在服务器和客户机之间进行数据传输了。在结束传输之后,客户机调用closesocket()函数关闭套接字,服务器也调用该函数关闭用于侦听和连接的套接字。

5. 系统逻辑设计

5.1 用MFC AppWizard生成程序框架

在Visual C++的IDE环境下选择菜单File→New→Projects→MFC App Wizard(exe)→Project Name→“OK”→“NEXT”→Windows Sockets→“Finish”按钮,选择“OK”按钮,应用程序的框架就将自动创建。在创建了应用程序框架之后,可以布置程序的主对话框,向应用程序的主对话框添加控件。设计好对话框之后,选取View菜单中的ClassWizard菜单项,或直接按“Ctrl+W”,打开MFC ClassWizard,将对话框中的控件和变量相关联。

5.2 继承CAsync Socket类

选择Insert菜单中的New Class→选取Class type为Generic Class→在Base class的Derived From列中输入CAsyncSocket,→在As列中接受默认值public,点击“OK”按钮,就可以把这个新创建的类添加到应用程序中。

在该套接字类中添加一个成员变量,用作指向父对话框窗口的指针,指针变量的类型为CtalkDlg*(Cdialog的派生类),变量名为m-pDlg,访问权限为私有。最后,添加套接字类事件处理函数,这些函数将用于调用对话框中名称类似的那些函数。

5.3 建立连接

添加对套接字事件的处理函数,在对话框类中添加On Accept()事件处理函数和On Connect()事件处理函数。

现在可以编译和运行应用程序,启动两个副本,把其中一个设置为侦听模式,然后把另一个应用程序与之相连接。为此,先向对话框类()添加三个成员函数,这三个函数是套接字类()的事件处理函数需要调用的。把三个函数的类型都指定为void,访问权限为公共。指定第一个函数声明为On Send(),第二个函数的声明为On Receive,第三函数的声明为On Close。

5.4 发送和接收数据

两个应用程序间建立了连接,用户就能够在对话框窗口中的编辑框中输入文本消息,然后单击“发送”按钮,就应该可以把消息发送到另一个应用程序,一旦消息发送出去了,它将被添加到已发送消息的列表框中。

当“发送”按钮被单击之后,应用程序需要检查是否有消息输入了编辑框,获取该消息的长度,并发送该消息,然后把此消息添加到列表框中。为了在应用程序中添加此项功能,使用Class Wizard向“发送”按钮(ID:IDOK)的单击事件(BN-CLICKED)添加一个事件处理函数,注意不要接受默认的函数名,将函数名改成On Send Msg(),编辑该函数。

对于消息的接收方,当套接字的On Receive事件被触发时,表明一个消息已经到达了,可以用Receive()函数从套接字检索到该消息。如果消息被顺利检索到,需要把接收的字符数组转换成Cstring类型,并把接收的消息添加到已接收的消息的列表框中。通过编辑对话框类(CtalkDlg)的On Receive()函数。

5.5 终止连接

终止连接的操作后,应用程序会接收到一个On Close套接字事件,和建立连接的过程相反,连接的套接字需要断开,发送消息的控件需要置为禁用状态。在客户端,“连接”按钮控件由禁用状态变成可用,因为应用程序允许客户机程序改变某些参数,并打开与另一个服务器程序的连接。同时,服务器应用程序继续侦听是否有其他的连接请求,侦听的端口等信息不变。

6. 结束语

以上设计是基于客户/服务器模型的,一个服务器只能支持一个客户,因此它实际上是一个基于“点对点”模型。通过这个即时消息传递系统,用户可以在应用程序中很方便地对即时消息进行处理,而不必关心系统内部复杂的、抽象的源代码,极大地简化了程序设计,给一般程序设计人员提供了方便。

摘要:本文选择Visual C++开发工具,使用基于WinSock网络编程的类,对WinSock的API事件处理函数进行重载,用户可以在应用程序中很方便地对套接字发送、接收数据等事件进行处理,从而建立“点对点”即时消息传递模型。

关键词:IM模型,Winsock,MFC

参考文献

[1]Dreamtech软件研发组.即时消息传递系统编程源代码解析[M].姬孟洛译.北京:电子工业出版社,2007.

[2]汪翔,袁辉.Visual C++实践与提高.网络编程篇[M].北京:中国铁道出版社,2006.

基于消息的模型 篇2

Web服务安全框架主要由四个部分组成,如图1所示。

发送端:主要由数据发送端配合安全处理模块,对数据进行安全处理后进行发送。安全处理模块的主要功能是对所需发送的消息通过断言服务器添加安全断言,并对消息中的重要信息通过密钥服务器进行加密。

接收端:主要由数据接收端和安全处理模块组成,同时需要具备安全访问控制功能,接收端的安全处理模块用来处理发送端发过来的消息,要对收到的消息通过断言服务器进行安全属性验证,同时还需要通过密钥服务器对接收的数据进行解密。接收端同时还具备一个验证发送端身份的认证功能,一般由访问控制模块来实现。

断言服务器:SAML断言一般包括三方面的功能,一是认证申明,用来判断用户是否已经通过认证;二是属性申明,用来表明实体的属性,可以是单个,也可以是一个属性集合;三是授权申明,用来表明某个资源的访问权限。通过断言服务,可以对数据的安全性提供一个双方能够信任的服务。

密钥服务器:密钥服务器的主要功能是为发送端和接收端提供双方在处理数据的安全模块中使用到的密钥信息,提供给发送端和接收端对密钥服务的注册、查询、数字证书等服务,它能够使得消息的发送方和接收方避开复杂的PKI验证计算,简化了双方在Web服务环境中使用PKI的过程,同时还能够保证发送端和接收端身份的可靠性。

2 功能设计

2.1 安全处理模块

安全处理模块的组成如图2所示,分成发送端和接收端的两块安全处理模块。

发送端和接收端的安全处理模块功能模块是相同的,但是功能正好相反。主要包含四个功能模块,断言处理模块、属性模块、加密和解密模块、签名验证模块。每个部分是一个功能独立的模块,可以根据不同情况,选择性地使用某些功能模块,也可以使用全部模块。这样既兼顾了数据的安全性,又提高了数据处理的效率。

2.2 发送端和接收端处理模块

发送端功能模块:

l)向断言服务器提出断言申请,将自身的关键信息提供给断言服务器,服务器收到申请后,对用户进行身份验证断言,添加属性和授权,然后将信息返回给发送端,发送端则利用WS-Security规范将申请到的断言加入到消息头中作为用户的安全令牌。

2)发送端将需要发送的信息添加到得到用户安全令牌消息中。

3)利用加密技术,用不同的加密技术分别对数据中的重要信息和消息头进行加密。其原理是先用对称密钥加密重要信息,再使用接收端的公钥对发送端的密钥进行加密,加密完成后将对称密钥放入密钥信息中。

4)从XKMS获取到接收端的共有密钥,使用发送端自身的私有密钥对数据的消息头和断言中需要体现的完整性的信息进行数字签名,并将自身的私有密钥保存在密钥文件中,最后在数字签名加入发送端的公钥信息,使得接收端在收到数据后能够对数字签名进行验证。

接收端功能模块:

l)针对接收到的数据信息,进行断言处理以及属性安全验证,其目的主要是验证此数据的发送人的真实性,以及检查数据的完整性。

2)针对数据中的签名信息,通过XKMS密钥服务器进行验证,待收到XKMS密钥服务器返回过来的验证信息后,再用发送端提供的的公钥信息来验证签名的真实性。

3)数据解密模块,负责从密钥文件中提取接收端的私钥,进行解密,从而获得对方的密钥信息,对加密的数据进行解密操作。

4)上述步骤经检验均合法的情况下,调用相应Web服务。

2.3 加密模块

为了确保发送消息的安全性,通常都要对数据进行加密,使得数据由明文转变为密文。加密也并非对数据整体进行加密,通常只针对数据中的重要消息进行加密,以提高加密和解密的效率。下面介绍一种混合的加密的方法,它利用对称加密和非对称加密相结合的方案来实现数据的加密。采用混合加密是因为非对称加密算法复杂,计算速度慢,但是安全性就相对较高,结合对称加密则正好能够解决以上问题,只需要在关键位置采用非对称加密,两者结合使用,既能提高加密速度,又能得到安全性的保障。具体加密方案如下:

1)在发送数据时间,在发送端计算生成一个随机密钥,用该密钥当作私有密钥。

2)然后用对称加密算法,利用该私有密钥对重要信息进行加密,并放入加密数据中。

3)使用在XKMS获得的接收端公钥,用非对称加密算法对私有密钥进行加密,并放入加密数据中。

4)将加密数据和加密后的密钥发送给接收端。

5)接收端在收到加密数据后,先用自己的私钥进行解密,得到发送端的私有密钥,然后利用该密钥对加密数据进行解密。

采用这种混合加密方案,既能保证了对称加密中对称密钥的安全传输问题,也保证了加密的速度。对于少量数据的传输,可以使用非对称机密。当传输大量数据时,使用非对称加密算法加密数据,将大大降低加密和解密的性能。当发送端和接收端传输大量数据时,我们先使用对称加密的方式加密传输数据,然后使用非对称加密方式加密对称密钥,最后加密后的加密密钥放在XML加密规范的Encrypted Key标签中,这样可以提高加密和解密的性能。

2.4 数据验证模块

消息完整性指发送端发送的内容,与接收端收到的内容一致,中途没有被篡改。不可否认是指发送的消息必须携带发送者的自身特征,而且这个特征应该是独有的,任何人都无法伪造的信息,以防止发送者在发出信息后再否认其发送行为。

在消息安全处理模块的设计中,消息的完整性由数字签名和密钥服务器来进行检测。数字签名是在公钥加密系统的基础上建立起来的,使用哈希函数功能进行计算。将发送的信息利用哈希函数功能进行加密,并在数据上计算生成数字签名,如果想要篡改原始信息,则必须从已知的哈希函数结果中推导出原信息来,根据目前的技术,想推导出原信息来,几乎是不可能的,从而有效保证信息在未做任何修改。

在保证发送消息完整性的同时,也要考虑到发送者一旦发出该消息,就要承担发送消息的后果及责任的承担,所以还需要有一个机制,使得发送者对发出的消息具有不可否认性。通常可采用对发送小心进行私钥加密的方法,来验证发送者合法身份的同时,也能够使得发送者对发送的消息无法抵赖。因为私钥理论上只有发送者本人才拥有,接收方可以利用信息中提供的公钥,对发送者的签名信息进行验证,如果生成的信息和发来的消息相同,则可以确定该消息的真是性,同时也保证了发送者对发送消息的不可否认性。

2.5 身份认证

身份认证主要是指在Web服务中,如何判断操作者的物理身份是否与其数字身份相符。目前采用的身份认证方法也非常多,主要有静态密码,动态口令,短信密码,智能卡识别,USB Key,虹膜识别等。

在各类安全处理模块的设计中,多数采用密钥加密服务和证书服务,注册自己的证书和密钥。在发送信息的过程中,首先用自己的私钥对消息进行加密签名,并在消息中公开其所持有的公钥信息。对方在接到消息之后,根据消息中的公钥信息和证书,对密钥信息进行验证,从而确认发送者的身份是否合法。

2.6 访问权限模块

要实现比较细致、动态的访问控制,通常可以采用基于属性的访问控制。因为这种访问控制进行的授权决策是根据Web服务请求者,提供者和环境的属性信息来进行判断的。具体操作的时候,可以把服务的请求者和提供者设计成属性的集合,Web服务访问控制通过对不同属性的识别,然后检测出满足要求的属性,从而确定改访问者是否拥有合法的操作权限。

针对不同的Web服务,分别建立对应的属性:

1)对Web服务请求者、提供者和环境建立属性集合,能够提高Web访问的精确性。

2)如果对服务请求者的设计一个属性集合,这样就能够直接访问该属性,并且还能够将访问控制的属性映射到相应的属性集合中。

3)如果Web服务是处于一个动态的环境中,服务请求者的身份的也随时发生变化,这种情况就必须设定请求者的属性信息,并且需要结合一定的规则,才能判断其身份的合法性。

3 总结

该文结合了网络安全相关技术以及安全规范,利用SOAP本身的具有的可扩展性,设计了一种基于消息层的Web服务安全模型,并且对该模型中主要功能模块进行了一系列可行性研究。

参考文献

[1]张东生.计算机网络安全技术与防范策略探析[J].电脑编程技巧与维护,2011,2.

[2]崔炜.网络安全技术分析与探讨[J].科技信息,2009,24.

[3]刘开南“.网络安全技术”实战案例教学研究[J].中国大学教学,2007,2.

[4]姜健.计算机通信网络安全与防护策略[J].科技资讯.2008,4.

基于消息的模型 篇3

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成正比,以操作的优先级别成正比,以累积信息处理量成反比。

因此队列的优先级别为:

其中Qi(Qi

4 结束语

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

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

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

参考文献

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

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

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

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

基于消息的模型 篇4

由于高的碰撞率 (collision rate) 和终端隐藏 (hidden-terminal) 使得VANET中的广播通信可靠性下降[3]。IEEE 802.11广播模型不采用RTS/CTS (request-to-send/clear-to-send) 的握手过程, 这是因为其假定消息发送者的通信范围内所有节点都是消息的接收者。因此, 潜在的隐藏终端的区域比802.11单播模型更广, 这会导致通信可靠性下降。

处理碰撞和终端隐藏问题的传统方法就是假定单跳场景 (single-hop scenario) , 并将些场景所获得的结果扩展到多跳场景。此方法不能有效处理碰撞和终端隐藏问题, 也无法获取系统的动态性能。文献[4, 5]基于上述假设进行VANET性能测量。例如, 文献[4]充分利用该假设评估单跳场景内的碰撞概率和吞吐量性能。

实际上, 在VANET中共存两类应用。为此文献[6]提出了分析VANET的两类应用的主要性能的理论模型。与其他方案不同, 该模型是基于多跳的角度, 而不是单跳, 能够获取系统的动态性能, 如终端隐藏活动。然而, 该模型将介质访问控制MAC (medium access control) 的退避时间 (backoff time) 作为消息的间隔时间 (inter-arrival time) , 降低了系统的性能。

为此, 本文首先引用IEEE 802.11 MAC协议作为广播模型, 仅当产生新的消息才出现backoff过程。在VANETs中, 广泛采用广播去分发安全消息, 将邻近的车辆作为目的节点, 减少了在MAC层处理时间。然而, 由于缺少RTC/CTS的握手连接以及消息确认环节, 使得通信更容易受到干扰, 降低了通信的可靠性。

将网络状态表示为 (n, k) , 其中n、k分别表示在backoff阶段, 低级 (low-priority) 传输并发数;低级 (low-priority) 消息数。因此, 依据二维马尔可夫过程 (2-D Markov process) , 提出传输消息数以及backoff过程模型。通过该模型能获取性能参数。在此, 仅关注在存有low-priority消息传输的情况下highpriority的端到端传输时延 (end-to-end delay) 。最后, 进行系统仿真, 并验证理念分析的正确性。

1 网络模型

考虑一维的VANET高速场景, 长度为R m。节点传输范围为d m, 并假定节点在传输期间, 节点是静止的。

依据文献[7]实验结论, 假定节点进入高速公路服从泊松分布, 参数为φ, φ表示每段高速公路有φ个节点。因此, 节点的位置服从均匀分布。将网络中的节点分为两种状态:忙、空闲。空闲节点表示该节点无消息传输, 忙节点表示该节点正在传输消息要或处于退避阶段 (backoff process) 。

考虑两类消息流量。第一类为低级 (low-priority) 流量, 其服从以参数λ0的泊松过程。λ0表示每秒每辆车的消息数[4,8]。假定只有空闲节点才产生新的消息, 因此, 每个节点等待传输的仅一条突出消息。定义λ作为泊松消息到达率, 即λ=φλ0。第二类为事件驱动高级消息 (event-driven high-priority messages) 。两类消息传输时间都服从指数分布, 参数为μ。

在任何特定时间, 并发传输的数目可将网络分为交替活动区域 (alternating activity) 和不活动区域。在活动区域内, 至少有一条正在传输的消息。定义干扰子区域IS (interference sub-region) , 其表示处于活动区域内的两个并发节点传输范围的重叠区域。只要目的节点不位于IS内, 就假定目的节点能正确接收消息。此外, 如果传输节点 (发送节点) 本身就处于IS内, 将此干扰称内部干扰IIF (internal interference) , 否则称为外部干扰EIF (external interference) 。

假定n个并发传输节点数, 则所有活动区域的平均长度为有h (n) 个干扰子区域, 分别如式 (1) 、式 (2) 所示。

式中, 表示n个并发传输活动区域的平均数, 即其中, Qm (n) 表示m (n) 的概率分布。Pc、Ph分别表示内部干扰、外面干扰的概率, 如式 (3) 、式 (4) 进行计算。

式中, P'c、P'h分别表示重叠概率, 可由式 (5) 、式 (6) 进行计算。

式 (5) 中, ξ表示竞争时隙 (contention time slot) 的持续时间。

2 分析模型

本小节, 为低级流量 (low-priority traffic) 通信提出理论模型。依据IEEE 802.11MAC广播模型, 空闲节点产生消息, 如果节点能在分发的帧时隙找到空闲的媒介就立即传输此消息, 否则就随机设定退避计算器, 并递减直到有空闲的媒介。因此, 任何到达处于活动区域的空闲节点的消息会引用退避的初始化, 而到达处于非活动区域的空闲节点的消息会立即传输。此外, 处于退避阶段的节点和位于活动区域的节点不能递减计算器。

图1显示在时间Δt内传输活动实例。如图1 (a) 所示, 节点1、3、7正在传输数据, 而节点2、4、6和8正在接收数据。节点4、6、8已在MAC层接收了数据, 正等待传输。然而, 由于处于活动区域, 它们需安排退避计数器。注意到图1 (a) , 节点2处于干扰区域。图1 (b) 显示了图1 (a) 经Δt后结果。从图1 (b) 可知, 节点3、7完成了它们的传输, 而节点1仍在传输。节点5已接收了消息并开始传输。此外, 节点4、8检测到空闲的媒介并开始递减退避计算器, 而节点6仍检测到媒介是忙, 因此节点6的退避计算器仍处于不工作状态。

设置退避竞争窗口尺寸为ω、退避时隙的持续时间 (duration) 为α。

(1) 一条新的消息到达处于活动区域的空闲节点的MAC层时, 网络状态将从 (n, k) 变为 (n, k+1) 。活动区域内每米的空闲节点数可表示为。因此, 处于活动区域的空闲节点数可表示为。到达空闲节点MAC层的消息率 (消息/s) 可表示

(2) 当一条新消息到达处于非活动区域的节点MAC层时, 网络状态将从 (n, k) 变为 (n+1, k) 。由于处于非活动区域内的节点不能传输消息, 非活动区域内每米空闲节点数可表示为φ-k/R。网络内非活动区域平均长度为非活动区域内空闲节点数目为。因此, 非活动区域内节点产生消息率可表示为

(3) 当消息传输完成后, 网络的状态由 (n, k) 变为 (n-1, k) 。若传输的消息为n, 则消息传输率则为nμ。

(4) 若在非活动区域完成了消息退避, 网络的状态从 (n, k) 变为 (n+1, k-1) 。

如果出现下列四种情况的任何一种, 网络将进行 (n, k) 状态。

(1) 在网络状态为 (n+1, k) 下完成了某条消息传输, 状态变为 (n, k) 。

(2) 在网络状态为 (n, k-1) 下, 一条新消息到达活动区域的MAC层, 状态变为 (n, k) 。

(3) 在网络状态为 (n-1, k) 下, 一条新消息到达非活动区域的MAC层, 状态变为 (n, k) 。

(4) 在网络状态 (n-1, k+1) 下, 在非活动区域完成了一条消息退避, 状态为 (n, k) 。

接下来, 设定pn, k (n, k) 表示网络状态 (n, k) 处于稳定状态的联合概率。利用2-D马尔柯夫过程 (Markov process) 进行描述, 如式 (7) 所示。

式 (7) 中nmax、kmax分别表示消息在传输阶段、退避阶段的上限。

依据给定的传输率, 可得稳定状态全局等式, 如式 (8) 所示。

式 (8) 表示nmax×kmax平衡方程组, 通过该方程组求解nmax×kmax联合概率。然而, 此方法不具有可操作性, 因为nmax×kmax太大。为此, 选用另一种方法求解。

设定条件概率pn|k (n|k) 表示在退避阶段有k条消息的条件下有n个并发传输的概率, 反之亦然, pk|n (k|n) 。接下来, 在状态 (n, k) 下, 定义下列符号:

(1) an|k (n) :并发传输数量的生率BR (birth rate) 。

(2) bn|k (n) :并发传输数量的灭率DR (death rate) 。

(3) ak|n (k) :处于退避阶段的消息数量的生率BR (Birth rate) ;

(4) bk|n (k) :处于退避阶段的消息数量的灭率DR (death rate) 。

依据式 (8) , 可分别得到式 (9) ~式 (12) ,

依据文献[9]的算法, 可得式 (13) 和式 (14) :

通过求解不等式获取并发传输的最大值nmax。接下来, 假定kmax=nmax=max (kmax, nmax) , pk (k) 、pn (n) 分别表示n、k的边缘分布 (marginal distributions) , 则相应的全概率分别如式 (15) 、式 (16) 所示。

为了计算边缘分布, 以矩阵的形式扩展上述方程组。定义nmax×nmax矩阵Pn|k, 该矩阵的第n行、第k列元素为pn|k (n|k) 。同时, 定义nmax×nmax矩阵Pk|n, 该矩阵的第n行、第k列元素为pk|n (k|n) 。因此, n、k的边缘分布矢量Pn、Pk。依据式 (15) 和式 (16) , 可得:

接下来, 分别表示n、k的平均数, 即

式 (22) 中, pn (i) 、pk (j) 分别表示Pn、Pk的第i、j元素。

最后, 可得联系概率:

3 High-Priority消息分发时延分析

本节, 将分析针对事件驱动安全流量的消息分发平均时延。由于high-priority流量属事件驱动型的, 不是频繁地产生, 可假定转发high-priority消息的节点将经历low-priority流量, 如式 (9) 所示的an|k (n) 。由于节点服从均匀分布, 可得low-priority传输的间隔时间的概论密度函数PDF (probability density function) , 如式 (22) 所示。

式 (22) 中, 2d表示high-priority转发节点的传输范围[10]。在时隙α内, 在转发节点的通信范围内无新low-priority传输的概率为Ps (n, k) , 结合式 (22) 可得。将Ps作为Ps (n, k) 无条件概率, 可得

接下来, 分析第h个中间节点的传输时延。由于第h个中间节点是从第h-1个中间节点收到high-priority消息, 其不可能处于活动区域, 该节点在DIFS (distributed interframe space) 时期一直监测媒介。因此, 它以概率Ps找到空闲的媒介, 并于下一个时隙传输。在这种情况下, 转发时延为α+, 为平均传输时延, =1/μ。换而言之, 该节点以概率1-Ps监测到媒介忙, 为此, 它必须等待正在传输消息以及退避阶段完成后, 才开始传输。因此, 转发时延为:0.5α++E[backoff time]+。第h个转发节点的平均时延可表示为

接下来, 分析式 (24) 中的E[backoff time]的值。不失一般性, 假定high-priority与low-priority的退避窗口尺寸一样。第h个转发节点选择的退避值为i, 且i=0, 1, …, ω-1。

接下来, 讨论源节点 (h=1) 的安全消息传输时延。当源节点产生了high-priority消息, 其可能处于活动区域。假定该事件概率为Pi。在这种情况下, 源节点随机设置其backoff值, 并等待空闲的媒介。由于在活动区域内high-priority消息到达呈均匀分布, 源节点等待空闲媒介的平均等待时间为0.5。如果源节点不在活动区域, 其产生的时延如式 (24) 所示。

因此, 源节点所产生的平均传输时延可表示为

式 (26) 中, 依据文献[11], 可得

最后, H跳的通信传输所产生的总的时延如式 (27) 所示。

4 仿真与分析

利用MATLAB软件构建事件驱动 (event-driven) 仿真平台。针对两类消息, 引用IEEE 802.11p MAC协议, 并结合文献[11]所述的移动模型。该移动模型假定车辆到达服从泊松分布, 参数为ρ (车/s) 。道路为单向的高速公路, 长度为R (m) 。节点以随机性的时间间隔移动, 将此移动间隔称为移动时元mobility epoch, 其服从指数分布, 参数为δ。在每个时元内, 节点以恒速移动, 数值从高斯分布G (η, σ2) 选取。

该模型能准确获取高速网络内车辆移动的主要特性[12], 具体的仿真参数如表1所示。网络节点密度为车辆/m, 相应地节点到达率ρ=2.73车辆/s。在仿真过程中, 考虑三类消息到达率, 即λ0=10, 20, 30。因此,

依据式 (19) 、式 (20) , 图2显示了并发传输平均数和退避阶段的消息平均数。从图2可知, 随着传输范围的增加, 随之减少, 而随之下降。此外, 当传输范围一定时, 消息到达率λ的增加随之增加。

依据式 (31) , 图3、图4显示了在H=5跳的high-priority消息传输时延。图3显示了分发时延随传输范围d的变化情况, 以传输范围d为变量, 以消息到达率λ为参数。而图4是以消息到达率λ为变量, 以传输范围d为参数。从图3、4可知, 传输时延随λ、d的增加而增加。然而, 图3与图4的曲线增长趋势不同, 从图3可知, 传输时延随传输范围d呈线性增加, 而从图4可知, 传输时延随λ增加曲线具有更陡的坡。这个结果有利于设置最大的传输范围。例如, 当λ=3, d=700时, 平均转发时延约500 ms, 即5跳通信产生了500 ms的延时, 也就相当于一跳产生100 ms延时。依据DSRC[11]所规定的, 对于安全消息可接受的最长传输时延为100ms。因此, 为了确保通信的可靠性, 传输范围就不能大于700 m。此外, 如图4所示, 在d=800, λ=2.7, 传输时延大于500 ms。因此, 应当减少传输时延以保证传输的可靠性。

5 总结

周期性的消息和事件驱动性消息应用具有不同的优先级, VANETs在部署时应当考虑这点。为此, 通过利用IEEE 802.11 MAC协议广播安全消息, 推导出在传输和退避阶段的低级消息数目的联合概率。提出的模型具有普及性, 能够用于基于高速场景的VANETs不同性能测量与分析。通过分析, 推导了高级消息的多跳时延, 也验证了网络连接率随传输范围增加而增加这一普识。传输范围的增加, 提升了消息的退避时间, 从而导致高的多跳传输时延。因此, 必须在传输范围与端到端传输时延之间进行合适的折衷, 特别是事件驱动型消息, 其对传输时延相当敏感。此外, 为了瞬时的高级流量 (highprioirty) , 频繁的低级消息应用应当满足高级消息的传输时延下限。正如前面所提及的, 为了适应IEEE802.11p性能要求, 为高级消息考虑了较小的竞争窗口, 使其能获取最优值。

摘要:在车载网 (vehicular ad hoc networks, VANETs) 中将源节点通信范围内的所有节点看作目的节点, 在介质访问层耗时很小, 因此, 常采用广播通信技术分发VANETs的安全消息。然而, 广播通信缺乏请求发送RTS/清除发送CTS (request-tosend/clear-to-send) 握手连接环节以及数据包确认机制, 通信易受干扰, 促使通信可靠性下降。为此, 提出VANETs中安全消息分发性能评估模型。该模型假定VANETs具有两类级别消息。此外, 考虑IEEE 802.11广播协议并使用二维马尔可夫模型 (2-D Markov modeling) , 推导了低级周期性消息LPPMs (low-priority periodic messages) 在传输模式和退避阶段的数目的联合概率分布, 并利用该联合概率分布推导出高级事件驱动型消息LPEMs (high-priority event-driven messages) 的平均传输时延, 其有利于网络参数间折衷, 如车辆传输范围、安全消息产生率以及介质访问控制MAC (medium access control) 参数, 通过合适地选择参数, 使其满足LPEMs对延时的高要求。

关键词:周期消息,事件驱动型消息,介质访问层,性能分析,车载网

参考文献

[1] Mershad K, Artail H, Gerla M.We can deliver messages to far vehicles, ”IEEE Trans Intell Transp Syst, 2012;13 (3) :1009—1115

[2] An N, Gaugel T, Hartenstein H.VANET:is 95%probability of packet reception safe.Proc Int Conf ITST, 2011:113—119

[3] Sikdar B.Comparison of broadcasting schemes for infrastructure to vehicular communications, IEEE Trans Intell Transp Syst, 2012;13 (2) :492—502

[4] Eichler S.Performance evaluation of the IEEE 802.11p WAVE communication standard.Proc 66th IEEE VTC, Baltimore, 2007:2199—2203

[5] Sahoo J, Wu E H, Sahu P K, et al.Binary-partition-assisted MAClayer broadcast for emergencymessage dissemination in VANETs.IEEE Trans Intell Transp Syst, 2011;29 (1) :61—71

[6] Khabazian M, Assa S, Mehmet-Ali M.Performance modeling of message dissemination in vehicular ad hoc networks with priority.IEEE J Sel Areas Commun, 2011;29 (1) :61—71

[7] Wisitpongpham N, Bai F, Mudalige P, et al.Routing in sparse vehicular ad hoc wireless networks.IEEE J Sel Areas Commun, 2007:25 (8) :1538—1556

[8] Zhang W.Analysis of packet forwarding in VANETs using probabilistic channel model.Proc 69th IEEE VTC, Barcelona, Spain, 2009:1 —5

[9] Hayes J F, Ganesh Babu T V J.Modeling and analysis of telecommunications networks.Oriental Journal of Computer Science and Technology, 2013;6 (1) :67—70

[10] Henty B E, Stancil D D.Dedicated short-range Communication (DSRC) Working Group, 2007, Available:http://grouper.ieee.org/groups/index.html

[11] Khabazian M, Mehmet Ali M.A performance modeling of connectivity in vehicular ad hoc networks.IEEE Trans Veh Technol, 2008;57 (40) :2440—2450

一种web服务消息级安全模型 篇5

一、传输级安全与消息级安全的比较

从web service安全保障的处理层面来说, 传输级安全与消息级安全是两大主要的保障机制。

传输级安全主要是使用SSL来保障传输通道的安全, 然而这种安全具有如下局限性:

1、没有解决身份认证的问题, 必须结合其他机制, 才能处理认证问题。

2、传输级安全针对整个通道加密, 必然影响系统性能。

3、SSL是一个点到点 (point-to-point) 的安全协议, 不适合端到端 (end-to-end) 的拓扑结构, 在端到端的结构中, 消息需要通过网关等设备进行传送。

而对于消息级安全, 安全限制被运用于消息本身而非传输通道, 可以在很大程度上提高操作效率;同时消息级安全在web service的通信协议 (SOAP) 之上实现, 也满足了端到端应用的需求;另外, 消息级安全作用于web service的数据格式 (XML) 之上, 扩展性、灵活性等都是与生俱来的。

二、消息级安全模型设计思路

2.1 web service的通信格式

在应用层, web service采用SOAP (简单对象访问协议) 作为其通信协议 (SOAP协议可以承载在http, stmp等具体的应用层通信协议之上) , SOAP消息的格式十分简洁:由Envelope元素包含header和body元素, 其中header元素和body元素又分别包含若干子元素, Header元素为可选元素, 用于存放控制或者辅助信息, Body元素用于存放具体的数据以及错误信息。

2.2利用SOAP Header对消息进行责任链式安全处理

在实际的应用系统中, 对系统安全性的要求是多种多样的, 并且可能是经常变化的, SOAP提供的一组可选的Header信息正好可用来存放访问控制、加密算法等相关安全信息;同时考虑到SOAP消息在端到端之间进行传递时, 可以为用户提供在发送、接收消息过程中解析、处理Header信息的机制, 所以完全可以设计一种针对web service的, 责任链 (Chain of Responsibility) 模式的消息级安全模型, 在适当的时机截取SOAP消息, 利用功能独立、相互之间松散耦合的消息处理类构建起消息处理的责任链, 按照既定的顺序去处理不同的Header信息中存放的web service安全信息, 从而达到保障web service安全的最终目的。图1展示了模型的消息处理机制和消息处理过程。

目前, 围绕web service安全性, 已经有了很多的相关技术和标准, 但是不管使用什么技术, 要使信息能够安全到达对方, 必须对信息进行安全处理, 责任链式的消息级安全模型可以在客户端发送信息之前对信息进行处理 (如加密或者签名) , 然后将消息再发送出去;在服务端接收信息之前进行逆向或者验证处理 (如解密或者验签) , 再将消息派发到目标服务 (同时也可以在服务端返回响应的时候做类似操作以保证端到端消息通道的双向安全性) , 从而达到对web service消息进行安全控制的目的。

三、模型在主流SOAP框架下的实现思路

目前, 主流的SOAP框架主要有Apache Axis和Codehaus xfire, 虽然由于简单易用和处理效率高等原因, xfire有后来居上的势头, 但是两者均能实现本文所描述的责任链式消息级安全模型。下文以一个简单的、通过hash算法验证消息完整性的实际应用场景来描述模型在axis框架下的实现。

3.1总体设计

按照上文图1体现的消息处理机制, 设计四个处理对象 (每个对象都实现BasicHandler抽象类, 通过抽象方法invoke来对消息进行处理) 以在客户端请求组装, 服务端接收请求, 服务端响应组装和客户端响应接收四个时机对消息进行处理, 而实际上, 通过上文图1可以看出, 每个时机上的handler是可以有多个的, 所以该模型能够随时通过在每个时机上添加新的、功能独立的handler来完成新的安全限制, 以应对应用系统不断变化的安全需求。

3.2具体实现代码片断

※客户端的具体实现片断

※服务端的具体实现片断

服务端收到客户端的请求之后, 从body中取得业务数据的内容, 根据事先约定好的算法对其进行hash运算, 然后将运算结果与header中存放的hash结果进行比对, 比对通过就进行后继步骤, 不通过就返回错误即可。从代码结构上来说与客户端的代码结构基本一致, 从配置文件的内容来看与客户端的配置也大致类似, 这里就不给出具体的代码和配置文件的片段了。

需要说明的是:上述代码片断只描述了消息传递的一个单边的过程, 即客户端组装请求、发送请求, 到服务端接收并处理请求的过程, 至于另一边服务端组装响应、发送响应、客户端接受并处理响应的过程在安全处理方面是类似的。

四、结束语

本文提出的消息级安全模型, 完全支持现有的与web service消息级安全相关的各类技术和标准 (如WS-Security, XML Digital Signature等) , 相对于传输级安全具有更高的操作效率和更广的应用范围, 而且其松散耦合的结构特点使得其能够被很方便的扩展以满足各类不同的安全需求。另外, 该模型能够在现有主流的SOAP框架下实现, 充分表明了该模型实际应用的可行性和使用价值。

参考文献

[1]Martin R C.敏捷软件开发:原则、模式与实践[M].邓辉, 译.北京:清华大学出版社.2003.

基于消息的模型 篇6

在web应用中, 客户端和服务器之间要进行消息的相互交流, 这就需要借助消息管理机制, 提高对消息的管理水平。在实际的应用中, 对于消息的管理主要是由服务器来承担的, 这就对用户以及开发人员造成了一定的限制。在web的实际应用中, 对历史记录的管理仅仅限于服务器, 因此当请求被服务器清除时, 用户对消息的就无法进行重现, 并且在实际的应用中, 存在着消息管理机制不完善和可操作性差的问题, 进而难以满足用户对消息管理的要求。因此, 为了实现对消息的科学性管理, 需要结合Java Script进行消息机制的建设, 进而实现消息的可定制性, 同时为开发人员提供充分的机会对消息的类型进行自定义, 并对消息的细节进行处理, 加强低历史消息的查询和处理。同时基于Java Script的消息管理机制是组件化的, 可以在Web应用中可以对其进行任意装载同时具有较大的独立性, 因此不会对其他方面造成影响。

1 消息机制的模型

在web应用中要实现对消息管理机制的建立, 需要借助一定的消息机制的模型, 对数据的整个生命周期进行管理。在消息管理机制中, 主要包括着四个部分, 各个部分之间相互结合、相互协调, 并且共同致力于对数据消息的管理。

1.1 基础管理

基础管理部分主要是负责对基础信息的管理, 主要分属为四个子模块, 包括类型管理、消息完整性验证、消息内容的设置以及消息的状态处理, 并且这四个子模块之间是相互依赖的, 共同作用实现对信息的基本管理。

1.2 产生器

产生器主要是负责消息的产生, 对消息的产生进行管理, 因为在实际的应用中, 会出现产生的消息不规范的现象, 因此需要借助产生器对消息进行相应的管理, 这就需要借助消息管理器。消息管理器对消息起着管理的作用, 并保证通过消息管理器接口的消息都是规范的符合规定要求并且可以通过验证的消息。

1.3 分派器

消息管理器是针对于规范消息而言的, 对消息输出接口的管理需要借助消息产生器, 即消息分派器就是消息的接收接口, 一方面可以实现对外界消息的接收, 另一方面还可以在接收到信息以后, 根据消息的特征和类型进行分派, 分派到指定的服务器。

1.4 服务器组

消息处理服务器是针对消息处理而言的, 属于客户端的机制, 并且多个这样的服务器共同构成了服务器组, 进而实现对不同的类型和功能消息的管理, 同时该服务器组对消息的处理不是静态的, 而是开发人员进行的动态的添加管理。在对一个购物平台进行管理时, 需要从两个方面着手, 即用户的管理以及购物的管理, 这样就需要对消息服务器的数量进行设定, 保证其数量在两个以上, 不仅用于对用户管理模块产生的消息的管理, 还支持购物管理模块的工作。可见, 在消息管理器中, 服务器是核心和关键, 对消息的管理起到了积极的促进作用, 主要借助三个主要的子模块, 即消息的队列、消息的存储以及消息的处理。在这一信息处理平台中, 每一个消息服务器的子模块是一个独立的个体, 相互之前不受到影响和干扰。与此同时, 消息队列以及消息存储提供了容量定制接口, 消息处理提供的是处理细节的定制接口。

1.5 消息机制工作流程

在消息机制的运行中, 通常包括四个子模块, 各个模块之间相互协作, 共同致力于消息的管理工作, 其流程主要包括以下几点:首先, 需要借助消息类型管理器定制判定消息的类型, 对头消息和消息体的属性进行设定, 对于消息头中的属性, 不能够进行删除处理, 但对于消息体可以进行自由的定制。其次, 借助服务器组进行接口服务器的工作, 对消息的服务器的消息队列长度进行自定义, 并对消息的存储容量以及处理方法进行确定, 在确定的过程中要结合消息的特点, 进而选择合适的消息队列长度和处理方法, 提高对消息管理的科学性。再次, 需要借助消息产生器对产生符合要求的消息类型, 并对消息的内容进行有效的填充。最后, 消息服务器接收到消息以后, 进入消息服务的流程, 与上述的服务流程一致。

2 基于Java Script的消息管理机制实现

在web的应用中, 对消息的管理是一个关键环节, 也是提高服务质量, 满足用户需求的必然选择, 因此需要加强对先进的信息技术和网络技术的应用, 提高消息管理机制的科学性, 进而提高其管理水平, 推动web的广泛应用。

2.1 消息机制子模块分析

在消息管理机制的子模块中, 基础管理类属于子模块的集合类, 包括实现了类型管理的Type Manager类——包括增、删、查接口, 实现了检验器的Cheek Box类——包括完整性和有效性验证接口, 实现了设置器的Setup类——包括消息头和消息体设置接口, 实现了激活器的Activator类——包括激活和灭活接口。对于消息的产生类而言, 主要是为提供了获得新的消息的方法。对应的服务器类为Server, 主要提供了服务器执行流程的模版接口, 具体的功能实现都是通过调用服务器3个子模块, 即消息队列、消息存储、消息处理的相应方法。Server包含的消息队列对应于Message Quene类, 使用循环队列实现;消息存储对应Storage类, 使用循环栈实现, 并且提供查询历史请求的接口;消息处理对应于Processor类, 核心属性为执行器状态属性busy, 自动结束执行属性auto Finish。当前正在处理的消息current Message, 消息的处理方法大多数时候使用消息管理器时都需要自定义消息处理方法, 实际上都是自定义该方法。

2.2 消息管理器

在基于Java Script的消息管理机制中, 消息管理器处于最外层, web开发的工作人员可以对消息管理器进行直接的接触, 并把消息管理机制的各个模块进行调节, 以便满足对消息管理的要求。在对消息管理器进行应用时, 需要结合消息的类型和特点, 选择合适的消息机制管理方法, 并对消息管理器的状态图进行明确的显示, 以便为消息的管理提供指导和依据, 进而为消息管理创造有利的条件。

3 对基于Java Script的消息管理机制的测试

在对消息管理器进行建模和分析后, 需要建立消息管理机制对消息进行管理, 同时为了提高管理机制的科学性和可行性, 需要对消息管理机制进行实验和测试, 主要是对消息管理器进行设置和运行测试。

3.1 消息管理器设置

以“student”这一文件为例, 就消息的类型进行分析后得出, 该消息头为默认消息头定制, 并且消息体中包含着多个属性, 如“name”、“age”、“sex”、“grade”和“class Id”。

对于新增的以school为名称的消息服务器而言, 将设定消息队列长度以及消息的存储容为2, 对消息的自动处理属性进行关闭, 并且将其设置为打印消息的内容。

3.2 消息管理器的运行

在对子消息进行处理时, 第一个完成处理工作以后, 相应的第二个也进入了消息处理阶段, 而其他的就处于消息的对队列中, 这时可以对消息服务器的状态进行显示和打印。一般而言, 消息服务器组由默认的服务器以及自定制的服务器组成, 该消息管理器对于查询消息的执行工作正常, 状态图中表现为存储器的“current”标签移动, 同时消息队列加入了查询的对应消息。

可见, 对消息管理机制进行测试以后, 可以提高消息管理器的工作效率和准确性, 进而满足了用户对消息的要求, 提高了消息管理的质量, 使消息管理向着规范化、自动化和安全化的方向发展。

4 结束语

综上所述, 基于Java Script的消息管理机制是满足用户需求的机制, 对提高消息管理的水平, 提高消息的质量起到了积极的促进作用。在实际的应用中, 该消息管理机制具有明显的优势, 主要表现在实现了轻量级, 客户端可以在不安装任何插件的条件下应用, 并且不会对传输的效率造成影响。其次, 具有很大的灵活性, 灵活性, 可以由Web应用开发人员自主定制, 满足各种消息类型以及对消息的处理的不同需求;可回访, 提供的存储器支持查询操作, 可改变存储器的读写位置;构件化, 可以任意装载, 相对独立, 需要在消息队列中加入按优先级排序的支持。该消息机制为进一步开发完善Web应用中客户端消息管理机制提供了参考方向。

摘要:随着信息技术的发展和进步, 对消息的管理越来越受到人们的重视, 因此需要加强对消息管理机制的研究, 提高消息管理的水平, 为用户提供可靠安全的消息。本文笔者利用JavaScript来进行消息管理机制的建设, 目的是对消息的管理提供指导和借鉴。通过建立数据模型, 对数据进行分析, 进而改进消息管理机制为, 为用户提供更加优质的服务。

关键词:JavaScript,消息管理器,机制,Web应用

参考文献

[1]舒红霞, 王继红.分布式实时操作系统消息机制的设计与实现[J].计算机工程与设计, 2008 (09)

[2]王治, 姜浩.工作流系统中消息机制的分析和实现[J].计算机工程与设计, 2009 (11)

[3]彭竑, 赵曦滨, 雍建平.基于消息机制的异构系统集成方案[J].计算机应用研究, 2012 (08)

[4]贺理, 吴健, 贾彦民.基于JavaScript的浏览器端调用Web服务研究与实现[J].中国科学院研究生院学报, 2007, 24 (06)

[5]张云帆.JavaScript闭包技术及IE内存泄漏分析[J].电脑知识与技术, 2008 (35)

基于JMS的OSPV消息实现 篇7

Java Message Service规范声称:JMS是一组接口和相关语义,它定义了JMS客户如何访问企业消息产品的功能。

JMS可移植性的关键在于:JMS API是由Sun作为一组接口而提供的,JMS功能的产品是通过提供一个实现这些接口的提供者来完成的。开发人员可以通过定义一组消息和一组交换这些消息的客户机应用程序建立JMS应用程序。

JMS支持消息中间件的两种传递模式:点到点模式和发布-订阅模式,它允许客户机可以在两个模式中发送和接收消息,这些“模式无关的接口”保留了每一个模式的语义和行为,是实现JMS客户机的最好选择。

统一模式的好处:

1)使得用于客户机的编程更简单;

2)队列和主题的操作可以是同一事务的一部分;

3)为JMS提供者提供了优化其实现的机会;

2 JMS体系结构

2.1 JMS接口描述

JMS支持两种消息类型PTP和Pub/Sub,分别称作:PTP Domain和Pub/Sub Domain,这两种接口都继承统一的JMS Parent接口,JMS主要接口如下所示:

以下是对这些接口的简单描述:

1)ConnectionFactory:连接工厂,JMS用它创建连接;

2)Connection:JMS客户端到JMS Provider的连接;

3)Destination:消息的目的地;

4)Session:一个发送或接收消息的线程;

5)MessageProducer:由Session对象创建的用来发送消息的对象;

6)MessageConsumer:由Session对象创建的用来接收消息的对象;

2.2 JMS消息模型

JMS消息由以下几部分组成:消息头,属性,消息体。

1)消息头(header):JMS消息头包含了许多字段,它们是消息发送后由JMS提供者或消息发送者产生,用来表示消息、设置优先权和失效时间等等,并且为消息确定路由。

2)属性(property):由消息发送者产生,用来添加删除消息头以外的附加信息。

3)消息体(body):由消息发送者产生,JMS中定义了5种消息体:ByteMessage、MapMessage、ObjectMessage、StreamMessage和TextMessage。

2.3 JMS编程实践

广义上说,一个JMS应用是几个JMS客户端交换消息,开发JMS客户端应用由以下几步构成:

1)用JNDI得到ConnectionFactory对象;

2)用JNDI得到目标队列或主题对象,即Destination对象;

3)用ConnectionFactory创建Connection对象;

4)用Connection对象创建一个或多个JMS Session;

5)用Session和Destination创建MessageProducer和MessageConsumer;

6)通知Connection开始传递消息。

2.4 OS下的P操作-消息生产者编程

消息生产者程序如下:

2.5 OS下的V操作-消息消费者编程

消息消费者程序如下:

3 结束语

消息中间件自从产生以来发展迅速,在分布式联机事务处理环境中,它担当通讯资源管理器(CRM)的角色,为分布式应用提供实时、高效、可靠的、跨越不同操作系统、不同网络的消息传递服务,同时消息中间件减少了开发跨平台应用程序的复杂性。在要求可靠传输的系统中可以利用消息中间件作为一个通讯平台,向应用提供可靠传输功能来传递消息和文件。利用JMS技术实现的PV操作,即通过这一消息传递服务机制,作为对临界资源进行管理的一个事例,从而解决网络传输过程中对临界资源的竞争问题,而且考虑到网络传输状态下对速度的要求比较高,通过利用BUFFER来对消息进行缓存,达到网络限制状态下的传递性。

参考文献

[1]李华琰,郭英奎.Java中间件开发技术[M].北京:中国水利水电出版社,2005.

[2]刘特.J2EE EJB应用编程实例[M].北京:清华大学出版社,2003.

[3]姚刚.基于JMS的消息中间件的研究和设计[D].长沙:长沙理工大学,2006.

[4]Craig.Berry,John Carnell,MatJaz B,et al.J2EE Design Patterns Applied[M].Wrox,2003.

[5]李华飚,等.精通Java中间件编程[M].北京:中国水利水电出版社,2003.

[6]杨绍方,等.深入掌握J2EE编程技术[M].北京:科学出版社,2002.

上一篇:地理信息元数据下一篇:军队会计管理体制