- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 分布式通信机制
* Server’s stub与一个server连接,它对于该server就像一个“client”。在调用时,它收到远程调用请求后,产生一个本地调用,去执行被请求的远程过程。在返回时,它截取远程过程的返回结果,并形成返回消息发送出去。 stub包含了一组RPC机制的操作原话,这些原语构成了RPC调用的实现细节,它可独立于client和server编程,在编译时再连接起来 * RPC的实现要考虑两个方面的问题。第一,当进行远程过程调用时,调用场点必须能定位出被调用的过程实际上运行在哪个场点上;第二,相关的两个场点必须能协同合作交换信息。所有这些对用户都是透明的,这些的工作是依次进行的。下面介绍一种实现RPC的方法.其实现思想已概括在图2.8中。 * 图2.8 RPC的实现概况 * 每个远程过程由若干成分组成: 调用者(caller)或用户(user) 调用代码段 以及被调用者(callee)或server 被调用代码段。这些都可用常规的程序设计语言编写, 不需要利用特别的设施,就象它们在同一场点上执行一 样。 与调用者相关的stub 与被调用者相关的stub RPC runtime子程序,可在系统中所有场点上运行。 2. RPC的实现 * stub程序的功能是把这种过程调用中所带的参数组装和拆卸成消息形式,并进行相应的类型检查,然后把这些消息转移给RPC runtime子程序,后者再把它们发送到系统中的其它场点。 程序设计者定义了过程并写好了过程体,而系统生成了对应的stub。实现一个远程过程调用的主要工作环节如下。 * ⑴调用者用通常方式调用对应stub中的一个过程; ⑵这个stub过程把有关的参数组装成一个消息包或一组消息包,以形成一条消息。运行此过程的那个场点的“地址”和那个场点上指称此过程的“标识符”都应包含在这条消息中; ⑶将这条消息发送给对应的RPC runtme子程序,该子程序再把它发送给指定的场点。 * ⑷在接收此消息时,远程runtime子程序引用与被调用者对应的stub中的一个子程序,并让它来处理这条消息; ⑸被调用者对应的stub中的这个子程序拆卸有关的参数并用通常的过程调用方式调用所需的过程。 ⑹返回调用结果,整个远程过程调用以与调用者对应的stub程序执行“return”语句返回到用户而终止。 * 在上面的述中,我们回避了一个重要的问题,即与用户对应的stub如何知道实际运行远程过程的场点之地址呢? 一些解决这一向题的方法: ⑴当系统生成与调用者对应的stub时,可把该远程场地的地址也一同并入其中,不过这种做法不太灵活。 ⑵在进行调用之前,与调用者对应的stub向系统中的其它场点进行广播,请求有关的场点通报其地址,这必然引起一系列的消息转移。特别,当这种广播是在若干网络之间进行时,其转移速度是很慢的。 ⑶由系统管理一个表,其表项的内容为 ①场点地址; ②该场点上将运行的远程过程的名字。 * 2.3.2 RPC执行时各部分之间的关系 RPC执行时,各部分的关系如图2.9所示。其中,传输部分是RPC的最低层,其主要功能为: ⑴提供对网络传输层协议的选择; ⑵建立 / 释放逻辑信道,发送 / 接收消息等; ⑶管理RPC中的消息缓冲区。 * 图2.9 RPC执行时各部分的关系图 * 控制部分的主要功能是: ⑴确定RPC中消息的方向(发送或接收); 当client的stub开始一次RPC调用或者server向server的stub返回调用结果时,该部分负责控制传输部分进行发送。 ⑵场点间会合与进程同步; 场点间会合是指为使两个场点间进程同步,它们必须同意“会合(rendezvous)”,即早到达的进程要等待晚到达的进程。会话进程通过场点间会合建立一致的起点,并以该起点作为进程同步点进行对话。 ⑶若干状态信息的处理。 由上可知,由于client的stub的作用,使得client可用常规过程调用方式去调用远程过程;由于server的stub的作用,使得server程序可以独立于调用者来编程,因而比较灵活。 * 本地调用和远程过程调用之间存在许多不同之处。如果远程调用是在两种异型机器间进行,这就存在数据表示问题,例如,这两类机器的字长可能不同。解决这一向题的方法之一是它在转移数据之前,让RPC机制将有关的数据转换成一种统一的格式,接收场点在接收数据时,再把它们转换成本地所允许的数据格式。第二个问题是如何解释指针,更确切他说,一个指针到底访问的是什么,在不
您可能关注的文档
- 第九章-力、力矩和压力的测量.ppt
- 第一次世界大战1概要.ppt
- 第一框政府的权力:依法行使概要.ppt
- 第九章-负债.ppt
- 第一章 溶液概要.ppt
- 第九章_广告效果测定(第14次课).ppt
- 第九章《压强》补充练习1.ppt
- 第九章企业价值与整体资产评估.ppt
- 第一章-人力资源经理岗位认知概要.ppt
- 第九章制造系统的展望.ppt
- 2025年山西林业职业技术学院单招英语2014-2024历年真题考点试卷摘选含答案解析.docx
- 2025年山西机电职业技术学院单招英语2014-2024历年真题考点试卷摘选含答案解析.docx
- 2025年山西林业职业技术学院单招语文2019-2024历年真题考点试卷含答案解析.docx
- 2025年山西水利职业技术学院单招语文2019-2024历年真题考点试卷含答案解析.docx
- 2025年山西戏剧职业学院单招(数学)历年真题考点含答案解析.docx
- 2025年山西电力职业技术学院单招语文2019-2024历年真题考点试卷含答案解析.docx
- 2025年山西电力职业技术学院单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析.docx
- 2025年山西电力职业技术学院单招英语2014-2024历年真题考点试卷摘选含答案解析.docx
- 2025年山东经贸职业学院单招英语2014-2024历年真题考点试卷摘选含答案解析.docx
- 2025年山西华澳商贸职业学院单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析.docx
文档评论(0)