分布式通信软件与通信协议
分布式系统中实现通信功能的这一部分软件统称为(communication software)
位于不同机器上的进程进行通信时,必须遵循预定的规则和约定,这些规则和约定称为(communication protocclient故障不应影响server的操作。
11
远程过程调用(RPC)
远程过程调用(Remote Procedure Call): 指非本地站点间的过程调用,即调用者和被调用者不在同一站点上
(1981),1989年ISO就将它作为计算机、终端用户、进程、计算机网络等的一种进行信息交换的标准规程
RPC的实质:是实现OSI七层协议中“会话层”的功能,即在两个试图进行通信的站点间建立一条逻辑信道(进行会话连接),并利用这个信道交换信息。不再使用时,负责释放所建立的信道
(七层协议即ISO于81年推出的网络系统结构七层参考模型,即“开放系统互连”OSI—Open System Interconnection的七层协议:应用层、描述层、会话层、传输层、网络层、数据链路层、物理层)
12
从语义角度:RPC使用“过程调用”方式实现通信,有类似于本地过程调用的语义,可向应用层和用户提供良好和习惯的接口
从应用角度:由于过程可独立编程的特点,以及过程已作为编程中的一种基本构件,有利于分布式系统灵活的扩展服务功能,也有利于故障的局部化处理
13
RPC的通信模式
RPC的通信模式是基于client/server间相互通信模型的一种同步通信形式。它对client提供了远程过程的抽象,其底层消息传递操作对client是透明的
在RPC中,client是请求服务的调用者(Caller)
Server是执行client的请求而被调用的对象--被调用者(Callee)
它们之间的通信模式为:
14
RPC的通信模式
15
这个模型中
,client/server双方只有一个处于活跃状态;
,其中
* Client(Caller)是主动方,由它开始激活一次会话连接,并在
server的配合下完成一次信息交换;
* Server(Callee)是被动方,开始总是处于倾听状态,等待
client的“调用请求”到达。
16
RPC的结构
Stub (client和server各一个)
Control part
Transfer part
Client’s Stub 的功能:
1)调用时,将参数组装成消息形式;
2) 借助网络将这一消息发给通信系统;
3)返回时,将“返回结果”拆卸成返回参数发送给通信系统。
17
Server’s Stub 的功能:
1)接收由Client’s Stub发来的“调用消息”;
2)将其拆卸成参数形式,然后调用指定过程;
3)将“返回结果”组装成“应答消息”发送给通信系统。
Control part:
1)确定RPC消息的方向(发送 or 接收);
2)负责控制“Transfer part”进行消息的传递。
Transfer part 是RPC的最底层,主要作用为:
1)提供对传递层协议的选择;
2)建立/释放逻辑信道,并进行消息的发送/接收;
3)管理RPC的消息缓冲区。
18
实现RPC的逻辑结构
19
Client’s Stub与一个client连接,它对于该client就像一个“server”。在调用时,它先截取client的远程调用命令后,利用通信网络向server方发“请求服务”的消息;返回时,它获取返回结果,返回到 client,然后client 继续执行下去
Server’s Stub与一个Server连接,它对于该server就像一个“client”。在调用时,它收到远程调用请求后,产生一个本地调用,去执行被请求的远程过程( server )。返回时,它截取远程过程的返回结果,并形成返回消息发送出去
20
实现RPC的主要步骤
21
实现RPC的主要步骤
1)调用者(client)调用Client’s Stub,后者为远程过程组装参数,然后,构成一
个或多个网络消息;
2)这些网络消息由Client’s Stub发送给通信系统;
3)借助网络协议发送出去;
4)Server’s Stub等待Client’s Stub的调用请求,从网络消息中提取参数并转换成所
需格式;
5)Server’s Stub执行一个本地过程调用,激活实际的服务程序,并将从Client’s
Stub
分布式OS12-3 来自淘豆网m.daumloan.com转载请标明出处.