CN103339910A - 通过基于远程过程调用的通信协议的全双工双向通信、及其应用 - Google Patents

通过基于远程过程调用的通信协议的全双工双向通信、及其应用 Download PDF

Info

Publication number
CN103339910A
CN103339910A CN2011800538998A CN201180053899A CN103339910A CN 103339910 A CN103339910 A CN 103339910A CN 2011800538998 A CN2011800538998 A CN 2011800538998A CN 201180053899 A CN201180053899 A CN 201180053899A CN 103339910 A CN103339910 A CN 103339910A
Authority
CN
China
Prior art keywords
server
full duplex
client
stream
duplex ability
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011800538998A
Other languages
English (en)
Other versions
CN103339910B (zh
Inventor
朱文博
凯文·于
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN201611207622.7A priority Critical patent/CN107104936B/zh
Priority to CN201611207625.0A priority patent/CN106878267A/zh
Publication of CN103339910A publication Critical patent/CN103339910A/zh
Application granted granted Critical
Publication of CN103339910B publication Critical patent/CN103339910B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

在此描述了用于降低成本但是提高在客户端和服务器之间流送数据时的性能的系统和方法。本发明的实施例涉及降低通过常规数据流送的成本但是提高其性能,在常规数据流送中,使用两个TCP连接,一个用于每个业务流的方向。进一步实施例允许服务器不是在两个TCP连接而是在单个TCP连接上使用对双向流的基于RPC的通信协议与一个或多个客户端通信。在一个实施例中,这通过从客户端到服务器发送初始握手实现。如果服务器接收握手,则客户端将请求流流送至服务器,并且服务器同时通过建立全双工流的同一单个TCP连接将响应流流送至客户端。

Description

通过基于远程过程调用的通信协议的全双工双向通信、及其应用
背景技术
超文本传输协议(HTTP)是无状态的远程过程调用(RPC)类型协议,其要求客户端和服务器之间的通信并且遵循严格的请求-响应模式。HTTP将数据从客户端流送到服务器或从服务器流送到客户端。当前,从客户端到服务器和从服务器到客户端的双向流送要求两个传输控制协议(TCP)连接,以分别在客户端和服务器之间流送数据。第一TCP连接由客户端用来将请求流送到服务器,而第二TCP连接由服务器用来将响应流送到客户端。
例如,对于客户端到服务器通信,方法包括Hanging GET、长轮询、以及轮询。Hanging GET方法包括未决(pending)RPC协议,其允许服务器在任何时间将响应数据流送到客户端。来自客户端的请求不包括初始握手请求,并且该请求不包含数据。长轮询方法类似于Hanging GET方法,但是来自服务器的响应对于服务器发送至客户端的每条数据被终止。客户端被要求初始化新RPC协议,以接收下一个消息。轮询方法要求客户端通过周期性地生成新RPC协议以从服务器接收数据来轮询服务器。
例如,对于服务器到客户端通信,方法包括一次发送一个请求和长期存活的请求。一次发送一个请求方法要求第一请求作为承载应用层协议语义的握手请求被发送。长期存活的请求方法要求单个RPC协议继续将请求数据发送至服务器。当请求数据的流送结束时,RPC协议完成。
这些双TCP连接方法是双向的但是不是双工的。这样的双TCP连接方法招致增加的成本,其进而引入增加的开销。增加的TCP连接消耗系统和网络资源。每个都在不同的TCP连接上发生的请求流送和响应流送要求两个连接保持被激活。这增加附加的网络业务。双TCP连接方法还使得HTTP不足以用作独立协议,同时要求附加的应用级协议来处理两个连接。
发明内容
实施例涉及服务器和客户端之间的数据流送能力。在第一实施例中,计算机实现的方法向具有全双工能力的客户端提供经由单个协议连接通过基于远程过程调用的通信协议建立全双工双向通信流的能力。全双工通信经由网络通过具有全双工能力的客户端和服务器之间的单个协议连接被发起,其中,具有全双工能力的客户端被配置成通过将初始握手发送至服务器来占用(engage)服务器。在服务器通过单个协议连接经由网络接受初始握手之后,客户端请求流通过全双工客户端被流送至服务器。通过单个协议连接从服务器接受响应流,同时具有全双工能力的客户端通过单个协议连接流送客户端请求流。当客户端请求流和响应流同时通过单个协议连接通信时,通过基于远程过程调用的通信协议使能全双工双向通信流。
在第二实施例中,系统向具有全双工能力的服务器提供经由单个协议连接通过基于远程过程调用的通信协议建立全双工双向通信流的能力。服务器连接模块完成经由网络通过具有全双工能力的服务器和客户端之间的单个协议连接的全双工通信的初始化,其中,具有全双工能力的服务器被配置成接受来自客户端的初始握手。服务器接受模块通过单个协议连接接受请求流。服务器传递模块将由具有全双工能力的服务器接收的请求流传送至服务器应用。服务器流送模块通过单个协议连接经由网络由应用将包括对请求流的应用响应的服务器响应流流送至客户端。当服务器响应流和请求流同时使用单个协议连接时,服务器使能模块通过基于远程过程调用的通信协议使能全双工双向通信流。
以下参考附图详细地描述进一步实施例、特征、和优点以及各个实施例的结构和操作。
附图说明
参考附图描述实施例。在图中,类似参考数字可以指示相同或功能类似的元件。
图1示出根据实施例的全双工双向通信系统;
图2示出根据实施例的包括客户端应用和服务器应用的全双工双向通信系统;
图3示出根据实施例的客户端服务器全双工双向通信协议;
图4示出根据实施例的全双工双向通信系统架构;
图5示出根据实施例的用于具有全双工能力的客户端的操作的示范方面的流程图;
图6示出根据实施例的示出用于具有全双工能力的服务器的操作的示范方面的流程图。
具体实施方式
全双工双向通信提供通过单个协议连接服务器将数据流送到客户端并且同时客户端将数据流送到服务器的能力。在在此的具体实施方式中,对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以不必包括该特定特征、结构、或特性。而且,这样的短语不必是指相同实施例。而且,当特定特征、结构或特性可以结合一实施例描述时,其可以被认为,连同在此明确或未明确描述的其他实施例实现这样的特征、结构或特性,可以在本领域技术人员的认识内。
概述
图1示出可以实现实施例或其部分的客户端-服务器网络系统100。系统100包括具有全双工能力的服务器102、具有全双工能力的客户端112、网络108、以及单个TCP连接130。
一般来说,一个或多个具有全双工能力的客户端112通过网络108连接至具有全双工能力的服务器102。在实施例中,具有全双工能力的服务器102可以包括常规的web服务器、电子邮件服务器、或根据本公开中的教导修改的文件传送服务器。具有全双工能力的服务器102可以是包括至少一个处理器、至少一个存储器、以及至少一个网络接口的设备。
具有全双工能力的客户端112可以是包括至少一个处理器、至少一个存储器、以及至少一个网络接口的设备。例如,具有全双工能力的客户端112可以在个人计算机、手持计算机、个人数字助理、智能手机、移动电话、游戏控制台、机顶盒等上实现。
网络108可以包括一个或多个网络,诸如互联网。在一些示例中,网络108可以包括一个或多个广域网(WAN)或局域网(LAN)。网络108可以包括一种或多种网络技术,诸如以太网、快速以太网、吉比特以太网、诸如WiFi的IEEE802.11标准的变体等。通过网络108的通信使用包括诸如TCP的可靠流协议的一个或多个网络通信协议发生。这些示例是示意性的并且不用于限制本公开。
具有全双工能力的客户端112和具有全双工能力的服务器102可以使用诸如TCP的协议通过网络108进行数据通信。TCP是可靠流协议,还被已知为保证传递协议或面向连接协议,其中,“可靠”和“保证传递”是指确保数据传递的协议的性质。可靠流协议提供从一个计算机到另一个计算机的字节流的可靠顺序传递。可靠流协议通过管理消息传输和确认、丢弃的数据片段重传、以及传递超时等确保数据传递。可靠流协议可以与不提供数据片段的可靠传递的“简单”或“无连接”传输协议形成对比。无连接协议的一个这样的示例是用户数据报协议(UDP)。在UDP中,不存在被发送至接收方的数据片段在传输期间是否丢失的指示。如在此的描述中假定的本领域技术人员将理解的,远程过程协议(RPC)是实现诸如但不限于TCP的通信层协议的应用层协议。
参考作为示范性可靠流协议的TCP描述在此的实施例;然而,识别根据本公开中的教导可采用的其他参考可靠流协议在本领域技术人员的认识内。
使能具有全双工能力的服务器102和具有全双工能力的客户端112之间的数据通信的一种方法是建立具有全双工能力的服务器102和具有全双工能力的客户端112之间的全双工双向通信。例如,与单独协议连接上的双向通信的常规方法相比,全双工双向通信使能通过单个协议连接在具有全双工能力的服务器102和具有全双工能力的客户端112之间的数据流送。
全双工双向通信
图2示出可以实现实施例或其部分的示例全双工双向通信系统200。系统200包括具有全双工能力的服务器102、具有全双工能力的客户端112、网络108、客户端应用280、服务器应用230、以及单个TCP连接130。具有全双工能力的服务器102包括服务器通信堆栈210和服务器代理220。具有全双工能力的客户端112包括客户端通信堆栈260和客户端代理270。网络108包括网络代理250。
在一个实施例中,具有全双工能力的客户端112和具有全双工能力的服务器102使用RPC通信协议通过单个TCP连接130参与全双工双向通信。为了在不破坏RPC协议的语义的情况下使得这样的双向通信成为可能,通过插入必须语义以允许这样的双向通信的协议扩展,来更改RPC协议。特别是,通过单个TPC连接130的全双工双向通信遵循诸如基本HTTP请求-响应语义的RPC通信协议语义,具有支持双向通信的附加语义。以此方式,使用HTTP通过单个TCP连接130的全双工双向通信提供能够同时进行全双工的服务器102和具有全双工能力的客户端112之间的流送。
例如,在具有全双工能力的客户端112将请求发送至具有全双工能力的服务器102的同时,具有全双工能力的服务器102可以将响应发送至具有全双工能力的客户端112。具有全双工能力的服务器102和具有全双工能力的客户端112被明确地设计成支持同时流送。标准HTTP不足以单独支持通过单个TCP连接130的全双工双向通信。附加协议要求使能具有全双工能力的服务器102和具有全双工能力的客户端112使用诸如HTTP的RPC协议有效地参与通过单个TCP连接130的全双工双向通信。
具有全双工能力的客户端112经由网络108通过到具有全双工能力的服务器102的单个TCP连接130,通过基于RPC的通信协议发起请求数据流。具有全双工能力的服务器102接收请求数据流。具有全双工能力的服务器102通过发起响应数据流,对请求数据流作出响应。具有全双工能力的服务器102经由网络108通过到具有全双工能力的客户端112的单个TCP连接130,通过基于RPC的通信协议流送响应数据流。具有全双工能力的客户端112接收响应数据流。请求数据流和响应数据流同时通过建立全双工双向通信的单个TCP连接130操作。
在一个实施例中,客户端应用280和服务器应用230分别与具有全双工能力的客户端112和具有全双工能力的服务器102通信。如上所述,具有全双工能力的客户端112可以在个人计算机、手持计算机、个人数字助理、智能电话、移动电话、游戏控制台、机顶盒等上实现。在此的说明书中假定的本领域技术人员将理解,客户端应用280包括在以上任何一个上操作的应用。如在此的说明书中假定的相关技术领域中的技术人员将理解,服务器应用230包括在以上任何一个上操作的应用。
客户端应用280发起对具有全双工能力的客户端112的请求,以与服务器应用230通信。具有全双工能力的客户端112向具有全双工能力的服务器102发起包含客户端应用280的请求的请求数据流。具有全双工能力的服务器102接收请求数据流,并且实时地将请求从客户端应用280传递至服务器应用230。服务器应用230处理请求,并且将对请求的响应发送至具有全双工能力的服务器102。具有全双工能力的服务器102发起包含对由服务器应用230发送的请求的响应的响应数据流。具有全双工能力的服务器102将响应数据流流送到具有全双工能力的客户端112。具有全双工能力的客户端112接收响应数据流,并且将响应从服务器应用230传递到客户端应用280。请求数据流和响应数据流同时通过建立全双工双向通信的单个TCP连接130操作。
在一个实施例中,具有全双工能力的客户端112和具有全双工能力的服务器102之间的全双工双向通信可以由服务器应用230完全控制。全双工双向通信可以限于已由具有全双工能力服务器102明确识别的客户端。可以要求不受服务器应用230控制的客户端应用280通过向服务器应用230流送URL参数和/或报头告知其能力,以参与全双工双向通信。不受服务器应用230控制和/或不被服务器应用230验证为具有全双工双向通信能力的客户端应用280不应该参与全双工双向通信。
在一个实施例中,当客户端代理270、网络代理250、以及服务器代理220允许这样的全双工通信时,可以建立具有全双工能力的客户端112和具有全双工能力的服务器102之间的全双工通信。如在此的说明书中假定的相关领域中的技术人员将理解,代理用作用于诸如但不限于设法使用彼此的资源的客户端、服务器、或网络的通信设备之间的请求的中介。代理依赖用于允许或不允许对代理代表的通信设备的访问的过滤规则。例如,代理可以使用允许基于诸如HTTP的通信协议的请求来访问通信设备但是不允许基于其他协议的请求的过滤规则。
网络代理250、服务器代理220、以及客户端代理270分别包括允许基于基于RPC的通信协议的数据流流送到网络108、具有全双工能力的服务器102、以及具有全双工能力的客户端112的过滤规则。如果数据流基于不同于RPC的通信协议,则网络代理250、服务器代理220、以及客户端代理270可以分别拒绝对网络108、具有全双工能力的服务器102、以及具有全双工能力的客户端112的数据流访问。然而,由具有全双工能力的客户端112和具有全双工能力的服务器102生成的请求和响应数据流是基于RPC的通信协议。结果,网络代理250、服务器代理220、以及客户端代理270允许请求和响应数据流经由网络108在具有全双工能力的客户端112和具有全双工能力的服务器102之间自由地流动。
在一个实施例中,网络代理250、服务器代理220、以及客户端代理270可以不允许来自具有全双工能力的服务器102的早响应。网络代理250、服务器代理220、以及客户端代理270还可以缓冲来自具有全双工能力的客户端112的请求和来自具有全双工能力的服务器102的响应。在缓冲时,客户端应用280和/或服务器应用230可以从全双工双向通信切换至使用两个连接而不是单个TCP连接130的不同协议。具有全双工能力的客户端112和具有全双工能力的服务器102可以实现这样的退回技术,诸如轮询。具有全双工能力的客户端112还可以实现在短超时时间段内等待来自具有全双工能力的服务器102的初始响应的退回技术。
在一个实施例中,具有全双工能力的客户端112和具有全双工能力的服务器102中的每个都具有通信接口。客户端通信堆栈260用作用于具有全双工能力的客户端112的通信接口。服务器通信堆栈210用作用于具有全双工能力的服务器102的通信接口。
具有全双工能力的服务器102的客户端通信堆栈260接收由客户端应用280生成的请求。客户端通信堆栈260经由网络108通过单个TCP连接130向服务器通信堆栈210发起请求数据流。由具有全双工能力的客户端112生成的请求数据流基于基于RPC的通信协议,所以网络代理250和服务器代理220允许请求数据流流过网络并且访问具有全双工能力的服务器102。服务器通信堆栈210从具有全双工能力的客户端112接收请求数据流,并且将请求数据流传送至服务器应用230。
服务器应用230将对请求数据流的响应发送至服务器通信堆栈210。服务器通信堆栈210经由网络108通过单个TCP连接130向客户端通信堆栈260发起响应数据流。由具有全双工能力的服务器102生成的响应数据流基于基于RPC的通信协议,所以网络代理250和客户端代理270允许响应数据流流过网络108并且访问具有全双工能力的客户端112。客户端通信堆栈260接收响应数据流并且将响应发送至客户端应用280。请求数据流和响应数据流同时通过建立全双工双向通信的单个TCP连接130操作。服务器通信堆栈210和客户端通信堆栈260提供消息传递支持和所要求的传递担保。
全双工双向通信语义
图3示出可以实现实施例或其部分的示例全双工双向通信系统300。系统300包括具有全双工能力的客户端112和具有全双工能力的服务器102。具有全双工能力的客户端112和具有全双工能力的服务器102参与一系列数据交换,以建立全双工双向通信。
在一个实施例中,具有全双工能力的客户端112和具有全双工能力的服务器102通过遵循一系列全双工双向通信语义建立全双工通信。具有全双工能力的客户端112通过将初始握手请求310发送至具有全双工能力的服务器102,发起与具有全双工能力的服务器102的全双工通信。具有全双工能力的服务器102接受或拒绝初始握手请求310。如果具有全双工能力的服务器102拒绝初始握手请求310,则具有全双工能力的客户端112和具有全双工能力的服务器102之间的全双工通信失败。
如果具有全双工能力的服务器102接受来自具有全双工能力的客户端112的初始握手请求310,则建立具有全双工能力的服务器102和具有全双工能力的客户端112之间的全双工通信。具有全双工能力的服务器102通过以初始握手接受320进行响应,接受初始握手请求310。一旦具有全双工能力的客户端112接收到初始握手接受320,则具有全双工能力的客户端112和具有全双工能力的服务器102之间的全双工通信就完成。
在一个实施例中,具有全双工能力的客户端112和具有全双工能力的服务器102之间的全双工通信可以通过基于HTTP语义的握手的完成被建立。初始握手请求310遵循HTTP语义。具有全双工能力的客户端112将HTTP请求发送至具有全双工能力的服务器102。HTTP请求之后为主体(body)完成初始握手请求310。初始握手接受320也遵循HTTP语义,其中,具有全双工能力的服务器102通过将响应报头发送至具有全双工能力的客户端112对初始握手请求310进行响应。一旦具有全双工能力的客户端112从具有全双工能力的服务器102接收到报头,基于HTTP的握手就完成,并且建立具有全双工能力的客户端112和具有全双工能力的服务器102之间的全双工通信。
在一个实施例中,接着通过具有全双工能力的客户端112接收初始握手接受320,发起具有全双工能力的客户端112和具有全双工能力的服务器102之间的数据流。具有全双工能力的客户端112发起请求流330,并且将请求流330流送到具有全双工能力的服务器102。具有全双工能力的服务器102从具有全双工能力的客户端112接收请求流330,并且在完成请求流330之前,通过将响应流340流送至具有全双工能力的客户端112来响应。当通过单个TCP连接130,具有全双工能力的客户端112将请求流330流送至具有全双工能力的服务器102并且同时具有全双工能力的服务器102将响应流340流送至具有全双工能力的客户端112时,可以建立全双工双向通信350。
在一个实施例中,全双工双向通信350在具有全双工能力的客户端112和具有全双工能力的服务器102之间继续,直到具有全双工能力的客户端112终止请求流330为止。通过具有全双工能力的客户端112终止请求流330终止全双工双向通信350,但是不终止通信链路。具有全双工能力的客户端112继续接收来自具有全双工能力的服务器102的响应流340,只要具有全双工能力的服务器102继续流送响应流340即可。当具有全双工能力的服务器102终止流送响应流340并且具有全双工能力的客户端112接收表示响应流340的结束的响应流终止370时,终止全双工通信。
在具有全双工能力的服务器102接收到表示请求流330的结束的请求流终止360之前,具有全双工能力的服务器102可以终止响应流340。在响应流340已被终止之后请求流330继续的情况下,在接收到请求流终止360之前终止响应流340的具有全双工能力的服务器102在HTTP中被认为处于非法状态。从而,具有全双工能力的客户端112可以在从具有全双工能力的服务器102接收到表示响应流340的结束的响应流终止370时,立即终止请求流330。
在一个实施例中,具有全双工能力的客户端112和具有全双工能力的服务器102之间的全双工双向通信350通过可以包括HTTP的基于RPC的通信协议被建立。在这样的实施例中,全双工双向通信350遵循标准HTTP语义。在通常涉及完整报头的接受的通过具有全双工能力的服务器102的初始握手请求310成功之后,具有全双工能力的客户端112向具有全双工能力的服务器102发起请求流330。遵循HTTP语义,具有全双工能力的服务器102拒绝生成响应流340,直到具有全双工能力的服务器102已经从具有全双工能力的客户端112接收到一部分请求流330为止。
一旦具有全双工能力的服务器102已从具有全双工能力的客户端112接收到请求流330,具有全双工能力的服务器102就向具有全双工能力的客户端112发起响应流340。具有全双工能力的服务器102避免终止响应流340的流送,直到具有全双工能力的服务器102已经从具有全双工能力的客户端112接收到表示请求流330的结束的请求流终止360为止。具有全双工能力的客户端112继续从具有全双工能力的服务器102接收响应流340,直到具有全双工能力的客户端112从具有全双工能力的服务器102接收到表示响应流340的结束的响应流终止370为止。
在一个实施例中,具有全双工能力的客户端112和具有全双工能力的服务器102之间的全双工双向通信350基于错误情况被终止。特别是,当具有全双工能力的客户端112从具有全双工能力的服务器102接收到响应流340中的错误响应时,具有全双工能力的客户端112终止请求流330,由此终止全双工双向通信350。
当具有全双工能力的客户端112不能流送请求流330时或者当请求流330超时时,具有全双工能力的客户端112终止请求流330,由此终止全双工双向通信350。同样地,当具有全双工能力的服务器102不能流送响应流340时或者当响应流340超时时,具有全双工能力的服务器102终止响应流340,由此终止全双工双向通信350。
在一个实施例中,具有全双工能力的客户端112和具有全双工能力的服务器102之间的全双工双向通信350可以支持管线传输(pipelining)。具有全双工能力的客户端112和具有全双工能力的服务器102可以通过保持永久连接来支持管线传输。当参与全双工双向通信350时,具有全双工能力的客户端112和具有全双工能力的服务器102通过使用相同的单个TCP连接130而不是在不同TCP连接之间交换,保持永久连接。当生成请求流330时的具有全双工能力的客户端112可以使单个TCP连接130不可用于管线传输请求。在请求流330终止之后继续响应流340的具有全双工能力的服务器102可以防止任何管线传输请求被处理。
系统400
图4是可以实现本发明的实施例或其部分的示例系统架构400。系统架构400包括耦接至客户端应用280的客户端初始化模块402。客户端使能模块408还可以耦接至客户端应用280。
服务器传递模块414可以耦接至服务器应用230。服务器流送模块416还可以耦接至服务器应用230。虽然图4中所示的实施例示出耦接至客户端初始化模块402和客户端使能模块408的客户端应用280以及耦接至服务器传递模块414和服务器流送模块416的服务器应用230,但是重点要注意,实施例可以用于在诸如网络化的基于云的架构的多种不同类型的计算机实现的数据源、系统和架构之间交换数据。
具有全双工能力的客户端112包括客户端通信堆栈260、初始化初始握手请求310的客户端初始化模块402、生成请求流330的客户端流送模块404、接收响应流340的客户端接受模块406、以及客户端使能模块408。具有全双工能力的服务器102包括服务器通信堆栈210、接收初始握手请求310的服务器连接模块410、接收请求流330的服务器接受模块412、传送请求流330的服务器传递模块414、接收服务器响应470并且生成响应流340的服务器流送模块416、以及服务器使能模块418。具有全双工能力的客户端112和具有全双工能力的服务器102通过单个TCP连接130通信。
通常,具有全双工能力的客户端112和具有全双工能力的服务器102之间的全双工双向通信如下操作。客户端应用280提供客户端请求420,其中,客户端请求420是初始化与服务器应用230的通信的请求。客户端初始化模块402从客户端应用280接收客户端请求420。基于客户端请求420,客户端初始化模块402生成初始握手请求310,以初始化通过具有全双工能力的客户端112和具有全双工能力的服务器102之间的单个TCP连接130的全双工通信。诸如单个TCP连接130的通信链路可以跨越流送RPC连接被重新使用。
在一个实施例中,客户端通信堆栈260和服务器通信堆栈210可以分别是用于具有全双工能力的客户端112和具有全双工能力的服务器102的接口。客户端通信堆栈260从客户端初始化模块402接收初始握手请求310,并且通过单个TCP连接130将初始握手请求310发送至具有全双工能力的服务器102。服务器通信堆栈210通过单个TCP连接130从具有全双工能力的客户端112接收初始握手请求310。服务器通信堆栈210将初始握手请求310发送至服务器连接模块410。服务器连接模块410接受完成通过单个TCP连接130的在具有全双工能力的客户端112和具有全双工能力的服务器102之间的握手的初始握手请求310。
一旦通过单个TCP连接130的在具有全双工能力的客户端112和具有全双工能力的服务器102之间的握手完成,客户端流送模块404就生成包含客户端请求420的请求流330。客户端通信堆栈260从客户端流送模块404接收请求流330,并且通过单个TCP连接130将请求流330流送到具有全双工能力的服务器102。服务器通信堆栈210从具有全双工能力的客户端112接收请求流330。服务器通信堆栈210将请求流330发送至服务器接受模块412。服务器接受模块412接受请求流330。
在一个实施例中,服务器接受模块412将请求流330发送至服务器传递模块414。服务器传递模块414将请求流330传送至服务器应用230。服务器应用230接收包含客户端请求420的请求流330,并且通过服务器响应470来响应客户端请求420。服务器应用230将服务器响应470发送至服务器流送模块416。服务器流送模块416接收服务器响应470,并且生成包含服务器响应470的响应流340。服务器流送模块416将服务器响应流340流送至服务器使能模块418。
在一个实施例中,当服务器使能模块418将响应流340流送到服务器通信堆栈210时,服务器使能模块418使能通过单个TCP连接130的全双工双向通信流。当具有全双工能力的客户端112将请求流330流送到使能全双工双向通信的具有全双工能力的服务器102时,服务器通信堆栈210进而通过单个TCP连接130将响应流340发送至具有全双工能力的客户端112。
在一个实施例中,客户端通信堆栈260通过单个TCP连接130从具有全双工能力的服务器102接收响应流340。客户端通信堆栈260将响应流340发送至客户端接受模块406。客户端接受模块406接受响应流340,同时具有全双工能力的客户端112将请求流330流送到具有全双工能力的服务器102。客户端接受模块将服务器响应流340发送至客户端使能模块308。当通过单个TCP连接130,响应流340流送到具有全双工能力的客户端112并且同时请求流330流送到具有全双工能力的服务器102时,客户端使能模块308使能具有全双工能力的客户端112和具有全双工能力的服务器102之间的全双工双向通信。
模块可以由具有全双工能力的客户端112和具有全双工能力的服务器102使用。如在此参考的,模块可以是具有一个或多个处理器的任何类型的处理(或计算)设备。例如,模块可以是工作站、移动设备、计算机、计算机集群、机顶盒、或具有至少一个处理器的其他设备。在一个实施例中,多个模块可以实现在同一处理设备上。软件可以包括一个或多个应用和操作系统。硬件可以包括但不限于处理器、存储器、和/或图形用户界面显示器。
方法500
图5示出建立与具有全双工能力的客户端的全双工双向通信的示范方法500的流程图。如图5中所示,方法500在具有全双工能力的客户端发起与服务器的全双工通信时开始于步骤510。例如,如图1和图3中所示,具有全双工能力的客户端112经由网络108通过具有全双工能力的客户端112和具有全双工能力的服务器102之间的单个TCP连接130发起全双工通信。具有全双工能力的客户端112被配置成通过将初始握手请求310发送至具有全双工能力的服务器102,占用具有全双工能力的服务器102。步骤510可以通过例如客户端初始化模块402执行。一旦步骤510完成,方法500就进行至步骤520。
在步骤520,具有全双工能力的客户端将客户端请求流流送到服务器。例如,如图1和图3中所示,在通过单个TCP连接130经由网络108通过具有全双工能力的服务器102的初始握手请求310的初始握手接受320之后,具有全双工能力的客户端112将请求流330流送到具有全双工能力的服务器102。步骤520可以通过例如客户端流送模块404执行。一旦步骤520完成,方法500就进行至步骤530。
在步骤530,具有全双工能力的客户端接受来自服务器的响应流。例如,如图1和图3中所示,具有全双工能力的客户端112通过单个TCP连接130接受来自具有全双工能力的服务器102的响应流340,同时具有全双工能力的客户端112通过单个TCP连接130流送请求流330。步骤540可以通过例如客户端接受模块406执行。一旦步骤530完成,方法500就进行至步骤540。
在步骤540中,通过基于远程过程调用的通信协议,使能全双工双向通信流。例如,如图1和图3中所示,当请求流330和响应流340同时通过单个TCP连接130通信时,通过基于远程过程调用的通信协议,使能全双工双向通信350。步骤540可以通过例如客户端使能模块408执行。当步骤540完成时,方法500结束。
实施例可以通过除了在此描述的那些之外的软件、硬件、和/或操作系统实现工作。可以使用适用于执行在此描述的功能的任何软件、硬件、以及操作系统实现。实施例可应用至客户端和服务器或两者。
方法600
图6示出用于与具有全双工能力的服务器建立全双工双向通信的示范方法600的流程图。如图6中所示,方法600开始于步骤610,其中,经由网络通过具有全双工能力的服务器和客户端之间的单个协议连接完成全双工通信。例如,如图1和图3中所示,经由网络108通过具有全双工能力的服务器102和具有全双工能力的客户端112之间的单个TCP连接130完成全双工通信。具有全双工能力的服务器102被配置成从具有全双工能力的客户端112接受初始握手请求310。步骤610可以通过例如服务器连接模块410执行。一旦步骤610完成,方法600就进行至步骤720。
在步骤620,具有全双工能力的服务器通过单个协议连接接受请求流。例如,如图1和图3中所示,具有全双工能力的服务器102通过单个TCP连接130接受请求流330。步骤620可以通过例如服务器接受模块412执行。一旦步骤620完成,方法600就进行至步骤630。
在步骤630,由具有全双工能力的服务器接收的请求流被传送至服务器应用。例如,如图1和图2以及图3中所示,由具有全双工能力的服务器102接收的请求流330被传送至服务器应用230。步骤630可以通过例如服务器传递模块414执行。一旦步骤630完成,方法600就进行至步骤740。
在步骤640,具有全双工能力的服务器将服务器响应流流送到客户端。例如,如图1和图3中所示,具有全双工能力的服务器102通过单个TCP连接130经由网络108通过服务器应用230将包括对请求流330的应用响应的响应流340流送到具有全双工能力的客户端112。步骤640可以通过例如服务器流送模块416执行。一旦步骤640完成,方法600就进行至步骤650。
在步骤650,通过基于远程过程调用的通信协议,使能全双工双向通信流。例如,如图1和图3中所示,当响应流340和请求流330同时使用单个TCP连接130时,通过基于远程过程调用的通信协议使能全双工双向通信350。当步骤650完成时,方法600结束。
实施例可以通过除了在此描述的那些之外的软件、硬件、和/或操作系统实现工作。可以使用适用于执行在此描述的功能的任何软件、硬件、和操作系统实现。实施例可应用至客户端和服务器或者两者的结合。
结论
实施例可以通过除了在此描述的那些之外的软件、硬件、和/或操作系统实现工作。可以使用适用于执行在此描述的功能的任何软件、硬件、和操作系统实现。实施例可应用至客户端和服务器或者两者的结合。
发明内容和摘要部分可以阐述发明人预期的一个或多个但不是所有示范实施例,并且从而不旨在以任何方式限制本发明和所附权利要求。
通过示出指定功能的实现及其关系的功能块的帮助,以上描述了实施例。为了描述的方便,这些功能块的边界可以在此被任意限定。只要指定功能及其关系被适当地执行,就可以限定替选边界。
通过应用本领域技术人员的知识,特定实施例的以上描述完全揭露了本发明的一般特性,在不脱离本发明的总体思想的情况下,容易地修改和/或适用于诸如特定实施例的多种应用,而不需要不适当的实验。从而,基于在此呈现的教导和指导,这样的适配和修改旨在所公开的实施例的意义及其等价范围内。将理解,在此的措辞和术语用于描述而不用于限制的目的,使得本说明的术语或措辞将由技术人员根据教导和指导来解释。
本发明的宽度和范围不由上述示范实施例中的任一个限制,而是仅根据以下权利要求及其等价物限定。

Claims (22)

1.一种用于提供具有全双工能力的客户端以经由单个协议连接通过基于远程过程调用的通信协议建立全双工双向通信流的计算机实现的方法,包括:
经由网络通过在所述具有全双工能力的客户端和服务器之间的单个协议连接发起全双工通信,其中,所述具有全双工能力的客户端被配置成通过将初始握手发送至所述服务器来占用所述服务器;
在所述服务器通过所述单个协议连接经由所述网络接受所述初始握手之后,通过所述具有全双工能力的客户端将客户端请求流流送至所述服务器;
在所述具有全双工能力的客户端通过所述单个协议连接流送所述客户端请求流的同时,通过所述单个协议连接接受来自所述服务器的响应流;以及
当所述客户端请求流和所述响应流同时通过所述单个协议连接通信时,通过所述基于远程过程调用的通信协议使能所述全双工双向通信流。
2.根据权利要求1所述的方法,进一步包括:
当所述客户端请求流和所述响应流两者均已被停止时,终止通过所述单个协议连接与所述服务器的所述全双工通信。
3.根据权利要求2所述的方法,进一步包括:
通过停止所述客户端请求流,终止所述全双工双向通信流;以及
通过接受所述响应流,通过所述单个协议连接继续与所述服务器的所述全双工双向通信流。
4.根据权利要求1所述的方法,其中,当一组客户端代理和一组网络代理读取所述基于远程过程调用的通信协议时,所述具有全双工能力的客户端流送所述客户端请求流。
5.根据权利要求1所述的方法,其中,所述单个协议连接是单个传输控制协议。
6.根据权利要求1所述的方法,其中,所述基于远程过程调用的通信协议是超文本传输协议。
7.一种用于提供具有全双工能力的服务器以经由单个协议连接通过基于远程过程调用的通信协议建立全双工双向通信流的计算机实现的方法,包括:
完成经由网络通过在所述具有全双工能力的服务器和客户端之间的单个协议连接的全双工通信,其中,所述具有全双工能力的服务器被配置成接受来自所述客户端的初始握手;
通过所述单个协议连接接受请求流;
将由所述具有全双工能力的服务器接收的所述请求流传送至服务器应用;
所述服务器应用通过所述单个协议连接经由所述网络将包括对所述请求流的应用响应的服务器响应流流送至所述客户端;以及
当所述服务器响应流和所述请求流同时使用所述单个协议连接时,通过所述基于远程过程调用的通信协议使能全双工双向通信流。
8.根据权利要求7所述的方法,进一步包括:
拒绝将所述服务器响应流流送至所述客户端,直到所述请求流已被所述具有全双工能力的服务器接受为止;
通过接受所述请求流,通过所述单个协议连接继续与所述客户端的全双工双向通信流;以及
当所述服务器响应流和所述请求流两者均已被停止时,终止通过所述单个协议连接与所述客户端的全双工通信。
9.根据权利要求7所述的方法,其中,当一组服务器代理和一组网络代理读取所述基于远程过程调用的通信协议时,所述具有全双工能力的服务器流送所述服务器请求流。
10.根据权利要求7所述的方法,其中,所述单个协议连接是单个传输控制协议。
11.根据权利要求7所述的方法,其中,所述基于远程过程调用的通信协议是超文本传输协议。
12.一种用于提供具有全双工能力的客户端以经由单个协议连接通过基于远程过程调用(RPC)的通信协议建立全双工双向通信流的系统,包括:
客户端初始化模块,所述客户端初始化模块经由网络通过所述具有全双工能力的客户端和服务器之间的单个协议连接发起全双工RPC通信,其中,所述具有全双工能力的客户端被配置成通过将初始握手发送至所述服务器来占用所述服务器;
客户端流送模块,所述客户端流送模块在所述服务器通过所述单个协议连接经由所述网络接受所述初始握手之后,通过所述具有全双工能力的客户端将客户端请求流流送至所述服务器;
客户端接受模块,所述客户端接受模块在所述具有全双工能力的客户端通过所述单个协议连接流送所述客户端请求流的同时,通过所述单个协议连接接受来自所述服务器的响应流;以及
客户端使能模块,当所述客户端请求流和所述响应流同时通过所述单个协议连接通信时,所述客户端使能模块通过所述基于RPC的通信协议使能所述全双工双向通信流。
13.根据权利要求12所述的系统,其中,所述客户端流送模块被进一步配置成:
当所述客户端请求流和所述响应流两者均已停止时,终止通过所述单个协议连接与所述服务器的全双工RPC通信。
14.根据权利要求13所述的系统,其中,所述客户端流送模块被进一步配置成:
通过停止所述客户端请求流,终止所述全双工双向通信流;以及
通过接受所述响应流,通过所述单个协议连接继续与所述服务器的全双工RPC通信。
15.根据权利要求12所述的系统,其中,当一组客户端代理和一组网络代理读取所述基于RPC的通信协议时,所述具有全双工能力的客户端流送所述客户端请求流。
16.根据权利要求12所述的系统,其中,所述单个协议连接是单个传输控制协议。
17.根据权利要求12所述的系统,其中,所述基于RPC的通信协议是超文本协议。
18.一种用于提供具有全双工能力的服务器以经由单个协议连接通过基于远程过程调用(RPC)的通信协议建立全双工双向通信流的系统,包括:
服务器连接模块,所述服务器连接模块完成经由网络通过在所述具有全双工能力的服务器和客户端之间的单个协议连接的全双工RPC通信的初始化,其中,所述具有全双工能力的服务器被配置成接受来自所述客户端的初始握手;
服务器接受模块,所述服务器接受模块通过所述单个协议连接接受请求流;
服务器传递模块,所述服务器传递模块将由所述具有全双工能力的服务器接收的所述请求流传送至服务器应用;
服务器流送模块,所述服务器流送模块通过所述单个协议连接经由所述网络将服务器响应流流送至所述客户端,所述服务器响应流包括所述应用对所述请求流的应用响应;以及
服务器使能模块,当所述服务器响应流和所述请求流同时使用所述单个协议连接时,所述服务器使能模块通过所述基于RPC的通信协议使能全双工双向通信流。
19.根据权利要求18所述的系统,其中,所述服务器流送模块被进一步配置成:
不允许所述服务器响应流到所述客户端的流送,直到所述请求流已由所述具有全双工能力的服务器接收为止;
通过停止所述服务器响应流,终止所述全双工双向通信流;
通过接受所述请求流,通过所述单个协议连接继续与所述客户端的通信;以及
当所述服务器响应流和所述请求流两者均已被停止时,终止通过所述单个协议连接与所述客户端的通信。
20.根据权利要求18所述的系统,其中,当一组服务器代理和一组网络代理读取所述基于RPC的通信协议时,所述具有全双工能力的服务器流送所述服务器请求流。
21.根据权利要求18所述的系统,其中,所述单个协议连接是单个传输控制协议。
22.根据权利要求18所述的系统,其中,所述基于RPC的通信协议是超文本传输协议。
CN201180053899.8A 2010-11-08 2011-11-02 通过基于远程过程调用的通信协议的全双工双向通信、及其应用 Active CN103339910B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201611207622.7A CN107104936B (zh) 2010-11-08 2011-11-02 建立全双工双向通信的方法和系统
CN201611207625.0A CN106878267A (zh) 2010-11-08 2011-11-02 建立全双工双向通信的方法和系统

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US41132110P 2010-11-08 2010-11-08
US61/411,321 2010-11-08
US13/245,104 US8356100B2 (en) 2010-11-08 2011-09-26 Full-duplex bi-directional communication over a remote procedure call based communications protocol, and applications thereof
US13/245,104 2011-09-26
PCT/US2011/058957 WO2012064564A1 (en) 2010-11-08 2011-11-02 Full-duplex bi-directional communication over a remote procedure call based communications protocol, and applications thereof

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN201611207625.0A Division CN106878267A (zh) 2010-11-08 2011-11-02 建立全双工双向通信的方法和系统
CN201611207622.7A Division CN107104936B (zh) 2010-11-08 2011-11-02 建立全双工双向通信的方法和系统

Publications (2)

Publication Number Publication Date
CN103339910A true CN103339910A (zh) 2013-10-02
CN103339910B CN103339910B (zh) 2017-02-08

Family

ID=46048830

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201611207625.0A Pending CN106878267A (zh) 2010-11-08 2011-11-02 建立全双工双向通信的方法和系统
CN201611207622.7A Active CN107104936B (zh) 2010-11-08 2011-11-02 建立全双工双向通信的方法和系统
CN201180053899.8A Active CN103339910B (zh) 2010-11-08 2011-11-02 通过基于远程过程调用的通信协议的全双工双向通信、及其应用

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN201611207625.0A Pending CN106878267A (zh) 2010-11-08 2011-11-02 建立全双工双向通信的方法和系统
CN201611207622.7A Active CN107104936B (zh) 2010-11-08 2011-11-02 建立全双工双向通信的方法和系统

Country Status (4)

Country Link
US (3) US8356100B2 (zh)
EP (3) EP2720431B1 (zh)
CN (3) CN106878267A (zh)
WO (1) WO2012064564A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104134337A (zh) * 2014-06-27 2014-11-05 山东厚德测控技术有限公司 光伏信息采集装置
CN105282128A (zh) * 2014-08-29 2016-01-27 中国科学院信息工程研究所 一种基于长连接的双向调用方法及系统
CN106375453A (zh) * 2016-09-05 2017-02-01 珠海市魅族科技有限公司 基于http连接的双向通讯设备、系统和方法
CN113709085A (zh) * 2020-05-22 2021-11-26 成都鼎桥通信技术有限公司 远程过程调用处理方法、装置及设备
CN114745412A (zh) * 2022-03-02 2022-07-12 深圳融安网络科技有限公司 双向远程过程调用方法、装置、设备及存储介质

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356100B2 (en) * 2010-11-08 2013-01-15 Google Inc. Full-duplex bi-directional communication over a remote procedure call based communications protocol, and applications thereof
US20120284638A1 (en) * 2011-05-06 2012-11-08 Kibits Corp. System and method for social interaction, sharing and collaboration
GB2502627A (en) * 2012-06-01 2013-12-04 Renesas Mobile Corp Wireless Full Duplex indication message and capability message sent between two communication devices
US9116706B2 (en) * 2012-10-09 2015-08-25 Tamer Yunten Yunten's web application methodology and web programming language (YWAM and WPL)
US10158721B2 (en) 2013-07-31 2018-12-18 The Coca-Cola Company Facilitating individualized user interaction with an electronic device
US9923844B1 (en) * 2014-07-30 2018-03-20 Whatsapp Inc. Conveying instant messages via HTTP
CN105391536A (zh) * 2015-10-28 2016-03-09 浪潮(北京)电子信息产业有限公司 一种客户端和服务端进行通信的方法及装置
US10277663B1 (en) 2016-06-24 2019-04-30 Amazon Technologies, Inc. Management of asynchronous media file transmissions
US10783151B1 (en) 2016-06-29 2020-09-22 Amazon Technologies, Inc. Popularity-based content feed management system
US10728291B1 (en) * 2016-06-29 2020-07-28 Amazon Technologies, Inc. Persistent duplex connections and communication protocol for content distribution
EP3662638B1 (en) * 2017-08-04 2021-09-22 Nokia Technologies Oy Transport method selection for delivery of server notifications
US20190068684A1 (en) * 2017-08-31 2019-02-28 Microsoft Technology Licensing, Llc Bidirectional data exchange
US10778726B2 (en) 2017-08-31 2020-09-15 Microsoft Technology Licensing, Llc Bidirectional data exchange between computing devices
GB2584035B (en) 2018-03-08 2022-11-02 Landmark Graphics Corp Using existing servers in a wellbore environment as data sources for streaming servers
CN110830541B (zh) * 2018-08-14 2021-07-16 华为技术有限公司 一种消息处理方法、装置及系统
US11368535B2 (en) * 2019-11-18 2022-06-21 Connectify, Inc. Apparatus and method for client connection establishment
CN111240868B (zh) * 2020-01-22 2024-04-02 阿里巴巴集团控股有限公司 实例处理与调用方法、设备、系统及存储介质
CN111526137B (zh) * 2020-04-15 2020-12-25 中科驭数(北京)科技有限公司 兼容服务器和客户端模式的网络加速器及数据处理方法
CN112367296B (zh) * 2020-10-16 2022-03-18 武汉中科通达高新技术股份有限公司 一种业务控制方法及装置
CN113612628B (zh) * 2021-07-09 2023-04-18 苏州浪潮智能科技有限公司 一种实现自适应跨网段双向通信的方法、系统
US11652890B1 (en) 2022-07-13 2023-05-16 Oxylabs, Uab Methods and systems to maintain multiple persistent channels between proxy servers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100142418A1 (en) * 2008-06-02 2010-06-10 Shinichiro Nishioka Data communication system, data communication request device, and data communication response device
CN101795206A (zh) * 2009-11-26 2010-08-04 福建星网锐捷网络有限公司 一种在分布式构成设备上实现snmp代理的方法和装置
US20100281107A1 (en) * 2009-05-01 2010-11-04 Fallows John R Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774479A (en) * 1995-03-30 1998-06-30 Motorola, Inc. Method and system for remote procedure call via an unreliable communication channel using multiple retransmission timers
US6446192B1 (en) * 1999-06-04 2002-09-03 Embrace Networks, Inc. Remote monitoring and control of equipment over computer networks using a single web interfacing chip
US7213063B2 (en) * 2000-01-18 2007-05-01 Lucent Technologies Inc. Method, apparatus and system for maintaining connections between computers using connection-oriented protocols
US20030014624A1 (en) * 2000-07-31 2003-01-16 Andes Networks, Inc. Non-proxy internet communication
US7610331B1 (en) * 2000-09-13 2009-10-27 Lightsurf Technologies, Inc. System and method for dynamic uploading and execution of applications and drivers between devices
US7523216B1 (en) * 2002-02-01 2009-04-21 Network Appliance, Inc. System and method for using an endian-neutral data packet to define subsequent data packet byte-order
US7318075B2 (en) * 2004-02-06 2008-01-08 Microsoft Corporation Enhanced tabular data stream protocol
US20050210129A1 (en) * 2004-03-19 2005-09-22 Microsoft Corporation Asynchronous channel for displaying user interface elements
US7818377B2 (en) * 2004-05-24 2010-10-19 Microsoft Corporation Extended message rule architecture
US20060029016A1 (en) * 2004-06-29 2006-02-09 Radware Limited Debugging application performance over a network
US7546613B2 (en) * 2004-09-14 2009-06-09 Oracle International Corporation Methods and systems for efficient queue propagation using a single protocol-based remote procedure call to stream a batch of messages
US20070112962A1 (en) * 2005-11-14 2007-05-17 Steve Lewontin Network connection establishment using out of band connection request
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
TWI339522B (en) * 2007-02-27 2011-03-21 Nat Univ Tsing Hua Generation method of remote objects with network streaming ability and system thereof
US20090222818A1 (en) * 2008-02-29 2009-09-03 Sap Ag Fast workflow completion in a multi-system landscape
US8693379B2 (en) * 2008-07-22 2014-04-08 Panasonic Corporation Communication system, communication device, and communication method
US8285912B2 (en) * 2009-08-07 2012-10-09 Arm Limited Communication infrastructure for a data processing apparatus and a method of operation of such a communication infrastructure
US8356100B2 (en) 2010-11-08 2013-01-15 Google Inc. Full-duplex bi-directional communication over a remote procedure call based communications protocol, and applications thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100142418A1 (en) * 2008-06-02 2010-06-10 Shinichiro Nishioka Data communication system, data communication request device, and data communication response device
US20100281107A1 (en) * 2009-05-01 2010-11-04 Fallows John R Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
CN101795206A (zh) * 2009-11-26 2010-08-04 福建星网锐捷网络有限公司 一种在分布式构成设备上实现snmp代理的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GOOGLE: "FETTE GOOGLE I ET AL: "The WebSocket protocol draft-ietf-hybi-thewebsocketprotocol-03.txt"", 《IETF》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104134337A (zh) * 2014-06-27 2014-11-05 山东厚德测控技术有限公司 光伏信息采集装置
CN104134337B (zh) * 2014-06-27 2017-06-30 山东厚德测控技术有限公司 光伏信息采集装置
CN105282128A (zh) * 2014-08-29 2016-01-27 中国科学院信息工程研究所 一种基于长连接的双向调用方法及系统
CN105282128B (zh) * 2014-08-29 2018-10-16 中国科学院信息工程研究所 一种基于长连接的双向调用方法及系统
CN106375453A (zh) * 2016-09-05 2017-02-01 珠海市魅族科技有限公司 基于http连接的双向通讯设备、系统和方法
CN113709085A (zh) * 2020-05-22 2021-11-26 成都鼎桥通信技术有限公司 远程过程调用处理方法、装置及设备
CN114745412A (zh) * 2022-03-02 2022-07-12 深圳融安网络科技有限公司 双向远程过程调用方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2012064564A1 (en) 2012-05-18
US8356100B2 (en) 2013-01-15
US20120124219A1 (en) 2012-05-17
CN103339910B (zh) 2017-02-08
EP2720431B1 (en) 2016-08-17
CN107104936B (zh) 2018-09-21
US9258345B2 (en) 2016-02-09
EP2720431A1 (en) 2014-04-16
EP2638680B1 (en) 2016-08-10
US20140297731A1 (en) 2014-10-02
EP2638680A1 (en) 2013-09-18
EP2843908B1 (en) 2018-09-12
CN106878267A (zh) 2017-06-20
EP2843908A1 (en) 2015-03-04
US20130227148A1 (en) 2013-08-29
US8769116B2 (en) 2014-07-01
CN107104936A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
CN103339910A (zh) 通过基于远程过程调用的通信协议的全双工双向通信、及其应用
CN105208043B (zh) 外网代理模块、内网代理模块、数据传输方法及系统
US8392555B2 (en) Push-back mechanism for pub/sub brokers
CN101437036B (zh) 支持nat/防火墙穿越的文件传输方法和系统
US8984158B2 (en) Data communication system and method
US20140317205A1 (en) Method and Devices to Invite a User from an External Chat Service to a Group Chat Session
KR100938826B1 (ko) 페이지 모드 메시징
CN108683653A (zh) 一种基于WebSocket的主动式消息推送系统
CN113098985B (zh) 一种会话管理方法及调度服务器
CN101682611A (zh) 在物理传输介质中断时改善tcp数据传输进程的方法
JP2000207298A (ja) ファイル転送方法
WO2018107671A1 (zh) 一种共享认证方法及系统、智能设备及控制方法
CN112788144A (zh) 一种通信方式的实现方法、服务器以及客户端
KR100639650B1 (ko) Vod 스트리밍 서비스 시스템 및 방법
US8959178B2 (en) Transmission apparatus and transmission method
JPH10271161A (ja) 中継装置を介するクライアントサーバシステムのセッション制御方法
CN111669416B (zh) 验证信息同步系统和通信设备
Kim et al. Design and Implementation of Desktop Video Conference System Based on Client-Server and P2P.
CN113839910A (zh) 视频会议的实现方法、终端和sip网关
JP2004056584A (ja) マルチキャスト通信システムにおけるルーティング装置、そのルーティング方法およびプログラム
KR100972477B1 (ko) Http에 기반한 실시간 양방향 서비스 제공 방법,양방향 연결 유지 방법 및 그를 위한 서버
JP4751937B2 (ja) トランザクション生起方法及びトランザクション生起システム
KR20080023869A (ko) 모바일 인스턴트 메시징 방법 및 그 시스템
CN101729437A (zh) 网络分享系统及其信息传送方法,及其机器可读取媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.

CP01 Change in the name or title of a patent holder