`

同步调用和异步调用

 
阅读更多

我们知道,常见的方法调用都是同步调用,这种调用方式是一种阻塞式的调用方式,即客户端(主调用方)代码一直阻塞等待直到被服务端(被调用方)返回为止。这种调用方式相对比较直观,也是大部分编程语言直接支持的一种调用方式。但是,如果我们面对是基于粗粒度的服务组件,面对的是一些需要比较长时间才能有响应的应用场景,那么我们就需要一种非阻塞式调用方式,即异步调用方式。

SCA编程模式提供了三种方式的异步调用,它们分别是:

1. 单向调用方式。

2. 延迟响应方式。

3. 请求回调方式。

单向调用

单向调用方式是最为简单的异步调用方式,在这种调用方式中,客户端发出请求之后就不再关心服务端的情况,包括是否执行成功,返回值是什么等等。我们可以用下面的图 4示来描述这种单向调用方式:

<img src="http://www.ibm.com/developerworks/cn/webservices/ws-sca/images/image007.png"/>

 

单向调用方式是一种不管调用结果的方式,但是在很多情况下我们是需要知道调用结果的。我们需要知道调用是否成功,需要知道调用的结果,就算调用失败我们也希望知道错误代码等信息。在这种情况下,延迟响应和请求回调就是两种能够让我们知道调用结果的方式。

延迟响应方式

延迟响应方式是指客户端在发出调用请求之后继续执行,但是经过一段时间之后,客户端再调用相应的方法去检索返回结果,并通过参数指定如何根据调用的结果而执行进一步动作。由于是异步调用方式,因此,在第一次发出调用请求的时候,服务端需要返回一个称为票据(Ticket)的对象。这个对象会作为第二次发出检索结果请求时的一个参数。显然,这个Ticket对象的作用与WEB编程的SessionID非常类似。我们可以用图 5 来表示延迟相应调用方式:

<img src="http://www.ibm.com/developerworks/cn/webservices/ws-sca/images/image009.png"/>

 

请求回调

与延迟响应方式类似,请求回调方式也能得到服务端的响应,但是不同的是这个响应是由服务端通过回调方式来触发的,而不像延迟响应方式由客户端来主动检索的。请求回调方式的原理与许多编程语言中的回调机制类似,不同的是这里实现的层次比较高一点。我们可以用图6来表示请求调用方式:

 

<img src="http://www.ibm.com/developerworks/cn/webservices/ws-sca/images/image0011.png"/>

 

分享到:
评论

相关推荐

    ice同步调用和异步调用实例代码

    Ice 是一种针对客户端和服务器进行通信的面向对象的中间件平台。Ice 为构建面向对象的客户-服务器应用提供了工具、API 和库支持。...客户和服务器可以分别部署,可以运行在...本代码为ice同步调用和异步调用实例代码。

    C#同步调用,异步调用,异步回调.docx

    C# 同步调用、异步调用和异步回调详解 在 C# 编程中,调用方法可以分为同步调用和异步调用两种。同步调用是指当前线程阻塞,等待方法执行完毕后继续执行,而异步调用则是将方法调用交给线程池,当前线程继续执行不...

    同步调用和异步调用WebService

    同步调用和异步调用是两种主要的调用方式,它们在处理Web服务请求时有着显著的差异。 **同步调用** 是指当一个调用发生时,执行线程会被阻塞,直到该调用返回结果。在这种情况下,程序的执行流程会暂停,等待调用的...

    Java异步调用转同步方法实例详解

    Java中将异步调用转换为同步调用有多种方法,本文将详细介绍五种方法:使用wait和notify方法、使用条件锁、使用Future、使用CountDownLatch、使用CyclicBarrier。 1. 使用wait和notify方法 wait和notify方法是...

    浅析异步调用的ppt

    Web服务的异步实现主要涉及两种方式:同步调用和异步调用。异步调用在服务器端能够提高资源利用率,避免因为单个请求阻塞其他请求的处理。在客户端,使用异步调用可以保持用户界面的响应性。 【Remoting】是.NET ...

    python同步调用异步情况示例

    同步调异步

    解析C#中委托的同步调用与异步调用(实例详解)

    本文将深入探讨C#中委托的同步调用和异步调用,以及如何在实际编程中利用这两种调用方式。 同步调用是默认的调用方式,通过调用委托的`Invoke`方法来执行。在上面的示例中,`handler.Invoke(1, 2)`会立即执行`Add`...

    ABAP 函数介绍

    ABAP 函数调用方法详解 ABAP 函数调用是 SAP 系统中的一种常用技术,用于实现业务逻辑的...异步调用和同步调用是两种常用的函数调用方式,异步调用可以提高系统的性能和效率,特别是在需要长时间执行的业务逻辑中。

    Angular异步变同步处理方法

    Angular异步变同步处理方法是前端开发中用于解决多个接口请求顺序依赖问题的一种技术手段。由于异步操作的特性,它能处理那些按顺序依次执行的接口调用,而不会阻塞主线程,让页面陷入假死状态。在Angular中,主要...

    Nodejs让异步变成同步的方法

    Node.js中让异步操作变成同步的方法通常是指将非阻塞的异步调用改写为在逻辑上表现得像同步调用的方式。Node.js中异步操作是通过回调函数、Promises和async/await等技术来实现的。以下我们详细讲解如何通过这些方法...

    WebService同步异步调用示例代码.rar

    在这个"WebService同步异步调用示例代码.rar"压缩包中,我们很可能找到C#语言编写的源代码,这些代码演示了如何使用.NET框架来创建和消费WebService,特别是在同步和异步模式下进行调用的方法。 同步调用是最基础的...

    C#同步和异步调用方法实例

    通过对比同步调用和异步调用,我们可以看到异步调用可以提高程序的执行效率和响应速度。但是,异步调用也需要注意一些问题,例如线程安全和资源竞争等问题。 本文通过一个简单的示例程序,演示了C#中的同步和异步...

    C#TCP/IP同步和异步通信

    在“WindowsInternetServer”压缩包中,可能包含了实现上述同步和异步通信的封装代码,这些代码可能定义了易于使用的接口,使得开发者无需关心底层实现细节,只需调用相应的方法即可完成通信。例如,可能存在一个...

    python如何实现异步调用函数执行

    在实现异步调用之前我们先进行什么是同步调用和异步调用 同步:是指完成事务的逻辑,先执行第一个事务,如果阻塞了,会一直等待,直到这个事务完成,再执行第二个事务,顺序执行 异步:是和同步相对的,异步是指在...

    WCF 同步 异步调用 实例

    本实例将深入探讨如何在WCF中实现同步和异步调用,以及如何在Winform环境下创建客户端和服务端。 ### 一、WCF同步调用 同步调用是程序执行的默认方式,它会阻塞调用线程,直到服务端返回响应。在WCF中,同步调用...

    Labview异步调用示例

    异步调用在LabVIEW中通常涉及事件结构、多线程和回调函数等概念。首先,事件结构是LabVIEW中处理异步操作的核心工具。当特定事件发生时,如用户交互、定时器触发或特定的VI完成执行,事件结构会分发相应的代码分支...

    LabVIEW中异步调用+可重入VI设置

    在LabVIEW编程环境中,异步调用和可重入VI(Virtual Instrument)是两种非常重要的技术,它们可以显著提升程序的执行效率和响应性。本文将深入探讨这两个概念以及如何在LabVIEW中进行相应的设置。 首先,让我们了解...

    同步方法和异步方法比较

    在编程领域,同步和异步方法是处理任务执行方式的两种基本模式,它们在系统设计和性能优化中扮演着至关重要的角色。理解这两者的区别及其优缺点对于开发高效的应用至关重要。 **同步方法**指的是调用一个函数或方法...

Global site tag (gtag.js) - Google Analytics