使用rpcgen构建分布式程序地例子

使用rpcgen构建分布式程序地例子

ID:44948319

大小:239.50 KB

页数:26页

时间:2019-11-05

使用rpcgen构建分布式程序地例子_第1页
使用rpcgen构建分布式程序地例子_第2页
使用rpcgen构建分布式程序地例子_第3页
使用rpcgen构建分布式程序地例子_第4页
使用rpcgen构建分布式程序地例子_第5页
资源描述:

《使用rpcgen构建分布式程序地例子》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、标准文案分布式系统的重要不言而喻,下面是使用rpcgen工具构建一个分布式程序的例子,其实主要就是卷3上面的那个例子,就是下面这本书.另外还参考了<分布式系统原理与范例>这本书,即AndrewS.Tanenbaum写的这本,这本书是学习分布式的必读书之一.相当不错.整个文章分为三部分,第一部分是对RPC(远程过程调用)的一个介绍,第二部分是对使用rpcgen构建分布式程序的一个介绍,第三部分是使用rpcgen构建分布式程序的详细步骤.可以先按照第三部分的步骤自己先试试,如果有兴趣再回

2、过头来看它的介绍.另外,我写的这个只是一个入门,如果以后有机会再详细地讨论一下内部的机理.事情总是一步一步来的.一.RPC概念1.1介绍在中间件的实现中,引入了远程过程调用RPC(RemoteProcedureCall)的概念。同时,许多分布式系统是基于进程间的显式消息交换的,然而消息的发送和接收过程无法隐藏通信的存在,而通信的隐藏对于在分布式系统中实现访问透明性是极为重要的。因此这个问题在很长一段时间内都没有找到合适的解决办法,后来Birrel和Nelson在1984年的一篇论文中引入了一套与传统方法截然不同

3、的通信处理手段。他们认为应该允许程序调用位于其它机器上的进程。当机器A上的进程调用B上的进程时,A上的调用进程被挂起,而B上的大全标准文案被调用进程开始执行。调用方可以通过使用参数将信息传送给被调用方,然后可以通过传回的结果得到信息。编程人员看不到任何消息传递过程。这种方法就称为远程过程调用RPC。目前,RPC作为一种广泛使用的技术,已成为许多分布式系统的基础。1.2构建分布式程序的两种模式在设计分布式应用时,程序员可以使用下列两种方法之一:面向通信的设计由通信协议开始。设计报文格式和语法,指明对每个传入报文将

4、如何反应以及如何产生每个外发报文,以此来设计客户和服务器各构件。面向应用的设计由应用开始。设计常规的应用程序来解决问题。构建并测试可在单台机器上运行的常规程序的工作版本。将这个程序划分成两个或多个程序片,加入通信协议以允许每片程序在单独的计算机上执行。远程过程调用模型使用面向应用的方法,它强调的是所要解决的问题而不是所需要的通信。利用远程过程调用,程序员首先设计一个解决问题的常规程序,接着将其划分成若赶干片,这些程序片运行在两台或更多的计算机上。程序员可遵循良好的设计原则,以便使代码模块化并且可维护。在理想的情

5、况下,远程过程调用提供的不只是抽象上的概念。它允许程序员在将一个程序划分成若干片之前,先构建,编译和测试一个解决该问题的常规程序的版本,以便确保能够正确解决问题。不但如此,因为RPC以方法调用为边界划分程序,所以将程序划分为本地部分和远程部分并不会引起程序结构的很大变化。实际上,将某些过程从一个程序转移到远程机器上时,有可能不需要改变。大全标准文案1.3常规过程调用的概念性模型如下图所示,为常规的程序调用。本地过程调用.jpg1.4远程过程调用模型远程过程调用模型使用了和常规程序一样的过程抽象,但是它允许一个过

6、程的边界跨越两台计算机。如下图所示。大全标准文案远程过程调用.jpg1.5常规过程调用的执行和返回程序从一个主程序开始执行,并一直继续下去,直到遇到一个过程调用。这个调用使程序的执行转入到某个指定的代码处继续执行。常规过程调用的执行流程如下图所示:常规过程调用.jpg1.6分布式系统的过程模型在分布式系统中,其中的某个过程有可能在另外的机器上,因此,其调用过程模型如下图如示:大全标准文案分布式中的过程调用.jpg1.7客户-服务器和RPC之间的对比远程过程调用允许程序员以一种他所熟悉的环境来思考客户和服务器的交

7、互,如同常规的过程调用,远程过程调用把控制权传递给被调用的进程。也像常规过程调用一样,在调用进程中,系统把调用过程的执行挂起。而只允许被调用过程执行。当远程程序发出响应时,这对应于在常规过程调用中执行return。控制权返回给调用者,被调用过程停止执行。嵌套的过程调用的想法也可应用到远程过程调用。远程过程调用也许要调用另一个远程过程。如上图所示。二.分布式程序的生成原理RPC的实现包括一个工具,它自动地生成实现分布式程序所需要的大多数代码。这个工具叫做rpcgen,它读取一个规约文件作为输入,生成C的源文件作为

8、大全标准文案输出。规范文件包含常量,全局数据类型,全局数据以及远程过程(包括过程参数和结果类型)的声明。rpcgen产生的代码包含了实现客户和服务器程序所需要的大部分源代码。具体地说,rpcgen包括参数整理,发送RPC报文,把传入调用分派到正确的过程,发送应答,在参数和结构的外部表示和本地数据表示之间进行转换。rpcgen的输出与应用程序和程序员编写的少数文件相结合后,便产生出了完整

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。