首页 > 技术文章 > ipc-rpc-xmlrpc

lizhensheng 2019-07-01 23:08 原文

 

 

https://stackoverflow.com/search?q=ipc+vs+rpc

 

https://baike.baidu.com/item/%E8%BF%9C%E7%A8%8B%E8%BF%87%E7%A8%8B%E8%B0%83%E7%94%A8/7854346

https://baike.baidu.com/item/%E6%9C%AC%E5%9C%B0%E8%BF%87%E7%A8%8B%E8%B0%83%E7%94%A8

 

进程间通信

IPC)是在

多任务操作系统

或联网的计算机之间运行的程序和进程所用的通信技术。有两种类型的进程间通信(IPC)。

本地过程调用(LPC)LPC用在多任务操作系统中,使得同时运行的任务能互相会话。这些任务共享内存空间使任务同步和互相发送信息。

 

 

远程过程调用(RPC)RPC类似于LPC,只是在网上工作RPC开始是出现在Sun微系统公司和HP公司的运行UNⅨ操作系统的计算机中。

 

LPC 的基础是远程过程调用Remote Procedure Call, RPC,RPC Unix 上用于运行在两台机器上的进程间通讯的事实上的标准。LPC 为在同一台机器上运行的进程间的通讯进行了优化。正如前面所讨论的,LPC 是子系统和其客户进程之间通讯的机制。客户线程当需要子系统的服务时就会调用 LPCLPC 将调用的参数传递给服务器进程。服务器线程执行服务并使用 LPC 将结果传回给客户端线程。

 

https://www.jianshu.com/p/8988e109ec8a

进程间通信IPCLPCRPC

https://baike.baidu.com/item/xmlrpc/7674531?fr=aladdin

https://baike.baidu.com/item/%E8%BF%9C%E7%A8%8B%E8%BF%87%E7%A8%8B%E8%B0%83%E7%94%A8/7854346

 

xml rpc是使用http协议做为

传输协议

rpc

机制,使用xml文本的方式传输命令和数据。一个rpc系统,必然包括2个部分:1.rpc client,用来向rpc server调用方法,并接收方法的返回数据;2.rpc server,用于响应rpc client的请求,执行方法,并回送方法执行结果。RPCRemote Procedure Call的缩写,翻译成中文就是

远程过程调用

,是一种在本地的机器上调用远端机器上的一个过程(方法)的技术,这个过程也被大家称为分布式计算,是为了提高各个分立机器的

互操作性

而发明出来的技术。

 

RPC是远程过程调用(Remote Procedure Call)的缩写形式。SAP系统RPC调用的原理其实很简单,有一些类似于三层构架的C/S系统,第三方的客户程序通过接口调用SAP内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。

基本的作用是:对数据进行处理后显示或打印

 

按照数据即程序的观点来看,RPC无非是借助一些通信手段来互相传递数据(信息),所以它也是层次的通信手段,无非是这种通信手段看起来更像是过程的调用,因为它往往以一个函数的面目示人,从而掩盖了她交换信息的实质。

在各种RPC技术中,我想应该以SunRPC最为著名,比较流行的网络文件系统NFS就是建立在SUN RPC技术基础之上的。

XMLRPC,顾名思义就是应用了XML标准通用标记语言的子集)技术的RPC

Sun RPC中,调用双方传递的数据是

二进制

的,而在XMLRPC中数据将是

XML格式

的。那么为什么用XML而不用二进制呢?我想一方面应该是为了兼容更多的语言,因为这个世界上除了C/C++等编译语言,还有很多类似python

perl

javascript

等的

脚本语言

(有些文章也称其为

动态语言

,因为他们通常不需要自己管理内存),另一方面是为了隔离操作系统的差异,比如说Little EndianBig Endian的差异等。基于种种原因,XMLRPC选择了XML这种

中间语言

作为其信息的格式,然后由各个语言负责将其转变成各自native(本土)的数据类型。关于为了兼容各个语言所发明的中间语言还有

IDL

Interface Definition Language:接口定义语言),它被用于

CORBA

接口的定义。

 

完整的需要参考xmlrpc规范

简单描述:

rpcclient的工作原理:rpcclient根据URL找到rpcserver -> 构造命令包,调用rpcserver上的某个服务的某个方法 -> 接收到rpcserver的返回,解析响应包,拿出调用的返回结果。

rpcserver的工作原理:启动一个webserver(在使用内置的webserver的情况下) -> 注册每个能提供的服务,每个服务对应一个Handler类 ->进入服务监听状态


推荐阅读