基于ASP的Web程序中MSMQ消息传递技术的应用

来源 :硅谷 | 被引量 : 0次 | 上传用户:lsp110
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]针对基于ASP开发的Web应用,比如网络教学系统,学生作业等大量信息传递时存在的系统“拥堵”问题,提出应用MSMQ技术的解决方案,以及在ASP应用程序中队列的建立、消息发送、消息读取的实现方法。
  [关键词]Web应用 网络教学系统 消息队列 异步消息传递 ASP
  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0520043-01
  
  ASP开发的应用系统,在大量并发用户访问时,如网络教学系统中大量学生作业的上交,常常会遇到这些情况:某个ASP程序花费了过长的时间而过期或服务器上阻塞了大量的死队列,导致访问失败。此类问题我们可以使用MSMQ技术进行解决。
  
  一、什么是Microsoft Message Queue
  
  MSMQ(MicroSoft Message Queue,微软消息队列)是运行在Windows NT的服务,可以使用“添加/删除程序”中的“添加/删除Windows组件”安装。MSMQ是在多个不同的应用之间实现相互通信的一种异步传输模式。相互通信的应用可以分布于同一台机器上,也可以分布于网络中的任一位置,通信的双方可以是不同的物理平台。MSMQ的实现原理是:消息的发送者把自己想要发送的信息放入一个容器中(我们称之为Message),然后把它保存至一个系统公用空间的消息队列(Message Queue)中;本地或者异地的消息接收程序再从该队列中取出发给它的消息进行处理。这些队列能够确保MSMQ的传送,而不管当前网络连接的状况如何。在基于ASP的应用,消息的发送者通常是IIS。
  采用MSMQ的好处是:由于是异步通信,无论是发送方还是接收方都不用等待对方返回成功消息,只要消息成功发送出去,就可以认为处理完成,就可以执行余下的代码,同时信息发送机制还具有一定的故障恢复能力,因而大大地提高了事务处理的能力。
  MSMQ有一个COM API(mqoa.dll)提供给开发者用于ASP应用程序的开发中。其中最常用的三个类为:MSMQQueueInfo、MSMQQueue、MSMQMessage。
  (1)MSMQQueueInfo类用来新建、打开、删除队列中的消息。(2)MSMQQueue类用来描述一个在MSMQ服务中打开的队列。(3)MSMQMessage类支持队列中消息的所有属性和方法。属性:Body和LabeL设定获取消息的方式有:同步方式或异步方式。常用方法:Send、Opening、Peeking。
  
  二、如何在ASP开发教学辅助系统中应用MSMQ技术
  
  首先通过MSMQQueueInfo类建立一本地消息队列,保存在“.\StuQueu
  E”中,学生通过MSMQMessage类向队列中发送消息(学生作业等),教师通过MSMQQueueInfo类读取消息队列中的作业内容进行相应的处理。如图2-1所示。
  


  1.队列的建立:设置队列的位置PathName,打开队列时有两个参数:Access 和 ShareMode。Access表示将要对队列执行什么操作,其中MQ_PEEK_ACCESS用来在特定的队列中查找消息,但对该消息不进行操作。MQ_RECEIVE_ACCESS用来在读取队列中的消息后删除它。MQ_SEND_ACCESS 用来在队列中发送消息,但不接收消息。
  <%Dim objQueueInfo
  Dim objQueue
  Set objQueueInfo=Server.CreateObject("MSMQ.MSMQQueueInfo")
  objQueue.PathName = ".\StuQueue"'设置本地队列的位置
  Set objQueue = objQueueInfo.Open(MQ_SEND_ACCESS,MQ_DENY_NONE)
  %>
  2.向队列中发送消息:
  < % Dim objQInfo
  Dim objQSend
  Dim objMessage
  Dim strMessage
  Set objQInfo = Server.CreateObject("MSMQ.MSMQQueueInfo")
  objQInfo.PathName = ".\StuQueue" 设置本地队列的位置
  Set objQSend = objQInfo.Open(MQ_SEND_ACCESS,MQ_DENY_NONE)
  Set objMessage = Server.CreateObject("MSMQ.MSMQMessage")
  ......[省略若干行]
  objMessage.Body = strMessage '设定要发送的消息(学生作业)
  objMessage.Send objQSend'讲学生作业发送到队列objQSend
  ......[省略若干行]
  objQSend.Close
  Set objQInfo = Nothing
  Set objQSend = Nothing
  Set objMessage = Nothing
  %>
  3.从队列读取消息:
  <% Dim objQInfo
  Dim objMessage
  Dim objQReceive
  Set objQInfo = Server.CreateObject("MSMQ.MSMQQueueInfo")
  objQInfo.PathName = ".\StuQueue" '设置本地队列的位置
  Set objQReceive = objQInfo.Open(MQ_RECEIVE_ACCESS, MQ_DENY_NONE)
  Do while Not objMessage Is Nothing
  Set objMessage = objQReceive.Receive(, , , 1000)'设置超时时长为1000ms
  Response.Write objMessage.Body'分别读取并显示队列中消息的内容
  Loop
  objQReceive.Close
  Set objQInfo = Nothing
  Set objQReceive = Nothing
  Set objMessage = Nothing
  %>
  
  三、结论
  
  本文所给出的在ASP应用开发中采用MSMQ技术的异步Web服务模型,很好地解决了异步消息传递,为通信双方提供了松散的异步交互环境,该模型为网络教学系统中大量非实时的数据传输和处理带来了很好的可靠性和灵活性。很好地解决了由于ASP程序运行超时和服务器等待而导致的访问失败。
  
  作者简介:
  辛士光,工学硕士,主研方向:网络和数据库、计算机基础教学。
