当前位置:文档之家› 分布式系统通信技术研究

分布式系统通信技术研究

研究生课程设计(小组报告一)题目:分布式系统通信技术研究院系:******************* 专业:******************* 小组成员:*********************************************************************************************** 课程:分布式与云计算分布式系统通信技术研究一、概述分布式系统是由一些相互独立的处理部件集合在一起,并且对于使用的用户而言是透明的、单一的相关系统,分布式系统可以管理和利用每个处理部件中相互分散却又有联系的资源,使其共同为解决某个具体问题而相互协作。

分布式系统产生的最初的目的是将互联网上计算机的闲置处理能力充分的利用起来作为一个系统进行分布式计算,它最主要是用在高性能计算领域。

近年来物联网、云计算、对等计算模式(peer-to-peer,p2p)、网格计算、无线传感网络等概念均为分布式系统技术的商业应用,因此构建分布式系统是有效实现这些应用的基本要求。

进程间通信是所有分布式系统的核心功能。

一个分布式系统,可以同时有成千个进程分布在网络上的不同的站点机上,它们通过网络提供的消息通信机制交换信息,实现高层应用的互操作。

网络上的不同站点机可以拥有不同的操作系统。

分布式应用系统的发展给分布式系统的进程间通信提出一个又一个需解决的技术问题。

本报告主要介绍了分布式系统的通信的模型和通信技术。

二、分布式系统的通信体系结构分布式系统的核心是通信网络,它完全是一种网状结构,因此称为通信体系结构。

按照计算机网原理,通信体系结构包括两个方面,一是处理机互连结构,即系统的物理组织;二是两进程间的通信协议,即系统的虚拟组织。

1.系统的物理组织按照计算机网的方法,互连结构涉及四个方面:报文、通路、交换和构形,如图2-1所示。

合理选择每个方面的具体内容,组合起来,即可得出系统的物理组织。

例如,系统可以是报文传输、直通通路、报文交换、环形结构(如DLCN),也可以是报文传输、广播通路、报文分组交换、树形总线结构(如Ethernet)等。

图2-1 处理机互连结构传输的信息称为报文,即一串比特码,在传输时,不再区分命令、地址、数据或状态,也不分指令流和数据流。

传输报文的道路称为通路或线路,报文从一点传输到另一点的通路,称为直通通路;从一点可同时发送到多个接收点的,称为广播通路。

通路由通信介质构成,常用的有双扭线、带状电缆、同轴电缆、光导纤维、无线电、微波、通信卫星、红外等,可按要求的频宽选用。

为了共享传输介质,在互连结构中设置有交换元件,按其工作原理可分为线路交换方式和存储转发方式两大类。

线路交换是在通路上设置开关,只.当选通时才在通信实体之间提供一条通路。

由于信息流的不均匀性,如果在通路中设置存储元件进行缓冲,可望提高通路的利用率,这就是存储转发方式。

其中,以报文为单位传送的,称为报文交换;将报文分为多个报文分组并行传送的,称为报文分组交换。

线路交换比较简单,多处理机系统中用得很多,如时分总线、纵横开关。

报文分组交换效率较高,是计算机网中的一种主要交换方式,在多处理机系统中也开始使用,如用在数据流计算机中。

基本的构形有星形、树形、环形和网形,将它们组合起来,可得出更为复杂的结构。

在多处理机系统中,共享主存可看成是星形,总线可认为是断开的环形。

由于环形网简单,经济,易于分布控制,看来可用在分布式系统中;为了提高性能,还可考虑采用多环结构。

2.系统的虚拟组织通信网络的根本任务是,利用各层协议,建立虚拟通路,实现报文通信。

各层协议应具备下列功能:(1)建立、维持和断开物理链路(给出接口说明);(2)在一链路上传输二进制码(给出链路地址,划分帧和块,进行差错控制等);(3)在一网络的两处理机间传输报文(确定报文格式、进行路径选择和流量控制等);(4)在两处理机中进程间传输文件或数据;(5)进程间进行会话(进程调度,并行执行等);(6)编排传输格式(定义虚拟终端,压缩数据等);(7)应用(采用用户语言,执行应用程序)。

如按上述功能分层,便可得出分布式系统的功能结构。

它具有七个独立的功能层构成的层次结构,只能下层(顺序号小的)为上层服务和上层访问下层;而同层间由协议建立虚拟通路进行通信。

本层上传送的报文(由正文和报头报尾组成),为上一层的报文加上本层的报头和报尾组成。

与普通计算机体系结构相比,分布式系统的体系结构(即功能结构)更具一般性和普遍性,它既包括了松散祸合的计算机网,也纳入了紧密祸合的多处理机系统;它既包括有硬件,也有软件,包含了系统的各个组成部分,突出了其相互间的连结和通信。

分布式系统体系结构的前4层为传输服务,提供通信设施和建立连结;第5~6层也可合并为一层,即系统层;全部应用和大部分管理活动(计算机操作系统管理活动)均在第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.转发器-接收器模式(Forwarder-Receiver)该模式由转发器、接收器和对等体(Peer)三种组件构成。

图5-1给出了该模式的静态关系。

图5-1 Forwarder-Receiver模式关系图对等体组件负责应用任务,它使用转发器向远程对等体发送消息,使用接收器接收其它对等体传送来的消息。

如图3-1所示。

转发器组件跨越进程边界发送消息。

它提供了一个通用接口,该接口是一个特殊IPC机制的抽象,并且包括列集(marshal)消息功能和传送消息的功能。

接收器负责接收消息。

它提供了一个通用接口,该接口是一个特殊IPC 机制的抽象,它包括接收消息的功能和散集(unmarshal)消息的功能。

相关主题