分布式复习大纲第四章

第四章 分布式系统通信(2学时)

内容:消息传送,组通信,远程过程调用,远程对象方法调用,事件与通知。
要求:掌握分布式系统中组通信的概念和实现,掌握远程过程调用RPC的基本操作,以及远程对象方法的调用机制与实现。

消息传送(考试重点)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

消息传送模式

在这里插入图片描述
在这里插入图片描述
下面是一段包含信息传送的代码,进程P发送一个包含变量S的消息到进程Q;进程Q接收该消息,并置于R。
在这里插入图片描述
消息传送的模式
在这里插入图片描述
在这里插入图片描述
消息传送可靠性
消息传送的一个主要特征是可靠性,存在4种不同的可靠性语义
在这里插入图片描述

组通信

对于一个进程和进程组的其他成员,点对点交换消息不是一个好办法。例如,当一种服务在多个节点上有多个副本时,基于组传播操作的组通信是一种更合适的办法,它可以提高多副本修改效率。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

远程过程调用

在这里插入图片描述
在讨论远程过程调用之前,我们先看一下常规的过程调用
在这里插入图片描述
RPC的思想是尽量使远程过程调用具有与本地调用相同的形式。分布式系统希望RPC是透明的。

在本地调用中,read例程是由连接器从库中提取出来,连接到应用程序。RPC是通过类似的语句达到透明性。当read是针对远程过程时,从库中获取read例程的另一个版本,称为客户桩。在服务器端服务器也为远程客户提供一个read例程,称为服务器桩。
实际上,客户桩就是服务器在客户机上的代理,而服务器桩就是客户在服务器上的代理。

在这里插入图片描述
在这里插入图片描述

参数传递

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
每个参数都占32位字,a中,地位对齐。由于消息在网上逐字节传输,第一个发送的字节第一个到达并接收。而SPACE是高位对齐,将接收到的字符从左往右排列,如b,第一个整型数为83 866 080(5*8^3),第二个参数是“JILL”,简单将字节顺序逆转,虽然可以将整型数纠正过来,但字符串又变成了“LLIJ”,如c,这里的关键是没有识别整数和字符串的附加消息,用来指导这种纠正。

在这里插入图片描述
参数的规范形式

  1. 整型数用2的补码表示,占1个字
  2. 浮点数用IEEE754编码表示,占一个字
  3. 字符用Unicodel编码,占半个字
  4. 数组每个元素占用一个字,数组第一个元素之前是整型数,标明数组元素的个数
  5. 所有数据低位对齐

在这里插入图片描述
RPC语义
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

远程对象方法调用

对象:对象已被引入以便在分布式系统中使用面向对象的方法(包括面向对象的设计和面向对象的编程语言)。在分布式面向对象的方法中,一个计算由若干交互的对象组成,这些对象代表分解给定问题领域的自然单元。对象通过接口被访问,用一个相关的接口定义语言(IDL)提供定义在一个对象上的方法的规约。分布式对象已经成为分布式系统研究的一个主要领域。

远程方法调用(Remote Method Invocation,RMI):非常类似于远程过程调用,但它应用于分布式对象的环境。用这种方法,一个发起调用多个对象能调用一个远程对象的方法。于RPC一样,底层的细节对用户隐藏。不过,通过支持对象标识和远程调用中传递对象标识符作为参数,RMI实现做得更多。它们也从与面向对象语言的紧密集成中获得更多的好处。

事件与通知

事件通知是异步的,由接收者决定。分布式事件通知系统的一个对象发生的事件可以通知到不同位置的多个对象。分布式事件通知系统采用发布-预定工作模式。

发布-订阅系统:也叫分布式基于事件的系统,它的一个关键特征是提供一个中间服务,有效确保由生产者生成的信息被路由所需要这个信息的消费者。

猜你喜欢

转载自blog.csdn.net/idler123/article/details/121299463