只会一点java

java持续学习者,每月一篇博客。罗列出技术栈,慢慢完善,持续学习,总有一天,你会追上甚至超越曾经的大神。
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

远程服务调用(RPC与Rest本质区别)

Posted on 2023-02-20 14:08  只会一点java  阅读(426)  评论(0编辑  收藏  举报

一、背景

 远程服务将计算机程序的工作范围从单机扩展到网络,从本地延伸至远程,是构建分布式系统的首要基础。远程服务调用(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