




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
研究生课程设计(小组报告一)题 目: 分布式系统通信技术研究 院 系: * 专 业: * 小组成员: * * * * * 课 程: 分布式与云计算 分布式系统通信技术研究一、 概述分布式系统是由一些相互独立的处理部件集合在一起,并且对于使用的用户而言是透明的、单一的相关系统,分布式系统可以管理和利用每个处理部件中相互分散却又有联系的资源,使其共同为解决某个具体问题而相互协作。分布式系统产生的最初的目的是将互联网上计算机的闲置处理能力充分的利用起来作为一个系统进行分布式计算,它最主要是用在高性能计算领域。近年来物联网、云计算、对等计算模式(peer-to-peer,p2p)、网格计算、无线传感网络等概念均为分布式系统技术的商业应用,因此构建分布式系统是有效实现这些应用的基本要求。进程间通信是所有分布式系统的核心功能。一个分布式系统,可以同时有成千个进程分布在网络上的不同的站点机上,它们通过网络提供的消息通信机制交换信息,实现高层应用的互操作。网络上的不同站点机可以拥有不同的操作系统。分布式应用系统的发展给分布式系统的进程间通信提出一个又一个需解决的技术问题。本报告主要介绍了分布式系统的通信的模型和通信技术。二、 分布式系统的通信体系结构分布式系统的核心是通信网络,它完全是一种网状结构,因此称为通信体系结构。按照计算机网原理,通信体系结构包括两个方面,一是处理机互连结构,即系统的物理组织;二是两进程间的通信协议,即系统的虚拟组织。1. 系统的物理组织按照计算机网的方法,互连结构涉及四个方面:报文、通路、交换和构形,如图 2-1 所示。合理选择每个方面的具体内容,组合起来,即可得出系统的物理组织。例如,系统可以是报文传输、直通通路、报文交换、环形结构(如 DLCN),也可以是报文传输、广播通路、报文分组交换、树形总线结构(如 Ethernet)等。图 2-1 处理机互连结构传输的信息称为报文,即一串比特码,在传输时,不再区分命令、地址、数据或状态,也不分指令流和数据流。传输报文的道路称为通路或线路,报文从一点传输到另一点的通路,称为直通通路;从一点可同时发送到多个接收点的,称为广播通路。通路由通信介质构成,常用的有双扭线、带状电缆、同轴电缆、光导纤维、无线电、微波、通信卫星、红外等,可按要求的频宽选用。为了共享传输介质,在互连结构中设置有交换元件,按其工作原理可分为线路交换方式和存储转发方式两大类。线路交换是在通路上设置开关,只.当选通时才在通信实体之间提供一条通路。由于信息流的不均匀性,如果在通路中设置存储元件进行缓冲,可望提高通路的利用率,这就是存储转发方式。其中,以报文为单位传送的,称为报文交换;将报文分为多个报文分组并行传送的,称为报文分组交换。线路交换比较简单,多处理机系统中用得很多,如时分总线、纵横开关。报文分组交换效率较高,是计算机网中的一种主要交换方式,在多处理机系统中也开始使用,如用在数据流计算机中。基本的构形有星形、树形、环形和网形,将它们组合起来,可得出更为复杂的结构。在多处理机系统中,共享主存可看成是星形,总线可认为是断开的环形。由于环形网简单,经济,易于分布控制,看来可用在分布式系统中;为了提高性能,还可考虑采用多环结构。2. 系统的虚拟组织通信网络的根本任务是,利用各层协议,建立虚拟通路,实现报文通信。各层协议应具备下列功能:(1)建立、维持和断开物理链路(给出接口说明) ;(2)在一链路上传输二进制码(给出链路地址,划分帧和块,进行差错控制等) ;(3)在一网络的两处理机间传输报文(确定报文格式、进行路径选择和流量控制等) ;(4)在两处理机中进程间传输文件或数据;(5)进程间进行会话(进程调度,并行执行等 );(6)编排传输格式(定义虚拟终端,压缩数据等 );(7)应用(采用用户语言,执行应用程序 )。如按上述功能分层,便可得出分布式系统的功能结构。它具有七个独立的功能层构成的层次结构,只能下层( 顺序号小的) 为上层服务和上层访问下层;而同层间由协议建立虚拟通路进行通信。本层上传送的报文(由正文和报头报尾组成) ,为上一层的报文加上本层的报头和报尾组成。与普通计算机体系结构相比,分布式系统的体系结构(即功能结构) 更具一般性和普遍性,它既包括了松散祸合的计算机网,也纳入了紧密祸合的多处理机系统;它既包括有硬件,也有软件,包含了系统的各个组成部分,突出了其相互间的连结和通信。分布式系统体系结构的前 4 层为传输服务,提供通信设施和建立连结;第 56 层也可合并为一层,即系统层;全部应用和大部分管理活动(计算机操作系统管理活动) 均在第7 层。三、 进程间通信的模式和方式目前,主要有三种分布式系统的进程间通信的模式:远程过程调用,远程方法调用,面向消息的通信。远程过程调用使一个进程可以调用异地、不同地址空间的进程的过程。它使用通信双方互认的格式传递过程标识、过程参数、响应结果;在通信双方分别设立存根,保存过程参数和运行结果。这样,通信双方可以根据本地的格式构造过程参数和运行结果,在本地的地址空间执行计算。远程方法调用,在基于对象的分布式系统中,使一个进程的对象可以访问异地、不同地址空间的进程的对象,包括调用远程对象的方法。远程对象在网络中具有唯一的标识。通信双方要对远程对象的方法界面达成一致。调用方依据方法的界面生成远程对象的代理。代理和远程对象具有相同的方法。调用方在本地调用代理的方法,将远程对象的标识、调用的方法、参数、结果类型传递给被调用方。被调用方设有存根,根据远程对象的标识获得本地的对象,对本地的对象执行计算。面向消息的通信使通信双方不必都处在执行状态,请求和响应仍然可以正确地被发送和被接收。它要求:设立通信服务器,在通信服务器之间传递信息;通信双方连到通信服务器,将要传递的信息交给通信服务器。通过在通信服务器上保存信息,面向消息的通信可以实现持久通信的功能。目前,主要有四种进程间通信的方式:持久通信。持久通信可以保证消息成功到达接收方。非持久通信。非持久通信不能保证消息成功到达接收方。当消息接收方处于不执行状态或发生故障时,消息被丢弃。同步通信。发送方发出消息后就等待,直到接收方返回确认信息,才继续执行。异步通信。发送方发出消息后仍继续执行。分布式系统采用什么样的通信方式,取决于系统对通信的要求。例如,电子邮件系统是持久异步通信系统,RPC 和 RMI 是非持久同步通信系统。四、 RPC 执行过程1、 RPC 基本思想以一个 C 语言的例子来看 RPC 的具体过程。这个例子中 C 程序调用一个求和函数,而这个求和函数位于另一台计算机上。可以设想,经过适当的处理,RPC 通信中间件可以承担起远程过程调用的通信,使得求和函数的执行就像发生在本地一样。如图 4-1 所示。RPC 也是一个客户服务器模型的通信。至于消息传递是建立在什么底层协议上,并不是我们所关心的内容。图 4-1RPC 基本思想2、 RPC 的基本操作在本地过程采用高级语言的编程时,过程的调用使用了一个栈数据结构,调用程序将本地的所有参数和返回值进栈后,将控制权移交给被调用过程,被调用过程也是将自己的变量在栈上进行分配,在返回时将这些变量出栈后,将结果拷贝到调用过程的变量中。调用过程在结束调用后,栈结构恢复到调用前的状态。以一个加法函数为例,当 sum 是一个本地过程时,程序的栈结构的变化如图 4-2 所示。图 4-2 本地过程调用栈的结构变化在过程调用时,参数 a 和 b 的值分别拷贝到 sum 的局部变量 p1 和 p2 上。Sum 函数是在参数的副本上工作的,并不改变参数的值。这就是所谓的参数按值调用。当 a 或 b 是指针或引用型变量时,a 和 b 的值实际代表的是参数值的地址,被调用函数不能改变地址值,但是能够改变地址所指向的数据。这种方式称为按引用调用。RPC 的实现目标是使得远程调用就好像是过程处理发生在本地一样。在 RPC 模型中服务器和客户机端都有一个存根程序,通过存根程序客户机将需要调用的方法名称和参数远程发送至服务器的存根程序,由服务器上的存根程序将参数和方法名传递给服务器进程。RPC 的工作原理大致如图 2-4 所示,所有的过程调用都在本地发生,客户与服务器的存根程序负责消息传递。这两个存根程序构成了 RPC 方法的通信中间件。图 4-3 RPC 的原理图示由图 4-3 看出,在分布式系统中,用户通过使用远程过程调用的方式可以像调用本地方法那样远程的调用服务器上的方法,通过存根程序对用户隐藏了分布式系统的底层通信细节。3、RPC 体系结构本文采用的 RPC 体系结构如图 4-4 所示:图 4-4 RPC 体系结构在 RPC 模型中有客户机进程和服务器进程分别分布在不同的计算机上,并且在客户机和服务器进程所在的计算机上都有存根程序,这个存根程序是服务器进程和客户机进程的代理。通过这个代理调用 Reader 和 Writer 函数实现远程过程调用也即远程引用层。在远程引用层底层使用的是网络中的 TCP/IP 协议,通过 TCP/IP 协议以及输入/输出流将引用层的服务名称和具体参数通过网络传递到目的主机。五、 常见的消息通信模式当今除了少数媒体和大型软件系统运行在单机上以外,绝大多数都使用了计算机网络。使用分布式系统的原因和好处很多,诸如实现资源共享、提高系统可靠性、降低商业成本等等。实现应用的分布式的一个重要先决条件就是:分布式系统中的子系统必须相互协作,需要一种相互通信的手段。然而,问题在于有太多的通信机制可供选择。以 UNIX 为例,可能要用到 TCP/IP、套接字、TLI (传输 层 接 口 , Transport Layer Interface )或 RPC ( 远 程 过 程 调 用 , Remote ProcedureCall)等等。本节介绍几种常见的通信模式和消息模型。1. 转发器接收器模式(ForwarderReceiver )该模式由转发器、接收器和对等体(Peer)三种组件构成。图 5-1 给出了该模式的静态关系。图 5-1 ForwarderReceiver 模式关系图对等体组件负责应用任务,它使用转发器向远程对等体发送消息,使用接收器接收其它对等体传送来的消息。如图 3-1 所示。转发器组件跨越进程边界发送消息。它提供了一个通用接口,该接口是一个特殊 IPC 机制的抽象,并且包括列集(marshal)消息功能和传送消息的功能。接收器负责接收消息。它提供了一个通用接口,该接口是一个特殊 IPC 机制的抽象,它包括接收消息的功能和散集(unmarshal)消息的功能。Forwarder - Receiver 模式为对等交互模型的软件系统提供了透明的进程间通信,它引入转发器和接收器将对等体从底层通信机制中分离处理。2. 客户机-分配器-服务器模式(Client - Dispatcher - Server)该模式由客户机、分配器和服务器三部分组成,其静态关系如图 5-2 所示。图 5-2 Client - Dispatcher Server 模式关系图客户机的任务是去执行特殊领域的任务。为了执行处理任务,客户机访问由服务器提供的操作。在发送请求给服务器之前,客户机向分配器请求信道,利用这个信道与服务器通信。服务器为客户机提供一组操作。它既可以注册自身,也可以通过其名字和地址向分配器进行注册。一个服务器组件可以与客户机位于同一主机,也可以位于网络中某个节点上。分配器提供在客户机与服务器间建立通信信道的功能。分配器将服务器组件的名字映射为其物理地址,利用现有的通信机制建立与服务器的通信链路并将通信句柄返回给客户机。为了提供名字服务,分配器实现了用来注册和定位服务器的功能。Client-Dispatcher-Server 模式通过在客户机与服务器间引入一个中间层一一分配器组件,并借助分配器提供的名字服务来实现位置透明性,从而隐藏了客户机与服务器间建立通信连接的细节。3. 出版者一订阅者模式(Publisher-Subscriber)在该模式中,关键对象是出版者(有时也被称为目标,subject)和订阅者(有时也被成为观察者,observer),它们的关系如图 4 所示。订阅者的状态依赖于出版者的状态,一旦出版者的状态发生改变,所有的订阅者都得到通知。为此,出版者为订阅者提供注册和注销功能,订阅者自行订阅或取消订阅。出版者在通知订阅者时,可以采用 push 或 pull 模式。在 push 模式中,当出版者通知订阅者时,自接发送更改的数据,订阅者无权选择是否和何时取回数据,只能被动接收;在 pull 模式中,出版者仅仅发送最少量的信息给订阅者,由订阅者决定是否和何时取回数据。Publisher - Subscriber 模式提供了一种合作组件状态同步化的机制。图 5-3 Publisher-Subscriber 模式关系图4. 消息中间件(MOM, Message - oriented Middleware)在异步分布式系统中,可以采用消息中间件来发送和接收消息。图 5 给出了消息中间件一般的消息模式。图 5-4 消息中间件对于消息发送者,它只需要将消息发送给消息中间件而无需阻塞等待。剩下的上作完全交给消息中间件,消息中间件负责将消息转发给消息接受者。对于支持可靠传输(guaranteed delivery)的消息中间件,更能保证在消息接受者暂时不可达的情况下不会丢失消息。典型的消息中间件有 IBM 的 MQSeries,Mircrosoft 的 MSMQ,它们均能实现可靠传输、容错处理、负载平衡等功能。六、 中间件的管道和平台中间件包含了客户端与服务器端通信的所有分布式软件,分为两类:管道和平台,如图 6-1 所示。图 6-1 管道和平台管道实现组件间和应用间的通信。平台中嵌入管道,并采用事务、负载均衡、命名服务、复制等技术,为应用系统跨越多种操作系统进行通信提供统一的环境。常用的管道技术常用的管道技术包括:对话(Conversations) 。它支持客户与服务组件之间的非持久实时对话,例如 TCP/IP 的套接字(Socket ) 。请求-响应(Request-response) 。它支持客户端和服务器端之间的非持久同步交互,例如远程过程调用(RPC) 、对象请求代理( ORB) 。消息队列(Queues) 。它类似电子邮件,实现应用到应用之间的持久异步通信,例如应用在面向消息的中间件(MOM )中的管道技术。发布-订阅(Publish-and-Subscribe) 。它支持非耦合的、异步的消息传递,例如应用在 CORBA 的事件服务中的发布- 订阅技术。广播和组播(Broadcasts and Multicast) 。它支持一个进程同时把消息发送给多个进程,例如 IP 的组播技术。中间件基于管道实现组件间的通信目前的、3 种主要的中间件解决方案基于管道实现组件的通信。1、CORBACORBA 是由 OMG 组织提出并倡导的。 OMG 希望通过 CORBA 实现运行在异地的、不同的操作系统上的对象的互操作,进而实现不同提供商的组件的互操作。CORBA 的核心是设计对象请求代理(ORB) 、制定 IIOP(英特网 ORB 协议)协议以实现组件之间的互操作,如图 6-2 所示。图 6-2 基于 ORB 和 IIOP 实现 CORBA 的组件的互操作2、.NET.NET 是 Microsoft 公司的中间件解决方案。它基于 RPC 和 DCOM 协议实现运行在异地的、Windows 操作系统上的组件对象模型( COM)的互操作,如图 6-3 所示。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 史教育竞赛试题及答案
- 2025年教师招聘之《小学教师招聘》通关题库及参考答案详解(b卷)
- 八里湾闸施工组织设计方案
- 原木可降解材料创新创业项目商业计划书
- 2025年教师招聘之《幼儿教师招聘》通关练习试题含答案详解【新】
- 教师招聘之《幼儿教师招聘》强化训练附参考答案详解(典型题)
- 水力装备表面纳米抗磨蚀材料及涂层制备技术研究与工程应用
- 2025年教师招聘之《幼儿教师招聘》题库高频重点提升(共100题)附参考答案详解【综合题】
- 2025年教师招聘之《幼儿教师招聘》通关练习试题及1套参考答案详解
- 2025年教师招聘之《幼儿教师招聘》试卷附参考答案详解【培优】
- 专升本语文基础知识课件
- 中学生网络安全培训大纲
- 无陪护病房护理汇报
- 脑循环功能障碍治疗仪讲课件
- 《区块链智能合约技术与应用》全套教学课件
- 青岛租房合同协议书下载
- 保安服务台账资料相关表格
- GB/T 17642-2025土工合成材料非织造布复合土工膜
- 企业内部培训合格证明书(5篇)
- 三甲医院电子病历管理规定
- 2024年纺织行业招聘要点试题及答案
评论
0/150
提交评论