当前位置: 资料下载中心> 成品毕业设计> C++ >基于windows消息队列机制的远程通信研究与实现的毕业设计,包含了程序,论文,任务书,录像正文

基于windows消息队列机制的远程通信研究与实现的毕业设计,包含了程序,论文,任务书,录像

上传者:qq 673531263 下载量:0人 上传时间:2019-12-12 12:08 温馨提示:添加客服QQ:471654363/客服QQ:670023853 (备注校外加油站以及购买的项目名字)JAVA成品程序另外加收100元可享受调试运行一次(远程调试运行在你本机电脑跑起来,其他语言的程序买了不退不修改可换不包调试,了解清楚后再购买 优惠价:200¥

一、基于windows消息队列机制的远程通信研究的背景意义

        网络技术近些年来发展得很快,硬件设备的性能越来越强大,所承载的网 络应用也越来越复杂。体系结构从集中式,到两层模式,到三层模式,直至多层模式。毫无疑问,网络应用的复杂化,大型化是软件技术发展的必然,也是任务复杂化直接推动的结果。分布式的网络应用在许多领域都提供了最佳的解决方案。以至分布式网络成为一个极为热门的研究方向。但是,在分布式网络应用发展的过程中,却面临着两个颇为棘手的问题。

          (1)    在大型的分布式网络应用中,不同的应用运行在不同的进程,分布在不同的计算机上,甚至跨系统,跨网络,如何将这些应用有效地集成,使不同的应用能够保持良好的通讯,真正发挥分布式应用的巨大优越性。这一点成为衡量一个网络应用是否可靠,是否稳定的重要标准。

          (2)    在分布式网络应用中,越来越多的应用程序之间的通讯不仅要求可以同步发送接收,还要求能够实现异步的通讯。而传统的通讯技术一般都要求发方应用和接收方应用同时在线,而且发送者和接收者还要知道互相的程序对程序的调用接口。实际情况却是,应用程序并不总是同时在线;网络的硬件故障往往不可避免;数据的流量具有突发性,可能造成网络的信息拥塞;某个应用需要立即得到处理,而另外一个应用却可以缓一缓,它们应当区别对待;这样一来,应用之间的异步通讯问题变得非常突出。

          此毕业设计研究了中间件技术,对其概念、功能、类别、发展趋势等方面进行了阐述。接着对中间件中最热门,发展最快的消息队列中间件技术进行了剖析,尤其是它的消息处理机制和同步通讯协议的对比。消息队列技术的优秀代表MSMQ,是本论文的研究的重点,详细阐述了它的基本概念、特点、使用和管理、编程等等方面。并结合一个具体的应用来展示消息队列技术在应用程序通讯,数据传输方面的优越性。

       设计目标:

           实现对windows消息队列相关API函数的封装,完成基于windows消息队列机制的远程通信系统。

      系统总体结构如下:

          MSMQ相关API函数的封装类;系统主界面(含发送与接收队列的创建);发送队列的相关操作;接收队列的相关操作;消息的发送。

          队列的相关操作包括:对应队列消息条数的显示;消息的两种删除方式的操作;消息的获取与显示。

       消息的发送包括:MSMQ消息的正常结构的发送;消息体打包之后的发送。

    二、应用程序体系结构

           任何一个应用程序的设计开发的最重要的元素之一就是如何进行系统架 构。系统架构定义一个应用程序的各个模块之间如何相互作用,以及每个模块负责执行什么样的功能。从纯功能的观点来看,大多数应用程序主要处理如下三种任务:获取用户输入,将输入存储为数据,按预定的操作程序处理这些数据。 

      1 单层应用体系结构模型:

          单层应用体系结构模型在单一的应用层内实现用户界面、商业规则、数据 管理。对数据本身来说,它可以是物理上位于一个远端位置,但是存取数据的 逻辑却是应用程序的一部分。在这样的体系结构中,数据处理主要不是通过数 据库,而是文件来存取数据,应用程序自己定义如何进行数据的存储、查询、 读取等运算逻辑。

       2 两层应用体系结构模型:

           在两层应用体系结构模型中,商业规则和用户界面仍然结合在一起构成应 用程序的客户端。但是数据的存取和管理独立出来由单独的通常是运行在不同 的系统上的程序来来完成,这样的数据存取和管理程序通常就是象SQL Server 或Oracle这样的数据库系统。熟知的Client/Server就是这样的两层结构,基于 Client/Server结构的应用在局域网的应用中占绝大多数。  

           在两层应用体系结构模型中,还有一种情况是用户界面单独为一层,商业规则 和数据处理合而为一构成另一层。这种结构的典型例子就是商业规则以存放在 数据库服务器内的存储过程来体现。存储过程是数据库系统的一个重要功能, 每个存储过程就是存储在数据库服务器上的一段程序,它指明如何进行一系列 的数据库操作。  

     3 多层应用体系结构模型:

           在多层应用体系结构模型中,商业规则被进一步从客户端独立出来,运行 在一个介于用户界面和数据存储的单独的系统之上。现在,客户端程序提供应 用系统的用户界面,用户输入数据,查看反馈回来的请求结果,对于Web应用, 浏览器是客户端用户界面,对于非Web应用,客户端是独立的编译后的前端应 用程序;商业中间层由封装了商业逻辑的组件构成,这些商业逻辑组件模拟日 常的商业任务,通常是一种COM组件或者CORBA组件:数据层可以是一个象SQL Server这样的数据库管理系统,或者是象Exchange这样的非结构化数据交换系 统,还可以是象事务处理或消息队列这样事务处理机制,应用程序可以选择一 个或多个这样的数据服务。商业规则处理并确保所有的商业过程正确执行。  

           在多层体系结构模型中,各应用层并不一定要分布在网络上不同机器的物理位 置上,而可以只是分布在逻辑上的不同位置,此外各应用层和网络物理拓扑之 间并不需要有一一对应关系,每个应用层在物理拓扑上的分布可以按系统需求 而变化。

          多层应用程序将每个主要的功能隔离开来。用户显示层独立于商业中间层, 而商业中间层独立于数据处理层。设计这样的多层应用程序需要进行权衡:它 在初始阶段需要更多的分析和设计,但在后期阶段会大大减少维护费用并且增 加功能适应性。

三、消息队列的创建与实现

         1 公有队列:创建队列可以有两种方式,使用管理工具和通过编程。这里介绍如何通过编程来创建一个公共队列。创建一个公共队列主要要用到MSMQQueueInfo对象。

          2  私有队列 当创建一个共有队列时,MSMQ分配给它一个实例ID,并且在活动目录里 发布。着允许其它应用通过向路径名属性指定计算机名和队列名来打开这队列, 还允许通过使用MSMQQueue对象来执行查询来定位队列.但是,发布一个公共 队列需要占用时间和磁盘空间,而且有时这样做也无必要。假如有一个应用, 它包含成千上万个需要本地响应队列的独立客户。那么在这种情况下,使用私有队列就很有必要。私有队列在本地创建,并且它们不在活动目录中发布。它 们只在所驻留的计算机中发布。 

        私有队列的创建和公共队列的创建基本相同,只是在路径名前加一个 Private. 

         只要MSMQ能够找到其它机器上的私有队列,它们就能够将消息发送到这些队列。 这并不象定位公共队列那么简单,因为不能用路径名来打开一个私有队列--一 它没有在活动目录中发布。

          3 队列定位 :

             公共队列和私有队列在创建时都由MSMQ分配实例ID。每个队列在它的整个 生命周期都携带同一个实例ID。在访问一个队列前,必须由一个队列管理器对 实例工D进行解析.MSMQ为一个私有队列和一个共有队列生成实例ID的格式是 不同的。共有队列的实例ID就是由MSMQ生成的唯一GUID,而私有队列的实例 ID则是由本地队列管理器唯一的GUID和特定计算机队列ID组成。

          4  消息发送 :

              MSM Q中,消息体是以字节数组的形式存储。在上例中,消息体是一个字 符串,但在许多情况下,消息体中的数据结构比较复杂,需要传递的也是一组 参数。这就需要在发方应用中对消息体进行打包。然后在接收方应用中解包。

           5 消息接收与窥探:

               要接收一个消息,首先以接收访问模式打开一个MSMQQueue对象,然后调用 Receive方法读取并清除队列中的第一个消息。有时希望在清除一个队列之前对 它们进行检查,可以使用MSMQQueue对象的Peek方法再加上一个隐含指针遍历 队列中的消息,这称为消息的窥探。 

  四、 MSMQ API的封装

            根据本课题的要求对MSMQ API函数的封装。主要完成功能有:发送消息到消息队列(本地、远程),创建消息队列,大块消息的封装组包、接收并删除队列中的消息、删除消息队列、组包后消息的发送等等。 分别封装在不同的函数之中。

        1)创建发送与接收队列

        2)发送消息到远程计算机消息队列并保存到本机

        3)消息的组包发送

        4)队列的删除

        5)队列中消息的删除

