RPC

来源:互联网 发布:单片机与接口技术 编辑:程序博客网 时间:2024/05/19 19:41

—————RPC之概览篇———————————————————-
RPC: Remote Procedure Call
RPC其实是个笼统的概念,只要符合远程过程调用特征的都属于RPC这个范畴。
RPC的特征包括:
1. 它是一种远程交互。
2. 发起方程序和反应方程序在不同的地址空间运行。
3. 程序员无需知道远程交互的细节。远程调用和本地调用的代码差别不大。程序员所写的远程调用代码就如同本地调用一样,底层框架已经封装了细节。

RPC的历史与起源:
将网络操作看成远程方法调用这种想法最早始于20世纪80年代的ARPANET文档。RPC这个术语的发明人是Bruce Jay Nelson. RPC第一次商用是在20世纪80年代的施乐公司。第一次广为人知的实现是在Unix操作系统上的SUN RPC。

RPC的消息传递:
一个RPC过程由客户端发起。客户端发送一个请求消息给远程服务器要求执行某个过程/例程,远程服务器从请求消息中获取过程调用的参数开始执行过程,服务器执行完毕后将结果返回给客户端。在服务器处理客户端调用过程中,客户端一直处于阻塞状态,直到服务器执行完毕并返回结果,客户端才能进行后面的操作。

与本地调用的一个显著不同点是,远程调用因为网络故障容易失败,而且调用者要负责处理这种调用失败。

每个厂家的RPC实现所采用的底层传输协议、数据编码/序列化和反序列化都有所不同。比如XML-RPC采用XML格式,JSON-RPC采用JSON格式,SOAP采用带schema和namespace的XML,Google protocolbuf采用私有二进制格式,Apache Thrift采用二进制格式。
从最早的Sun的RPC 到XML-RPC/JSON-RPC、微软的DCOM, 再到SOAP, CORBA, Java RMI,WCF 再到最近的protocolbuf,avro,Thrift 。RPC所采用的技术也在不断发展之中。

——————–RPC之RMI篇———————————————————–
RMI,Corba,JMS比较:
http://visionsky.blog.51cto.com/733317/438693

Java RMI实现:
http://docs.oracle.com/javase/tutorial/rmi/index.html

——————–RPC之RMI-IIOP篇——————————————————

——————–RPC之WebService篇—————————————————-

——————–RPC之数据序列化与反序列化篇——————————————

——————–RPC之Apache Avro篇—————————————————

——————- RPC之google protocolbuf篇——————————————–

——————- RPC之Apache Thrift篇————————————————

0 0
原创粉丝点击