一、背景
远程服务将计算机程序的工作范围从单机扩展到网络,从本地延伸至远程,是构建分布式系统的首要基础。远程服务调用(Remote Procedure Call,RPC)在计算机科学中已经存在了超过四十年时间。但很多人无法明确区分RPC与Rest。本文就讲一讲RPC和Rest的本质区别。
二、分析
2.1 RPC
概念:
20 世纪 80 年代初期,传奇的施乐 Palo Alto 研究中心发布了基于 Cedar 语言的 RPC 框架 Lupine,并实现了世界上第一个基于 RPC 的商业应用 Courier,这里施乐 PARC 所定义的“远程服务调用”的概念就是完全符合以上对 RPC 的结论的,所以,尽管此前已经有用其他名词指代“调用远程服务”这种操作,一般仍认为 RPC 的概念最早是由施乐公司所提出的。
Remote procedure call is the synchronous language-level transfer of control between programs in disjoint address spaces whose primary communication medium is a narrow channel.
远程服务调用是指位于互不重合的内存地址空间中的两个程序,在语言层面上,以同步的方式使用带宽有限的信道来传输程序控制信息。
核心观点:
- 1.RPC(Inter-Process Communication,IPC)实现的技术栈是“进程间通信”。
- 2.RPC 是一种高层次(语言层)的特征,而不是像 IPC 那样低层次的(系统层)的特征成为工业界、学术界的主流观点。
- 3.RPC解决了3个基本问题:如何表示数据、如何传递数据、如何确定方法。
- 4.RPC发展史,统一到分裂的过程。
2.2 REST
概念:
不同于RPC是一种协议,一种规范。Rest是一种架构风格(一种基于网络的软件架构设计),本生是开放式的。
核心观点:
- 1.Rest核心在于“表征状态转移”。
- 2.Rest六大原则,核心是面向资源的设计理念。
- 3.Rest优缺点。
=====参考===============
http://icyfenix.cn/architect-perspective/general-architecture/api-style/rpc.html