网络服务与 RMI/RPC

Posted

技术标签:

【中文标题】网络服务与 RMI/RPC【英文标题】:webservices vs RMI/RPC 【发布时间】:2011-02-05 16:56:28 【问题描述】:

有谁知道 webservice 和 RPC/RMI 之间的区别?

【问题讨论】:

您是否尝试通过阅读它们来找出答案? 如果你做功课,你也会知道的。 好吧,我读到了它们。对我来说,它们看起来都一样:( 【参考方案1】:

“webservice”是一个以编程方式访问的远程服务的通用术语,尽管它通常用于指代 SOAP Web 服务,例如通过 HTTP 传递的 SOAP XML 消息。

RPC(远程过程调用)是一个相当老式的术语,用于远程调用服务。该术语不再使用。

RMI 是一种特定的 Java 技术,用于在远程对象上调用方法。它只是 java,并使用二进制有线协议 (JRMP)。

【讨论】:

他们不都执行相同的服务吗?给 webservices 起一个新名字的主要原因是什么? @user602774:他们或多或少都在做同样的事情,但方式不同。在很大程度上,这是一种时尚。【参考方案2】:

RPC(Remote Procedure Call)是一种远程调用,包括RMI(Remote Method Invocation)和RRP(Request-Reply Protocol)——RRP的一个很好的例子是HTTP协议;

它们都是分布式系统组件(即不同机器)之间的不同类型(范式)通信。简单来说,RPC 基本上是在远程机器上调用一个过程(如果你愿意的话,函数),就好像它是在本地机器上完成的一样。它抽象了分发的一些重要方面,包括编组。

同样,RMI 是一个扩展的 RPC,它进入了分布式对象的世界。它解决了 OOP 语言的很多问题,但也有一些事情需要考虑(参数传递、类调用等)。当然,RMI也就是俗称的Java RMI,但作为一个概念不一定是Java,可以用其他语言,C++,C#;

现在是 Web 服务,它是一种以更通用的方式与服务器交互的方式,换句话说,它是一种以一种非常好的和简单的方式向很多人公开服务器的某些功能的方式.通常,交互是通过应用程序编程接口 (API) 完成的,最常见的 API 范例是 SOAP 和 REST。有很多共同点和不同点。但主要是,SOAP 是一种协议,相当健壮和标准化,REST 是一种架构风格,它比较迷茫,它的请求使用 HTTP 协议和 URI。

【讨论】:

以上是关于网络服务与 RMI/RPC的主要内容,如果未能解决你的问题,请参考以下文章

接口测试理论一

咖啡馆的故事:FTP, RMI , XML-RPC, SOAP, REST一网打尽

在单个管理程序虚拟机上的两个不同操作系统上运行的两个进程之间的 IPC

webservice和webapi

微服务-服务注册与发现

微服务-服务注册与发现