RPC与Document 区别

本文深入探讨了RPC(远程过程调用)和文档交换方式在应用架构设计中的核心作用及优缺点。通过对比打电话与发邮件的不同处理方法,阐述了RPC模型和文档交换方式在系统耦合、方法调用灵活性和业务文档处理上的差异。重点强调了在当前环境下,推荐使用文档交换方式的原因,包括利用XML文件功能描述和验证业务文档的能力、降低系统耦合度和便于异步处理等优点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两种交互方式应该在应用架构的设计初始就应该详加考虑,因为它将在很大程度上决定系统的耦合程度。

RPC(Remote Procedure Call)本质上就是远程方法的调用。尽管Webservice是基于XML的但是你仍然可以使用远程方法调用这种模式来进行Webservice的实现,尤其是在那种简单的请求相应的模型中。在这个过程中,传输中的XML文件所描述的更多是有关远程方法的信息,比如方法名,方法参数等等。
而文档交换方式,与RPC相比较在XML文件中不是做远程方法的映射,而是一份完整的自包含的业务文档,当Service端收到这份文档后,先进行预处理(比如词汇的翻译和映射),然后再构造出返回消息。这个构造返回消息的过程中,往往不再是简简单单的一个方法调用,而是多个对象协同完成一个事务的处理,再将结果返回。


这两种方式的区别,类似与打电话和发邮件的不同处理方法。在目前,对于第一种方法提供了很多自动化的工具使得远程方法的调用能够很容易的完成,而后一种方法缺少一系列工具的支持,需要开发者手工完成。
尽管如此,在此还是推荐使用文档交换的方式。由于它在以下方面具有RPC所不具备的优点。
使用文档方式,你可以充分利用XML文件的功能去描述和验证一份业务文档,而在RPC模型中XML仅仅被用于描述方法的信息。
使用文档方式,在客户的Service的提供者之间不再需要紧密的约定,而RPC模型需要客户和Service的提供者紧密相连,一旦方法发生变化,客户端就需要做相应的改动。这不符合低耦合系统的要求,而在文档交换方式中则灵活的多。
由于业务数据是自包含的,显然文档模型更利于采用异步处理。

注意:当使用Jax-WS RI工具生成客服端代码时,采用RPC模式@SOAPBinding(style = SOAPBinding.Style.RPC) ,是不能书写异步客服端调用

请阅读:我应该采用哪一种 WSDL 样式?
http://www-128.ibm.com/developerworks/cn/webservices/ws-whichwsdl/

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值