欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    毕业设计基于WINDOWS消息队列机制的远程通信研究论文.doc

    • 资源ID:2389894       资源大小:395KB        全文页数:60页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业设计基于WINDOWS消息队列机制的远程通信研究论文.doc

    基于windows消息队列机制的远程通信研究摘 要随着硬件设备和软件技术的发展,网络上的应用也越来越复杂,应用程序的体系结构也从单层、两层、三层到多层。分布式的网络应用成为网络应用的发展趋势。但是,人们在感受到分布式网络应用在解决大型复杂任务的优越性的同时,也愈来愈发现构建和维护分布式应用面临的困难。一个是由于应用程序往往分布在不同的不同的系统、不同的计算机上,如何将这些应用程序有效的集成起来协同工作;另外,在以往,应用程序之间的通讯一般是同步的通讯,而现在在很多情况下要求异步的通讯。应用程序之间要能够实现异步的消息传输。为解决这样的问题,消息队列中间件应运而生。它的突出功能就表现在实现应用程序之间异步的消息传输以及集成分布的应用程序。微软的消息队列中间件技术MSMQ是消息队列中间件中的优秀代表,它也是本文重点研究的对象。本文从消息中间件技术的出现原因引出消息中间件技术的相关概念并加以阐述,同时说明了MSMQ技术的实现方法与API函数,最后在介绍了基于MSMQ的一个远程通讯系统的实现,在该系统中封装了MSMQ的windowsAPI函数。关键词:分布式网络应用,中间件石消息队列中间件;异步消息传输;MSMQAbstractWith the hardware and software technology development, application on the network also more complex, application architecture from single-layer, two-story, three-tier to high-rise. Distributed network applications become the development trend of network applications. However, it was felt in the distributed network applications in resolving large and complex task of the superiority at the same time, also found that more and more construction and maintenance of distributed applications the difficulties facing them. As an application is often distributed in various different systems, different computer, how effective these applications work together to integrate addition, in the past, communication between the application is generally synchronous communication, and now In many cases the requirements of asynchronous communication. Applications must be achieved between the news asynchronous transmission. To solve this problem, message queue middleware emerged. It functions on the outstanding performance in achieving the application of information between asynchronous transmission and distribution of integrated applications. Microsoft's Message Queue middleware technology MSMQ message queue is in an excellent representative of middleware, it is this focus on the target. This article from the news middleware technology leads to the emergence of the reasons for information related to the concept of middleware technology and expand the MSMQ technology at the same time that the method and API function, in the final based on MSMQ on a long-range communications systems to achieve, in the system Packaging in the MSMQ the windowsAPI function.Key Words: distributed network application,middleware,message queuemiddleware,asynchronous message transmission,MSMQ 目 录1 绪论11.1 课题提出的背景和意义11.1.1网络应用面临的挑战11.1.2 消息队列中间件(MQM)的出现11.2 国内外发展现状21.3 本文主要研究内容32. 应用程序体系结构42.1 单层应用体系结构模型42.2 两层应用体系结构模型42.3 多层应用体系结构模型52.4Internet应用体系结构63 中间件83.1什么是中间件83.2 中间件要解决的问题83.3 中间件的分类93.4中间件技术的发展趋势124. MSMQ概述134.1 MSMQ的功能134.2 MSMQ的网络拓扑144.3 MSMQ网络组件164.3.1MSMQ服务器164.3.2MSMQ独立客户端164.3.3MSMQ从属客户174.3.4MSMQ Exchange连接器与MSMQ API174.4 MSMQ队列类型184.5 消息类型184.6消息路由204.7队列管理器204.8组件队列215. MSMQ的安装246MSMQ的编程246.1COM246.6.1com概述246.6.2接口256.2MSMQ编程模型286.3创建队列296.3.1公有队列296.3.2私有队列296.4队列定位296.5消息发送306.6消息接收与窥探307. MSMQ API的封装307.1创建发送与接收队列327.2发送消息到远程计算机消息队列并保存到本机337.3消息的组包发送377.4队列的删除407.5队列中消息的删除428.系统的实现458.1系统主界面458.2消息发送468.2.1发送消息468.2.2组包消息发送478.3队列消息查看488.3.1查看发送队列488.3.2查看接收队列48参考文献50致 谢511 绪论1.1 课题提出的背景和意义1.1.1网络应用面临的挑战网络技术近些年来发展得很快,硬件设备的性能越来越强大,所承载的网络应用也越来越复杂。体系结构从集中式,到两层模式,到三层模式,直至多层模式。毫无疑问,网络应用的复杂化,大型化是软件技术发展的必然,也是任务复杂化直接推动的结果。分布式的网络应用在许多领域都提供了最佳的解决方案。以至分布式网络成为一个极为热门的研究方向。但是,在分布式网络应用发展的过程中,却面临着两个颇为棘手的问题。(1) 在大型的分布式网络应用中,不同的应用运行在不同的进程,分布在不同的计算机上,甚至跨系统,跨网络,如何将这些应用有效地集成,使不同的应用能够保持良好的通讯,真正发挥分布式应用的巨大优越性。这一点成为衡量一个网络应用是否可靠,是否稳定的重要标准。(2) 在分布式网络应用中,越来越多的应用程序之间的通讯不仅要求可以同步发送接收,还要求能够实现异步的通讯。而传统的通讯技术一般都要求发方应用和接收方应用同时在线,而且发送者和接收者还要知道互相的程序对程序的调用接口。实际情况却是,应用程序并不总是同时在线;网络的硬件故障往往不可避免;数据的流量具有突发性,可能造成网络的信息拥塞;某个应用需要立即得到处理,而另外一个应用却可以缓一缓,它们应当区别对待;这样一来,应用之间的异步通讯问题变得非常突出。1.1.2 消息队列中间件(MQM)的出现应用消息队列中间件(MessageQueueMiddleware)技术,就能够很好的解决以上问题。总的来讲,消息队列中间件的作用体现在两个方面,一是集成大型的分布式应用,二是确保分布式应用之间的异步通讯。MQM提供可靠的异步的和松散偶合的通信服务。MQM在其它传统的通讯方法不能奏效时能够成功,因为它满足三个重要的条件:1) 发送者和接收者无须同时连接。2) 即使发送者和接收者之间的通讯不是同时发生的,也会有极强的请求和回答传送保障。3) 请求和回答可以通过发送方和接收方之间的路由器进行翻译和重新格式化。 利用MQM,应用程序通过一系列消息在彼此间进行通信。当消息在发送方和接收方之间进行传送时,MQM提供方将消息限定在控制域内,这个控制域叫做队列,因此才有“消息队列中间件”的名称。队列防止消息在传输过程中被丢失,并在消息准备好时为接收方提供一个寻找消息的地方.应用程序通过向预定接收方相关的队列发送消息来产生请求。如果发送方希望得到回答,它们通常在所有发送给接收方的请求中包含应答队列的名字。MQM的作用主要体现在以下几点(1)存储和转发(Store-and-forward)通信MQM能使应用程序向其他应用程序发送请求,而那些应用程序不必正在运行或是可到达。(2)防御通信MQM 软 件 使用强大的技术来保证消息在传送中不会丢失,打乱顺序或重复传送。(3)并发执行使用MQM ,应用程序可以向许多不同的接受方发送请求而不必等待响应;等待接受方可以平行地处理请求;当所有的响应消息都到达时,或无论什么时候只要方便,应用程序就处理结果。(4) 日志通信MQM产品可以产生日志,以利于记录,核查和错误恢复。1.2 国内外发展现状消息队列中间件技术并不是最新技术,早期,由于没有统一的,适合各种情况和平台的消息队列产品,人们往往自己编写消息队列中间件,这些消息队列中间件虽然可以起到相关的作用,但是它们还是太专门,太原始,费用太高。因此,许多大的公司就开始开发适用于各种情况和平台的消息队列中间件产品,最著名的有IBM的MQSeries和Microsoft的MSMQ,这两个产品都有很好的跨平台性,适用面很广,现在许多公司采用它们作为中间件的一部分。而最近两三年,由于中间件的(包括消息队列中间件)市场销t以惊人的速度增长,国外专门做中间件的公司越来越多,工业级的产品也越来越多。中间件技术在保证系统的安全性,可伸缩性,可用性,可管理性,互操作性,适应性,分布式需求等等方面都有了很大的进展。中间件被广泛用于银行,电信,金融,电子商务,大型企业化制造,国家安全等等领域。据工DC预测,到2002年全球中间件市场销售额将达到80亿美元;在中国,1998年中间件市场总值仅为12.34亿美元,而到2004年将达到90.3亿美元,年增长率高达39.7%。中间件市场空间之大,成长率之高,由此可见一斑。面对全球中间件技术和市场的发展态势,我们国家的情况是怎样的了?客观来讲,我们在计算机系统软件,以及一些关键性的大型应用软件方面的落后是不争的事实,这一点,相信国人都有切肤之痛.但是对于中间件,我们再也不能落后了。理由有二:首先中间件作为操作系统之上的独立的系统软件或服务程序,其市场潜力极其巨大,如果我们将这一市场再次拱手让给外国,我们将会面临巨大的经济损失。这里有一个现实的例子.BEA中间件刚进入中国的时候,报价是4000万美元,后来出现了一个国内的竞争者清华北美公司,BEA的报价马上就降为300万人民币,其间的悬殊令人乍舌。其次,中间件技术在国外的发展历史也不长,也是近几年的事情,我们虽然起步稍微迟了一点,但是完全有赶上的可能。目前国内专门的中间件厂商虽然只有一两家,但是它们的技术在很多方面并不比国外差。譬如东方通的TongLINK/Q(消息队列中间件)已经占领了中国建设银行的业务份额,另外几家大的金融单位和电信单位(包括中国联通)也采用了东方通的产品.1.3 本文主要研究内容论文从网络应用面临的问题和挑战入手,研究了中间件技术,对其概念、功能、类别、发展趋势等方面进行了阐述。接着对中间件中最热门,发展最快的消息队列中间件技术进行了剖析,尤其是它的消息处理机制和同步通讯协议的对比。消息队列技术的优秀代表MSMQ,是本论文的研究的重点,详细阐述了它的基本概念、特点、使用和管理、编程等等方面。并结合一个具体的应用来展示消息队列技术在应用程序通讯,数据传输方面的优越性。文章最后以一个系统为例详细说明对MSMQAPI的封装,与消息队列基本功能的实现。2. 应用程序体系结构任何一个应用程序的设计开发的最重要的元素之一就是如何进行系统架构。系统架构定义一个应用程序的各个模块之间如何相互作用,以及每个模块负责执行什么样的功能。从纯功能的观点来看,大多数应用程序主要处理如下三种任务:获取用户输入,将输入存储为数据,按预定的操作程序处理这些数据。目前流行的主要有三种应用程序体系结构模型,各应用体系模型就是根据在用户与数据之间所具有的层次来划分的。每一层次一般都运行在不同的系统或是相同系统的不同进程空间内。这三种应用体系结构模型分别就是单层应用体系结构模型、两层应用体系结构模型、多层(可以是三层或三层以上)应用体系结构模型。2.1 单层应用体系结构模型单层应用体系结构模型在单一的应用层内实现用户界面、商业规则、数据管理。对数据本身来说,它可以是物理上位于一个远端位置,但是存取数据的逻辑却是应用程序的一部分。在这样的体系结构中,数据处理主要不是通过数据库,而是文件来存取数据,应用程序自己定义如何进行数据的存储、查询、读取等运算逻辑。单层应用的一个最普遍的例子就是字处理器:它有一个用户界面用于接收键盘输入以及显示输出,它有众多商业规则来完成页码标记、拼写检查等功能,它还有一些文件存取程序来管理数据文档。单机应用特别是Windows的应用程序多数属于这种单层模型。这种模型的好处在于应用程序的前期分析和设计比较简单,但是后期的维护会变得非常麻烦,因为用户界面、商业规则、数据管理交织在一起,对任何一部分的改动都会影响到其它部分。2.2 两层应用体系结构模型在两层应用体系结构模型中,商业规则和用户界面仍然结合在一起构成应用程序的客户端。但是数据的存取和管理独立出来由单独的通常是运行在不同的系统上的程序来来完成,这样的数据存取和管理程序通常就是象SQL Server或Oracle这样的数据库系统。熟知的Client/Server就是这样的两层结构,基于Client/Server结构的应用在局域网的应用中占绝大多数。以下是该结构的典型模型:图 1典型的两层体系结构模型在两层应用体系结构模型中,还有一种情况是用户界面单独为一层,商业规则和数据处理合而为一构成另一层。这种结构的典型例子就是商业规则以存放在数据库服务器内的存储过程来体现。存储过程是数据库系统的一个重要功能,每个存储过程就是存储在数据库服务器上的一段程序,它指明如何进行一系列的数据库操作。存储过程可以直接被客户端调用,此外还有一种触发机制可以调用执行存储过程:当数据满足一定条件时,触发一个事件,引起相应的存储过程被调用执行.Client/Server结构模型的一个最大的好处在于:通过允许多用户同时存取相同的数据,来自一个用户的数据更新可以立即被连接到服务器上的所有用户访问。这种结构的缺点也很明显:当客户端的数目增加时,服务器端的负载会逐渐加大,直到系统承受不了众多的客户请求而崩溃;此外,由于商业规则的处理逻辑和用户界面程序交织在一起,因此商业规则的任何改动都将是费钱、费时、费力的。虽然两层结构模型为许多小规模商业应用带来简便、灵活性,但是对快速数据访问以及更短的开发周期的需求驱使应用系统开发人员去寻找一条新的创建分布式应用的道路,那就是多层应用体系结构模型.2.3 多层应用体系结构模型在多 层 应 用体系结构模型中,商业规则被进一步从客户端独立出来,运行在一个介于用户界面和数据存储的单独的系统之上。现在,客户端程序提供应用系统的用户界面,用户输入数据,查看反馈回来的请求结果,对于Web应用,浏览器是客户端用户界面,对于非Web应用,客户端是独立的编译后的前端应用程序;商业中间层由封装了商业逻辑的组件构成,这些商业逻辑组件模拟日常的商业任务,通常是一种COM组件或者CORBA组件:数据层可以是一个象SQLServer这样的数据库管理系统,或者是象Exchange这样的非结构化数据交换系统,还可以是象事务处理或消息队列这样事务处理机制,应用程序可以选择一个或多个这样的数据服务。商业规则处理并确保所有的商业过程正确执行。在这种多层体系模型中,客户端程序不能直接存取数据,从而为数据的安全性和完整性带来保障。这种结构带来的好处就是应用系统的每一个部分都可以被单独修改而不会影响到另外两个部分。此外,因为每一层之间是通过接口来相互通信的,所以只要接口保持不变,内部程序的变化就不会影响到系统的应用其余部分。以下是典型的应用程序结构:图 2典型的多层应用体系结构模型在多层体系结构模型中,各应用层并不一定要分布在网络上不同机器的物理位置上,而可以只是分布在逻辑上的不同位置,此外各应用层和网络物理拓扑之间并不需要有一一对应关系,每个应用层在物理拓扑上的分布可以按系统需求而变化.比如,商业中间层和数据处理层可以位于装有IIS Web服务器和SQLServer数据库服务器的同一台机器。使用多层体系结构模型为应用程序的生命周期带来诸多好处,包括:可复用性、适应性、易管理性、可维护性、可伸缩性。你可以将你创建的组件和服务共享和复用,并按需求通过计算机网络分发。你可以将大型的、复杂的工程项目分解成简单安全的众多子模块,并分派给不同的开发人员或开发小组。你可以在服务器上配置组件和服务以帮助跟踪需求的变化,并且当应用程序的用户荃础、数据、交易t增加时可以重新部署。多层应用程序将每个主要的功能隔离开来。用户显示层独立于商业中间层,而商业中间层独立于数据处理层。设计这样的多层应用程序需要进行权衡:它在初始阶段需要更多的分析和设计,但在后期阶段会大大减少维护费用并且增加功能适应性。中间商业层组件可以按响应时间或其它规则的需要移动到不同的位置。例如,移动到用户层以加强用户界面处理功能并且可以减少网络的数据往复,通过存储过程将数据规则移动到数据层来实现。只有当具有多重数据源时,数据规则独立为一层才变得至关重要。在多层体系结构模型中,客户端应用程序变得比在Client/Server这样的两层体系结构模型中更为小巧,因为服务组件已经分布在中间商业层。这种方式带来的结果是在用户上的一般管理费用降低,但是由于服务组件分布在不同的机器上,因此系统的通信量会大大增加。2.4Internet应用体系结构过去的一段时间,许多大大小小的公司都在为功能越来越强大、费用越来越低廉的个人计算机建立强壮的应用程序。而当这些应用程序每天被成百上千万的用户使用时,新兴的技术也同时为应用软件开发人员及应用软件系统平台带来意义深远的影响.Internet 技术的发展为全球信息在大小企业以及个人之间的共享奠定了基础。Internet催动着技术创新,竞争和加速的变化脚步使得对快速开发具有高适应性应用程序的方法模型的需求日益迫切。各种应用体系结构模型都可以用于Internet应用开发,但是在单层、两层、多层这三种模型中,多层应用体系结构模型是开发Internet应用的最好的应用模型。基于 We b的应用多数属于多层应用体系结构.Web技术如HTML,D HTML.XML等表示的标记语言为用户层界面带来了更好的信息显示方式,丰富了用户界面层的应用;Web服务器如IIS. Apache等架设在用户层浏览器和数据层数据库服务器之间,一方面通过CGI. ASP等直接为Web应用提供中间商业层服务,另一方面驱动商业逻辑组件提供中间层服务:接受来自浏览器的服务请求,传递给数据库服务器,并将从数据库服务器返回而来的数据提供给用户层浏览器;随着Web应用的增加,数据层数据库服务器也变得日益重要。应用于Internet的三层应用体系结构模型也有很大的缺限。这种模型将绝大部分工作交由服务器进行:数据存储在服务器,商业应用程序代码存储在服务器,数据的加工、处理在服务器端进行,程序的执行也在服务器端,客户端浏览器只简单地用于显示由服务器端传来的标记语言页面。这是一种瘦客户端-胖服务器端模式,它缺点之一是代价昂贵,能满足要求的服务器价格是不菲的;缺点之二是客户端计算功能的严重浪费,今天的PC机已具有相当大的运算能力以及相当低廉的价格,真正好的应用模式应该对PC运算能力加以充分利用;缺点之三是写服务器商业应用程序的要求是很苛刻的,应用程序的任何微小的失误在多用户访问情况下将很快导致服务器系统的崩溃;缺点之四是集中式的数据访问将会在Web服务器上产生数据传输瓶颈。如果采用单层或两层体系结构模型,那么当用户想要运行一个应用程序时,必须将该应用程序整个下载到客户端用户机器,即便用户只需要该应用程序的部分功能或只须临时用一下该应用程序。不言而喻,这种模式不适合Web应用。Web应用的一个特点是Web上存在着无数的应用程序,如果用户每访问一个这样的应用程序都必须先完全下载完全安装然后才能运行,那么无论是时间效率还是用户的机器都是不现实的。此外,这种应用模式在安装、升级、维护方面都极为不便,这是因为每次安装、升级、维护都必须在每台用户机器上进行。分析一下从单层体系结构到两层体系结构再到多层体系结构的发展过程,可以看出隐含其间的是一个完整的应用程序逐步被分割为不同的组成成份:先是数据存取和管理独立出来成为单独的数据层,然后是商业逻辑处理独立出来构成单独的商业中间层。每一次的分割都带来不同层度的好处。分割到最后,一个完整的应用就包括用户层显示页面、商业中间层的商业逻辑组件、数据层数据库系统。当前流行的商业逻辑组件主要是基于COM/DCOM组件模型或者基于CORBA组件模型。所有的这些页面或组件都成为不可再分割的单元。3 中间件3.1什么是中间件中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通讯.从中间件的定义可以看出,中间件是一类软件,而非一种软件;间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,定义中特别强调了其网络通讯功能.图 3 中间件在应用中的位置3.2 中间件要解决的问题 首先,应用的互连和互操作是中间件要解决的第一位的问题。不管这些应用分布在什么硬件平台上,使用了什么数据库,透过了多么复杂的网络,或是同一电脑中的不同应用系统.这里所说的互连和互操作是应用之间而不是说系统之间的,因为中间件是一种应用级的软件,是一种应用集成的关键构件,一个好的中间件产品要能解决应用互连带来的各种问题,通讯要支持各种通讯协议、各种通讯服务模式、传输各种数据内容、数据格式翻译、流量控制、数据加密、数据压缩等;中间件核心要解决名字服务、安全控制、并发控制、可靠性保证、效率保证等。应用开发要能提供基于不同平台的丰富的开发接口、支持流行的开发工具、支持流行的异构互连接口标准(如XA、工DL等);系统管理要解决对中间件本身的配置、监控、调谐,为系统的易用易管理提供保证.其次 , 针 对不同的应用领域,对中间件又有各种不同的要求。由于实际的应用环境千差万别,不能指望有一种包罗万象的中间件解决所有的问题。对于邮件系统需要提供存储转发功能;对工作流应用需要以条件满足状态将信息从一个应用传递到另一个应用;对联机交易处理系统,需要保证数据一致性、不停机作业、大量并发的高效率;对于一个数据采集系统需要保证可靠传输,等等.3.3 中间件的分类在讨论中间件的分类前,先分析一下应用之间常用的会话方式。一般地,应用级的会话有两种方式,各类中间件都是基于这两种会话方式一种是同步方式,客户方向服务方发出请求后,等待服务方返回的结果,在收到服务方的处理结果前不做其它处理。在这种方式下,客户方在等待服务方的处理结果时,可以结合“超时”概念,在规定时限内,如果客户方还未收到服务方的处理结果,则本次请求失败。同步方式可能因为拥挤的网络环境造成灾难,当客户方超时时间到而未收到服务方的应答时,客户方本次请求失败,它会去重新发起请求。这会造成恶性循环,大大降低网络上的处理效率.另一种会话方式是异步方式,客户方在等待服务方的处理结果时可以去完成其它任务。在异步方式下,当一个节点向另外一个节点发出消息后,不等待应答。因而一个消息发送完成后,发送方就可以去处理其它事情。但不幸的是发送方也可以发送新的消息,因而同样会造成网络拥堵.中间件的分类方式很多,按照IDC的分类方法,中间件可分为六类(1)终端仿真/屏幕转换用 以实 现 客户机图形用户接口与已有的字符接口方式的的服务器应用程序之间的互操作(2)数据访问中间件适用于应用程序与数据源之间的互操作模型,客户端使用面向数据库的API,以提请直接访问和更新墓于服务器的数据源,数据源可以是关系型、非关系型和对象型。这类中间件大都基于SQL语句,采用同步通讯方式.此类中间件使应用开发简单,但如果是透过广域网使用,会带来严重的效率问题,因为在低速网上来回交互SQL语句会使通讯流量过大,同时对数据压缩、加密带来不便.(3)远程过程调用中间件远程 过 程 调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。事实上,一个RPC应用分为两个部分:server和client.server提供一个或多个远程过程:client向server发出远程调用。server和client可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上。它们通过网络进行通讯。相应的stub和运行支持提供数据转换和通讯服务,从而屏蔽不同的操作系统和网络协议。在这里RPC通讯是同步的。RPC机制可用以构造客户机/服务器方式的应用,但由于它是同步方式,因而在工作的时候,要求客户方和服务方均能正常工作才能很好地运行,有一方不能工作将导致RPC失败。这在网络故障、机器故障存在的情况下,这一要求是很难保证的。还有一点值得注意的是,不管客户方能做什么或做的多快,它必须依靠服务方才能有效工作。有些恢复机制可以在一个远程调用阻塞时转而去调用另一个服务器上的过程,但这种路由方式也会影响效率。也有的RPC机制采用异步方式,客户方非阻塞地调用远端的过程,但这种方式不太标准而且很难采用。另外,由于大多数RPC机制很难建立点到点的关系,因而也很难用在面向对象的编程当中。(4)交易中间件交易 中 间 件是专门针对联机交易处理系统而设计的。联机交易处理系统需要处理大量并发进程,处理并发涉及到操作系统、文件系统、编程语言、数据通讯、数据库系统、系统管理、应用软件,是一个相当艰巨的任务,但是工作的难度可以通过采用一个交易中间件来简化。交易中间件就是一组程序模块,用以大大减少开发一个联机交易处理系统所需的编程量。交易中间件管理由应用声明和提交的交易,并通过两阶段提交协议等方式保证分布式交易的完整性、控制并发、实现交易路由和均衡负载.(5)对象中间件面向对象的中间件提供一个标准的构件框架,能使不同的厂家的软件通过不同的地址空间、网络和操作系统互相交互访问。该构件的具体实现、位置及所依附的操作系统对客户来说都是透明的。例如,我们可以通过简单的组装或扩展已有的构件就可以建立一个客户机/服务器结构的信息系统。面向对象的中间件技术的目标就是为软件用户及开发者提供一种应用级的即插即用的互操作性,就象现在使用集成块和扩展板一样。对象 请 求 代理(ObjectR equestB roker)是对象中间件的核心组件它的作用在于提供一个通信框架,透明地在异构的分布计算环境中传递对象请求。CORBA规范包括了OR的所有标准接口。1991年推出的CORBA 1.1定义了接口描述语言OMG IDL和支持Client/Server对象在具体的ORB上进行互操作的API. CORBA 2.0规范描述的是不同厂商提供的ORB之间的互操作.对象请求代理(ORB)是对象总线,它在CORBA规范中处于核心地位,定义异构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间client/server关系的中间件。ORB使得对象可以透明地向其他对象发出请求或接受其他对象的响应,这些对象可以位于本地也可以位于远程机器。ORB拦截请求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结果等.client对象并不知道同server对象通讯、激活或存储server对象的机制,也不必知道server对象位于何处、它是用何种语言实现的、使用什么操作系统或其他不属于对象接口的系统成分。值得 指 出 的是client和serve:角色只是用来协调对象之间的相互作用,根据相应的场合,ORB上的对象可以是client,也可以是server,甚至兼有两者。当对象发出一个请求时,它是处于client角色:当它在接收请求时,它就处于server角色。大部分的对象都是既扮演client角色又扮演server角色。另外由于ORB负责对象请求的传送和server的管理,client和server之间并不直接连接,因此,与RPC所支持的单纯的Client/Server结构相比,ORB可以支持更加复杂的结构.(6)消息中间件尽管消息中间件不象RPC机制那样流行,但越来越多的分布式应用采用消息中间件来构建,基于消息的机制更多地适用于事件驱动的应用,当一个事件发生时,消息中间件通知服务方应该进行何种操作使用消息中间件编程采用的是消息中间件的API,可以很好地扩展到不同的操作系统和硬件平台上.消息中间件的核心安装在需要进行消息传递的系统上,在它们之间建立逻辑通道,由消息中间件实现消息发送。消息中间件可以既支持同步方式,又支持异步方式,实际上它是一种点到点的机制,因而可以很好地适用于面向对象的编程方式。中间件领域目前最热门的技术是异步的消息中间件,异步中间件技术比同步中间件技术具有更强的容错性,在系统故障时可以保证消息的正常传输,因而在过去的两年里增长迅速.异步中间件技术可以分为两类:广播方式和发布/订阅方式。广播方式把消息分发给系统的所有用户。发行/订阅方式可以指定哪种类型的用户可以接收哪种类型的消息。发布/订阅方式由于更加智能有效,事实上已成为异步中间件的非正式标准.3.4中间件技术的发展趋势根据有关组织的预测,消息中间件是目前中间件技术的发展热点,如果也把交易中间件看成是一类特殊的消息中间件的话,那么消息中间件在目前的市场上占据主导地位,而且发展势头迅猛。消息中间件以其独特的优势为各种分布式应用的开发注入了强大动力,极大地推动了应用系统集成的发展.对象中间件技术也发展迅速,各大硬软件厂商都在积极参与有关标准的制定和产品开发工作,象IBM, HP, DEC, AT&T, ICL, Microsoft等都制定了相应的战略。许多对象中间件的专门厂商也相继诞生,未来的对象中间件市场会出现群雄逐鹿的局面.中间件的另一个发展动向是向Intemet的延伸,Intenret门ntranet技术早己在全球范围内广泛采用,但由于其自身的技术特点,在构造许多大型企业级应用时仍显不足,如并发控制、负载均衡、可靠传输、数据路由等,因而仍然存在供中间件发展的中间地带。总之,中间件技术作为软件行业新崛起的一个崭新的分支,正在全球范围内迅猛发展,根据IDC组织的预测,到2002年,全球的中间件市场将达到70亿美元。中间件技术的发展,也将把分布式应用的带到一个新的境界。4. MSMQ概述MS M Q是微软的消息队列中间件产品,它是Windows2 000操作系统中消息应用程序的基础,也是用于创建分布式,松散连接的消息通讯应用程序的开发工具。为消息队列开发的应用程序可以将消息发送到队列,这些队列是用来确保消息能够到达目标的临时存储位置。这些应用程序可以通过不同种类的网络进行通讯,也可以与脱机的计算机通讯。消息队列提供了有保障的消息传递、有效的路由、安全性、事务处理支持以及基于优先级的消息传递。具有这些功能的软件产品通常在业界叫做消息队列软件、存储转发软件或面向消息的中间件。使用消息队列,最终用户能够在断开连接的网络和计算机之间通讯,而不管网络和计算机的当前状态如何。系统管理员可以用消息队列高效地管理大型复杂的计算机和消息队列网络。通过消息队列,MIS决策者可以得到更加可靠的通讯,并且更有效地使用网络资源。开发人员可以只关注商业规则,而不必关心网络问题,因为消息队列能够提供有效的网络通讯。4.1 MSMQ的功能在Windows2000以前,MSMQ的基本功能如下:(1)无连接消息传递使用存储和转发消息队列,计算机不会受到网络的干扰,也不必建立会话。因为在应用程序级使用无会话模式,所以源计算机和目标计算机不需要支持相同的网络协议。既支持网际协议(IP),也支持Internet数据包交换(IPX)协议。(2)消息优先化消息优先化允许先发送紧急或重要的消息,再发送次重要消息,这样可以保证对关键的应用程序有足够的响应时间,而忽略不太重要的应用程序。(3)有保障的消息传递消息可以存储在基于磁盘的队列中,然后转发以提

    注意事项

    本文(毕业设计基于WINDOWS消息队列机制的远程通信研究论文.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开