Full-duplex bi-directional communication over a remote procedure call based communications protocol, and applications thereof
First Claim
1. A computer implemented method for providing a full-duplex capable client to establish a full-duplex bi-directional communication stream, comprising:
- initiating, using a remote procedure call (RPC) based communication protocol, full-duplex communication over a single protocol connection between the full-duplex capable client and a server via a network, wherein the full-duplex capable client is configured to engage the server by sending an initial handshake to the server, the initial handshake including a request and a body;
receiving an acceptance of the initial handshake, wherein the acceptance of the initial handshake by the server establishes communication between the full-duplex capable client and the server;
streaming a client request stream by the full-duplex capable client to the server following the acceptance of the initial handshake by the server via the network over the single protocol connection;
accepting a response stream from the server over the single protocol connection while the full-duplex capable client streams the client request stream over the single protocol connection; and
enabling the full-duplex bi-directional communication stream over the RPC based communication protocol when the client request stream and the response stream communicate over the single protocol connection simultaneously.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods for reducing the cost but increasing the performance caused in streaming data between a client and a server are described herein. Embodiments of the present invention relate to reducing the cost but increasing the performance by the traditional data streaming where two TCP connections, one for each direction of traffic is used. Further embodiments allow a server in communication with one or more clients using a RPC based communication protocol to bi-directional stream not on two TCP connections but a single TCP connection. In one embodiment, this is achieved by transmitting from the client to the server an initial handshake. If the server receives the handshake, then the client streams a request stream to the server and the server streams a response stream to the client simultaneously over the same single TCP connection establishing full-duplex streaming.
24 Citations
28 Claims
-
1. A computer implemented method for providing a full-duplex capable client to establish a full-duplex bi-directional communication stream, comprising:
-
initiating, using a remote procedure call (RPC) based communication protocol, full-duplex communication over a single protocol connection between the full-duplex capable client and a server via a network, wherein the full-duplex capable client is configured to engage the server by sending an initial handshake to the server, the initial handshake including a request and a body; receiving an acceptance of the initial handshake, wherein the acceptance of the initial handshake by the server establishes communication between the full-duplex capable client and the server; streaming a client request stream by the full-duplex capable client to the server following the acceptance of the initial handshake by the server via the network over the single protocol connection; accepting a response stream from the server over the single protocol connection while the full-duplex capable client streams the client request stream over the single protocol connection; and enabling the full-duplex bi-directional communication stream over the RPC based communication protocol when the client request stream and the response stream communicate over the single protocol connection simultaneously. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer implemented method for providing a full-duplex capable server to establish a full-duplex bi-directional communication stream, comprising:
-
finalizing, using a remote procedure call (RPC) based communication protocol, full-duplex communication over a single protocol connection between the full-duplex capable server and a client via a network, wherein the full-duplex capable server is configured to accept an initial handshake from the client, the initial handshake including a request and a body; responding to the initial handshake request by sending an acceptance of the initial handshake, wherein the acceptance of the initial handshake by the full-duplex capable server establishes communication between the full-duplex capable server and the client; transferring a request stream received by the full-duplex capable server to a server application; streaming a server response stream to the client that comprises an application response to the request stream by the server application via the network over the single protocol connection; and enabling a full-duplex bi-directional communication stream over the RPC based communication protocol when the server response stream and the request stream use the single protocol connection simultaneously. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A system for providing a full-duplex capable client to establish a full-duplex bi-directional communication stream, comprising:
-
a memory; and at least one processor coupled to the memory and configured to; initiate, using a remote procedure call (RPC) based communication protocol, full-duplex communication over a single protocol connection between the full-duplex capable client and a server via a network, wherein the full-duplex capable client is configured to engage the server by sending an initial handshake to the server, the initial handshake including a request and a body; receive an acceptance of the initial handshake, wherein the acceptance of the initial handshake by the server establishes communication between the full-duplex capable client and the server; stream a client request stream by the full-duplex capable client to the server following the acceptance of the initial handshake by the server via the network over the single protocol connection; accept a response stream from the server over the single protocol connection while the full-duplex capable client streams the client request stream over the single protocol connection; and enable the full-duplex bi-directional communication stream over the RPC based communication protocol when the client request stream and the response stream communicate over the single protocol connection simultaneously. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A system for providing a full-duplex capable client to establish a full-duplex bi-directional communication stream, comprising:
-
a memory; and at least one processor coupled to the memory and configured to; finalize, using a remote procedure call (RPC) based communication protocol, full-duplex communication over a single protocol connection between the full-duplex capable server and a client via a network, wherein the full-duplex capable server is configured to accept an initial handshake from the client, the initial handshake including a request and a body; respond to the initial handshake request by sending an acceptance of the initial handshake, wherein the acceptance of the initial handshake by the full-duplex capable server establishes communication between the full-duplex capable server and the client; transfer a request stream received by the full-duplex capable server to a server application; stream a server response stream to the client that comprises an application response to the request stream by the server application via the network over the single protocol connection; and enable a full-duplex bi-directional communication stream over the RPC based communication protocol when the server response stream and the request stream use the single protocol connection simultaneously. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A computer implemented method, comprising:
-
initiating, using a remote procedure call (RPC) based communication protocol, full-duplex communication over a single protocol connection between the full-duplex capable client and a server via a network, wherein the full-duplex capable client is configured to engage the server by sending an initial handshake to the server, the initial handshake including a request and a body; waiting for a time-out period to determine that an acceptance of the initial handshake by the server is absent; and initializing a fallback communication method, wherein the fallback communication method is a bi-directional, dual TCP connection method. - View Dependent Claims (22, 23, 24)
-
-
25. A system, comprising:
-
a memory; and at least one processor coupled to the memory and configured to; initiate, using a remote procedure call (RPC) based communication protocol, full-duplex communication over a single protocol connection between the full-duplex capable client and a server via a network, wherein the full-duplex capable client is configured to engage the server by sending an initial handshake to the server, the initial handshake including a request and a body; wait for a time-out period to determine that an acceptance of the initial handshake by the server is absent; and initialize a fallback communication method, wherein the fallback communication method is a bi-directional, dual TCP connection method. - View Dependent Claims (26, 27, 28)
-
Specification