新闻资讯
行业资讯
RPC 和 Web Service 有什么区别?
2017-11-28 16:32:05
摘要:RPC 和 Web Service 有什么区别?

使用 SOAP 协议创建 Web Service 需要使用两个备选方案:文档型 SOAP 协议或者 RPC SOAP 消息协议。RPC 指的是远程过程调用,它是一种协议,指定的程序通过它可以去请求指定的位于另一台远程主机上的另一个应用中的服务。在使用 RPC 的时候,无需去了解该应用的网络细节。一个指定的过程调用指的是作为子程序调用甚至函数调用。在使用 RPC 的时候,容易对客户/服务模型过度使用。请求一个服务去执行的应用是在客户端,而提供指定应用执行的计算机称为服务端。RPC 操作可以被称为同步操作,因为它需要一个应用,该应用请求的操作会一直阻塞直到远程过程返回结果。

在多个操作在等待的时候要确保设备处理每个请求不会花费过多时间,RPC 允许多个共享同一个指定地址的线程同时处理,因此可以在它们处理结束的时候给出应答,而不是串行的 - 一个操作必须结束了以后下一个才能开始。

使用 SOAP 控件创建的 Web Service 可以遵循 RPC 或文档消息格式。文档格式可以指定特定的 .xml 文档,以对给定的 XML 图表进行验证。对于 Java,RPC 被应用于 EJB 之类的平台之间的通信,因为这些应用都是用 Java 写的。而 Web Service,则主要应用于跨语言的应用的通信。

RPC 和 Web Service 之间的性能差距是很大的,尽管有些场景下考虑到恢复力它们的差别并不是很明显。RPC 带来了一个拥挤的服务器环境的挑战,这使得你很难进行多个客户端的工作。

另外,Web Service 允许多个服务部署,只要求 Web Service 是通过 HTTP 调用即可。这使得正常的网络发散和路由技术都要采用大型网站。同样需要注意的是,Web Service 的服务器端乃至客户端都不依赖于任何特殊编码。

可以对 RPC 和 Web Service 的恢复力进行公平比较,但需要注意的是 RPC 需要使用调停者才能达到预期效果。这就是 EE EJB 以及各种类似于 Spring 的框架发挥作用的时候了。为了提供最好的服务,最好是引入 RPC 环境之前就开始 Java EE EJB。

USA-IDC为您提供免备案服务器 0元试用
立即联系在线客服,即可申请免费产品试用服务
立即申请