RPC和Web服务

Anonim

RPC与Web服务

使用SOAP协议创建Web服务需要使用两种备选方案中的任何一种。可以遵循Document SOAP协议或RPC SOAP消息传递协议。 RPC指的是远程过程调用,它是一种协议,可供给定程序用于请求位于另一个远程计算机内的另一个程序中的给定服务。使用RPC时,无需知道程序的网络详细信息。给定的过程调用称为子例程调用,甚至是函数调用。

在使用RPC时,大量使用客户端/服务器模型。请求执行服务的程序在客户端,并且提供给定程序的执行的计算机被称为在服务器端。 RPC动作可以称为同步动作,因为它需要一个请求动作的程序将指定的动作暂停,直到给出远程过程的结果为止。

为了确保在有不同的操作挂起时设备不会花费太长时间,RPC允许处理共享给定地址的多个线程,因此响应可以在它们到来时给出,而不是在一个动作必须一致的情况下给出完成下一个开始。

因此,使用SOAP控件创建的Web Service可以遵循RPC或Document消息传递样式。因此,文档样式可以指示可以针对给定XML模式验证的特定.xml文档。由于Java RPC用于EJB等平台的通信,因此类似的应用程序在Java上运行。另一方面,Web服务主要用于使用不在Java上运行并试图与Web服务连接的应用程序。

RPC和Web服务之间的性能非常不同,Web服务和RPC之间的差异很大。在某些情况下,变化可能非常小,考虑到弹性发挥作用。 RPC带来了拥挤的服务器环境的挑战,这使您很难使用多个客户端。

另一方面,Web Service允许多个服务部署,只需要满足通过HTTP调用Web Service。这允许利用较大站点中采用的常规网络喷射和路由技术。同样重要的是要注意Web服务不需要任何特殊的编码来与服务器甚至客户端一起工作。

RPC和Web Service的弹性可以同等比较,但重要的是要注意RPC要求使用中介按预期运行。正是在这里,EE EJB和Spring等框架发挥作用。为了获得最佳服务,建议在引入RPC环境之前首先使用Java EE EJB。将Web服务暴露给此环境和RPC也会使配置变得更加容易。

摘要

RPC指的是远程过程调用。 当大量使用客户端/服务器模型时,建议使用RPC。 RPC允许处理共享给定地址的多个线程。 RPC在使用EJB的平台上使用。 当应用程序想要访问时,在非Java平台中使用的Web服务。 Web Service还用于异步通信的同步。