`
applepieone
  • 浏览: 11206 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

RPC/编码、RPC/文字、文档/文字?应该采用哪一种?

 
阅读更多

http://www.ibm.com/developerworks/cn/webservices/ws-whichwsdl/

 

      对比服务的两类方式:一类是同步或者远程过程调用(RPC)方式;另一类是异步或者消息(文档)方式

      同步服务:同步服务的客户端将它们的请求表示为带变量的方法调用,方法返回一个包含返回值的响应。这意味着,当客户端发送一个请求时,它会首先等待响应消息,然后才会继续向下运行。这就使得整个调用不是完全成功就是完全失败。加入某个操作由于某种原因不能成功,则其他所有的依赖操作也将失败。由于在客户端和服务之间的双向通信,RPC类型的服务在客户端和服务提供者之间需要紧耦合的通信模式。当应用程序具有下列特性时,通常将用到RPC类型的Web Service:

  •        调用服务的客户端需要一个立即的响应
  •        客户端与服务以反复对话的方式进行写作

       典型RPC类型的同步服务例子包括:返回特定股票的当前价格,提供特定地区的当前天气情况

 

       异步服务:异步服务是文档类型的服务或消息驱动类型的服务。当客户端调用消息类型的服务时,客户端通常发送整个文档,诸如订购单,而不是单独发送一些参数。服务收到整个文档后,会处理它,然后返回(也可能不返回)一个结果消息。调用异步服务的客户端在继续运行应用程序的其他部分之前,不需要等待响应,从服务发出的响应可以在数小时甚至数天后才出现。

        在松耦合环境中,异步交互(消息)是一个核心设计模式。消息使得应用所处的松耦合环境既不需要了解如何进行通信的技术细节,也不需要了解其他应用程序的借口。这使得任何两个流程之间的通信操作可以是自包含的、独立的工作单元。当应用程序具有些列特性时,通常需要使用文档类型的Web Service:

  •        客户端不需要(不期待)立即的响应。
  •        服务是面向文档的(客户端通常发送一个完整的文档,例如订购单,而不是发送一些离散参数)。

       文档类型的Web Service 的例子包括订购单处理、响应客户的询价请求、响应一个特定顾客的订购等。在所有这些情况中,客户端向Web Service发送一个完整的文档,诸如订购单,然后假定Web Service以某种方式正在处理,但是客户并不需要一个立即的回复。

分享到:
评论

相关推荐

    RFC中文文档-txt

    RFC90 CCN 作为一种网络服务中心 RFC99 网络会议 RFC101 对1971年2月17日伊利诺斯州的Urbana的网络工作组会议的注释 RFC102 主机-主机 协议故障清除委员会的说明 RFC103 中断键的执行 RFC104 连接 191 RFC105 通过 ...

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    5.6.htm 嵌套语句的另一种应用 5.7.htm 一个switch语句的应用 5.8.htm 利用while循环显示了一个6行的表格 5.9.htm while语句和do-while语句的循环实例 5.10.htm 显示了一个...

    ZendFramework中文文档

    3.2.2. 高级使用:持久一个 DbTable 结果对象 3.2.3. 高级用法示例 3.3. 摘要式认证 3.3.1. 简介 3.3.2. 规范(Specifics) 3.3.3. 身份(Identity) 3.4. HTTP 认证适配器 3.4.1. 简介 3.4.2. 设计回顾 ...

    rfc中文文档目录,包含部分翻译

    RFC90 CCN 作为一种网络服务中心 RFC99 网络会议 RFC101 对1971年2月17日伊利诺斯州的Urbana的网络工作组会议的注释 RFC102 主机-主机 协议故障清除委员会的说明 RFC103 中断键的执行 RFC104 连接 191 RFC105 ...

    C#版protobuf如何实现http方式二进制传输

    Protocol buffers是一种编码方法构造的一种有效而可扩展的格式的数据。 谷歌使用其内部几乎RPC协议和文件格式的所有协议缓冲区。 C#protobuf如何实现http方式二进制传输的一个例子及说明文档

    计算机应用技术(实用手册)

    开机画面现在有两种,一种为AMI公司开发的,一种为Phoenix-award两家公司合并共同开发的;下面这张图为Phoenix-award开机自画面: Phoenix-award workstation BIOS V6.00PC,An Energy star Ally copyright(c) 1984...

    java开源包1

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java开源包11

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包2

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包3

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包6

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包5

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包10

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包4

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包8

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包7

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包9

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java开源包101

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

Global site tag (gtag.js) - Google Analytics