当前位置: 首页 > 专利查询>谷歌公司专利>正文

通过基于远程过程调用的通信协议的全双工双向通信、及其应用制造技术

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

【技术实现步骤摘要】
【国外来华专利技术】通过基于远程过程调用的通信协议的全双工双向通信、及其应用
技术介绍
超文本传输协议(HTTP)是无状态的远程过程调用(RPC)类型协议,其要求客户端和服务器之间的通信并且遵循严格的请求-响应模式。HTTP将数据从客户端流送到服务器或从服务器流送到客户端。当前,从客户端到服务器和从服务器到客户端的双向流送要求两个传输控制协议(TCP)连接,以分别在客户端和服务器之间流送数据。第一TCP连接由客户端用来将请求流送到服务器,而第二TCP连接由服务器用来将响应流送到客户端。例如,对于客户端到服务器通信,方法包括HangingGET、长轮询、以及轮询。HangingGET方法包括未决(pending)RPC协议,其允许服务器在任何时间将响应数据流送到客户端。来自客户端的请求不包括初始握手请求,并且该请求不包含数据。长轮询方法类似于HangingGET方法,但是来自服务器的响应对于服务器发送至客户端的每条数据被终止。客户端被要求初始化新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之间的数据流送。全本文档来自技高网
...
通过基于远程过程调用的通信协议的全双工双向通信、及其应用

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2010.11.08 US 61/411,321;2011.09.26 US 13/245,1041.一种用于提供具有全双工能力的客户端设备以经由单个传输控制协议TCP连接使用基于远程过程调用RPC的通信协议建立全双工双向通信流的计算机实现的方法,包括:通过将初始基于RPC的握手发送至服务器,使用所述基于RPC的通信协议通过所述具有全双工能力的客户端设备经由网络通过在所述具有全双工能力的客户端设备和所述服务器之间的所述单个TCP连接发起全双工通信;在所述服务器通过所述单个TCP连接经由所述网络接受所述初始基于RPC的握手之后,使用所述基于RPC的通信协议通过所述具有全双工能力的客户端设备将客户端请求流流送至所述服务器;在所述具有全双工能力的客户端设备通过所述单个TCP连接流送所述客户端请求流的同时,使用所述基于RPC的通信协议通过所述具有全双工能力的客户端设备通过所述单个TCP连接接受来自所述服务器的响应流;以及当所述客户端请求流和所述响应流同时通过所述单个TCP连接通信时,使用所述基于RPC的通信协议通过所述具有全双工能力的客户端设备使能所述全双工双向通信流。2.根据权利要求1所述的方法,进一步包括:当所述客户端请求流和所述响应流两者均已被停止时,使用所述基于RPC的通信协议终止通过所述单个TCP连接与所述服务器的所述全双工通信。3.根据权利要求2所述的方法,进一步包括:使用所述基于RPC的通信协议通过停止所述客户端请求流,终止所述全双工双向通信流;以及使用所述基于RPC的通信协议通过接受所述响应流,通过所述单个TCP连接继续与所述服务器的所述全双工双向通信流。4.根据权利要求1所述的方法,其中,所述基于RPC的通信协议是超文本传输协议HTTP。5.根据权利要求4所述的方法,其中,所述使能包括:当一组基于HTTP的客户端代理和一组基于HTTP的网络代理读取由所述全双工双向通信流使用的所述HTTP时,使能所述全双工双向通信流,其中,所述一组客户端代理和所述一组网络代理被配置成基于由所述全双工双向通信流使用的所述HTTP经过所述全双工双向通信流。6.根据权利要求4所述的方法,其中,所述发起包括:由所述具有全双工能力的客户端设备将基于HTTP的握手发送至能够使用HTTP的服务器以参与与所述具有全双工能力的客户端设备的所述全双工双向通信流。7.一种用于提供具有全双工能力的服务器以经由单个传输控制协议TCP连接使用基于远程过程调用RPC的通信协议建立全双工双向通信流的计算机实现的方法,包括:通过接受来自客户端的初始基于RPC的握手,使用所述基于RPC的通信协议完成经由网络通过在所述具有全双工能力的服务器和所述客户端之间的单个TCP连接的全双工通信;使用所述基于RPC的通信协议通过所述单个TCP连接接受请求流;使用所述基于RPC的通信协议将由所述具有全双工能力的服务器接收的所述请求流传送至服务器应用;使用所述基于RPC的通信协议通过所述单个TCP连接经由所述网络将包括对所述请求流的应用响应的服务器响应流流送至所述客户端;以及当所述服务器响应流和所述请求流同时使用所述单个TCP连接时,使用所述基于RPC的通信协议使能全双工双向通信流。8.根据权利要求7所述的方法,进一步包括:使用所述基于RPC的通信协议拒绝将所述服务器响应流流送至所述客户端,直到所述请求流已被所述具有全双工能力的服务器接受为止;使用所述基于RPC的通信协议通过接受所述请求流,通过所述单个TCP连接继续与所述客户端的所述全双工双向通信流;以及当所述服务器响应流和所述请求流两者均已被停止时,终止通过所述单个TCP连接与所述客户端的所述全双工通信。9.根据权利要求7所述的方法,其中,所述基于RPC的通信协议是超文本传输协议HTTP。10.根据权利要求9所述的方法,其中,所述使能包括:当一组基于HTTP的服务器代理和一组基于HTTP的网络代理读取由所述全双工双向通信流使用的所述HTTP时,使能所述全双工双向通信流,其中,所述一组服务器代理和所述一组网络代理被配置成基于由所述全双工双向通信流使用的所述HTTP经过所述全双工双向通信流。11.根据权利要求9所述的方法,其中,所述完成包括:由所述具有全双工能力的服务器设备将基于HTTP的握手接受发送至能够使用HTTP的客户端以参与与所述具有全双工能力的服务器的所述全双工双向通信流。12.一种用于提供具有全双工能力的客户端设备以经由单个传输控制协议TCP连接通过基于远程过程调用RPC的通信协议建立全双工双向通信流的系统,...

【专利技术属性】
技术研发人员:朱文博凯文·于
申请(专利权)人:谷歌公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1