淘先锋技术网

首页 1 2 3 4 5 6 7

从事开发行业的朋友们都听说过一些名词,比如SOA、WebService、RPC、RESTful等,特别是架构领域这些术语出现的频率也是很高的。这几个名词其实说的都是同一个东西,那就是服务,但很多朋友分不清它们之间的区别,下面我给大家梳理一下。

RPC是啥?

RPC代表的是远程过程调用(RemoteProcedureCall),它主要是面向方法(函数)级别的,我们只需要调用特定的方法来实现特定功能,而不需要了解其细节是如何实现的。它是Client/Server这种模式的。

说得通俗点就是,比如一套系统有一些核心代码(方法/函数)你不希望在此系统中植入(为了保密,防止被使用者破解),而是将这个核心代码放置在其它的服务器上运行,此系统只能调用远程服务器上的特定方法来实现功能。

RPC给我们的直观感觉就是,可以像调用本地方法(函数)一样去调用远程服务器上的方法(函数),具体用什么协议(如:HTTP、TCP、UDP、或自定义协议)、以什么形式(如:Json、XML、Binary、Protobuf)来传递数据都是可以自定义的。

WebService又是啥?

权威解释是:WebService是一种跨语言跨操作系统的远程调用技术。如果单从字面去理解,它就是以WEB形式(HTTP协议)提供的Service服务,这是一种提供Service服务的形式,可以理解为是一类服务方式的统称。

RPC和WebService的异同

1、相同点

RPC和WebService作用是非常相似的,都是远程调用技术,都是一种概念。

2、不同点

RPC用什么协议,以什么形式传输数据是可以定制的,技术上可选择的余地更大;而WebService则是以WEB形式提供的服务,协议自然就是HTTP/HTTPS了,可选择余地较小。

常见的WebService可以用SOAP、RPC、RESTful来实现,但不能说RPC是WebService的子级,因为RPC并不一定非要使用HTTP协议来实现。

RPC性能一般优于WebService,在体系上RPC比WebService要复杂的多。

以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流~我是科技领域创作者,十年互联网从业经验,我了解更多科技知识!