五、 该系统的设计实现

          本系统的核心内容为对MSMQ的API进行封装,在完成这一步骤之后。系统只需要在正确的地方调用这些函数即可。

    1 系统主界面:


         在系统主界面中出于人性化地设计思想在主界面中加入了windows消息队列的简单介绍。在程序运行时需要在操作系统中创建本程序需要的发送与接收队列,创建一次即可,主界面提供了这个创建的功能。

       在主界面菜单中,用户可以进入消息发送、查看消息队列两大功能模块。消息发送模块分为消息的发送与消息组包发送;查看消息队列分为查看发送消息队列与查看接收消息队列两部分。

      2  消息发送:

         1)发送消息:在这里用户是发送标准的MSMQ消息,没有通过组包。用户需要填写发送的目的IP,发送的标题、内容、优先级等。


         2)组包消息发送:在这里程序首先调用组包函数将消息组包,然后调用发送函数将组包消息发送到目的IP。


    3  队列消息查看

         1)查看发送队列:在队列查看中,系统完成了查看队列中消息的条数;查看队列中消息的内容;删除本队列;删除队列中的消息等功能。

     

         2)查看接收队列:查看接收队列与查看发送队列的功能基本一致,不同的是接收队列的查看是查看远程计算机发送给本机的消息。

      


上一篇:     公众号文章传播分析模型研究 毕业设计_包含毕业论文,程序,视频
下一篇:    基于node.js的城院二手书籍交易网站毕业设计_包含程序,视频,无论文