其他文献
[摘要]研究交联剂DB对丁腈橡胶/聚氯乙烯共混物性能的影响。结果表明,交联剂DB的加入,使NBR/PVC共混物的正硫化时间、最低扭矩和最高扭矩增大,同时缩短焦烧时间。当交联剂DB用量为2.0份时,共混物具有较好的力学性能。适当增加交联剂DB用量,可以提高NBR/PVC共混物的耐热老化性能的耐油性能。  [关键词]交联剂 丁腈橡胶 聚氯乙烯  中图分类号:O69文献标识码:A文章编号:1671-75
期刊
[摘要]首先探讨船舶积灰燃烧的原因,之后进行实例分析。还对船舶积灰燃烧提出相应的解决措施,供同行参考。  [关键词]船舶内燃机 积灰燃烧 原因 对策  中图分类号:TK4文献标识码:A文章编号:1671-7597(2009)0810121-01    一、船舶积灰燃烧的原因  (一)烟道可燃物的产生。内燃机所用的燃料不完全燃烧的产物含有碳、硫化物等,它可以再燃.供给船舶的燃油品种有很多,其燃料的物
期刊
[摘要]介绍一种基于CAN Bus的网络传感器测控系统的总体设计方案,并详细的阐述该系统的硬件电路结构和系统软件的设计。实际应用表明,该系统具有可靠性高,实时性强,扩展容易等应用优势。  [关键词]CAN Bus 网络传感器 测控系统  中图分类号:TP7文献标识码:A文章编号:1671-7597(2009)0520010-02    一、引言    随着现代信息技术的高速发展,自动化控制和仪器仪
期刊
[摘要]讨论IT商业价值研究的研究范围,并结合IT商业价值模型从竞争环境和宏观环境两个方面对已有的研究文献进行总结。  [关键词]信息技术 组织绩效 IT商业价值 竞争环境 宏观环境  中图分类号:F21文献标识码:A文章编号:1671-7597(2009)0810105-02    一、引言    IT商业价值研究IT技术对组织绩效的影响,学者们采用很多方法评价IT商业价值模式并证明信息技术确实
期刊
[摘要]ASP(Active Server Pages)简言之就是一个服务器端的(Server-side)脚本执行环境,你可以用它产生和执行动态的、交互的、高性能的Web服务器应用程序。主要讨论ASP技术,并重点描述ASP在电子商务中数据的访问技术以及其在电子商务中的应用。  [关键词]ASP技术 电子商务 数据访问方式  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0
期刊
[摘要]阐述VoIP通讯所面临的安全威胁及H.323和SIP协议各自具有的安全机制。提出不同的企业用户只要为VoIP系统采用恰当的安全认证和加密机制,该系统是可以满足企业的网络通讯安全需求。  [关键词]H.323 SIP 认证机制 加密机制  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0520031-01    由于互联网硬件建设的飞速发展及相关技术的不断更新,网络
期刊
[摘要]随着互联网的飞速发展,互联网和人们日常的生活、工作、学习等各方面的结合越来越紧密,Web用户行为模式挖掘能更好的使互联网服务于用户(通过Web个性化服务等方式)。目前,Web用户行为模式挖掘仍然是一个新兴的研究领域,从模式挖掘结构体系、模式挖掘过程,模式挖掘应用等方面对Web用户行为模式挖掘中关键问题的研究进行探讨。  [关键词]数据挖掘 Web挖掘 Web用户行为模式挖掘  中图分类号:
期刊
[摘要]介绍大型机械远程监控系统是将嵌入式系统技术应用到大型机械上的一项研究。嵌入式大型机械控制器硬件采用模块化设计(显示器、远程监控器),显示器CPU基于韩国现代HMS30C7202 ARM7芯片,负责CAN总线数据接收、界面显示、数据存储等;远程监控器基于LPC2119 32位的微处理器—ARM7,扩展全球定位模块GPS模块,GPRS无线Modem和CAN总线,可随时将机械车辆定位数据和CAN
期刊
[摘要]表单定制也称为表单自定义,是指在用户使用工作流办公软件过程中,根据实际工作及流程需要,由用户自己来自由地定制应用在Web上的基于HTML的表单。介绍并比较几种常见的表单定制方法,并介绍基于.NET的电子政务档案管理系统中基于分类模板的表单定制实现。  [关键词]表单定制 电子档案 模板 工作流  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0520037-02 
期刊
[摘要]介绍RTLinux下的设备驱动模型,以PCI接口的CAN卡为例详细描述了RTLinux下开发设备驱动程序的一般方法。并通过RTLinux与Linux下设备驱动程序开发过程的对比,描述两者的异同,给出将Linux下设备驱动源码更改为RTLinux设备驱动的方法。  [关键词]RTLinux 设备驱动 CAN  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)05200
期刊